
Hoy en día todas las empresas cuentas con medidas de seguridad “perimetrales” como pueden ser los firewalls, antivirus, etc., a estas medidas tecnológicas se las complementa habitualmente con formación y concientización de los empleados para crear un conjunto de medidas tendientes a garantizar la seguridad de nuestros sistemas.
Si bien no se discuten estas definiciones la pregunta es ¿son suficientes?, ¿en qué parte del esquema de seguridad se considera la seguridad del código de nuestras aplicaciones?
Las pruebas estáticas de seguridad de aplicaciones (SAST) son una de las herramientas que permiten ayudar a las empresas a llevar la seguridad a otro nivel.
¿Cómo trabajan estas pruebas?
Las pruebas analizan el código para detectar vulnerabilidades de seguridad, generalmente en las fases de desarrollo y/o prueba del ciclo de vida del desarrollo de software (SDLC).
Las herramientas SAST se pueden considerar como pruebas de caja blanca, donde el probador conoce información sobre el sistema o el software que se está probando, incluido un diagrama de arquitectura, acceso al código fuente, etc.
El análisis consiste en examinar el código fuente (en reposo) para detectar y reportar las debilidades que pueden conducir a vulnerabilidades de seguridad. La herramienta analiza el código fuente detectando vulnerabilidades de Seguridad como son los temidos “SQL Injection”, “Log Injection” o “X-site scripting” y otras vulnerabilidades que están presentes en las aplicaciones con mucha más frecuencia de lo imaginado y deseado, estos agujeros de seguridad son las puertas de entrada por las que los cibercriminales acceden con facilidad a nuestras aplicaciones y a la información contenida en nuestras bases de datos. El análisis incluye la verificación de cumplimiento de estándares de desarrollo y reglas de diseño.
Algunas herramientas se ejecutan solo en el código fuente, otras solo en el código compilado y otras en ambos.
Integración de las pruebas SAST en DevOps
En la actualidad las empresas están avanzando fuertemente en la adopción de DevOps como marco para el desarrollo de sus aplicaciones, las acciones de seguridad tradicionales ya no son adecuadas pues se necesita de una estrategia que se adapte a las entregas frecuentes con desarrollos rápidos, para ello se suma a DevOps los procesos de seguridad para obtener DevSecOps.
DevSecOps parte del concepto general y de los valores que impulsa DevOps integrando además la seguridad en el desarrollo de manera activa.
Esta integración implica dos grandes ventajas: por un lado, el código fuente que se almacena en nuestros repositorios y progresa a entornos superiores ya está verificado y libre de vulnerabilidades de seguridad gracias al chequeo automático previo que se realiza por la herramienta SAST. Y, por otro lado, al realizar este chequeo en los entornos de desarrollo, la deuda técnica se reduce considerablemente respecto a la detección y posterior resolución de decenas de vulnerabilidades críticas en Producción al realizar una auditoría de software.
Una herramienta SAST: Bugscout
Bugscout es una herramienta de tipo SAST, multiplataforma (VirtualBox, VMWare, GCloud, Azure…) de utilización sencilla e intuitiva que puede operarse tanto en Servicio SaaS como /On Premise/ (aplicación en las propias instalaciones del cliente).
Capaz de verificar con alta precisión 5.600 reglas de Seguridad y Calidad del Software en los 35 lenguajes de programación más habituales, sigue y mantiene en constante actualización las normativas de los Estándares Internacionales como OWASP, PCI, 7PK y Sans Top 25 entre otros.
La herramienta tiene la capacidad de realizar análisis de código tanto en modo auditoría como 100% integrado en el ciclo de vida, comprobando la seguridad del software automáticamente sin intervención del desarrollador, de forma transparente y previa al almacenamiento en el repositorio de código.
Autor: Marcelo Iglesias, Qadvanced