¿Cumple su IA con la normativa? Regístrese hoy

Seguridad de API 101: Guía de estrategia y fundamentos de seguridad de API

Las API están en el centro de las iniciativas de innovación digital actuales y se han convertido en el principal vector de ataque para las aplicaciones. Descubra qué es la seguridad de las API, por qué es tan importante y qué puede hacer para proteger sus API contra las amenazas modernas.

¿Qué es la seguridad de las API?

Las interfaces de programación de aplicaciones (API) son los pilares de las aplicaciones modernas. Piense en ellas como las rampas de acceso al mundo digital. Mantienen a todos conectados a datos y servicios vitales, permiten todo tipo de operaciones comerciales críticas y hacen posible la transformación digital.

A medida que el número de API sigue creciendo y las organizaciones de todo el mundo dependen cada vez más de ellas para llevar a cabo sus iniciativas empresariales críticas, se han convertido en un objetivo principal para los atacantes. Nuestro Informe sobre el estado de la seguridad de las API del primer trimestre de 2023 muestra que los atacantes únicos han crecido un 400% en un período de seis meses. Y, sin embargo, el 30% de los encuestados todavía no tiene una estrategia de seguridad de API implementada.

El Open Web Application Security Project (OWASP) define la seguridad de las API como el enfoque en estrategias y soluciones para comprender y mitigar las vulnerabilidades únicas y los riesgos de seguridad de las API, de las cuales hay muchas.

Siga leyendo para saber por qué la seguridad de las API se ha convertido en una preocupación crítica para las organizaciones actuales y en qué se diferencia de la seguridad de las aplicaciones.

¿Por qué es importante la seguridad de las API?

Las API se han convertido en un vector de ataque principal para los ciberdelincuentes, ya que los actores maliciosos se dan cuenta de lo lucrativo que es atacar las API que conectan los servicios digitales y los datos sensibles actuales. De hecho, según el Informe sobre el estado de la seguridad de las API del primer trimestre de 2023, el 94% de las empresas experimentaron problemas de seguridad de las API en las API de producción en el último año. En 2017, la firma de análisis Gartner predijo que para 2022 las API se convertirían en el principal vector de ataque para los ciberdelincuentes y, ciertamente, se ha demostrado que tenían razón. Con los ataques a las API ocupando titulares en todo el mundo en los últimos años, Gartner ha incluido la seguridad de las API en su arquitectura de referencia de seguridad en 2022, reconociendo la necesidad de herramientas y métodos dedicados a la seguridad de las API.

Entonces…

Para 2022, los abusos de API pasarán de ser un vector de ataque poco frecuente al más frecuente, lo que resultará en filtraciones de datos para las aplicaciones web empresariales.

20 de noviembre de 2017
“Predicciones 2018: Protección de la infraestructura”
—Supuesto de planificación estratégica

…y ahora

A medida que se acerca 2022, esta predicción podría considerarse "errónea", pero solo porque subestimamos el fuerte aumento de los ataques a las API.

6 de diciembre de 2021
“Predicciones 2022: las API exigen una seguridad y gestión mejoradas”

GartnerGartner

La importancia crítica de la seguridad de las API también es cada vez más evidente para los altos cargos de las organizaciones actuales. De hecho, casi la mitad (48 %) de los encuestados en nuestro informe «Estado de la seguridad de las API» indicaron que la seguridad de las API se ha convertido ahora en un tema de debate a nivel de dirección (C-level). Este hallazgo también está respaldado por los resultados de una encuesta global realizada por la empresa de investigación independiente Global Surveyz en nombre de Salt Security, donde la mayoría (78 %) de los CISO a nivel mundial afirmaron que la seguridad de las API es una prioridad mayor hoy que hace dos años, y el 95 % dijo que la seguridad de las API será una prioridad máxima en los próximos dos años.

Aunque las medidas de seguridad tradicionales, como las pasarelas API y los cortafuegos de aplicaciones web (WAF), pueden añadir valor a la pila de seguridad de una organización, no pueden seguir el ritmo de los cada vez más sofisticados métodos de ataque a las API de hoy en día. De hecho, no impiden que los atacantes roben datos sensibles, afecten la experiencia del usuario o causen otros daños. Para prevenir y mitigar los ataques a las API, se necesita una estrategia de seguridad y una tecnología diseñadas específicamente para las API.

