La validación de entrada es una medida de seguridad fundamental que ayuda a evitar ataques de API comunes, como la inyección SQL. Al validar y desinfectar los datos recibidos de los usuarios y otras API, puede evitar que las entradas maliciosas pongan en peligro su aplicación, proteger los datos confidenciales y mantener la integridad de sus API.
Esta lista de comprobación de seguridad de API va más allá de una simple recopilación de prácticas recomendadas de seguridad de API y se basa en el ciclo de vida de las API. Comienza con la planificación, continúa con el desarrollo y las pruebas, y concluye con el funcionamiento y la protección. Básicamente, es una guía para crear un proceso de gestión seguro del ciclo de vida del desarrollo de software (SDLC, del inglés "secure software development lifecycle") para sus API.
A medida que las organizaciones se digitalizan y centran cada vez más en la nube, sus interfaces de programación de aplicaciones o API (del inglés "application programming interfaces") crecen en alcance y escala, lo que las hace más valiosas. En la actualidad, las API:
- Son la base de las aplicaciones y los servicios que se utilizan para prestar servicios a los clientes y partners, lo que incluye las últimas innovaciones de IA.
- Están integradas en los entornos de nube, desde los servicios que utilizan los desarrolladores hasta las cargas de trabajo que migran los ingenieros.
- Son fuentes de ingresos en sí mismas, ya que ayudan a ampliar el negocio y crear un ecosistema de desarrolladores.
Sin embargo, si su caso es como el del 84 % de los profesionales de TI y seguridad que han experimentado incidentes de seguridad de API, también habrá experimentado de primera mano que las API son un riesgo cada vez mayor. Las API expuestas o con errores de configuración prevalecen, están desprotegidas y son fáciles de vulnerar. Además, las API contienen instrucciones sobre cómo acceder a ellas y obtener los datos que contienen. Este es el sueño de un hacker. No existe la "seguridad por oscuridad". Además, las API casi siempre reúnen grupos dispares en la organización. Es posible que estos grupos no puedan coordinar fácilmente la seguridad, incluso si así lo desean. El número de API simplemente disponibles "en el mundo real" complica aún más la seguridad. A menudo, muchas organizaciones ni siquiera saben cuántas API tienen y no pueden gestionarlas todas. Estas API inactivas, o zombis, son vectores de ataque clave.
Hay mucho en juego con la seguridad de API. Los ataques a las API pueden poner en peligro los ingresos, la resiliencia y el cumplimiento normativo de una empresa. La mayoría de las organizaciones aún no cuentan con los controles y las capacidades adecuados para evitar los ataques a las API. Es cierto que muchas empresas tienen herramientas de API en su pila actual, lo que incluye puertas de enlace de API y firewalls de aplicaciones web. Sin embargo, aunque estas herramientas pueden ofrecer cierta protección, no se han diseñado para proporcionar el grado de visibilidad, seguridad en tiempo real y pruebas continuas que hacen falta para defenderse de los ataques a API modernos.
Por estos motivos, hemos desarrollado esta lista de comprobación de seguridad de API como un enfoque más riguroso y metódico para proteger las API. En cada etapa del ciclo de vida, cuatro controles recomendados permiten una estrategia de seguridad de API sólida. Las etapas de este proceso seguro de gestión del SDLC se representan en el siguiente gráfico:
Planificación |
|
Desarrollo |
|
Pruebas |
|
Funcionamiento |
|
Protección |
|
Planificación
La seguridad de API comienza mucho antes de que alguien empiece a escribir código. En la etapa de planificación, es fundamental considerar cuestiones relacionadas con la gobernanza como los roles, las responsabilidades y las políticas. La planificación también es el mejor momento para determinar las métricas de seguridad, junto con los procesos de gestión del ciclo de vida.
Lista de comprobación de seguridad de planificación de API:
- Gobernanza, funciones y responsabilidades. ¿Ha definido claramente las funciones y las responsabilidades para proteger su entorno de API? Esto incluye tanto las responsabilidades de nivel de ejecución para desarrolladores e ingenieros de seguridad, como las responsabilidades de supervisión de la gestión que se ocupan de las decisiones de riesgo y la supervisión de políticas.
- Políticas, estándares y especificaciones. ¿Ha desarrollado una biblioteca de políticas, estándares y especificaciones de API que describa las expectativas mínimas necesarias para el diseño, el desarrollo, las pruebas y las operaciones seguras de sus API?
- Métricas de seguridad. ¿Ha configurado una serie definida de métricas de riesgo de seguridad de API para poder medir y gestionar los riesgos relacionados con las API? Las partes interesadas pueden utilizar estas métricas de riesgo de API como un bucle de retroalimentación para mejorar continuamente la gestión de riesgos de seguridad de API.
- Gestión del ciclo de vida. ¿Su organización gestiona las API como activos de software con propiedad definida a lo largo de su ciclo de vida útil? Prestar especial atención a la implementación inicial, la gestión de cambios continua y la retirada de activos es una práctica recomendada.
Desarrollo
En la etapa de desarrollo, las políticas establecidas en la etapa de planificación cobran vida. Los desarrolladores son responsables de crear API seguras y, para ello, trabajan en colaboración con otros grupos de partes interesadas.
Lista de comprobación de seguridad de desarrollo de API:
- Formación. ¿Ha formado a sus desarrolladores de API y a otro personal con responsabilidades de gestión de API (por ejemplo, puerta de enlace, operaciones de seguridad) en aspectos de seguridad de API relevantes para sus funciones?
- Entorno del desarrollador (por ejemplo, IDE, repositorios). ¿Su código fuente de API se desarrolla y gestiona en repositorios de código fuente gestionados y aprobados? ¿Los desarrolladores utilizan entornos de desarrollo gestionados o aprobados?
- Documentación. ¿Están sus API documentadas y evaluadas con precisión para garantizar el cumplimiento de las especificaciones y los estándares? ¿Se actualiza su documentación de API cuando cambian los esquemas de API? ¿Está disponible la documentación para su revisión y comprobación/verificación independientes?
- Seguimiento y resolución de errores. ¿Se priorizan y se hace un seguimiento de los defectos o vulnerabilidades de código relacionados con la seguridad para su resolución?
Pruebas
Una vez desarrolladas las API, deben someterse a un ciclo completo de pruebas. De forma similar a la lista de comprobación de pruebas de seguridad de aplicaciones, a continuación se describen los controles de seguridad que se deben implementar en el programa de pruebas de API.
Lista de comprobación de seguridad de pruebas de API:
- Pruebas de código fuente. ¿Se hacen pruebas de seguridad de aplicaciones estáticas (SAST) y pruebas de seguridad de aplicaciones dinámicas (DAST) en el código fuente de su API antes de enviarlas a producción?
- Pruebas de penetración. ¿Se hacen pruebas de penetración a los terminales de API antes de la migración a producción en condiciones que replican las variables de gestión, redes y políticas de API del entorno de producción, siempre que sea posible?
- Revisión del cumplimiento. ¿Se evalúa el cumplimiento de sus API con los estándares y especificaciones antes de la migración a producción (por ejemplo, el cumplimiento del RGPD o PCI)? Este proceso debe incluir el cumplimiento de la ubicación y configuración de la arquitectura o la red (por ejemplo, protección WAF, ubicación de red).
- Gestión de cambios y versiones. ¿Implementa o cambia las API de acuerdo con un software bien definido o una política de cambios de TI? Lo ideal es que los cambios se reflejen con precisión en el inventario de activos de software.
Medidas de seguridad de API en las etapas de desarrollo y pruebas
Autenticación y control de acceso: implemente mecanismos de autenticación sólidos, como OAuth y claves de API, para proteger los terminales de API durante el desarrollo y las pruebas. Asegúrese de que se aplican políticas de control de acceso para evitar el acceso no autorizado a datos confidenciales.
Limitación de velocidad: durante la fase de pruebas, implemente la limitación de velocidad para proteger las API contra el abuso y los posibles ataques DDoS. La limitación de velocidad ayuda a evitar el exceso de solicitudes que pueden saturar el sistema y provocar un ataque de denegación de servicio (DoS).
Inyección y validación SQL: haga pruebas relacionadas con los ataques de API comunes, como la inyección SQL. Implemente una validación de entrada estricta para evitar que la entrada maliciosa ponga en peligro sus API. Asegúrese de que los datos que se transfieren a través de las API se sanean y validan para protegerlos contra los ataques de inyección.
Funcionamiento
La seguridad de API debe permanecer en vigor cuando las API pasen a producción. De hecho, aquí es donde las API tienden a perderse y convertirse en puntos de vulnerabilidad.
Lista de comprobación de seguridad de funcionamiento de API:
- Inventario de API. ¿Mantiene un inventario preciso y actualizado de todos los terminales de API, incluida la documentación de API?
- Inventario de datos confidenciales. ¿Mantiene su organización un inventario o una asignación actualizados y precisos de los datos confidenciales que gestionan los terminales de API? Y lo que es más importante, ¿sabe qué usuarios acceden a datos confidenciales? La gestión del acceso es un componente fundamental tanto para la seguridad como para la conformidad.
- Identificación de vulnerabilidades. ¿Identifica vulnerabilidades y áreas de exposición a riesgos de API en su entorno de producción?
- Gestión de la configuración. ¿Identifica las vulnerabilidades y la exposición de los componentes de red, puerta de enlace y firewall que actúan como agentes y protegen el tráfico de API?
Protección
Las protecciones de API deben permanecer en vigor durante todo el ciclo de vida de las API. Esta carga de trabajo abarca la recopilación de registros y tráfico, la detección de amenazas, las alertas y mucho más.
Lista de comprobación de protección de API:
- Registro o recopilación de tráfico. ¿Registra la actividad de API y almacena los datos para respaldar la inspección operativa y de seguridad?
- Detección de amenazas y sistemas de alerta. ¿Analiza la actividad de API para detectar actividades anómalas? Su proceso debe incluir alertas/indicadores asociados de eventos anómalos o de uso indebido para los equipos operativos y de seguridad correspondientes.
- Movimiento de datos confidenciales. ¿Supervisa el movimiento de datos confidenciales contenidos en el tráfico de API? Este proceso debe incluir el análisis de flujos de datos para detectar usos no autorizados o anómalos, con alertas/indicadores del movimiento de datos confidenciales a los equipos operativos y de seguridad correspondientes.
- Bloqueo y corrección. ¿Bloquea y corrige el movimiento no autorizado de datos confidenciales a través de API u otros usos indebidos sospechosos de las API?
Protección de las API frente a las amenazas de ciberseguridad
El panorama de amenazas actual exige una solución de seguridad de API completa que proporcione detección de API, gestión de la situación, protección en tiempo de ejecución y pruebas de seguridad de API.
1. Detección de API. Es habitual tener API que nadie conoce. La mayoría de las organizaciones tienen poca o ninguna visibilidad sobre un gran porcentaje de su tráfico de API, a menudo porque asumen que todas sus API se enrutan a través de una puerta de enlace de API. Sin embargo, este no es el caso. Sin un inventario completo y preciso, su empresa está expuesta a toda una serie de riesgos. Capacidades principales necesarias:
- Localización y realización de un inventario de todas sus API, independientemente de cuál sea su configuración o tipo.
- Detección de las API inactivas, heredadas y zombis.
- Identificación de los dominios ocultos olvidados, descuidados o desconocidos.
- Eliminación de los puntos ciegos y descubrimiento de posibles rutas de ataque.
2. Gestión de la estrategia de API. Con un inventario completo de las API, es fundamental conocer qué tipos de datos se transmiten a través de las API y cómo afecta esto a su capacidad para cumplir los requisitos normativos. La gestión de la estrategia de API proporciona una visión completa del tráfico, el código y las configuraciones para evaluar el nivel de seguridad de sus API. Capacidades principales necesarias:
- Análisis automático de la infraestructura para detectar errores de configuración y riesgos ocultos.
- Creación de flujos de trabajo personalizados para informar acerca de las vulnerabilidades a las principales partes interesadas.
- Identificación de las API y los usuarios internos que pueden acceder a los datos confidenciales.
- Clasificación de los problemas detectados en función de la gravedad para priorizar la corrección de los más críticos.
3. Seguridad de API en tiempo de ejecución. Sin duda, ya conoce el concepto de "asumir que se va a producir una filtración". Las filtraciones y los ataques específicos de las API están alcanzando el mismo grado de inevitabilidad. Para todas las API activas en fase de producción, debe ser capaz de detectar y bloquear los ataques en tiempo real. Capacidades principales necesarias:
- Supervisión de la manipulación y filtración de datos, las infracciones de políticas, el comportamiento sospechoso y los ataques a las API.
- Análisis del tráfico de las API sin necesidad de realizar cambios adicionales en la red ni implementar agentes difíciles de instalar.
- Integración de los flujos de trabajo existentes (incidencias, gestión de información y eventos de seguridad [SIEM], etc.) para alertar a los equipos de seguridad y operaciones.
- Prevención de los ataques y del uso indebido de los datos en tiempo real con correcciones parcial o totalmente automatizadas.
4. Pruebas de seguridad de API. Los equipos de desarrollo de las API se ven sometidos a la presión de trabajar con la mayor rapidez posible. La velocidad es esencial para todas las aplicaciones desarrolladas, lo que facilita que se produzca una vulnerabilidad o un defecto de diseño y que, posteriormente, no se detecte. Probar las API durante el desarrollo antes de que se envíen a la fase de producción reduce en gran medida tanto el riesgo como el coste de corregir una API vulnerable. Capacidades principales necesarias:
- Ejecución de una amplia variedad de pruebas automatizadas que simulan tráfico malicioso.
- Detección de las vulnerabilidades antes de poner las API en funcionamiento, lo que reduce el riesgo de que un ataque logre su objetivo.
- Análisis de las especificaciones de sus API con respecto a las políticas y normativas de control establecidas.
- Realización de pruebas de seguridad bajo demanda dirigidas a las API o como parte de un proceso de integración e implementación continuas (CI/CD).
Este enfoque integral funciona como un complemento de las capacidades de protección de API existentes de una empresa, entre las que se incluyen:
- Detección de amenazas y prevención de DDoS: utilice herramientas de ciberseguridad para detectar posibles ataques de API en tiempo real. Implemente estrategias para evitar los ataques DDoS, como la limitación de velocidad y el balanceo de carga, para garantizar que los terminales de las API sigan estando disponibles y protegidos.
- Bloqueo y corrección: implemente medidas automatizadas de bloqueo y corrección para protegerse contra intentos de acceso no autorizados y la exposición de datos confidenciales. Utilice una combinación de políticas de WAF, autenticación y control de acceso para aplicar seguridad en el nivel de puerta de enlace de API.
Estos son los controles sugeridos. Hay mucho que asimilar y, en realidad, no todas las organizaciones cubrirán de forma inadecuada todos estos aspectos. Sin embargo, la lista de comprobación es una forma valiosa de establecer las prácticas recomendadas e identificar áreas de mejora en la seguridad de API. Proporciona una base útil para una operación de seguridad de API bien ejecutada.
Preguntas frecuentes
La limitación de velocidad es crucial para evitar ataques DDoS y proteger los terminales de API para que no se saturen por el exceso de solicitudes. Al limitar el número de solicitudes que un usuario o cliente puede enviar en un plazo de tiempo determinado, la limitación de velocidad ayuda a garantizar que las API permanecen disponibles y responden, incluso con cargas pesadas.
OAuth es un protocolo de autenticación que se utiliza ampliamente y que proporciona acceso seguro a las API al permitir a los usuarios otorgar acceso a sus datos sin compartir sus credenciales. La implementación de OAuth ayuda a garantizar que solo los usuarios y las aplicaciones autorizados puedan acceder a sus terminales de API, lo que reduce el riesgo de acceso no autorizado y filtraciones de datos.
Un firewall de aplicaciones web (WAF) proporciona una capa adicional de protección para sus API mediante el filtrado y la supervisión de las solicitudes HTTP. Un WAF puede bloquear el tráfico malicioso, proteger contra amenazas comunes como la inyección SQL y los scripts entre sitios (XSS), y aplicar políticas de control de acceso en el nivel de puerta de enlace de API, lo que ayuda a proteger sus API de diversas amenazas de ciberseguridad.
Por qué los clientes eligen Akamai
Akamai es la empresa de ciberseguridad y cloud computing que potencia y protege los negocios online. Nuestras soluciones de seguridad líderes en el mercado, nuestra inteligencia ante amenazas consolidada y nuestro equipo de operaciones globales proporcionan una defensa en profundidad para proteger los datos y las aplicaciones empresariales. Las soluciones integrales de cloud computing de Akamai garantizan el rendimiento y una buena relación calidad-precio en la plataforma más distribuida del mundo. Las grandes empresas confían en Akamai por su fiabilidad, escalabilidad y experiencia inigualables en el sector, idóneas para crecer con seguridad.