
Una piattaforma di analisi statica del codice sorgente per appassionati di AppSec.

Grepmarx è un'applicazione web che fornisce una piattaforma unica per comprendere, analizzare e identificare rapidamente le vulnerabilità in basi di codice potenzialmente grandi e sconosciute.
Capacità SAST (Static Analysis Security Testing):
Capacità SCA (Software Composition Analysis):
Extra
| Personalizzazione scansione | Workbench di analisi | Edizione pacchetto regole |
|---|---|---|
![]() | ![]() | ![]() |
Grepmarx è fornito con una configurazione per essere eseguito in Docker e Gunicorn.
Assicurati di avere docker-compose installato sul sistema e che il demone docker sia in esecuzione. L'applicazione può quindi essere facilmente eseguita in un contenitore docker. I passaggi:
Ottieni il codice
$ git clone https://github.com/Orange-Cyberdefense/grepmarx.git
$ cd grepmarx
Avvia l'app in Docker
$ sudo docker-compose pull && sudo docker-compose build && sudo docker-compose up -d
Visita http://localhost:5000 nel tuo browser. L'app dovrebbe essere attiva e funzionante.
Gunicorn 'Green Unicorn' è un server HTTP WSGI Python per UNIX. Viene fornito un file di configurazione supervisor per avviarlo insieme al worker Celery richiesto (usato per l'accodamento delle scansioni di sicurezza).
Installa usando pip
$ pip install gunicorn supervisor
Avvia l'app usando il binario gunicorn
$ supervisord -c supervisord.conf
Visita http://localhost:8001 nel tuo browser. L'app dovrebbe essere attiva e funzionante.
Per eseguire una scansione dovrai aggiungere manualmente almeno una voce in Administration/Repository. Ecco alcuni esempi di repository di regole Semgrep/Opengrep che possono essere utilizzati:
https://github.com/opengrep/opengrep-rules: la libreria standard per le regole Opengrephttps://github.com/patched-codes/semgrep-rules: una raccolta di regole Semgrep con licenza permissivahttps://github.com/trailofbits/semgrep-rules: regole semgrep sviluppate da Trail of Bitshttps://github.com/Decurity/semgrep-smart-contracts: regole semgrep che cercano pattern di vulnerabilità negli smart contracthttps://github.com/0xdea/semgrep-rules: regole semgrep di 0xdeahttps://github.com/mindedsecurity/semgrep-rules-android-security: Regole Semgrep derivate da OWASP MASTG specificamente per applicazioni Androidhttps://github.com/akabe1/akabe1-semgrep-rules: raccolta di regole Semgrep personalizzate di akabe1https://github.com/s0rcy/semgrep-rules: raccolta di regole Semgrep personali di s0rcy per analisi e ricerca sulla sicurezzaAssicurati di accettare e rispettare il file LICENSE dei repository di regole che utilizzi!
A questo punto, tutto ciò che devi fare è creare Pacchetti di Regole secondo le tue esigenze e poi avviare le scansioni.
Ottieni il codice
$ git clone https://github.com/Orange-Cyberdefense/grepmarx.git
$ cd grepmarx
Installa i moduli virtualenv
$ virtualenv env
$ source env/bin/activate
Installa i moduli Python
$ # SQLite Database (Development)
$ pip3 install -r requirements.txt
$ # OR with PostgreSQL connector (Production)
$ # pip install -r requirements-pgsql.txt
Installa requisiti aggiuntivi
# 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
Assicurati che la versione di nodejs sia >= 20.X, altrimenti cdxgen fallirà.
È richiesto un server Redis per accodare le scansioni di sicurezza. Installa il pacchetto
rediscon il gestore pacchetti della tua distribuzione preferita, poi:
$ redis-server
Imposta la variabile d'ambiente FLASK_APP
$ export FLASK_APP=run.py
$ # Set up the DEBUG environment
$ # export FLASK_ENV=development
Avvia il processo worker celery
Modifica la concorrenza per aumentare il numero di scansioni simultanee
$ celery -A app.celery_worker.celery worker --pool=prefork --loglevel=info --detach --concurrency=1 -Q scans
Avvia l'applicazione (modalità sviluppo)
$ # --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
Accedi a grepmarx nel browser: http://127.0.0.1:5000/
Grepmarx - Fornito da Orange Cyberdefense