Los ataques han cambiado y son fáciles de pasar por alto

Los actores maliciosos que atacan las API han ido más allá de los ataques tradicionales de «una sola vez» como SQLi y XSS. Ahora se centran en encontrar vulnerabilidades en la lógica de negocio de las API. Sus API son únicas, por lo que los ataques también deben serlo. Los atacantes tardan días, semanas o incluso meses en sondear y aprender sus API, y utilizan técnicas de «lento y gradual» que pasan desapercibidas para las herramientas de seguridad tradicionales.

Antes:

De una sola vez
Una sola llamada a la API – segundos a minutos
Ataques conocidos – SQLi, XSS, etc.

Hoy:

Lento y gradual
Secuencia de llamadas a la API – días a semanas
Ataques a la lógica de negocio – requiere contexto

Los diferentes tipos de seguridad de API: desde las API REST hasta SOAP y GraphQL

La seguridad de las API REST, la seguridad de SOAP y la seguridad de GraphQL desempeñan un papel importante para garantizar la protección de las API y las aplicaciones web. Cada una de estas tecnologías tiene un enfoque diferente de la seguridad, lo que requiere consideraciones de seguridad específicas.

Seguridad de API REST

REST significa Representational State Transfer (Transferencia de Estado Representacional) y es un estilo arquitectónico comúnmente utilizado en los servicios web. Se basa en métodos HTTP estándar como GET, POST, PUT, DELETE y utiliza URL para identificar recursos. Las API REST presentan su propio conjunto único de consideraciones de seguridad, como:

  • Mecanismos de autenticación — Las API REST suelen utilizar mecanismos de autenticación como claves API, tokens OAuth o JSON Web Tokens (JWT) para verificar la identidad de los clientes y conceder acceso a los recursos.
  • Mecanismos de autorización: Una vez autenticado un usuario, las API REST utilizan mecanismos de autorización para controlar a qué recursos pueden acceder.
  • Limitación de velocidad: Implemente la limitación de velocidad para restringir el número de solicitudes que un cliente puede realizar en un plazo determinado, evitando el abuso y los ataques DoS.
  • Validación de entradas: Debe aplicarse para prevenir vulnerabilidades de seguridad comunes como la inyección SQL y los ataques de Cross-Site Scripting (XSS).
  • Cifrado HTTPS: Cifrar los datos transmitidos entre el cliente y el servidor es esencial en las API REST. El cifrado HTTPS se utiliza para evitar la interceptación no autorizada.
  • Intercambio de recursos de origen cruzado (CORS): Los encabezados CORS deben utilizarse en la arquitectura REST para controlar qué dominios pueden acceder a la API en cuestión.

Para proteger eficazmente las API REST, deben tenerse en cuenta todos estos aspectos, además de otras mejores prácticas de seguridad de API REST.

Seguridad SOAP

SOAP (Simple Object Access Protocol) es un protocolo utilizado para intercambiar información en servicios web. Generalmente utiliza XML y se basa en otros protocolos web como HTTP, SMTP y TCP. También existen algunas consideraciones de seguridad importantes para SOAP:

  • Cifrado de datos sensibles: Los datos sensibles en los mensajes SOAP deben cifrarse para garantizar la confidencialidad durante el tránsito.
  • Validación XML: validar XML contra un esquema predefinido ayuda a prevenir la inyección XML y ataques relacionados.
  • Estándar WS-Security: SOAP ofrece este estándar de seguridad para proteger mensajes, que incluye características como la integridad del mensaje, la confidencialidad, la autenticación y la autorización.
  • Seguridad HTTPS: De manera similar a las API REST, los mensajes SOAP deben transmitirse mediante cifrado HTTPS para proteger los datos que se transmiten.
  • Firmas digitales: Las firmas digitales deben utilizarse siempre que sea posible para evaluar la integridad y legitimidad de los mensajes SOAP.

Seguridad de GraphQL

