Back to the future - Regreso al futuro
Sin lugar a dudas este film de Robert Zemeckis marco una época en 1985, la carrera de Michael J. Fox siempre será recordada por esta mini saga de tres entregas, en el papel de Marty McFly, a cual más entretenida. Buena prueba del impacto de esta película en su 25º (+1) aniversario es que Nike se ha decidido a lanzar una edición limitada de las Nike MAG, aunque no dispondrán de auto-anudado seguro que hacen las delicias de uno de los 1,500 afortunados que se podran hacer con ellas.
Igual que “Back to the Future” marco una epoca, creo que va a hacer lo propio la tecnologia RAST que recientemente ha presentado HP Fortify. RAST es el acrónimo de “Real-time Application Security Testing”, no os preocupéis si no habías odio hablar de esta tecnología, es como cuando Lorraine le pregunta a Marty si se llama “Levi’s” ya que toda su ropa la tiene marcada con ese nombre.
Seguro que habréis oído hablar de DAST y SAST, aunque no necesariamente con ese nombre. DAST son las iniciales de “Dynamic Application Security Testing”, es decir las pruebas dinámicas de análisis de la seguridad de las aplicaciones, algo más popularmente conocido como “pruebas de penetración” o “pruebas de hacking ético”. Este es el método mas habitual para evaluar las posibles vulnerabilidades que puede presentar nuestras aplicaciones, básicamente consisten en intentar explotar dicha aplicación simulando los ataques que los hackers realizarían, bien de manera manual, bien de manera automatizada con la ayuda de herramientas.
Por otro lado disponemos de SAST, “Static Application Security Testing” o lo que es lo mismo la pruebas estáticas de código fuente. En este caso se trabaja con el código del aplicativo tal y como lo ha escrito el desarrollador, e igualmente se puede realizar de manera manual para pequeños fragmentos, aunque de manera práctica se suele realizar con la ayuda de soluciones que permiten modelar y analizar los flujos de datos y el control.
Lógicamente el debate está servido, ¿pruebas de penetración o análisis del código? Ambas técnicas presentan ventajas e inconvenientes, algunas de las más solidas serian:
Las pruebas dinámicas, o de caja negra, analizan la infraestructura completa, aplicación en su entorno de ejecución (+) Identifican el punto de explotación (+) pero… siempre nos dejara la duda, ¿hemos probado todos los escenarios? (-) y una vez identificada la vulnerabilidad, ¿Cuál es la causa raíz de la vulnerabilidad? ¿Qué he de modificar? (-)
Por su lado el análisis estático, o de caja blanca, nos asegura unos resultados exhaustivos al inspeccionar todos los posibles caminos (+), identifica la causa raíz y acelera la resolución al proporcionar las directrices para su remediación (+); pero no nos permite identificar si la vulnerabilidad es explotable en producción (-) y resulta complejo determinar la prioridad de las vulnerabilidades (-).
¿Por qué no combinar ambos juegos de resultados? ¿Podemos correlacionarlos? En teoría la respuesta es si, en la práctica la respuesta es no. Es un problema sumamente complejo el relación una determinada dirección (URL) con la línea de código responsable de la misma, una práctica que involucra a profesionales tan distintos como analistas de seguridad y desarrolladores, de manera práctica los clientes con los que he tenido oportunidad de charlar me han confirmado claramente esta situación a pesar de los esfuerzos realizados para obtener unos resultados en principio muy golosos.
Afortunadamente la tecnología RAST desarrollada por HP Fortify ha conseguido resolver esta problemática. La pieza clave es la instrumentación del servidor de aplicaciones (tanto en entornos Java como .net) que nos permite analizar la pila de llamadas y determinar en tiempo real, mientras realizamos una prueba de penetración, cual es el código siendo invocado, lo que nos da una visibilidad sin precedentes a la hora de determinar con precisión aquellas vulnerabilidades explotables y cuál es la causa raíz de las mismas.
Esta tecnología de próxima generación presenta ventajas para todos los actores de la cadena de valor. Al especialista de seguridad le aporta la capacidad de analizar una mayor superficie de ataque, a la vez que le proporciona diagnósticos más precisos limitando los terribles falsos positivos. Para los desarrolladores les ofrece la localización específica de las vulnerabilidades en el código, y permite entender las vulnerabilidades organizadas por impacto y causa raíz. Por último a la dirección le podemos facilitar una vista unificada de las pruebas de caja negra y caja blanca, favoreciendo una visión completa y precisa de los riesgos.
Si estáis interesados en conocer más detalles de esta tecnología os invito a que leáis el white paper que han publicado los chicos de HP Fortify.
Back to the Future. Regreso al futuro. USA 1985, Pelicula de ciencia ficción juvenil, dirigida por Robert Zemeckis y protagonizada por Michael J. Fox, Christopher Lloyd y Lea Thompson. Un icono del cine de los ochenta.