
[09/12/2019] Para la mayoría de las organizaciones, la implementación de una aplicación segura se ha vuelto tan importante como cualquier función principal que la aplicación llevará a cabo. Una aplicación que funciona bien, pero expone a una organización a una posible explotación criminal, es tan fallida como una aplicación que no funciona correctamente.
Cuando el mundo se movía a un ritmo más lento, las aplicaciones eran codificadas por los desarrolladores. Estas aplicaciones luego serían colocadas en un ambiente de producción por un equipo de operaciones, el cual también estaba a cargo de la seguridad. Si el equipo de operaciones encontraba una falla o vulnerabilidad de seguridad, la aplicación se enviaba de regreso a los desarrolladores para que la corrijan. Ya que implementaba programas vulnerables en su ambiente de producción, este era un proceso lento que expuso a las organizaciones a un gran riesgo.
El movimiento DevOps surgió de este caos, donde los desarrolladores y los equipos de operaciones comenzaron a trabajar juntos para corregir las vulnerabilidades antes de que se implementaran las aplicaciones. Incluso entonces, no había suficiente énfasis en la ciberseguridad. El proceso de desarrollo de aplicaciones necesitaba un equipo de seguridad dedicado, que estuviera separado de las operaciones, pero que también pudiera trabajar de la mano con ellos y con los desarrolladores.
Este nuevo enfoque en la seguridad es tan popular hoy que la mayoría de los esfuerzos de DevOps se han convertido en programas DevSecOps, donde el desarrollo, la seguridad y las operaciones trabajan juntos para crear e implementar aplicaciones seguras.
En este nuevo mundo de mayor conciencia respecto a las amenazas, los desarrolladores se encargan de incorporar seguridad en las aplicaciones, a medida que las crean. A veces llamado "seguridad como código”, este enfoque puede ser muy efectivo en la actualización y reparación de las vulnerabilidades antes de que se implemente una aplicación. La seguridad como código requiere herramientas especiales que pueden descubrir problemas ocultos y vulnerabilidades con código completo y sin compilar.
¿Qué son las herramientas SAST y DAST?
Tanto las herramientas de prueba de seguridad de aplicaciones estáticas (SAST, por sus siglas en inglés) como sus primas cercanas, las herramientas de prueba de seguridad de aplicaciones dinámicas (DAST, por sus siglas en inglés), ayudan a encontrar fallas de seguridad ocultas dentro del código, a menudo antes de que lleguen a un ambiente de producción. Dependiendo de la plataforma, las herramientas SAST y DAST pueden ver el código fuente o el código que ya se ha compilado. Algunas herramientas incluso funcionan automáticamente mientras el desarrollador está trabajando, señalando fallas en su código de la forma en que una aplicación de corrección ortográfica señala errores en los documentos de procesamiento de texto.
Si bien las herramientas SAST y DAST son similares, tienden a analizar diferentes aspectos del desarrollo de código para detectar vulnerabilidades. Principalmente, las herramientas SAST están diseñadas para analizar el código fuente sin compilar. Hacen un buen trabajo al detectar vulnerabilidades muy conocidas, como criptografía débil, aperturas de inyección SQL y desbordamientos de búfer. Si una herramienta SAST usa un ambiente de desarrollo integrado (IDE, por sus siglas en inglés), incluso puede advertir a los codificadores de los errores que se están cometiendo, permitiéndoles solucionar problemas al instante.
Las herramientas DAST, por el contrario, funcionan principalmente con un código que se ha cumplido, pero que aún no se ha implementado en un ambiente de producción. En la mayoría de los casos, las herramientas DAST prueban aplicaciones completas desde el exterior, como lo haría un usuario, observando todas las interfaces HTTP y HTML expuestas. Algunas también se especializan en el análisis de vulnerabilidades en las funciones específicas de la aplicación, como las llamadas a los procedimientos remotos.
Si bien es posible que las organizaciones utilicen exclusivamente una herramienta DAST o SAST, aquellas que empleen ambas podrán cubrir todo el proceso de desarrollo. Las siguientes son algunas de las principales herramientas SAST y DAST utilizadas por las organizaciones para proteger la creación de sus aplicaciones.
SD Elements de Security Compass
El conjunto de herramientas SAST, SD Elements, abarca la gama entre una herramienta SAST y una herramienta DAST, con muchas funciones adicionales agregadas más allá del simple escaneo de vulnerabilidades. De hecho, SD Elements está respaldada por una base de conocimiento integral, construida por investigadores de seguridad de la compañía con elementos de otras fuentes confiables como el Centro de Seguridad de Internet (CIS, por sus siglas en inglés). SD Elements puede encontrar vulnerabilidades en el código y las aplicaciones, además es capaz de sugerir la posibilidad de solución más sencilla dentro de esa base de datos extensa.
Cuando se implementa por primera vez, SD Elements analiza el ambiente único en donde se ejecutará la herramienta. Esto incluye información sobre el lenguaje, las plataformas, las funciones, las reglas de cumplimiento relevantes y las herramientas que se utilizan. Armada con esta información, puede determinar qué vulnerabilidades existen en una aplicación. Una vez más, utilizando su amplia base de conocimientos, clasifica esos problemas en función del riesgo inherente que plantean.
SD Elements se puede utilizar de varias maneras. Por ejemplo, se puede ofrecer a los desarrolladores la solución más simple a un problema de vulnerabilidad. SD Elements también puede automatizar ese proceso, haciendo cosas como cambiar las credenciales predeterminadas de una aplicación. La herramienta puede incluso sincronizarse con sistemas de tickets como JIRA o ServiceNow para garantizar que las correcciones se completen dentro de cualquier período de tiempo establecido por los administradores.
Una vez completado, todo se valida para garantizar que las correcciones se hayan completado correctamente y que no haya aparecido ninguna nueva vulnerabilidad como resultado. SD Elements puede integrarse con las herramientas de escaneo más comunes para este paso, como IBM AppScan, Veracode, WhiteHat y otras. Finalmente, SD Elements proporciona informes detallados sobre vulnerabilidades fijas que son adecuadas para la mayoría de las auditorías de seguridad, o para mostrar mejoras y una mayor seguridad con el tiempo.
Secure Code Warrior
El enfoque de Secure Code Warrior se basa profundamente en la educación y, con el tiempo, ayuda a los desarrolladores a convertirse en codificadores más seguros. La filosofía de la compañía es que, dentro de un enfoque general, implementar una herramienta similar a SAST debería ser, simplemente, un elemento pequeño para ayudar a que los desarrolladores evolucionen a ser codificadores seguros y competentes. Como tal, aunque la compañía emplea una herramienta de análisis como parte de su paquete general, es solo una parte de un conjunto de capacitación general diseñado para corregir el código, aplicar reglas de codificación seguras y educar a los desarrolladores al mismo tiempo.
El próximo componente de análisis para la plataforma Secure Code Warrior actúa como un corrector ortográfico para los documentos del procesador de textos, encuentra errores a medida que se crean y solicita a los desarrolladores que los solucionen de inmediato. Técnicamente no es, o al menos no actúa como, una típica herramienta SAST.
La plataforma Secure Code Warrior puede lograr algunas cosas críticas que una aplicación SAST normal no puede hacer, como resaltar el código incorrecto que no se ajusta a las pautas específicas de la compañía, independientemente de si es realmente seguro o no. Por lo tanto, no busca vulnerabilidades comunes. En su lugar, advierte cada vez que un programador se ha desviado de una guía de codificación que ha sido especialmente adoptada por la organización que despliega la plataforma. Este enfoque elimina falsos positivos, ya que los errores detectados estarán violando las reglas específicas. No hay áreas grises difusas con Secure Code Warrior.
En primer lugar, por supuesto, la verdadera fuerza para cualquier equipo de desarrollo es empoderarse con el conocimiento de código de forma segura, por lo que las vulnerabilidades se abordan en el principio del ciclo de desarrollo. Secure Code Warrior dirige a los desarrolladores a su régimen de entrenamiento gamificado, disponible en muchos idiomas diferentes, así como a marcos de trabajo para que puedan aprender a buscar, corregir y eliminar las desafiantes vulnerabilidades de código del mundo real.
El precio de Secure Code Warrior va desde los 400 dólares por usuario. Con el tiempo, los desarrolladores que utilizan Secure Code Warrior se convertirán en mejores codificadores, mientras este evita que cometan errores peligrosos en el ínterin.
Micro Focus Fortify Software Security Center
El Micro Focus Fortify Software Security Center de Micro Focus está diseñado para reunir a los equipos de seguridad y desarrollo bajo una plataforma unificada. La herramienta informa a un panel de control que muestra las vulnerabilidades de la aplicación, así como las fallas de código, y realiza un seguimiento de ellas a lo largo del tiempo. Esto soporta la colaboración entre los equipos de seguridad y codificación, ya que todos trabajan desde el mismo conjunto de paneles fácilmente legibles.
La velocidad y la automatización también son un foco del Fortify Software Security Center. El aprendizaje automático se utiliza para automatizar todas las funciones de validación. Cada vez que se resuelve un problema con una aplicación, Fortify verificará la solución para asegurarse de que la vulnerabilidad realmente se haya eliminado y que no haya surgido ningún problema nuevo en su lugar. Utiliza los resultados de auditorías anteriores, así como una extensa base de conocimientos, para llevar a cabo esta función automática de doble verificación de todas las correcciones posibles.
Fortify también está diseñado para ser flexible, de modo que pueda integrarse con cualquier herramienta o software que los equipos de desarrollo ya estén utilizando. Esto incluye herramientas de compilación, repositorios de código, seguimiento de errores y sistemas de tickets. También se puede integrar con otros programas a través de una interfaz IDE o mediante el uso de una API extensible.
A menudo, se afirma que los equipos de seguridad y desarrollo hablan diferentes idiomas. Los paneles de control fáciles de usar y las funciones de automatización del Fortify Security Center pueden actuar como un traductor universal, para que todos finalmente puedan trabajar juntos con el fin de crear aplicaciones más seguras.
Rapid7 InsightAppSec y AppSpider
Rapid7 ofrece dos herramientas DAST principales para eliminar vulnerabilidades y ayudar a que las aplicaciones cumplan con la seguridad. La primera, InsightAppSec, está diseñada para estar en funcionamiento en tan solo cinco minutos. Funciona de forma remota mediante el escaneo de aplicaciones que ya son públicamente accesibles, de modo que no se necesita instalación local. Existe un componente opcional que permite escanear en redes cerradas, por lo que las organizaciones que tienen ambientes privados, que no son de producción, aún pueden usar InsightAppSec para el análisis de aplicaciones.
Configurar InsightAppSec es fácil y está diseñada para su uso sin tener que pasar primero por mucha documentación. Existen varias plantillas de ataque disponibles que pueden activarse marcando algunas casillas. InsightAppSec puede proporcionar puntajes de aprobación o reprobación simples para regulaciones de cumplimiento como PCI-DSS, HIPAA, SOX y OWASP Top Ten. Las organizaciones que necesitan averiguar rápidamente si sus aplicaciones están expuestas a vulnerabilidades específicas, pueden obtener esas respuestas más rápido con InsightAppSec que con casi cualquier otra herramienta DAST.
La segunda herramienta de Rapid7 se llama AppSpider. Tratándose también de una herramienta DAST, AppSpider está diseñada para sumergirse profundamente en aplicaciones individuales para encontrar cada falla de seguridad y vulnerabilidad oculta, dentro del código. También está automatizada para que pueda ejecutarse cada vez que se completa la compilación de una aplicación, lo que hace que casi se convierta en una herramienta SAST. Sin embargo, AppSpider todavía está mirando técnicamente el código desde una perspectiva externa, por lo que debería generar menos falsos positivos que la mayoría de las aplicaciones SAST. Rapid7 también ha simplificado los informes que genera AppSpider, y proporciona la información más crítica necesaria para que los desarrolladores hagan correcciones importantes.
Los precios se encuentran desde los dos mil dólares por aplicación y se vuelve menos costoso a medida que va probando más aplicaciones.
HCL AppScan
Anteriormente llamada IBM Security AppScan Standard, la herramienta se convirtió en propiedad de HCL Software en julio del 2019. Se le cambió el nombre a HCL AppScan. Una función central que diferencia a HCL AppScan de otras herramientas DAST y SAST es cómo se ha optimizado para la velocidad. Puede escanear más de un millón de líneas de código por hora.
Ha sido optimizada aún más por sus nuevos propietarios y modificada en varios productos, cada uno de los cuales ha sido optimizado para que coincida con su especialidad prevista. Por ejemplo, AppScan Enterprise puede crecer y proporciona paneles de administración para ayudar a clasificar, además de priorizar activos de aplicaciones en función de su impacto potencial en el negocio. AppScan Source es puramente una herramienta SAST capaz de analizar el código no compilado y mover las correcciones de vuelta al ciclo de desarrollo, donde son mucho menos costosas. AppScan on Cloud mueve la mayor parte de las aplicaciones de pruebas a la nube, permitiéndoles a las organizaciones llevar a cabo pruebas tanto SAST como DAST sin la necesidad de recursos computacionales locales.
El conjunto de herramientas AppScan ya era uno de los más completos cuando lo desarrolló IBM. Desde que adquirió el producto, HCL Software lo está refinando aún más. Estos ajustes buscan que -a un ritmo rápido, requerido por los programas DevOps y DevSecOps actuales- les sea todavía más útil a las organizaciones encontrar y corregir las vulnerabilidades de las aplicaciones.
Acunetix Vulnerability Scanner
El Acunetix Vulnerability Scanner está diseñado para ser una de las herramientas más precisas de detección en el mercado. Puede identificar más de 4.500 vulnerabilidades comunes con una baja tasa de falsos positivos. Incluso se especializa en WordPress, uno de los marcos de trabajo más populares para las páginas web modernas. Puede detectar 1.200 vulnerabilidades principales de WordPress, así como agujeros de seguridad en temas y complementos.
Además de las vulnerabilidades de WordPress y los problemas de seguridad comunes, Acunetix Scanner también puede examinar tanto las aplicaciones personalizadas como las realizadas con componentes de software de código abierto. También es capaz de rastrear páginas web utilizando su tecnología patentada DeepScan, así como encontrar defectos en lugares que obstaculizan a otros programas. Acunetix puede encontrar vulnerabilidades ocultas en aplicaciones de una sola página desarrolladas en HTML5, los errores de JavaScript y defectos con las APIs REST.
Toda la información sobre las vulnerabilidades descubiertas por Acunetix Vulnerability Scanner se comparte a través de un panel gráfico que desglosa los problemas por gravedad. A medida que se realizan correcciones, realiza un seguimiento de esos errores para garantizar que no se introduzcan nuevas vulnerabilidades en el ambiente de producción.
Checkmarx CxSAST
La herramienta Checkmarx CxSAST puede escanear todo tipo de código sin compilar, por lo que no hay necesidad de esperar una compilación completa antes de implementarla. CxSAST soporta una amplia variedad de lenguajes y marcos de programación, desde lenguajes modernos como GO y Scala, hasta lenguajes previos como C y C++. De hecho, no hay configuraciones de dependencia, por lo que cambiar entre lenguajes de programación no requiere una configuración adicional. Aquellos que implementan Checkmarx CxSAST ni siquiera tienen que saber mucho sobre el lenguaje que se escanea, porque el programa es lo suficientemente inteligente como para configurarse al ambiente y al código.
Además de una implementación perfecta, Checkmarx SAST también puede integrarse con todos los IDE, construir servidores de administración, repositorios de origen y herramientas de seguimiento de errores de terceros. Puede interactuar con todos esos activos para detectar y aplicar cualquier política de seguridad.
No solo el escaneo se optimiza con Checkmarx. La herramienta SAST también ayuda a automatizar las correcciones mediante el empleo de un único algoritmo de "mejor ubicación de arreglo”. Checkmarx SAST no solo sugerirá la mejor solución, sino también determinará exactamente en qué parte del código el arreglo será más eficiente.
Aunque Checkmarx se negó a dar información de precios, se hizo notar que CxSAST, como la mayoría de sus productos, requieren de una licencia y sus precios se establecen dependiendo del número de usuarios o por proyectos basados en suscripción.
Netsparker
Uno de los mayores problemas con las herramientas SAST y DAST son los falsos positivos. Cada vez que una herramienta dirige a un desarrollador para perseguir a una vulnerabilidad que no necesita de corrección, o que no tiene ningún impacto en una organización, desperdicia recursos de tiempo y se aleja de los problemas reales. Es por esto por lo que Netsparker fue diseñada para proporcionar una herramienta DAST que afirma casi no generar falsos positivos.
Netsparker llama a esta tecnología Proof-Based Scanning. Lo que eso significa es que una vez que el escáner detecta una vulnerabilidad potencial, inicia más pruebas para confirmar esos resultados. Solo después de haber sido completamente verificado por la herramienta Netsparker, se informa sobre la vulnerabilidad.
La tecnología Netsparker fue puesta a prueba recientemente en una comparación directa por un laboratorio de pruebas externo. Netsparker pudo encontrar varios cientos de inyecciones SQL, inclusión de archivos locales, redireccionamientos no validados, backups antiguos, inclusión remota de archivos y vulnerabilidades XSS reflejadas en aplicaciones que se ejecutan en un complejo banco de pruebas. Netsparker fue, junto con InsightAppSec de Rapid7, una de las dos únicas herramientas DAST que no logró falsos positivos en esa prueba -aunque InsightAppSec no detectó tantas vulnerabilidades.
John Breeden II, CSO (EE.UU.)