Análisis de Software ¿qué puede hacer por ti?

¡Muy buenas a todos amigos! Vengo recién llegado de una implementar un sistema de seguridad perimetral y después de unos días sumamente intensos, necesito desconectar un poco y se me ha ocurrido hablar de un tema que aunque conocido, es poco tratado en muchos entornos, cuando, en mi opinión puede llegar a ser extremadamente útil en más de una ocasión.

Voy a realizar una introducción acerca del uso de herramientas de Análisis de Código Fuente. ¿Genial! ¿Y qué es eso?

Pues lo que parece, análisis de aplicaciones buscando malas prácticas, vulnerabilidades, fallos de configuración… etc

¿Y esto que posibles aplicaciones tiene? Pues bastantes hijo mío:

  1. Las empresas de desarrollo de aplicaciones que cobran millonadas por desarrollos de software a X Banco, necesitan comprobar si sus diseños tienen errores que luego les puedan costar millonadas en concepto de responsabilidad.
  2. A nivel de Análisis Forense puede servirnos para (por poner un ejemplo) comprobar si esa aplicación que han realizado los extrabajadores de la empresa XXXXX.SA es una copia “tuneada” de esa otra aplicación que en su ex-empresa llevan tres años desarrollando…
  3. A nivel de Hacking Etico estas herramientas pueden ayudarnos MUCHO a encontrar determinados tipos de vulnerabilidades rápidamente liberándonos de pesadas y aburridas labores y permitiéndonos usar nuestro tiempo en otras labores y con ellos abaratando costes en nuestras facturas.

¿Interesante? ¿Sigues por aquí? Muy bien, sigamos hay varios tipos de análisis que te explico a continuación

1.- Análisis Estático de Código Fuente (SAST): Son herramientas de caja blanca que realizan un análisis muy completo de toda la aplicación y analizando el código fuente intentan emular (con más o menos éxito eso si) lo que ocurre en tiempo de ejecución. Ejemplos: Insight, Fortify SCA.

2.-  Análisis en Tiempo Real de Ejecución (RAST): El nombre se auto-explica ¿verdad? Estas herramientas de caja blanca se utilizan en tiempo de ejecución en el servidor de aplicaciones controlando el entorno de ejecución de los procesos. A diferencia de SAST, la tecnología RAST cubre una mayor superficie de análisis-ataque, al ser capaz de identificar, organizar y categorizar la importancia o no de las vulnerabilidades del código en tiempo real, así se identifican más vulnerabilidades y su análisis es más certero. Ejemplos: Acunetix+Acusensor, Fortify Runtime Analysis.

3.- Análisis Dinámico (DAST): Estas son herramientas de caja negra que se usan cuando no disponemos del código fuente original de la aplicación. Estas aplicaciones lanzan peticiones malignas contra los servicios con la intención de descubrir todas las fallas posibles analizando las respuestas de las aplicaciones. Para realzar eso, conforman y adaptan las peticiones intentando cubrir todas las entradas posibles de las aplicaciones. Ejemplos: Webinspect, Paros Proxy.

Ultimos apuntes y recordatorios para los aspirantes a juackers: Todas las técnicas de análisis de seguridad de una aplicación, de caja blanca y de caja negra, realizadas a mano (revisión, tests), sufren de un mal inevitable, la falta de cobertura del analista sobre toda la superficie de ataque que tienen las aplicaciones y lo que es más que fácil, que con estas pruebas de penetración manuales vamos a tener mas que seguro, una gran pérdida de detección de vulnerabilidades. ¿Y eso no nos gusta verdad?.

Lo difícil y tediosos de realizar estos test a mano, ha llevado al desarrollo de estas técnicas automatizadas de realizar los análisis. ¿Esta es la solución definitiva? Para nada, pero en según qué contextos pueden ser MUY útiles.

Su funcionamiento se basa en ejecutar desde cada herramienta contra aplicaciones benchmarks que contengan vulnerabilidades de seguridad conocidas. Eso sí, al margen de estas ejecuciones, se les debe aplicar posteriormente parámetros seleccionados y ampliamente aceptados y establecer un “ranking” en cuanto a su efectividad. Y ahí es donde entra en funcionamiento el ingenio del Analista,  Forense o Testeador. CONCEPTO: Nos quitan y agilizan trabajo pero hay que supervisarlas al final siempre ¿vale?

Resumiendo, el conocimiento y manejo de estas herramientas nos va a abrir un enorme abanico de posibilidades laborales, creedme cuando os digo que esta semana, me han contactado 5 empresas, si 5 no exagero ni una, para ofrecerme trabajo muy bien pagado. Ahí lo dejo…

Os dejo abajo un enlace a la Wikipedia donde se ven algunas de estas herramientas para análisis estático que es el mas “sencillito” para comenzar, echadles un ojo, merece la pena…

¡Hasta la próxima!

Enlace

Una respuesta a “Análisis de Software ¿qué puede hacer por ti?”

Deja un comentario