En la era de la transformación digital, muchas organizaciones dependen de las interfaces de programación de aplicaciones (API), que permiten que diferentes aplicaciones se comuniquen entre sí. Las API permiten a los desarrolladores integrar rápidamente nuevos servicios en sus aplicaciones, lo que les permite crear nuevas ofertas para los clientes. Las llamadas a las API representan el 54% de las solicitudes totales de Cloudflare, lo que confirma un hallazgo de 2019 de que más del 80% de todo el tráfico web es comunicación a través de API.
El Proyecto de Seguridad de Aplicaciones Web Abiertas (OWASP) se ha convertido en el estándar para ayudar a los desarrolladores y equipos de seguridad a comprender los tipos de riesgos asociados con sus aplicaciones web. Si unao es seg API nura, los actores cibernéticos maliciosos pueden usarla para acceder fácilmente a datos sensibles. En 2019, el grupo OWASP determinó que, con la creciente adopción de las API, era necesario crear una lista específica de las 10 principales vulnerabilidades de las API. En 2023, se lanzó una nueva edición del Top 10 de OWASP API. Para garantizar que las empresas no se vean afectadas por la pesadilla que representa una brecha de seguridad de la API, vale la pena examinar la lista actualizada del Top 10 de OWASP API.
OWASP
API1:2023 Autorización de Nivel de Objeto Rota
Esta es la vulnerabilidad de API más común y dañina porque el componente del servidor a menudo no sigue exhaustivamente el estado del cliente. En cambio, se basa en parámetros como los ID de objeto enviados por el cliente para decidir a qué objetos acceder.
Los atacantes pueden explotar los puntos finales de API que son vulnerables a la autorización de nivel de objeto rota (BOLA) manipulando la identificación (ID) de un objeto que se envía dentro de la solicitud para suplantar a otros usuarios y obtener acceso no autorizado a los datos.
Impacto
La explotación de BOLA permite a los actores cibernéticos maliciosos obtener acceso no autorizado a información confidencial, como datos financieros y otros datos personales sensibles. También puede llevar a una pérdida de integridad si los atacantes realizan acciones para las que no están autorizados (por ejemplo, eliminar datos, cambiar configuraciones).
Ejemplo
El atacante se autentica como el usuario A y recupera y/o cambia los datos del usuario B.
Causas Raíz y Prevención
- Existen varias causas raíz que pueden ser responsables de causar la vulnerabilidad, incluyendo:
- Falta de aplicación de controles de acceso a nivel de objeto.
- Falta de validación o saneamiento adecuado de la entrada.
- Técnicas de prevención posibles incluyen:
- Definir políticas de acceso a datos e implementar controles asociados.
- Aplicar controles de acceso a datos en la capa lógica de la aplicación.
- Implementar pruebas automatizadas para detectar fallas de autorización a nivel de objeto.
API2:2023 Autenticación Rota
El mecanismo de autenticación puede ser un objetivo fácil para los atacantes en casos de falta de madurez en la gestión de contraseñas. Una autenticación débil o deficiente crea vulnerabilidades debido a la falta de controles de seguridad o controles mal implementados.
Impacto
Esta vulnerabilidad permite a los atacantes tomar el control de las cuentas de usuario, lo que puede resultar en el robo de datos y en transacciones no autorizadas. Cuando los atacantes acceden a muchas cuentas en un corto período de tiempo (mediante ataques de relleno de credenciales o fuerza bruta), puede conducir a una exposición masiva de datos que afecte a millones de usuarios. Esto puede resultar en daños a la reputación de las organizaciones o consecuencias legales.
Ejemplos
Los atacantes pueden explotar credenciales robadas o filtradas de otros servicios para intentar obtener acceso no autorizado a una API. También pueden acceder a la base de datos de la API en casos de almacenamiento o manejo inseguro de contraseñas.
Causas Raíz y Prevención
Las posibles causas raíz de la vulnerabilidad pueden incluir:
- Requisitos de contraseñas débiles.
- Uso de identificaciones/contraseñas comúnmente victimizados por ataques de fuerza bruta (por ejemplo, relleno de credenciales).
Falta de bloqueo por tasa limitante de CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) .
Información de autenticación incluida en Localizadores Uniformes de Recursos (URL) (por ejemplo, token, contraseña). - Cambio de contraseñas sin verificación de identidad.
- No validación de la autenticidad del token.
- Almacenamiento inseguro de contraseñas.
- Una táctica de prevención recomendada es definir políticas y estándares de autenticación, que pueden basarse en controles existentes como el control AC-16 de la publicación especial (SP) 800-535 del Instituto Nacional de Estándares y Tecnología (NIST), el control AC-3 de SP 800-53 del NIST, o el control ISO 27001:2022 Anexo A Control 5.17 - Información de Autenticación.6 Referirse a dichos controles ayuda a las empresas a formar políticas de autenticación y contraseñas efectivas.
API3:2023 Autorización de Nivel de Propiedad de Objeto Rota
Esta vulnerabilidad ocurre cuando un usuario sin permisos de acceso validados explota el punto final al leer y/o modificar el valor de objetos. La capacidad de actualizar elementos del objeto permite la asignación masiva, que es una falla de validación de entrada y autorización que permite a los atacantes manipular datos proporcionados por el cliente para realizar ataques avanzados. Puede producirse una exposición excesiva de datos si se revelan datos no esenciales.
Impacto
Los datos sensibles pueden ser revelados a partes no autorizadas, perdidos o manipulados para lograr una escalada de privilegios de acceso. Si un atacante explota esta vulnerabilidad, podría resultar en la pérdida permanente de información personal y causar importantes pérdidas financieras y distribución.
Ejemplos
Un ejemplo de esta vulnerabilidad es si un usuario puede cambiar un plan de suscripción de un plan básico a un plan empresarial con características más avanzadas al configurar "tipo de cuenta = empresa", o si la búsqueda del usuario devuelve una cantidad excesiva de información de identificación personal (PII) (por ejemplo, nombre, dirección, ID, correo electrónico).
Causas Raíz y Prevención
Algunas causas raíz comunes de API3:2023 incluyen:
- Falta de aplicación adecuada de la autorización en las propiedades del objeto.
- Mecanismos de autorización desactualizados o inseguros.
- Pruebas de seguridad inadecuadas o incompletas durante el ciclo de desarrollo.
- Para evitar que esta vulnerabilidad se haga realidad, las organizaciones pueden tomar varias medidas, incluyendo:
- Asegurarse de que el usuario solo pueda acceder a campos legítimos y permitidos.
- Devolver solo la cantidad mínima de datos requeridos para el caso de uso.
API4:2023 Consumo no Restringido de Recursos
Las solicitudes a la API consumen recursos, como ancho de banda de red, potencia informática, memoria y espacio de almacenamiento. El volumen de recursos requeridos para satisfacer una solicitud depende en gran medida de la entrada del usuario y de la lógica comercial del punto final. La falta de límites de recursos puede causar un control de tráfico inadecuado, lo que permite la recuperación masiva de datos y el riesgo de interrupción de las operaciones.
Impacto
El uso excesivo de los recursos de la API permite a un atacante enviar un gran volumen de solicitudes que pueden causar una denegación distribuida de servicio (DDoS), ralentizando la respuesta de los servicios de la API o incluso apagando completamente los servicios. La recolección de datos también es otro impacto posible de esta vulnerabilidad, ya que si la API es lenta o está fuera de servicio, los atacantes pueden descargar grandes cantidades de datos para robar información personal.
Ejemplos
Esta vulnerabilidad se puede observar en varios ejemplos, incluyendo:
- Una API que permite a los usuarios solicitar una lista de todos los productos disponibles en una base de datos sin limitar la cantidad de productos que se pueden solicitar en una sola consulta.
- Una API que permite a los usuarios cargar archivos, pero no restringe el tamaño o la cantidad de archivos que se pueden cargar.
Causas Raíz y Prevención
Existen varias causas raíz que pueden causar la vulnerabilidad, incluyendo:
- Controles de volumen faltantes o inadecuados.
- Tiempo de ejecución agotado que indica el número máximo de segundos permitidos para una solicitud.
- Límite máximo de memoria asignable alcanzado.
- Límite máximo de descriptores de archivo alcanzado.
- Límite máximo de tamaño de carga de archivo alcanzado.
- Registros excesivos se devuelven en una sola solicitud.
- Se deben implementar controles de tráfico para garantizar que el riesgo de la vulnerabilidad no se materialice. Controles como el control AC-20 de SP 800-53 del NIST o el control A.8.20 de ISO 27001:2022 - Seguridad de Red pueden utilizarse para establecer requisitos para asegurar y fortalecer dispositivos y sistemas conectados a la red especificando un porcentaje máximo para el ancho de banda de la red y el número máximo de solicitudes por una sola fuente.
API5:2023 Autorización de Nivel de Función Rota
Esto implica utilizar la funcionalidad de la API para modificar, crear, actualizar y/o eliminar los recursos de otro usuario.
Otras atribuciones incluyen:
A menudo implica reemplazar acciones pasivas (por ejemplo, GET) con acciones activas (por ejemplo, PUT, DELETE).
Puede utilizarse para escalar privilegios.
Impacto
Las funciones administrativas son objetivos clave para este tipo de vulnerabilidad, donde los atacantes realizan actividades maliciosas como crear, modificar o eliminar datos. Estos datos podrían usarse para asumir ilegalmente la identidad de otros usuarios y acceder a su información confidencial.
Ejemplos
Hay varios ejemplos que ilustran esta vulnerabilidad, como:
- Reemplazar GET con PUT.
- Modificar parámetros de URL (es decir, "rol=admin", "tipo-de-cuenta=empresa").
- Eliminar una factura.
- Reiniciar el saldo de una cuenta a cero dólares.
Causas Raíz y Prevención
Esta vulnerabilidad puede atribuirse a varias posibles causas, como:
- Falta de aplicación adecuada de la autorización a nivel de función u operación.
- Uso de mecanismos de control de acceso basados en roles (RBAC) inadecuados o incompletos.
- Pruebas de seguridad inadecuadas o incompletas durante el ciclo de desarrollo.
- Opciones para técnicas de prevención incluyen:
- Identificar funciones que expongan capacidades de alta sensibilidad y desarrollar políticas de acceso y reglas para limitar el acceso no autorizado.
- Implementar pruebas continuas de liberación para garantizar un comportamiento adecuado.
- API6:2023 Falsificación de Recursos del Lado del Servidor (SSRF) SSRF implica insertar una URL en una solicitud de API para hacer una solicitud a un servidor de terceros. Esta vulnerabilidad ocurre cuando la API no valida adecuadamente las entradas del usuario y construye una URL basada en entradas no confiables.
Impacto
Esta vulnerabilidad crea una vía para solicitudes maliciosas, acceso a datos u otras actividades fraudulentas, como escaneo de puertos, divulgación de información y eludir firewalls u otros mecanismos de seguridad. También introduce el potencial de filtraciones de datos si se recuperan datos sensibles. También pueden surgir problemas de seguridad adicionales si se lanzan ataques contra otros sistemas o servicios.
Ejemplo
Un ejemplo de esta vulnerabilidad sería si una entrada de URL del punto final se envía por un atacante y se descarga malware desde la URL maliciosa.
Causas Raíz y Prevención
Las posibles causas raíz de esta vulnerabilidad incluyen:
- Falta de validación adecuada de la entrada.
- Controles de acceso débiles o desactualizados.
- Falta de seguridad adecuada durante el desarrollo de las API.
- Pruebas de seguridad inadecuadas y falta de controles de seguridad adecuados, como el cifrado y la tokenización.
- Esta vulnerabilidad se puede evitar mediante la validación y el saneamiento de toda la información proporcionada por el usuario, incluidos los parámetros de URL. Las organizaciones también pueden garantizar que la comunicación solo esté permitida para recursos de confianza.
API7:2023 Configuración de Seguridad Incorrecta
Los atacantes utilizan bots para escanear, detectar y explotar la configuración incorrecta de sistemas sin parchear o archivos y directorios desprotegidos para obtener acceso no autorizado a un sistema.
Impacto
Esta vulnerabilidad puede resultar en la exposición de datos sensibles o crear el potencial de una compromiso completo del servidor.
Ejemplos
Por ejemplo, si el servidor de la base de datos está mal configurado y las credenciales de inicio de sesión predeterminadas no se han cambiado, un atacante podría acceder fácilmente a la base de datos y robar datos sensibles. Alternativamente, si la API no está configurada adecuadamente para utilizar un protocolo de comunicación seguro (por ejemplo, HTTPS), los atacantes podrían interceptar la comunicación y robar datos sensibles.
Causas Raíz y Prevención
Las posibles causas subyacentes de esta vulnerabilidad pueden incluir:
- Falta de endurecimiento de la seguridad.
- Permisos configurados incorrectamente.
- Parches de seguridad faltantes.
- Funciones innecesarias habilitadas.
- Falta de Seguridad en la Capa de Transporte (TLS).
- Política de Compartición de Recursos de Origen Cruzado (CORS) faltante o ineficaz.
- Para evitar esta vulnerabilidad, las organizaciones deben considerar:
- Implementar procedimientos de endurecimiento de la seguridad.
- Revisar periódicamente las configuraciones.
- Implementar pruebas de seguridad automatizadas y continuas.
API8:2023 Falta de Protección contra Amenazas Automatizadas
La explotación de esta vulnerabilidad a menudo implica que un atacante apunte a un flujo de trabajo comercial legítimo de la API con un uso excesivo automatizado. Los atacantes pueden identificar flujos comerciales sensibles y aprovechar el acceso automatizado a estos flujos para causar daño a la empresa.
Impacto
API8:2023 puede resultar en la pérdida de actividades comerciales críticas si se impide que un usuario legítimo compre un producto. La explotación de esta vulnerabilidad también puede permitir a un atacante propagar información errónea a clientes, partes interesadas o al público en general a través de los canales de comunicación empresariales.
Ejemplo
La compra masiva automatizada de boletos o bonificaciones de referencia de alto volumen son ejemplos de esta vulnerabilidad en acción. Los atacantes también pueden enviar promociones falsas a los suscriptores del correo electrónico o mensajes de texto de una empresa.
Causas Raíz y Prevención
Las causas raíz de esta vulnerabilidad pueden incluir:
- Falta de detección de bots.
- Ausencia de límites de tasa.
- Procedimientos de autenticación deficientemente implementados.
- Protocolos CAPTCHA inadecuados.
- Para evitar esta vulnerabilidad, las empresas deben ser proactivas en la identificación de flujos comerciales críticos, implementando mecanismos y controles de detección de tráfico fraudulento y organizando pruebas automatizadas de los mecanismos de control.
API9:2023 Administración Incorrecta de Inventario
Esta vulnerabilidad ocurre cuando hay acceso no autorizado a una API a través de una versión desactualizada y no utilizada de la API o a través de un tercero de confianza.
Impacto
API9:2023 puede resultar en robo de datos si los atacantes obtienen acceso a través de una versión de API más antigua y sin parches que está conectada a una base de datos.
Ejemplos
Esta vulnerabilidad puede manifestarse de varias maneras, como:
- La administración de inventario incorrecta puede llevar a la creación de puntos finales duplicados, lo que resulta en confusión y posibles vulnerabilidades de seguridad.
- Si la API carece de protocolos adecuados de administración de inventario, los puntos finales obsoletos aún pueden estar disponibles para su uso, lo que hace que la API sea vulnerable a ataques.
- Las APIs pueden utilizar recursos externos como bibliotecas, frameworks o bases de datos. Estos recursos pueden no ser rastreados o mantenidos adecuadamente y podrían estar desactualizados o potencialmente vulnerables.
Causas Raíz y Prevención
Las posibles causas subyacentes de esta vulnerabilidad pueden incluir:
- Una versión obsoleta de la API.
- Puntos finales sin parchear.
- Punto final con requisitos de seguridad débiles.
- Acceso a la API a través de un tercero.
- Medidas preventivas que las organizaciones pueden considerar incluyen:
Fortalecer la gestión de activos.
- Aplicar una política estricta para todas las API (en un gateway).
- Implementar reglas y procesos para la versión y retiro de APIs.
- Auditar periódicamente el acceso a API de terceros para garantizar protecciones adecuadas.
API10:2023 Consumo Inseguro de APIs
La exposición puede ocurrir a través del uso de APIs de terceros, que generalmente son de confianza pero pueden ser explotadas. Si se explotan, las terceras partes pueden ser utilizadas para atacar cualquier API que dependa de ellas.
Impacto
El consumo inseguro de APIs puede dar lugar a la violación o robo de datos, o a una toma de control de la cuenta que resulte en problemas de privacidad de datos, especialmente si la API se utiliza para transferir información sensible entre sistemas.
Ejemplo
Un atacante compromete una API de terceros, lo que hace que responda con una redirección a un sitio malicioso, después de lo cual el cliente sigue ciegamente la redirección sin validación.
Causas Raíz y Prevención
La vulnerabilidad puede estar presente debido a varias causas raíz, incluyendo:
- Validación insuficiente que conduce a una inyección de lenguaje estructurado (SQL) o scripting entre sitios (XSS).
- Manejo incorrecto de errores.
- Autenticación y autorización inadecuadas.
- Técnicas de prevención recomendadas incluyen:
- Evaluar los controles de seguridad de la API de terceros.
- Validar los datos devueltos por la API de terceros.
- Cifrar toda la comunicación de la API.
CONCLUSIÓN
La superficie de ataque está creciendo cada día. Al mismo tiempo, la mayoría del tráfico de Internet se realiza a través de comunicación de API. Por lo tanto, asegurar las APIs es fundamental para proteger los datos sensibles de los ciberataques.
Es importante comprender los 10 principales factores de riesgo de seguridad de API identificados por OWASP en 2023, suministrados con algunos ejemplos y causas raíz, además de posibles métodos de prevención y controles establecidos por NIST SP 800-53 e ISO 27001:2022 para sistemas de gestión de seguridad de la información (SGSI). La implementación de controles de seguridad sólidos y la evaluación periódica de las APIs en busca de vulnerabilidades minimiza el riesgo asociado con las APIs y ayuda a prevenir posibles violaciones de datos.
Los atacantes siguen manteniéndose al día buscando y identificando nuevas formas de explotar vulnerabilidades. Mantenerse actualizado con las últimas tendencias y regulaciones de seguridad es crucial para que las organizaciones aseguren la protección continua de datos y sistemas sensibles.
En resumen, las API desempeñan un papel fundamental en la transformación digital y la interconexión de aplicaciones. Sin embargo, su uso también presenta desafíos de seguridad significativos. El informe de OWASP API Top 10 de 2023 proporciona una guía valiosa para que desarrolladores y equipos de seguridad comprendan y mitiguen los riesgos asociados con las API.
Para garantizar la seguridad de las API, las organizaciones deben implementar buenas prácticas de desarrollo seguro, realizar pruebas exhaustivas de seguridad durante el ciclo de vida de desarrollo y aplicar controles adecuados para proteger el acceso y la integridad de los datos.
Además, es esencial estar al tanto de las últimas amenazas y técnicas utilizadas por los ciberdelincuentes para explotar las API, para que las organizaciones puedan adaptarse rápidamente y fortalecer sus defensas de seguridad.
En última instancia, asegurar las API es un esfuerzo continuo que requiere la colaboración entre los equipos de desarrollo, operaciones y seguridad de una organización. Al tomar medidas proactivas y mantenerse vigilantes, las empresas pueden proteger sus activos más valiosos y garantizar la confianza de sus clientes y socios.
Autor: Bassel Kablawi, CISM, CDPSE, COBIT Foundation, ITIL v3