GraphQL es un lenguaje de consulta para API y un entorno de ejecución para esas consultas con un sistema de backend. A diferencia de REST, que expone múltiples puntos finales de API para diferentes recursos, GraphQL utiliza un único punto final para todas las consultas. A continuación, se presentan algunas de las consideraciones de seguridad más importantes para GraphQL:

  • Autenticación y autorización: Las API de GraphQL deben implementar mecanismos de autenticación y autorización para controlar el acceso a diversas consultas y mutaciones. En los últimos años, se sabe que los actores maliciosos han explotar vulnerabilidades de autorización de GraphQL con éxito para ejecutar ataques a la API.
  • Limitación de velocidad: Aplicar la limitación de velocidad es esencial para controlar el número de consultas GraphQL que un cliente puede ejecutar en un momento dado.
  • Validación de entradas: Validar y sanear las entradas de usuario en GraphQL puede ayudar a prevenir vulnerabilidades de seguridad comunes.
  • Límites de profundidad de consulta: Es necesario establecer límites a la profundidad de las consultas GraphQL para evitar consultas complejas y que consuman muchos recursos, lo que podría conducir a ataques de denegación de servicio (DoS).

En última instancia, la seguridad de cualquier API, ya sea REST, SOAP o GraphQL, depende de una combinación de mejores prácticas que cubren los mecanismos de autenticación y autorización, la validación de datos y el uso de protocolos de comunicación seguros. Una estrategia sólida de seguridad de API que abarque el descubrimiento, la protección en tiempo de ejecución y las prácticas "shift-left" es esencial para mantener las API protegidas contra las amenazas emergentes.

Salt — seguridad de API integral para una protección completa

La protección de API de Salt Security cubre todo el ciclo de vida de la API, incluyendo el Descubrimiento, la Protección contra Amenazas y la Remediación.

¿Cuáles son los tipos más comunes de ataques a API?

El primer paso para poder proteger eficazmente las API es comprender por qué los ataques actuales son diferentes. Los ataques a API más comunes hoy en día se pueden dividir en cuatro categorías:

Falta de visibilidad y gobernanza

En este tipo de ataque, los atacantes se aprovechan de API que son completamente desconocidas para una organización —API sombra o zombie— o API cuya postura de seguridad no es visible, como API no gestionadas o de terceros.

Abuso y mal uso de las API

Para ejecutar este tipo de ataque, un actor malintencionado utilizará una API exactamente como fue diseñada, pero aprovechará los resultados de una manera no intencionada y maliciosa, explotando fallos de diseño o desarrollo que permiten resultados maliciosos, como la exfiltración de datos.

Explotación de fallos en la lógica de negocio

En un ataque basado en la lógica de negocio, los hackers utilizarán técnicas de reconocimiento a lo largo del tiempo para buscar vulnerabilidades en la lógica de negocio única de cada API. Durante la fase de reconocimiento, que puede durar días, semanas o incluso meses, los atacantes buscan áreas para explorar, como obtener acceso no autorizado a datos o funcionalidades dentro de la API.

Credenciales robadas e ingeniería social

Este tipo de amenaza se manifiesta cuando un actor malintencionado utiliza técnicas de ingeniería social para acceder a claves API privilegiadas. Esto les permite robar credenciales y usar la API como si fueran un usuario o administrador legítimo y autenticado. Según el Informe del Estado de la Seguridad de API del primer trimestre de 2023, en el último año, el 78% de los ataques provino de usuarios aparentemente legítimos que habían logrado maliciosamente la autenticación adecuada.

Top 10 de Seguridad API de OWASP

Para ayudar a la industria de la seguridad de API a comprender mejor los ataques más comunes a las API, el Open Web Application Security Project (OWASP) publicó su primera lista Top 10 de vulnerabilidades de seguridad de API en 2019. La lista ha sido actualizada en 2023 y enumera las diez vulnerabilidades de API más significativas. De estas, las más comunes son:

API1:2023 autorización a nivel de objeto rota

La autorización a nivel de objeto rota (BOLA) representa alrededor del 40% de los ataques a API y es la amenaza API más común.

