IAST: un nuevo enfoque en la detección de vulnerabilidades
El problema Uno de los mitos más arraigados que observamos en el mundo de la ciberseguridad, sobretodo en la cobertura que vemos en los medios de comunicación, pero también en nuestras conversaciones con clientes, es que para lanzar un ataque a un sistema informático es necesario “investigar” y encontrar un defecto nuevo y específico para ese sistema. Sin embargo, en la mayoría de los incidentes de seguridad que afectan a aplicaciones en internet, tan frecuentes en los últimos años, los atacantes no necesitan descubrir nuevos errores de software, ¡y les basta con explotar errores de programación ya conocidos! Por ejemplo, la escandalosa brecha de Equifax, uno de los incidentes que más repercusión ha tenido, se podía haber prevenido si se hubieran seguido normas de seguridad básicas, como parchear su aplicación contra vulnerabilidades conocidas. Y no lo decimos nosotros, ese fue el resultado de la investigación forense del gobierno federal estadounidense. Por tanto, una manera muy importante de reducir los riesgos de seguridad es asegurar que, desde la fase de desarrollo de software, se detecten y corrijan todos aquellos fallos de programación conocidos, antes de que las aplicaciones sean expuestas en entornos de producción. Además, por si fuera poco, fuentes sólidas como el NIST indican que corregir fallos de seguridad pronto resulta órdenes de magnitud más barato que hacerlo cuando el sistema está ya terminado. Pongamos un ejemplo para presentar la idea de forma más sencilla. Cuando escribimos un texto en Microsoft Word, el corrector ortográfico nos indica los errores de sintaxis que hemos cometido. Igualmente, existen soluciones de seguridad conocidas también como AST (Application Security Testing) capaces de detectar errores de sintaxis relacionados con la seguridad de la aplicación. Como resultado, los AST reportan el fichero y línea concreta donde reside la vulnerabilidad, al igual que Word reporta la página y la palabra donde reside el problema. En otras palabras, hacer uso de una herramienta de este tipo nos permite desarrollar software libre de “errores ortográficos” relacionados con la seguridad y por lo tanto mucho más seguro. ¿Os imagináis publicar un libro que contenga errores ortográficos? Impensable ¿no? Eso es exactamente lo que ocurre con gran parte del software publicado en Internet. Al no hacer uso de este tipo de herramientas de seguridad, las aplicaciones incluyen agujeros de seguridad muy básicos y por lo tanto fácilmente explotables por cualquier atacante. Veamos a continuación los diferentes tipos de “detectores de problemas de seguridad” o soluciones AST que podemos encontrar en el mercado y cuales son las ventajas de cada uno. El enfoque tradicional El mercado AST está dominado por dos tecnologías ya maduras: SAST o análisis estático de código, y DAST o análisis dinámico. Cada uno de ellos va dirigido a cubrir esta necesidad dirigido a un entorno o departamento en concreto. El análisis estático, SAST, también llamado de caja blanca debido a que la herramienta tiene acceso al código de la aplicación, recorre el código fuente buscando patrones que indican programación insegura, es decir, un potencial problema de seguridad. El análisis dinámico, DAST, por contra, sólo tiene visibilidad externa de la aplicación, es decir, tal y como un visitante o atacante vería el sistema. A partir de aquí, la herramienta lanza cientos de consultas y ataques con la intención de replicar la actividad de un atacante y encontrar las vulnerabilidades de la aplicación. La información reportada por ambas herramientas es diferente, dado que los SAST proporcionan el fichero y la línea de la aplicación donde se ubica la vulnerabilidad y los DAST proporcionan la vista dinámica de la vulnerabilidad (URL y parámetro). Por lo tanto, hasta hoy en día se han requerido de dos herramientas para poder disponer de una visión completa de la vulnerabilidad. El enfoque Interactive AST Las herramientas Interactive Application Security Testing (IAST) combinan el enfoque estático y el enfoque dinámico. Es decir, tienen acceso a la estructura interna de la aplicación, y también ven cómo la aplicación responde cuando hay tráfico. Este punto de vista privilegiado ofrece numerosas ventajas. Desde un punto de vista de arquitectura, las herramientas IAST se instalan como parte de la infraestructura que soporta las aplicaciones web, ya que se instalan como un complemento al servidor de aplicaciones. A este enfoque se llama “instrumentación”, y se realiza a través de un componente conocido como “agente.” Una vez el agente está instalado, incorpora sensores automáticos de seguridad en puntos críticos de la ejecución de la aplicación. Estos sensores monitorizan las peticiones y respuestas al servidor, las librerías externas que la aplicación usa, el acceso a recursos del servidor, y operaciones de datos como el acceso a bases de datos. Esta cobertura de “amplio espectro” supera con creces la visibilidad de herramientas SAST y DAST. Aterricemos estos conceptos en números específicos: la siguiente tabla compara dos métricas muy importantes: cuántas vulnerabilidades las diferentes tecnologías son capaces de encontrar, y cuántas resultan ser falsas (la herramienta indica una vulnerabilidad cuando ninguna existe). Pues bien, el mejor scanner dinámico (DAST) es capaz de encontrar sólo el 18% de las vulnerabilidades reales. Y peor aún, más de la mitad de las vulnerabilidades identificadas por el mejor analizador estático (SAST) resultan no ser tales! Fuente: Hdiv Security a partir de resultados públicos del test OWASP Benchmark El enfoque IAST ofrece numerosos beneficios tangibles: Cobertura completa, ya que permite analizar toda la aplicación: tanto el código propio como el código externo, también conocido como dependencias. Flexibilidad, ya que una única herramienta se adapta a todos los entornos: desarrollo, aseguramiento de calidad o testing, y producción Alta precisión, ya que la combinación de visibilidad estática y dinámica permite encontrar más vulnerabilidades, sin caer en la trampa de los falsos positivos. Información detallada de cada vulnerabilidad: estática (en lo referente al código fuente) y dinámica (en lo referente a cómo el código responde al tráfico). Reducción del plazo de verificación de la seguridad de las aplicaciones, por lo que acelera el desarrollo de aplicaciones seguras. Se adapta perfectamente a las nuevas metodologías de desarrollo, incluyendo metodologías ágiles y DevSecOps, ya que favorece la introducción de automatismos y reduce la dependencia en operaciones manuales. Debido a estas ventajas, una herramienta IAST puede complementar otras herramientas existentes en el portfolio de seguridad de las organizaciones. Conclusiones Al igual que hacemos uso de un corrector ortográfico cuando vamos a publicar un texto para detectar problemas con la sintaxis de nuestro texto, es necesario hacerlo con el software de cara a detectar problemas de seguridad. En cualquier caso, las herramientas de detección, conocidas como AST no representan una panacea, ya que solamente son capaces de detectar problemas en el software que siguen un patrón común. ¿Qué es Hdiv Security? Hdiv Security es un pionero en el mercado de protección de aplicaciones desde el año 2008, es el primer producto que ofrece protección durante el ciclo completo de desarrollo de software contra los bugs de seguridad o errores de sintaxis, a la vez que protege de los fallos en la lógica de negocio. La plataforma unificada de Hdiv simplifica la adopción de filosofías de desarrollo DevSecOps. Las soluciones de Hdiv (RASP y IAST) son utilizadas actualmente por instituciones gubernamentales, bancos, industria aeroespacial, y empresas del ranking Fortune 500. Es una empresa de capital privado y su sede está en San Sebastián (España).
24 de octubre de 2019