Llegamos a ustedes gracias a:



Reportajes y análisis

APIs: 10 herramientas para comprobar cuán seguras son

[28/09/2021] Las interfaces de programación de aplicaciones (API, por sus siglas en inglés) son una parte fundamental de la mayoría de los programas y aplicaciones modernas. De hecho, tanto las implantaciones en la nube como las aplicaciones móviles han llegado a depender tanto de las APIs que no se puede tener ninguna de ellas sin una API que gestione los componentes en algún punto de la línea. Muchas grandes empresas, especialmente las que tienen una gran presencia en línea, tienen cientos o incluso miles de APIs integradas en su infraestructura. El crecimiento de las APIs no hará más que aumentar.

[Reciba lo último de CIO Perú suscribiéndose a nuestro newsletter semanal]

Lo ingenioso de las APIs es que muchas de ellas no son más que pequeños fragmentos de código, y todas están diseñadas para ser pequeñas y discretas en cuanto a sus necesidades de recursos de red. Sin embargo, también son flexibles y capaces de seguir trabajando y realizando sus funciones principales, incluso si el programa con el que interactúan o controlan cambia, como cuando se aplican parches.

A pesar de lo sorprendentes que son las API, también tienen sus defectos. Como pueden diseñarse para hacer casi cualquier cosa, desde funciones únicas que se repiten una y otra vez, hasta el control inteligente de los aspectos avanzados de varios programas o plataformas, casi no hay normas que rijan su creación. La mayoría de las API son únicas, y muchas organizaciones se limitan a crear nuevas API según las necesidades. Esto puede ser una pesadilla para los equipos de seguridad.

Otra forma en que las APIs son atractivas para los atacantes es que muchas tienen demasiados permisos. Incluso las APIs que solo realizan unas pocas funciones suelen tener privilegios casi de administrador. La idea es que una API tan pequeña no puede hacer ningún daño. Los hackers comprometen las APIs y luego utilizan esas credenciales para nuevos fines, como la exfiltración de datos o una penetración más profunda en una red. Según una investigación de seguridad llevada a cabo por Akamai, casi el 75% de los ataques modernos a las credenciales tenían como objetivo las APIs vulnerables.

El problema está empeorando. Según Gartner, para el 2022, las vulnerabilidades relacionadas con las APIs se convertirán en el vector de ataque más frecuente en todas las categorías de ciberseguridad.

Herramientas de prueba de API al rescate

Tener un componente crítico de la red y del programa en el punto de mira de los atacantes ya es bastante malo, pero con las APIs la situación es aún más precaria debido a la falta de estándares implicados en su creación. Es probable que muchas organizaciones no sepan cuántas APIs están utilizando, qué tareas realizan o qué nivel de permisos tienen. Luego está la cuestión de si esas APIs contienen alguna vulnerabilidad.

La industria y los grupos privados han creado herramientas y plataformas de pruebas de API para ayudar a responder a estas preguntas. Algunas herramientas de comprobación están diseñadas para realizar una única función, como la de mapear por qué determinadas APIs de Docker están mal configuradas. Otras adoptan un enfoque más holístico de toda la red, buscando APIs y proporcionando información sobre lo que hacen y por qué podrían ser vulnerables o tener demasiados permisos.

Existen varias plataformas comerciales de pruebas de API muy conocidas, así como un gran número de herramientas de código abierto gratuitas o de bajo costo. Las herramientas comerciales suelen tener más opciones de soporte, y pueden desplegarse de forma remota a través de la nube o incluso como un servicio. Algunas herramientas de código abierto pueden ser igual de buenas y cuentan con el respaldo de la comunidad de usuarios que las creó. La elección depende de sus necesidades, de la experiencia en seguridad de sus equipos de TI y del presupuesto.

A continuación, se presentan algunas de las principales herramientas comerciales de comprobación de API del mercado y sus principales características, seguidas de algunas herramientas de código abierto.

Herramientas y plataformas comerciales de comprobación de API

