
Una plataforma de análisis estático de código fuente para entusiastas de AppSec.

Grepmarx es una aplicación web que proporciona una plataforma única para comprender, analizar e identificar rápidamente vulnerabilidades en bases de código posiblemente grandes y desconocidas.
Capacidades SAST (Pruebas de Seguridad de Análisis Estático):
Capacidades SCA (Análisis de Composición de Software):
Adicional
| Personalización de escaneo | Banco de trabajo de análisis | Edición de paquetes de reglas |
|---|---|---|
![]() | ![]() | ![]() |
Grepmarx se proporciona con una configuración para ser ejecutado en Docker y Gunicorn.
Asegúrese de tener docker-compose instalado en el sistema y de que el daemon de Docker esté en ejecución. La aplicación se puede ejecutar fácilmente en un contenedor Docker. Los pasos:
Obtener el código
$ git clone https://github.com/Orange-Cyberdefense/grepmarx.git
$ cd grepmarx
Iniciar la aplicación en Docker
$ sudo docker-compose pull && sudo docker-compose build && sudo docker-compose up -d
Visite http://localhost:5000 en su navegador. La aplicación debería estar en funcionamiento.
Gunicorn 'Green Unicorn' es un servidor HTTP WSGI de Python para UNIX. Se proporciona un archivo de configuración de supervisor para iniciarlo junto con el trabajador Celery requerido (utilizado para la cola de escaneos de seguridad).
Instalar usando pip
$ pip install gunicorn supervisor
Iniciar la aplicación usando el binario de gunicorn
$ supervisord -c supervisord.conf
Visite http://localhost:8001 en su navegador. La aplicación debería estar en funcionamiento.
Para ejecutar un escaneo, deberá agregar manualmente al menos una entrada en Administration/Repository. Aquí hay algunos ejemplos de repositorios de reglas de Semgrep/Opengrep que se pueden utilizar:
https://github.com/opengrep/opengrep-rules: la biblioteca estándar para reglas de Opengrephttps://github.com/patched-codes/semgrep-rules: una colección de reglas Semgrep con licencia permisivahttps://github.com/trailofbits/semgrep-rules: reglas semgrep desarrolladas por Trail of Bitshttps://github.com/Decurity/semgrep-smart-contracts: reglas semgrep que buscan patrones de vulnerabilidades en contratos inteligenteshttps://github.com/0xdea/semgrep-rules: reglas semgrep por 0xdeahttps://github.com/mindedsecurity/semgrep-rules-android-security: reglas Semgrep derivadas de OWASP MASTG específicamente para aplicaciones Androidhttps://github.com/akabe1/akabe1-semgrep-rules: colección de reglas Semgrep personalizadas de akabe1https://github.com/s0rcy/semgrep-rules: colección de reglas Semgrep personales de s0rcy para análisis de seguridad e investigación¡Asegúrese de estar de acuerdo y cumplir con el archivo LICENSE de los repositorios de reglas que utilice!
En esta etapa, todo lo que tiene que hacer es crear Paquetes de Reglas según sus necesidades y luego lanzar sus escaneos.
Obtener el código
$ git clone https://github.com/Orange-Cyberdefense/grepmarx.git
$ cd grepmarx
Instalar módulos de virtualenv
$ virtualenv env
$ source env/bin/activate
Instalar módulos de Python
$ # SQLite Database (Development)
$ pip3 install -r requirements.txt
$ # OR with PostgreSQL connector (Production)
$ # pip install -r requirements-pgsql.txt
Instalar requisitos adicionales
# Dependency scan requirements (cdxgen)
$ sudo apt install -y npm openjdk-17-jdk maven gradle golang composer
$ sudo npm install -g @cyclonedx/cdxgen
# Application Inspector dependencies
$ sudo apt install -y dotnet-runtime-8.0
Asegúrese de que la versión de nodejs sea >= 20.X, de lo contrario cdxgen fallará.
Se requiere un servidor Redis para encolar los escaneos de seguridad. Instale el paquete
rediscon su gestor de paquetes de distribución favorito, luego:
$ redis-server
Establecer la variable de entorno FLASK_APP
$ export FLASK_APP=run.py
$ # Set up the DEBUG environment
$ # export FLASK_ENV=development
Iniciar el proceso del trabajador de celery
Cambie la concurrencia para aumentar el número de escaneos simultáneos
$ celery -A app.celery_worker.celery worker --pool=prefork --loglevel=info --detach --concurrency=1 -Q scans
Iniciar la aplicación (modo de desarrollo)
$ # --host=0.0.0.0 - expose the app on all network interfaces (default 127.0.0.1)
$ # --port=5000 - specify the app port (default 5000)
$ flask run --host=0.0.0.0 --port=5000
Acceder a grepmarx en el navegador: http://127.0.0.1:5000/
Grepmarx - Proporcionado por Orange Cyberdefense.