Según la guía de revisión de código del OWASP, si el código de una aplicación no ha sido revisado en busca de fallas de seguridad, la probabilidad de que esta tenga problemas es prácticamente del 100%. Por eso, Fluid Attacks explica la importancia de evaluar el código fuente para detectar vulnerabilidades en pleno desarrollo de las aplicaciones y sugiere el uso de su herramienta open-source para cumplir con ese objetivo de forma automática.
Vladimir Villa, CEO de Fluid Attacks, asegura que, “una organización que no somete a evaluación el código fuente que desarrolla y usa está siendo irresponsable con sus recursos y los de sus clientes o usuarios. Los problemas de seguridad en el código de una aplicación pueden ser explotados por los ciberdelincuentes para generar fugas de datos, interrupciones de operaciones o robos de recursos monetarios en la compañía comprometida. La revisión de la seguridad del código desde el comienzo de su ciclo de vida de desarrollo es una de las mejores opciones para prevenir dichos incidentes”.
¿Por qué se presentan estos problemas en las aplicaciones?
Son muchos los errores, sea por descuido o ignorancia, que los desarrolladores de software pueden cometer en su trabajo. Algunos de estos errores pueden traer consigo fallas en la funcionalidad de las aplicaciones, pero otros pueden afectar directamente su seguridad. Por ejemplo, existen los problemas de validación de la información que entra a la aplicación. Esta debería ser programada para aceptar solo los inputs que cumplan con características específicas, como tipo, rango y longitud. Cuando la aplicación no logra dicha validación, un atacante puede introducir caracteres que funcionen como comandos y que alteren su comportamiento o funcionalidad.
Otro ejemplo es que los desarrolladores no hayan elaborado algoritmos que restrinjan apropiadamente el acceso a los recursos, sobre todo a los que pueden considerarse confidenciales. La aplicación debería trabajar bajo un principio de mínimo privilegio, donde los usuarios pueden acceder solo a los recursos necesarios para cumplir con sus tareas específicas. También puede haber inconvenientes, por ejemplo, en la encriptación de datos, en los controles de sesiones, en los reportes de errores, en la presencia de información sensible dentro del mismo código, en las actualizaciones de componentes de terceros, etc.
¿Cómo evitar estos inconvenientes de seguridad en las aplicaciones?
Aquí es donde entra en acción la revisión de la seguridad del código fuente. Se trata de un proceso sistemático de identificación, clasificación y reporte de vulnerabilidades de seguridad. Esta evaluación puede ser llevada a cabo tanto por humanos como por herramientas automatizadas o escáneres, pero siempre es preferible tener un complemento de escaneo y pruebas de penetración manuales. Dichas herramientas suelen trabajar de acuerdo con bases de datos de vulnerabilidades conocidas. La intervención humana se hace necesaria para la identificación de vulnerabilidades más complejas —a menudo de mayor severidad— y previamente desconocidas.
Luego de que las herramientas y expertos reporten vulnerabilidades dentro del código, dando de cada una detalles como categoría, ubicación, severidad, y recomendaciones de reparación, la compañía propietaria de la aplicación evaluada debe empeñarse en remediar dichos problemas de seguridad. Estas remediaciones permiten mitigar la exposición al riesgo de sufrir daños por medio de ciberataques.
Para detectar, describir y reportar vulnerabilidades de seguridad, Fluid Attacks ofrece un grupo altamente certificado de pentesters, posee una herramienta automatizada open-source de análisis de código fuente y aplicaciones, en general, la cual ellos mismos han desarrollado.
Vladimir Villa, concluye explicando que, “tanto las pruebas por parte de expertos como por parte de herramientas automatizadas deberían ser procesos continuos dentro de un ciclo de manejo de vulnerabilidades o exposición al riesgo. Nuevos sistemas emergen, evolucionan, se hacen más complejos, se expanden, y con ellos llegan nuevas vulnerabilidades y amenazas. Hacer evaluaciones en un solo punto en el tiempo, o esporádicamente, es quedarse rezagado ante esos cambios constantes en la tecnología, lo que significa posiblemente alta exposición al riesgo de sufrir por culpa de ciberataques”.