
Herramienta automatizada de análisis de vulnerabilidades binarias que descompila ejecutables mediante Ghidra, escanea código pseudo-C con Semgrep y valida los hallazgos usando GPT-3.5-Turbo para reducir falsos positivos.
Una herramienta inteligente y automatizada para el análisis de vulnerabilidades en binarios
Demostración:

Callisto es una herramienta inteligente y automatizada para el análisis de vulnerabilidades en binarios. Su objetivo es descompilar de forma autónoma un binario proporcionado e iterar sobre el pseudo código resultante en busca de posibles vulnerabilidades de seguridad en ese pseudo código C. El descompilador sin interfaz gráfica de Ghidra es el motor de la descompilación y el análisis del binario. El análisis del pseudo código lo realiza inicialmente la herramienta SAST Semgrep y luego se transfiere a GPT-3.5-Turbo para validar los hallazgos de Semgrep, así como para identificar posibles vulnerabilidades adicionales.
El propósito previsto de esta herramienta es ayudar en el análisis de binarios y el descubrimiento de vulnerabilidades de día cero. La salida busca ayudar al investigador a identificar posibles áreas de interés o componentes vulnerables en el binario, que luego puedan ser verificados con pruebas dinámicas para su validación y explotación. Ciertamente no detectará todo, pero la doble validación con Semgrep a GPT-3.5 busca reducir falsos positivos y permitir un análisis más profundo del programa.
Para aquellos que solo quieran usar la herramienta como un descompilador rápido sin interfaz gráfica, el archivo output.c generado contendrá todo el pseudo código extraído del binario. Este puede ser utilizado con sus propias herramientas SAST o analizado manualmente.
Le debo un enorme agradecimiento a Marco Ivaldi @0xdea por sus reglas de Semgrep para C publicadas públicamente, así como por su idea de automatizar el descubrimiento de vulnerabilidades usando Semgrep y pseudo código de descompiladores. Puede leer más sobre su investigación aquí:
Requisitos:
config.txt de esta carpeta.pip install semgreppip install -r requirements.txtconfig.txt.Para ejecutar:
python callisto.py -b <ruta_al_binario> -ai -o <ruta_al_archivo_de_salida>
-ai => habilita el análisis con OpenAI GPT-3.5-Turbo. Requiere colocar una clave de API de OpenAI válida en el archivo config.txt.-o => define un archivo de salida, si desea guardar la salida.-ai y -o son parámetros opcionales.-all ejecutará todas las funciones a través del análisis de OpenAI, independientemente de los hallazgos de Semgrep. Esta bandera requiere la bandera previa -ai.python callisto.py -b vulnProgram.exe -ai -o results.txtpython callisto.py -b vulnProgram.exe -ai -all -o results.txtEjemplo de salida del programa:
