Los ataques a API han estado en todas las noticias últimamente. Hace apenas unas semanas, una importante empresa de telecomunicaciones en Australia sufrió un incidente de seguridad en su API, exponiendo alrededor de 10 millones de registros de clientes. En marzo, una brecha en la API de Hubspot expuso los datos confidenciales de 1,6 millones de usuarios. ¿Y quién puede olvidar la oleada de brechas de seguridad en API de 2021 que afectó a Peloton, John Deere y Experian? La predicción de Gartner de que “para 2022, los abusos de API pasarían de ser un vector de ataque poco frecuente al más frecuente, resultando en brechas de datos para aplicaciones web empresariales” ciertamente se ha cumplido.
¿Por qué vemos un flujo tan constante de ataques basados en API? Sencillamente, porque las API son lucrativas para los atacantes. Son como los operarios de pista en un aeropuerto, que guían a los actores malintencionados con sus varas luminosas rojas directamente hacia sus datos más valiosos.
Dado que las API también impulsan la economía digital actual, esto plantea un dilema. No puedes simplemente decidir eliminarlas o limitar el acceso sin frenar la innovación de tu negocio. Tu única opción real es proteger tus API contra los ataques de hoy —y de mañana— para asegurar que tu empresa pueda seguir creciendo y ofreciendo los servicios que tus clientes esperan.
Muchas organizaciones creen erróneamente que la “seguridad por oscuridad” es suficiente para protegerlas: piensan que son lo suficientemente desconocidas, que sus datos no son tan interesantes, que sus API son diferentes o que están lo suficientemente seguras. Lamentablemente, este enfoque nunca ha funcionado y definitivamente no funcionará en el mundo actual, hiperconectado, con datos en todas partes y centrado en las API.
¿Qué es un ataque a una API?
Un ataque a una API es simplemente un uso hostil —o un intento de uso hostil— de una API. Los atacantes utilizan un punto final de API para acceder a los datos y explotarlos. A veces, estos ataques pueden perpetrarse debido a un código fundamentalmente deficiente. Pero, más a menudo, se dirigen a vulnerabilidades en la lógica de negocio, intentando que las API se comporten de formas que sus desarrolladores nunca previeron.
Para complicar aún más las cosas, cada vulnerabilidad de API representa esencialmente una vulnerabilidad de día cero. Debido a que las API de cada empresa son únicas, las brechas de seguridad de cada una difieren de las demás. En consecuencia, para descubrir cómo explotar eficazmente las API, los atacantes deben sondear y probar —una y otra vez— para descubrir cualquier error en la lógica de negocio y conocer las vulnerabilidades de la API. Detectar estos ataques “lentos y silenciosos”, que pueden llevarse a cabo durante días, semanas e incluso meses, requiere un análisis profundo del comportamiento a lo largo del tiempo.
¿En qué se diferencian los ataques a API actuales?
A medida que ha aumentado el número de API, las amenazas también han cambiado. Este nuevo paradigma de ataque ha surgido porque las API se han construido sobre la lógica de negocio y la lógica de aplicación subyacente. Como se mencionó, los riesgos de seguridad en API más significativos provienen de fallos en la lógica de negocio.
Los ataques basados en transacciones —como la típica inyección SQL— constituían la mayoría de los ataques de seguridad en el pasado. Las soluciones de seguridad tradicionales basadas en proxy, como un WAF, funcionan bien para detener este tipo de ataques; los WAF buscan patrones conocidos y actúan como un cortafuegos, bloqueando lo que se sabe que es malicioso. Sin embargo, los enfoques de seguridad de API basados en servidor o máquina virtual simplemente no tienen un conjunto de datos lo suficientemente amplio a lo largo del tiempo para identificar los sofisticados ataques a API de hoy en día.
En los ataques a la lógica de aplicación, los hackers utilizan el reconocimiento a lo largo del tiempo para descubrir agujeros en la lógica de negocio codificada. Buscan áreas para una posible explotación, como obtener acceso no autorizado a datos o funcionalidades dentro de la API, o debilidades en la API para lanzar ataques de denegación de servicio (DoS) de aplicación, precisos y de bajo tráfico.
Debido a esto, los ataques rara vez provienen de una sola llamada a la API. Los atacantes realizan múltiples llamadas como parte de sus esfuerzos de reconocimiento. Si bien las soluciones de seguridad tradicionales pueden defenderse contra vulnerabilidades conocidas, no pueden detectar estas vulnerabilidades lógicas de la API, ya que carecen de la función empresarial y la lógica necesarias.
Para proteger las API, las organizaciones deben ser capaces de detectar vulnerabilidades basadas en la lógica. Esto requiere contexto sobre la función y la lógica del negocio. Los equipos de seguridad deben ver los puntos finales de la API en acción y comprender el propósito funcional de cada uno. También necesitan entender las características de comportamiento de cada parámetro y elemento utilizado por dichos puntos finales. Un solo punto final de API puede tener miles de permutaciones posibles de lógica de negocio y de aplicación subyacente que deben ser evaluadas y probadas para determinar si es capaz de realizar comportamientos negativos.
¿Qué tipos de ataques a API son los más comunes?
El Open Web Application Security Project (OWASP), la organización que nos trajo las 10 principales vulnerabilidades, ha realizado el trabajo pesado para ayudar al mercado a comprender los ataques de seguridad a API más comunes en la actualidad. A finales de 2019, OWASP publicó su primera API Security Top 10 lista de vulnerabilidades, que incluye los siguientes diez tipos principales de ataques a API:
- API1:2019 Autorización de nivel de objeto rota: La autorización de nivel de objeto rota es la amenaza de API más común, presente en aproximadamente el 40% de todos los ataques a API.
- API2:2019 Autenticación de usuario rota: La autenticación de usuario rota permite a los atacantes utilizar tokens de autenticación robados, relleno de credenciales y ataques de fuerza bruta para obtener acceso no autorizado a las aplicaciones.
- API3:2019 Exposición excesiva de datos: Cuando las API genéricas proporcionan más datos de los necesarios, un atacante puede explotar una aplicación utilizando datos redundantes para extraer información confidencial adicional.
- API4:2019 Falta de recursos y limitación de tasa: Las API que implementan incorrectamente la limitación de tasa o que no la implementan en absoluto son altamente susceptibles a ataques de fuerza bruta.
- API5:2019 Autorización de nivel de función rota: Cuando la autorización no se implementa correctamente, los usuarios no autorizados pueden ejecutar funciones de la API, como agregar, actualizar o eliminar un registro de cliente o un rol de usuario.
- API6:2019 Asignación masiva: Las API que consumen directamente las solicitudes de entrada y las asignan o escriben en los almacenes de datos de la lógica de negocio son vulnerables a la asignación masiva, lo que permite a los atacantes cambiar propiedades de datos críticas y explotar la escalada de privilegios.
- API7:2019 Configuración de seguridad incorrecta: La configuración de seguridad incorrecta es un término general para una amplia gama de errores de configuración que a menudo afectan negativamente la seguridad de la API en su conjunto e introducen vulnerabilidades de forma inadvertida.
- API8:2019 Inyección: Este ataque es el único remanente de la lista original OWASP Top 10; el 90% restante es nuevo y se centra exclusivamente en las API. Los atacantes explotan las vulnerabilidades de inyección enviando datos maliciosos a una API que, a su vez, son procesados por un intérprete o analizados por el servidor de aplicaciones y transmitidos a algún servicio integrado.
- API9:2019 Gestión inadecuada de activos: Un inventario desactualizado o incompleto genera brechas desconocidas en la superficie de ataque de la API y dificulta la identificación de versiones antiguas de API que deberían ser retiradas.
- API10:2019 Registro y supervisión insuficientes: El registro y la supervisión insuficientes, combinados con una integración ausente o ineficaz con la respuesta ante incidentes, permiten a los atacantes realizar reconocimientos, explotar o abusar de las API, comprometer sistemas, mantener la persistencia, avanzar en sus ataques y moverse lateralmente a través de los entornos sin ser detectados.
Desafortunadamente, el informe State of API Security del tercer trimestre de 2022 de Salt Security indicó que solo el 55% de los encuestados confía en la lista de los 10 principales ataques a API de OWASP. Dado que el 62% de los intentos de ataque contra las organizaciones aprovecha al menos uno de esos métodos, esto representa una oportunidad perdida.
¿Son suficientes mis herramientas actuales para proteger nuestra superficie de ataque de API?
Como hemos comentado, las API requieren un nuevo enfoque de seguridad con soluciones dedicadas que aprovechen una arquitectura que vaya más allá de las herramientas tradicionales, las cuales se limitan a analizar transacciones individuales de forma aislada.
En una nota de investigación reciente, Gartner reconoció la necesidad de soluciones dedicadas al añadir la seguridad de API como un nivel diferenciado en su Arquitectura de Referencia de Seguridad actualizada. Este nuevo nivel se sitúa entre las herramientas tradicionales, como WAF, WAAP, puertas de enlace de API y CDN, que protegen el perímetro, y las herramientas que protegen los datos y el plano de control. Con esta nueva arquitectura, Gartner afirma que estas herramientas tradicionales dejan brechas en la protección de las API.
Para proteger las API, las organizaciones necesitan una plataforma creada específicamente para abordar las consideraciones de seguridad únicas de las API actuales, que incluya:
- Visibilidad: La proliferación de API continúa sin cesar, lo que hace casi imposible mantenerse al día sobre las API nuevas y modificadas. Las organizaciones también necesitan información sobre dónde exponen sus API datos confidenciales.
- Prevención de ataques: Cada API es única, por lo que los ataques también lo son, y las organizaciones necesitan la capacidad de detectar el comportamiento lento y sigiloso de los actores malintencionados que sondean las API en busca de fallos en la lógica de negocio.
- Seguridad proactiva: La información sobre remediación, obtenida tanto de las pruebas previas a la producción como del tiempo de ejecución, ayuda a los desarrolladores a fortalecer sus API. Las organizaciones no deben depender excesivamente de las tácticas de "shift-left". Sin embargo, las pruebas previas a la producción no detectarán fallos en la lógica de negocio, por lo que no se puede esperar que los desarrolladores creen API seguras en todo momento.
Para prevenir ataques a las API, primero debe saber qué API tiene
Una visión precisa de la superficie de ataque es esencial para fundamentar su estrategia de seguridad, pero esto puede ser especialmente difícil con API que cambian constantemente. De hecho, una reciente encuesta de Salt Security reveló que el 11 % de los encuestados actualizaba sus API a diario y el 31 % lo hacía semanalmente.
Necesita descubrir todas las API de su entorno, incluidas las API "en la sombra" desconocidas, como en el ejemplo anterior, y las API "zombis" que deberían estar obsoletas. El descubrimiento debe ser automático y continuo para seguir el ritmo del lanzamiento constante de API nuevas y actualizadas, y debe cubrir todas las API orientadas al cliente, a los socios (proporcionadas y consumidas) e internas.
Saber que existe una API no es suficiente. Comprender cada API a un nivel granular es fundamental para entender la funcionalidad prevista, evaluar el riesgo y determinar si la API expone datos confidenciales, como información de identificación personal (PII). El descubrimiento automático y continuo ayuda a garantizar que la visión de la superficie de ataque y la exposición de datos confidenciales se mantenga actualizada en todo momento.
El big data a escala de nube y los modelos de IA maduros ayudan a prevenir ataques a las API
Los atacantes que se dirigen a las API utilizan métodos sutiles para descubrir y explotar vulnerabilidades. Piense en los estafadores que intentan redirigir transferencias ACH a números de cuenta alternativos no autorizados. Los estafadores podrían explotar una vulnerabilidad de API común y manipular los números de ruta cambiando solo unos pocos parámetros de la API.
Para detectar esto, necesita una solución que combine big data, IA y aprendizaje automático (ML) para capturar todo el tráfico de la API, crear una línea base de actividad normal y buscar desviaciones. En el caso anterior, este tipo de solución identificaría la sutil manipulación del número de ruta y marcaría la actividad.
Solo una arquitectura de big data a escala de nube con inteligencia artificial (IA) y aprendizaje automático (ML) puede capturar y analizar continuamente grandes volúmenes de tráfico de API. El análisis continuo del tráfico de API es el único camino para comprender el comportamiento normal de cada API única y obtener el contexto necesario para identificar desviaciones sutiles y localizar a los atacantes.
La protección de API también requiere el análisis del tráfico de API a lo largo del tiempo. Por su propia naturaleza, las API exponen la lógica de la aplicación. Los hackers realizan muchas pruebas para intentar identificar las brechas en la lógica de negocio que pueden explotar. El reconocimiento necesario para propagar ataques como estos requiere mucho tiempo. Un solo ataque a una API puede tardar horas, días o incluso semanas en desarrollarse.
Después de haber detenido la "hemorragia", es hora de eliminar futuras brechas
Los equipos de DevOps desempeñan un papel esencial en la seguridad, pero cualquier software se lanzará inevitablemente con brechas, a pesar de que los equipos empleen las mejores prácticas de desarrollo y utilicen herramientas de escaneo. Las API no son diferentes. Las prácticas de desarrollo ágil y los ciclos de lanzamiento ajustados significan que los equipos de desarrollo, a menudo sobrecargados, pueden pasar por alto la seguridad para cumplir con plazos estrictos.
La protección en tiempo de ejecución es fundamental para evitar la explotación de cualquier vulnerabilidad que llegue a producción. Pero confiar únicamente en la protección en tiempo de ejecución lo deja en una situación de jugar al "topo" virtual. Los equipos de desarrollo deben identificar y eliminar continuamente las brechas para mejorar la seguridad de las API.
Las soluciones de seguridad de API líderes actuales pueden bloquear a los estafadores y aprender de su actividad mientras sondean y manipulan la API. Estos aprendizajes proporcionan información sobre las vulnerabilidades exclusivas de esa API y ayudan a los equipos de desarrollo a priorizar y eliminar las brechas rápidamente.
¡Es una carrera constante! Las soluciones de seguridad de API deben analizar las API para identificar brechas antes de que un atacante las encuentre y permitir que los desarrolladores eliminen proactivamente las vulnerabilidades potenciales, mientras perfeccionan simultáneamente sus mejores prácticas de seguridad de API.
Para obtener más información
Contáctenos o programa una demostración personalizada para obtener más información sobre cómo la plataforma de protección de API de Salt Security puede ayudar a su organización a crear un inventario de API completo y preciso, detectar ataques a API en tiempo de ejecución y obtener información para solucionar vulnerabilidades y fortalecer sus API.