Dado que las API exponen con frecuencia puntos finales que manejan IDs de objetos, esto crea una gran superficie de ataque potencial. La autorización a nivel de objeto es un método de control de acceso que se implementa típicamente a nivel de código para verificar la capacidad de un usuario para acceder a un objeto determinado. Las aplicaciones modernas utilizan una variedad de sistemas de autorización y control de acceso intrincados y omnipresentes. Los desarrolladores con frecuencia descuidan aplicar estas comprobaciones antes de acceder a un objeto, incluso cuando una aplicación incluye una infraestructura robusta para las comprobaciones de autorización. Los atacantes pueden explotar fácilmente los puntos finales de API que son vulnerables a la autorización a nivel de objeto rota manipulando el ID de un objeto que se envía dentro de una solicitud API. Las fallas de autorización BOLA pueden llevar a la exfiltración de datos, así como a la visualización, modificación o destrucción no autorizada de datos. En última instancia, BOLA puede llevar a una toma de control total de la cuenta (ATO).

API2:2023 autenticación de usuario rota

Los atacantes pueden atacar fácilmente los procesos de autenticación, especialmente si están totalmente expuestos o accesibles al público. La segunda vulnerabilidad más frecuente reportada por OWASP es la autenticación de usuario rota, que permite a los atacantes utilizar el relleno de credenciales, tokens de autenticación robados y ataques de fuerza bruta para obtener acceso no autorizado a las aplicaciones. Los atacantes pueden entonces controlar las cuentas de los usuarios, obtener acceso ilegal a los datos de otros usuarios y realizar transacciones no autorizadas. Problemas tecnológicos, como una complejidad de contraseña inadecuada, la falta de criterios de bloqueo de cuentas, tiempos de rotación excesivamente largos para contraseñas y certificados, o el uso de claves API como único método de autenticación, pueden resultar en una autenticación defectuosa en las API.

Los atacantes que pueden aprovechar con éxito las debilidades en los procedimientos de autenticación podrían acceder a los datos de otro usuario sin autorización y realizar transacciones ilícitas utilizando la cuenta de ese usuario.

API3:2023 autorización a nivel de propiedad de objeto rota

La autorización a nivel de propiedad de objeto rota fusiona ataques que ocurren al obtener acceso no autorizado a información sensible a través de la Exposición Excesiva de Datos (anteriormente en el número 3 del Top 10 de Seguridad API de OWASP de 2019) o la Asignación Masiva (anteriormente en el sexto lugar de la lista de 2019). Ambas técnicas se basan en la manipulación de puntos finales de API para obtener acceso a datos sensibles.

La razón principal para introducir esta nueva amenaza en la lista es que, incluso si una API puede aplicar medidas de seguridad de autorización a nivel de objeto suficientes, esto aún podría no ser suficiente para protegerla. A menudo se requiere una autorización más específica que cubra los objetos y sus características. También deben considerarse los diferentes niveles de acceso dentro de un objeto API, ya que un objeto API a menudo tiene tanto una propiedad pública como una privada.

API4:2023 unrestricted resource consumption

La vulnerabilidad de consumo de recursos sin restricciones ha reemplazado al anterior número 4 en el Top 10 de Seguridad API de OWASP, Falta de recursos y limitación de velocidad. Sin embargo, aunque el nombre cambió, esta vulnerabilidad sigue siendo la misma en general.

Las llamadas a la API consumen recursos como la red, la CPU, la memoria y el almacenamiento. La entrada del usuario y la lógica de negocio del punto final tienen un impacto significativo en la cantidad de recursos necesarios para satisfacer una solicitud. El tamaño o la cantidad de recursos que un cliente o usuario puede solicitar no necesariamente están restringidos por las API. Esto no solo tiene el potencial de afectar negativamente el rendimiento del servidor de la API y causar una denegación de servicio (DoS), sino que también hace que las API que admiten autenticación y recuperación de datos sean vulnerables a ataques de fuerza bruta y enumeración, incluyendo el descifrado de tokens y credenciales.

Según el Informe sobre el estado de la seguridad de las API del primer trimestre de 2023, solo el 54% de los encuestados prioriza el Top 10 de seguridad de API de OWASP como parte de sus programas de seguridad, a pesar de que el 62% de los intentos de ataque contra organizaciones utilizan al menos uno de esos métodos.

