Como parte de mi trabajo de Ciberseguridad en Pentesting, El análisis SAST siempre ha sido una actividad bastante recuerrente, de hecho mi primer post de SAST fue en el 2019 con Sonarqube, luego en el 2021 Sonarqube+JenKins sin embargo para los que recién se topan con este concepto aquí la explicación.

SAST es la práctica de buscar vulnerabilidades en código fuente, es decir sin ejecutar la aplicación, la cual abarca no solo el código, sino también las dependencias y librerías.
Bajo esta actividad, este “escaneo” siempre ha estado ligado a herramientas muy conocidas como Snyk, Semgrep o SónarQube, sin embargo, la explosión de la IA ha generado la necesidad de incorporar este tipo de evaluación en los principales actor como ChatGTP, Claude, Gemini entre otros.
Ahora vamos a ver una altermativa bastante interesante para realizar esto con Gemini CLI.
1.- Activar cuenta en Google Cloud
Ingresar a Google Cloud cloud.google.com y activar una prueba gratuita, con la cuenta de Gmail que se desee usar.

Nota: La IA no es gratis 😀 para ello, es necesario un pago retroactivo de 40.000 COP o 37.00 PEN (10 USD y nos centavos más), Una vez realizado el pago, es posible que la activación de la cuenta demore de 24 a 48 horas, hasta recibir el correo de activación por parte de Google.

Una vez activado los créditos se verán de la siguiente forma:

Esto creará un proyecto el cual tendrá que ser posteriormente relacionado con la cuenta.

2.- Activar cuenta en Google AI Studio
Ingresar a Google AI estudio aistudio.google.com ingresar a “Get API Key” e importar el proyecto.

Ahora crear la API KEY para el proyecto importado


3.- Instalar Visual Studio Code en Kali Linux
Descargar el .deb de VS Code de la página oficial.

Luego se instala en Kali Linux
| sudo dpkg -i code_1.117.0-1776814346_amd64.deb |
4.- Instalación de Gemini en Visual Studio Code.
4.1.- Clonar la aplicación a evaluar en este caso “DVWA” sobre la ruta /home/kali
| git clone https://github.com/digininja/DVWA.git |
4.2.- Abrir la carpeta de la aplicación a evaluar, en este caso “DVWA” luego abrir la terminal, verificar que se encuentra en la ruta /home/kali/DVWA

4.3.- Instalar prerrequisitos que necesita Gemini en Visual Studio Code desde la terminal

| sudo apt install npm sudo npm install -g @google/gemini-cli@latest gemini extensions install https://github.com/gemini-cli-extensions/security gemini extensions install https://github.com/gemini-cli-extensions/code-review |
5.- Ejecutar Gemini y realizar configuración del entorno e inicio de sesión.
5.-1 Aceptar que Gemini se conecte a VS Code.

5.2.- Aceptar la configuración de atajos de terminal

5.3.- Autenticar mediante Cuenta y/o API KEY
Es posible autenticar vía la cuenta o API, al principio pensé que era necesario el API KEY, pero no, tambien es funcional autenticando directamente con la cuenta directamente.

6.- Verificar conexiones y extensiones
Una vez autenticado es necesario verificar las conexiones y extensiones.
6.1.- Verificar que Gemini CLI está conectado a VS Code.
| /ide status |

6.2.- Verificar las extensiones instaladas
| /extensions |

7.- Escaneo del código fuente.
Iniciamos el escaneo, en este caso solo evaluaremos el archivo index.php de una carpeta en específico.
| /security:analyze scan only this file /home/kali/DVWA/vulnerabilities/sqli/index.php |

Inicia el escaneo y el agente IA va pidiendo algunos permisos de escritura como se muestra a continuación.

Dependiendo el escenario, el agente escanea los archivos que tiene referencia el archivo principal, como consecuencia de seguir el flujo de desarrollo.
Una vez que ha terminado la identificación de vulnerabilidades en el código, el agente preguntará si deseas que cree los POC de explotación de los hallazgos encontrados.

Una vez que el escaneo terminó, el agente muestras las vulnerabilidades encontradas.

Conclusiones:
Si bien es cierto la I.A. puede ayudar bastante, los resultados no pueden ser concluyentes, considero que siempre tiene que estar complementado por el análisis DAST y por consiguiente revisión de cada uno de los hallazgos para eliminar falsos positivos.
Espero les sirva.
Juan Oliva

Deja un comentario