APIsec: La plataforma APIsec actúa como una herramienta de penetración dirigida a las APIs. Mientras que muchas herramientas pueden escanear en busca de vulnerabilidades comunes a los ataques típicos como las inyecciones de scripts, APIsec prueba el estrés de cada aspecto de las APIs objetivo para asegurar que todo, desde la red central hasta los puntos finales que acceden a ella, están protegidos de las fallas en el código de la API.

Una gran ventaja de APIsec es que puede implantarse en la fase de desarrollo mientras se programan las APIs. Un escaneo completo de las aplicaciones que están en proceso de construcción solo lleva un par de minutos, con resultados comparables a las operaciones de pruebas de penetración de la vieja escuela que solían tardar días o semanas en completarse.

AppKnox: AppKnox ofrece mucha ayuda a quienes compran y despliegan su plataforma. Combinado con su interfaz fácil de usar, esto hace que AppKnox sea una buena opción para las organizaciones que no tienen grandes equipos de seguridad dedicados a sus APIs. AppKnox comienza con un escaneo para localizar las APIs, ya sea en el entorno de producción, en los puntos finales o dondequiera que estén desplegadas. Una vez localizadas, los usuarios pueden seleccionar qué APIs quieren enviar para su comprobación.

AppKnox comprueba todos los problemas comunes que pueden hacer que una API se rompa o se vea comprometida, como las vulnerabilidades de inyección de comandos en las solicitudes HTTP, el rastreo entre sitios y las vulnerabilidades de inyección SQL. Esto incluye un análisis completo de los servidores web, las bases de datos y todos los componentes del servidor que interactúan con la API.

Después del escaneo de la API, los usuarios pueden enviar sus resultados para un análisis avanzado con un investigador de seguridad humano, un proceso que, según la empresa, suele tardar entre tres y cinco días.

Data Theorem API Secure: La plataforma Data Theorem API Secure está diseñada para encajar en cualquier entorno de integración continua y entrega/despliegue continuo (CI/CD) para proporcionar seguridad continua a las APIs en cada etapa de desarrollo y en el entorno de producción. Su motor analizador busca continuamente en la red nuevas APIs, y puede identificar rápidamente las no autorizadas o las que forman parte de la shadow TI de una organización.

El motor del analizador se mantiene al día sobre las vulnerabilidades más recientes descubiertas para las APIs y prueba continuamente los activos protegidos. Trabaja con entornos tanto locales como en la nube, para asegurarse de que ninguna API pueda ser víctima de las últimas amenazas. Para mantener la canalización CI/CD despejada y fluida, Data Theorem API Secure ofrece arreglar automáticamente los problemas descubiertos sin requerir la intervención humana. De este modo, las organizaciones pueden mantener sus APIs seguras incluso contra las últimas amenazas, siempre que se sientan cómodas con un alto nivel de automatización.

Postman: Si bien Postman puede considerarse una herramienta de pruebas para APIs, su fama se debe a que es una plataforma completa y colaborativa para crear APIs seguras. La utilizan millones de desarrolladores que trabajan en entornos Windows, Linux e iOS, y con razón.

Postman proporciona a los desarrolladores un conjunto completo de herramientas de API que pueden utilizar cuando diseñan nuevas API, y también proporciona un repositorio seguro para el código que las organizaciones pueden construir con el tiempo. El uso del repositorio seguro puede garantizar que las futuras APIs mantengan una estricta seguridad y estándares organizativos desde el principio.

Los espacios de trabajo que ofrece Postman están diseñados para ayudar a los desarrolladores a organizar su trabajo. También puede proporcionar advertencias de seguridad cuando el código de una aplicación comienza a alejarse de la plantilla segura establecida por la organización o incorpora una posible vulnerabilidad. De este modo, el problema puede solucionarse mucho antes de que la API llegue al entorno de producción.