Las 10 principales amenazas de seguridad de API de OWASP.

¿Qué hace que la seguridad de las API sea diferente?

Las soluciones de seguridad tradicionales, incluyendo WAFs, pasarelas de API, herramientas de gestión de API y herramientas de gestión de identidad y acceso (IAM), no fueron diseñadas para prevenir ataques a las API. Esto se debe a que proteger las API presenta desafíos únicos:

Proliferación de API: un panorama en constante cambio

Con las API siendo constantemente desarrolladas y modificadas por los equipos de DevOps actuales, los tipos de amenazas a los que se enfrentan las API también han cambiado. En el pasado, los ataques basados en transacciones, como la inyección SQL y otros métodos de ejecución de código, eran las tácticas más frecuentes, pero los ataques actuales a menudo buscan explotar la aplicación subyacente y la lógica de negocio detrás de cada API. Con el 37% de las empresas actualizando sus API una vez a la semana, no es realista esperar que los equipos de desarrollo detecten todas las posibles vulnerabilidades de las API antes de implementar una API nueva o actualizada.

Ataques a API lentos y sigilosos: el poder del reconocimiento

Los ataques tradicionales, como las inyecciones SQL o el cross-site scripting, siguen ocurriendo, pero los ataques a las API basados en la lógica de la aplicación más exitosos de hoy en día no siguen ese tipo de mecanismos "de una sola vez" que aprovechan vulnerabilidades conocidas. Debido a que cada punto final de API es diferente y cada ataque rara vez proviene de una sola llamada a la API, cada ataque a la API es esencialmente un ataque de día cero, y las herramientas tradicionales no pueden detectarlos a través de sus enfoques basados en reglas y firmas. Los actores maliciosos se toman su tiempo con sus actividades de reconocimiento. Pueden tardar semanas o incluso meses en buscar datos, buscando fallos e induciendo comportamientos anormales para encontrar formas sutiles de interrumpir la cadena de suministro o extraer datos de una API.

Las deficiencias de las tácticas "shift-left" y la necesidad de protección en tiempo de ejecución

Históricamente, las organizaciones han dependido de las pruebas para detectar fallos de seguridad antes de implementar una aplicación. Sin embargo, la adopción generalizada de metodologías de desarrollo ágil y el problema de la proliferación de API han hecho que probar cada vulnerabilidad de API sea simplemente imposible. Si bien las pruebas estándar de preproducción pueden encontrar algunas lagunas en las mejores prácticas de seguridad de API, no descubrirán vulnerabilidades arraigadas en las lagunas de la lógica de negocio de las API, que son precisamente los fallos que los atacantes actuales intentarán explotar. Además, no es realista esperar que cualquier desarrollador escriba código completamente seguro en todo momento, por lo que la única forma de detectar y detener las amenazas a las API es contar con protección en tiempo de ejecución.

¿Qué mejores prácticas de seguridad de API se pueden utilizar para prevenir y mitigar los ataques actuales?

Proteger las API es un desafío. Las soluciones tradicionales no pueden manejar las complejidades del ecosistema de las API. Los atacantes lo saben, por eso se centran en ellas.

Las siguientes mejores prácticas pueden ayudarle a mejorar la postura de seguridad de sus API:

Desarrollo y pruebas

  • Promover la seguridad Diseño de API y desarrollo: Cree prácticas seguras de codificación y configuración para construir e integrar API. El Estándar de Verificación de Seguridad de Aplicaciones (ASVS) de OWASP es un buen recurso.
  • Reducir la exposición de datos sensibles: Evite enviar demasiados datos a las aplicaciones cliente y luego depender de ellas para filtrar los datos.
  • Realice revisiones de diseño: Asegúrese de incluir la lógica de negocio en las revisiones de diseño.
  • Documente sus API: La documentación ayuda a las personas a entender cómo se construye o integra una API. Necesita documentación especialmente para revisiones de diseño, pruebas de seguridad y protección.
  • Utilice un formato legible por máquina para la documentación: Utilice formatos legibles por máquina como Especificación OpenAPI (OAS). Luego puede usar las especificaciones para pruebas y protección básicas.
  • Mantenga un inventario preciso de las API: Proporcione a sus equipos de seguridad una visión realista de la superficie de ataque con un inventario actualizado. La mejor manera de capturar esta información es con herramientas automatizadas Descubrimiento de API que cubre REST, GraphQL y otros formatos de API.
  • Realice pruebas de seguridad: Utilice herramientas de prueba de seguridad para identificar problemas de configuración o vulnerabilidades en sus API. Los escáneres no son buenos para analizar la lógica de negocio, por lo que debe analizar sus API y realizar pruebas de fuzzing en tiempo de ejecución para identificar código explotable.

