Por qué el fuzzing no es suficiente como método de comprobación de los posibles problemas de seguridad de sus API
Akamai adquirió Noname Security en junio de 2024. Esta es una entrada de blog archivada que se publicó originalmente el jueves, 12 de julio de 2023.
Si su trabajo consiste en desarrollar o proteger API, es probable que haya observado de primera mano que someter a las API a pruebas para detectar brechas de seguridad garantiza una serie de ventajas tanto para la empresa como para sus clientes, entre las que se incluyen:
Conseguir que las API sigan funcionando de forma fiable, segura y según lo previsto en diferentes circunstancias.
Ayudar a identificar problemas de API, como formatos de datos incorrectos, datos que faltan o que son imprecisos, así como fallos en los procesos de autenticación o autorización.
Minimizar el tiempo de inactividad, reducir el riesgo de errores y mejorar la calidad general del sistema de software.
Realice pruebas de las API pronto y con frecuencia
Es importante tener en cuenta que probar correctamente sus API en desarrollo, en una fase inicial, de forma frecuente e integral, puede ayudar a evitar que su organización sea objeto de un ataque a las API, que haga que sus datos, clientes y capacidad para trabajar corran un riesgo importante.
Muchas organizaciones emplean un método llamado "fuzzing" para analizar la seguridad de las API.
En esta entrada del blog, dedicaremos unos instantes a analizar en qué consiste el fuzzing, las limitaciones que tiene y la importancia de contar con una estrategia y una solución diseñadas para detectar y solucionar las vulnerabilidades comunes de las API que los atacantes actuales suelen aprovechar.
También comentaremos algunos recursos útiles que le ayudarán a probar sus API en las fases iniciales y de forma frecuente.
¿Qué es el fuzzing?
Se trata de una técnica que se utiliza en las pruebas de software para identificar posibles vulnerabilidades o errores en un programa al introducir en él datos aleatorios o inesperados.
El objetivo del fuzzing es hacer que el programa se bloquee o se comporte de forma inesperada, lo que puede ser un indicador de un punto débil en el sistema de seguridad o de un error de programación. El uso de este método puede ayudar a identificar problemas que pueden pasar desapercibidos para los métodos de prueba tradicionales, como las pruebas unitarias o las pruebas manuales.
El fuzzing se puede realizar de forma manual o automática mediante herramientas especializadas, y se puede adaptar a aplicaciones o API específicas. Sus resultados pueden ofrecer información sobre la solidez y fiabilidad de un programa de software, y se pueden utilizar para mejorar su seguridad y rendimiento generales.
Limitaciones del fuzzing
Aunque el fuzzing puede ser un método útil para identificar fallos de seguridad, también tiene sus limitaciones, entre las que se incluye el hecho de que con este método solo se pueden encontrar vulnerabilidades conocidas y que no es capaz de detectar las desconocidas. Por ejemplo, probablemente no pueda identificar vulnerabilidades en sistemas complejos o en aquellos en los que sea necesario que se produzca una secuencia específica de eventos para su activación.
Otro obstáculo al que se enfrenta el fuzzing también puede ser la calidad de los datos existentes utilizados en el proceso de prueba. Es importante que seamos conscientes de que este método puede ser muy lento y que para él se pueden necesitar muchos recursos.
Por lo tanto, aunque el fuzzing puede ser útil, sus limitaciones hacen que las organizaciones solo deban utilizarlo, en caso de hacerlo, junto con otras técnicas y herramientas de pruebas centradas en la seguridad.
La importancia de realizar pruebas de API completas
Mediante las pruebas exhaustivas de API, los desarrolladores pueden garantizar que sus aplicaciones de software funcionen según lo previsto y permitan disfrutar de una experiencia de usuario segura y sencilla.
Sin las pruebas adecuadas, un error insignificante en la API podría tener efectos secundarios importantes en el funcionamiento de toda la aplicación. Con una estrategia de pruebas de API completa, los desarrolladores pueden garantizar que todo funcione según lo previsto antes de que la API llegue al usuario final. De esta forma, se pueden ahorrar tiempo y recursos, además de mejorarse la calidad general de la aplicación.
¿En qué consiste la validación de la lógica empresarial y por qué es mejor que el fuzzing?
La lógica empresarial está constituida por la lógica subyacente o por las reglas que rigen el comportamiento de un sistema o aplicación. Define el comportamiento previsto de una aplicación, que se basa en un conjunto de reglas, algoritmos y flujos de trabajo.
La lógica empresarial garantiza que la aplicación funcione según lo previsto y genere los resultados esperados. Es un paso previo necesario probar la lógica empresarial si realmente desea detectar las posibles vulnerabilidades. Con solo introducir datos de entrada aleatorios en una aplicación para detectar vulnerabilidades mediante el fuzzing no se acabará con ellas.
Aunque el fuzzing puede ser un método útil para identificar vulnerabilidades de seguridad, no resulta eficaz para detectar problemas relacionados con la lógica empresarial de la aplicación. Esto se debe a que no tiene en cuenta el comportamiento esperado de la aplicación, sino que se centra en la identificación de los puntos débiles en el proceso de validación de entradas.
Prácticas recomendadas para las pruebas de API centradas en la seguridad
Probar las API en la fase de desarrollo puede ayudarle a reducir el riesgo y evitar los costes derivados de la corrección de errores de codificación y de las configuraciones incorrectas. Estas son algunas de las principales funciones que debe buscar e incorporar en sus procesos:
Ejecución de una amplia variedad de pruebas automatizadas que simulan tráfico malicioso
Descubrimiento 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).
Conclusión
Realizar pruebas de seguridad completas de las API es un paso fundamental en el proceso de desarrollo de estas, ya que garantiza que una API funcione de forma segura y según lo previsto. Es esencial llevar a cabo esta fase de prueba para garantizar que la API sea fiable, estable y que funcione bien durante toda su vida útil.
Si no se realizan pruebas exhaustivas de las API, pueden producirse errores y defectos, lo que podrían poner en peligro la seguridad y fiabilidad de estas.
Más información
Para obtener más información sobre la protección de las API, desde las pruebas en desarrollo hasta la protección en tiempo de ejecución, consulte nuestro white paper Fundamentos de seguridad de API.