Smartbear ReadyAPI: Además de las pruebas de seguridad, la plataforma Smartbear ReadyAPI está diseñada para optimizar su uso y rendimiento dentro de cualquier entorno. Puede ejecutar un análisis de seguridad de la API con un solo clic, pero también soporta otras funciones críticas como ver lo bien, o mal, que una API puede manejar una carga inesperada o un pico repentino de uso.

Puede configurar ReadyAPI para que genere los tipos de tráfico específicos que se espera que maneje la API. También puede grabar el tráfico de la API en vivo para que las futuras pruebas sean más precisas y estén configuradas para el entorno único en el que se va a operar. Además, la plataforma puede importar casi cualquier especificación o esquema para probar APIs utilizando los protocolos más populares. De forma nativa, ReadyAPI es compatible con Git, Docker, Jenkins, Azure DevOps y TeamCity, entre otros, y puede ejecutarse en cualquier entorno, desde el desarrollo hasta el control de calidad, mucho antes de que las API se pongan en marcha.

Synopsis API Scanner: Una de las razones por las que Synopsis API Scanner es tan potente es porque, además de las pruebas de seguridad, también incorpora fuzzing como parte de su conjunto de escaneos y pruebas profundas. El motor de fuzzing envía miles de entradas inesperadas, no válidas o aleatorias a las APIs para ver cómo se comportan, o si se rompen cuando se someten a cosas como números muy grandes o comandos extraños.

También mapea todas las rutas y la lógica de una API completa, incluyendo todos los puntos finales, parámetros, autenticaciones y especificaciones que se aplican a su uso. Esto permite a los desarrolladores tener una idea clara de las funciones que pretenden que realicen sus APIs, en comparación con lo que realmente pueden hacer a veces. También aclara por qué una API puede tener un comportamiento inesperado o vulnerabilidades de seguridad.

Herramientas de prueba de API de código abierto

Aunque las herramientas de código abierto no suelen tener el mismo soporte que las ofertas comerciales, los desarrolladores experimentados pueden utilizarlas fácilmente, a menudo de forma gratuita, para apuntalar o mejorar la seguridad de sus APIs. A continuación, se enumeran algunas de las ofertas más populares según la comunidad de código abierto.

Astra: Astra se concentra principalmente en las APIs de transferencia de estado representacional (REST), que pueden ser extremadamente difíciles porque a menudo cambian constantemente. Dado que el estilo arquitectónico REST enfatiza la escalabilidad en sus interacciones entre componentes, puede ser un reto mantener las APIs REST seguras a lo largo del tiempo. Astra ayuda ofreciéndose a integrarse en el pipeline CI/CD, comprobando que las vulnerabilidades más comunes no se cuelan en una API REST supuestamente segura.

crAPI: La herramienta crAPI tiene un nombre terrible, pero cumple su función como envoltorio de la API de forma eficiente. Es una de las pocas envolturas que puede conectarse a un sistema de destino y proporcionar una ruta base con el conjunto de manejadores por defecto del cliente raíz. Puede hacerlo sin tener que crear ninguna conexión nueva. Los desarrolladores avanzados de APIs pueden ahorrar mucho tiempo con ella.

Apache JMeter: Apache JMeter, que no es sorprendente que esté escrito en Java, comenzó su vida como un probador de carga para aplicaciones web, pero recientemente se ha ampliado para su uso con casi cualquier aplicación, programa o API. Su detallada suite puede probar el rendimiento en recursos estáticos o dinámicos. Puede generar una pesada carga simulada de tráfico realista para que los desarrolladores puedan descubrir cómo funcionará su API bajo presión.

Taurus: Taurus ofrece una forma sencilla de convertir los programas de prueba de API independientes en una operación de prueba continua. A primera vista, Taurus es sencillo de utilizar. Lo instalas, creas un archivo de configuración y dejas que sus herramientas de prueba hagan su trabajo. Si hurga un poco bajo el capó, puede descubrir formas de generar informes interactivos, crear escenarios más complejos para someter a sus APIs, y establecer criterios de falla para que pueda ir inmediatamente a solucionar los problemas descubiertos.