Ofrecer una API a los clientes aumenta sus ingresos, pero también amplía su superficie de ataque. Las empresas pueden ofrecer una API que se puede integrar en aplicaciones de terceros para facilitar el desarrollo. Por ejemplo, incorporar redes sociales en una aplicación permite a los clientes discutir un producto sin agregar grandes gastos generales a su equipo de desarrollo. La empresa de redes sociales gana tráfico y visibilidad, y el cliente gana facilidad de desarrollo al tiempo que agrega funciones a su aplicación.
Aunque una API es buena para el marketing y los ingresos, agregar API y puntos finales amplía su superficie de ataque. Tener una API es un riesgo adicional que se puede gestionar, pero todos los puntos finales deben monitorearse y protegerse estrictamente. La mayoría de los administradores están de acuerdo en que las API deben ser monitoreadas, pero un entorno empresarial acelerado con numerosas actualizaciones e implementaciones podría perder el rastro de las API y, sin saberlo, agregar un riesgo de ciberseguridad llamado "API zombi".
Una API zombie es (en términos básicos) una infraestructura olvidada y pasada por alto que permanece disponible para su uso, pero las organizaciones desconocen su existencia. Las API Zombie se pueden crear en entornos pequeños o grandes, pero a menudo se crean en entornos donde se crean recursos de TI sin procedimientos estrictos de aprovisionamiento y documentación. El control de cambios ayuda a evitar situaciones de API zombie, pero también pueden ocurrir implementaciones o configuraciones de emergencia realizadas para corregir un error crítico específico.
En un entorno automatizado, los recursos de la nube suelen implementarse junto con el código de la aplicación. El beneficio es que los desarrolladores y el personal de operaciones ya no necesitan acordarse de implementar hardware y configurarlo manualmente. La automatización en la implementación de software reduce los incidentes basados en configuraciones incorrectas o evita cualquier problema en el que los desarrolladores se olviden de incluir solicitudes para aprovisionar recursos para respaldar sus aplicaciones.
En algunos entornos, los desarrolladores tienen acceso a sus propios servidores de prueba. Es posible que se pueda acceder a estos servidores en la Internet pública para que los desarrolladores puedan probar código nuevo. Es posible que un servidor de prueba API esté disponible para el público en Internet y los desarrolladores podrían pensar que no se detectará sin publicarlo.
Las API Zombie se pueden crear de numerosas maneras con sus propios casos extremos, incluso con los procedimientos de control de cambios más estrictos. Ya sea que se produzcan por errores o desvíos, las API zombies son una forma de
Al igual que las numerosas formas en que se puede crear una API zombie en función de la situación, lo mismo puede decirse de encontrar una API zombie. Los piratas informáticos podrían encontrar un punto final mediante ingeniería inversa del código, revisando repositorios de código abierto o mediante un concepto llamado "fuzzing". Fuzzing es un tipo de descubrimiento en el que se escriben scripts para realizar solicitudes contra nombres de puntos finales de API comunes. Por ejemplo, es común que un punto final de API utilizado para la autenticación tenga un punto final llamado "/login" o "/authenticate" o algo similar. Las solicitudes se realizan a diferentes nombres de puntos finales comunes en su infraestructura para descubrir puntos finales.
El descubrimiento desde repositorios de código abierto es común. Los repositorios de código abierto también son vulnerables a la divulgación de secretos, lo que significa que los desarrolladores pueden olvidarse de eliminar las referencias a claves privadas, credenciales de autenticación y otros datos privados. Las referencias a los puntos finales de API también están disponibles para su descubrimiento y se investigarán en busca de vulnerabilidades. Si su organización desconoce los puntos finales a los que se hace referencia en el código, entonces se podrían probar sin ninguna mitigación o limitación de velocidad.
Una API zombie no siempre es vulnerable a la explotación de errores. Por ejemplo, explotar las vulnerabilidades de inyección SQL podría provocar la divulgación de información confidencial, pero algunos puntos finales están codificados adecuadamente para ser resistentes a las amenazas. En una situación de API zombie, la API puede funcionar normalmente, pero se puede utilizar para recopilar datos sin ninguna limitación. Es posible que el punto final tenga un error de lógica empresarial que podría explotarse, pero sin supervisión, cualquier actividad sospechosa pasaría desapercibida.
Un buen ejemplo de una API que funciona normalmente pero que se utiliza para enumerar datos silenciosamente es la
Después de que un investigador de seguridad detectó la API zombie, JustDial afirmó haber solucionado el incidente, pero el mismo problema se detectó nuevamente en 2020. No está claro si algún tercero además del investigador de seguridad, pero debido a que el punto final estaba abierto a la Internet pública con Sin supervisión, JustDial no puede evaluar el alcance de la filtración de datos.
Otro ejemplo es el de una de las grandes empresas tecnológicas de San Francisco conocida por tener algunos de los mejores desarrolladores del mercado: Facebook. Facebook ha tenido varios casos de API zombies. En 2016, los desarrolladores implementaron un subdominio (mbasic.beta.facebook.com) para probar su funcionalidad de restablecimiento de contraseña. La versión de producción de la API tenía limitaciones de velocidad, por lo que los atacantes no podían forzar el código de acceso de seis dígitos enviado a los usuarios para restablecer sus contraseñas. La versión beta no tenía esta limitación, por lo que se podía forzar un código de acceso de seis dígitos en cuestión de segundos, limitado únicamente por una conexión a Internet, ancho de banda y la velocidad de procesamiento de backend de los puntos finales API.
En 2018, Facebook sufrió otro
En 2022 se produjo una empresa más pequeña, pero una filtración de datos significativa debido a una API zombi, con un punto final de Travis CI. Travis CI es un proveedor de automatización que se utiliza para implementar infraestructura y código. Uno de los puntos finales API de Travis CI no requería autenticación y permitía solicitudes para obtener eventos de registro de clientes. Para empeorar las cosas, los registros se almacenaban en texto sin formato, por lo que los datos de registro del usuario, incluidas las claves de acceso, podían recuperarse sin ninguna limitación. Cuando se informó del problema, Travis CI estimó que se habían robado 770 millones de registros de usuarios, incluidos tokens de acceso, claves y credenciales de la nube.
Idealmente, los desarrolladores de software documentan los cambios en la infraestructura para que el control de cambios incluya nuevos puntos finales API. Luego, el personal de operaciones puede agregar puntos finales a los agentes de monitoreo, y estos agentes recopilan datos para que los monitores de análisis y ciberseguridad puedan informar a los administradores cuando se detecta actividad sospechosa. Una API zombie ocurre cuando los puntos finales no están documentados, por lo que los agentes de monitoreo no los conocen. Sin supervisión, cualquier solicitud se puede enviar a los servidores sin ningún análisis ni alertas del administrador.
Para lidiar con posibles API zombis, los administradores suelen instalar agentes en la red para detectar el tráfico. Los agentes recopilan datos de tráfico y detectan conexiones abiertas en servidores y otra infraestructura de red. El problema con esta estrategia es que las API zombies a menudo permanecen inactivas sin tráfico ni solicitudes hasta que son descubiertas. Pueden ser descubiertos por desarrolladores, operaciones o un tercero en Internet. Sólo después de que un tercero encuentre el punto final se registrará el tráfico, pero eso no significa que las solicitudes activen alertas. Una API zombie permitirá solicitudes estándar sin ningún tipo de "pirateo" o consultas con formato incorrecto. Es lo que hace que las API zombis sean tan peligrosas para la divulgación de datos.
En lugar de depender de agentes para detectar API zombis de forma reactiva, una mejor solución es trabajar con inteligencia artificial y escaneos de su código. Esta estrategia tiene dos fases: escanear el código de su repositorio en busca de referencias a API internas y usar registros de eventos para determinar si la API recibe alguna solicitud.
El primer paso es escanear el código en busca de referencias a las API. Estas API pueden ser externas o internas, pero desea centrarse en las API internas, ya que esta infraestructura afecta sus propios datos. Las referencias podrían estar en numerosos repositorios, tanto activos como obsoletos. Es posible que ni siquiera sepas que las referencias están en tu código, pero al escanearlo las descubrirás para poder enviar una lista a la inteligencia artificial (IA).
El siguiente es un modelo de lenguaje grande (LLM) que se utiliza para ingerir y analizar registros de eventos. Los registros de eventos podrían ser potencialmente gigabytes o terabytes de datos línea por línea. Los registros de eventos son fundamentales para la ciberseguridad y el monitoreo del uso en la infraestructura, por lo que deben configurarse para servidores que alojan API. Si se hace referencia a un punto final de API en el código pero tiene pocos o ningún evento de tráfico, entonces es posible que tenga una API zombie. Se están utilizando y monitoreando API con referencias y numerosos registros de eventos para que no se consideren una API zombie.
El uso de LLM para procesar análisis en cada referencia de punto final de API lleva tiempo, pero los resultados podrían sorprender a los administradores que no conocen las API activas en su entorno. Como ejemplo, un
¡La respuesta es sí!" Las API Zombie podrían dejar los datos de sus clientes, datos internos u otra información crítica abiertos a la divulgación. En un entorno de cumplimiento, esta supervisión podría costar millones en multas. Los litigios, los daños a la marca, el impacto en los ingresos y varias otras consecuencias negativas están asociados con una infraestructura no monitoreada que conduce a una filtración de datos.
Tener una mejor visibilidad del entorno de una organización es fundamental para la ciberseguridad y una respuesta más rápida a incidentes. A medida que más organizaciones implementan infraestructura en la nube, es más importante que nunca asegurarse de no tener cabos sueltos, incluidas las API zombis. Documentar su infraestructura es un excelente primer paso, pero es posible que algunas API pasen desapercibidas. Escanear su código continuamente ayuda a identificar las API zombies, que luego se pueden desactivar o agregar a los agentes de monitoreo. Una mejor visibilidad de su infraestructura reduce los riesgos de exponer datos confidenciales y reduce su superficie de ataque.