Producción

  • Active el registro y la monitorización: Los datos de telemetría le ayudan a detectar ataques, responder a incidentes y proteger las API en tiempo de ejecución. Utilice los datos como su línea de base para el comportamiento normal. De esa manera, cualquier evento atípico puede identificarse y resolverse rápidamente.
  • Intermedie sus API: Utilice herramientas de mediación como las pasarelas de API para mejorar la visibilidad y la seguridad. Amplíe las capacidades de estas plataformas con una solución de seguridad de API que proporcione un contexto más profundo sobre las API.
  • Identifique la desviación de la API: Asegúrese de tener un plan para determinar cuándo ha cambiado una API. De nuevo, las plataformas automatizadas que pueden comparar la documentación con el comportamiento en tiempo de ejecución de sus API ayudarán a identificar estas brechas. Luego, actualice su documentación en consecuencia.
  • Utilice los controles de seguridad de red adecuados: Algunos controles de red pueden ayudar con la seguridad de las API. Por ejemplo, cifre los datos que envían las API. También puede utilizar la limitación dinámica de velocidad y las listas de permitidos y denegados de direcciones IP (suponiendo que el número de usuarios de la API sea pequeño).
  • Autenticar y autorizar continuamente: Externalice los controles de acceso y los almacenes de identidad. Incluya pasarelas de API, almacenes de identidad, IAM, gestión de claves, infraestructura de clave pública y gestión de secretos en este paso. Evite usar claves de API para la autenticación.
  • Implemente protección en tiempo de ejecución: Asegúrese de que su protección en tiempo de ejecución pueda identificar problemas de configuración en la infraestructura de la API. También debería detectar anomalías de comportamiento como relleno de credenciales, ataques de fuerza bruta o intentos de scraping.

¿Qué métodos y herramientas se pueden utilizar para proteger las API?

La mejor protección para las API es una plataforma dedicada construida desde cero pensando en la seguridad de las API. La plataforma de seguridad de API adecuada debería automáticamente:

  • Descubra todas las API nuevas y modificadas, así como cualquier dato sensible que expongan.
  • Detecte y detenga ataques en las API durante la fase de reconocimiento.
  • Elimine vulnerabilidades en la fase de construcción siempre que sea posible, proporcionando información procesable a sus equipos de desarrollo.

Protección a lo largo de todo el ciclo de vida de la API

Seguridad de API a lo largo de todo el ciclo de vida de la API.

Una solución completa de seguridad de API debería ser capaz de recopilar, almacenar y analizar cientos de atributos de millones de usuarios y llamadas a API y, lo que es más importante, aprovechar la inteligencia artificial (IA) y el aprendizaje automático (ML) para correlacionarlos a lo largo del tiempo. Obtener esta amplitud de contexto requerirá big data a escala de la nube, ya que los enfoques basados en servidores o máquinas virtuales no tendrán un conjunto de datos lo suficientemente amplio a lo largo del tiempo para identificar los sofisticados ataques de API lentos y de bajo perfil de hoy en día. Solo con este tipo de inteligencia adaptativa y contexto profundo tendrá lo que necesita para proteger todas sus API.

Para obtener más información sobre cómo Salt puede ayudar a defender su organización de los riesgos de las API, puede contactar con un representante o programar una demostración personalizada.

¿Listo para vernos en acción?

Programe una demostración hoy para conocer formas de protegerse del vector de amenaza de las API.