Estoy configurando una iniciativa de seguridad de software en una pequeña empresa de software. Parte de esto es seleccionar una herramienta de análisis estático para la detección temprana y automatizada de vulnerabilidades de seguridad.
Muchos idiomas tienen varias herramientas incumbentes de análisis estático. C #, nuestro lenguaje backend, tiene una gran cantidad de ellos, como HP Fortify o Checkmarx CxSuite para nombrar algunos.
Muchas de estas herramientas también escanean el código JavaScript en el navegador. Comprueban cosas comunes, como los scripts entre sitios (XSS) y los ataques de falsificación de solicitudes entre sitios (CSRF o XSRF). Incluso entienden JQuery y las bibliotecas de JavaScript más antiguas.
Sin embargo, no he podido encontrar una herramienta de análisis estático que analice los marcos MVC de JavaScript. AngularJS , el marco de JavaScript que estamos utilizando, mitiga muchas vulnerabilidades de seguridad comunes (como muchos ataques de inyección de DOM a través del enlace de datos) pero ofrece diferentes soluciones a otras vulnerabilidades (como su propio mecanismo de protección XSRF ).
¿Qué herramientas de análisis estático son compatibles con los sitios web de AngularJS? El costo no es tanto un problema, sino un buen conjunto de reglas. Las herramientas específicas de AngularJS o JavaScript también están bien.
Por favor ten en cuenta:
- Esta herramienta de análisis estático no reemplaza las pruebas manuales o de penetración. Esto vendrá más adelante, pero las herramientas de análisis estático permiten el descubrimiento de problemas tan pronto como el código se escribe en lugar de estar cerca del final cuando el producto está completo. Mientras trabajo con buenos desarrolladores, no son expertos en seguridad. El código base es cada vez más grande (100K + líneas) y personalmente no puedo revisar todos y cada uno de los cambios.
- Muchas herramientas de análisis estático permiten la creación de nuevas reglas y me complace hacerlo. Sin embargo, mi enfoque es entregar software en lugar de crear y depurar verificaciones de seguridad básicas.