En este blog informático está reflejada mi experiencia en el mundo de la informática. Mis publicaciones serán sobre seguridad informática e Internet. Las técnicas y herramientas aquí explicadas son para fomentar la seguridad de la información dentro de la filosofía del hacking ético. En línea desde 2005.

Detectar y corregir automáticamente vulnerabilidades de validación de entrada en aplicaciones Web.

Con la herramienta WAP (web application protection) es posible detectar y corregir automáticamente vulnerabilidades de validación de entrada en aplicaciones Web escritas en lenguaje PHP (versión 4.0 o superior). WAP es una herramienta de análisis estático para: detectar vulnerabilidades, seguimiento de las entradas de los usuarios maliciosos y comprobar si llegan las llamadas de funciones sensibles. Cuenta con una baja tasa de falsos positivos porque se ha implementado un módulo de minería de datos para predecir los falsos positivos cuando se detecta vulnerabilidades.


WAP analiza semánticamente el código fuente. Más precisamente, realiza el análisis del flujo de datos para detectar las vulnerabilidades de validación de entrada. El objetivo del análisis es rastrear registros maliciosos insertados por los puntos de entrada ($ _GET y $ _POST) y verificar funciones de PHP que pueden ser explotadas por alguna entrada maliciosa. Después de la detección, la herramienta utiliza la minería de datos para confirmar si las vulnerabilidades son reales o falsas. Al final, las vulnerabilidades reales se corrigen con la inserción de las correcciones en el código fuente.

WAP detecta las siguientes vulnerabilidades:

  • Inyección SQL en MySQL, PostgreSQL y DB2 DBMS.
  • Cross-site scripting (XSS).
  • La inclusión de archivos remotos (RFI).
  • Inclusión de archivos locales (LFI).
  • Salto de directorio o camino transversal (DT / PT).
  • Divulgación de Código Fuente (SCD).
  • Inyección de comandos del sistema operativo (OSCI).
  • Inyección de código PHP.

WAP está escrito en lenguaje Java y está constituido por tres módulos:

Analizador de Código: compuesto por el generador de árboles y analizador de flujo de datos. Integra un analizador léxico y un analizador sintáctico, basado en una gramática de árbol escrita en el lenguaje PHP. El generador de árbol utiliza el analizador léxico y el analizador sintáctico para construir el AST (Abstract Sintatic Árbol) de cada archivo PHP. El analizador de flujo de datos navega a través del AST para detectar potenciales vulnerabilidades.

Detección de falsos positivos: compuesto por un modulo supervisor entrenado con casos clasificados como vulnerabilidades almacenadas y los falsos positivos del algoritmo de aprendizaje automático de regresión logística. Para cada posible vulnerabilidad detectada por analizador de código, este módulo recoge la presencia de los atributos que definen un falso positivo. A continuación, el algoritmo de regresión logística los recibe y clasifica la instancia como un falso positivo o no.

Código corrector: Cada vulnerabilidad detectada se elimina mediante la corrección de su código fuente. Este módulo aplica una solución para cada tipo de vulnerabilidad y señaliza los lugares en el código fuente donde se insertará el punto de referencia. A continuación, el código se corrige con la inserción de las revisiones y se crean nuevos archivos.

Más información y descarga de WAP:
http://sourceforge.net/projects/awap/
Detectar y corregir automáticamente vulnerabilidades de validación de entrada en aplicaciones Web. Detectar y corregir automáticamente vulnerabilidades de validación de entrada en aplicaciones Web. Reviewed by Álvaro Paz on miércoles, noviembre 05, 2014 Rating: 5
Publicar un comentario en la entrada
Este Blog sobre Seguridad Informática está bajo una licencia de Creative Commons, Álvaro Paz. Con la tecnología de Blogger.