
Une plateforme d'analyse statique de code source pour les passionnés de sécurité applicative (AppSec).

Grepmarx est une application web offrant une plateforme unique pour comprendre, analyser et identifier rapidement les vulnérabilités dans des bases de code potentiellement vastes et inconnues.
Capacités SAST (Analyse Statique de Sécurité) :
Capacités SCA (Analyse de Composition Logicielle) :
Supplément
| Personnalisation du scan | Atelier d'analyse | Édition de packs de règles |
|---|---|---|
![]() | ![]() | ![]() |
Grepmarx est fourni avec une configuration pour être exécuté dans Docker et Gunicorn.
Assurez-vous que docker-composer est installé sur le système et que le démon Docker est en cours d'exécution. L'application peut ensuite être facilement exécutée dans un conteneur Docker. Les étapes :
Récupérer le code
$ git clone https://github.com/Orange-Cyberdefense/grepmarx.git
$ cd grepmarx
Démarrer l'application dans Docker
$ sudo docker-compose pull && sudo docker-compose build && sudo docker-compose up -d
Rendez-vous sur http://localhost:5000 dans votre navigateur. L'application devrait être opérationnelle.
Gunicorn 'Green Unicorn' est un serveur HTTP WSGI Python pour UNIX. Un fichier de configuration supervisor est fourni pour le démarrer avec le worker Celery requis (utilisé pour la mise en file d'attente des scans de sécurité).
Installation avec pip
$ pip install gunicorn supervisor
Démarrer l'application avec le binaire gunicorn
$ supervisord -c supervisord.conf
Rendez-vous sur http://localhost:8001 dans votre navigateur. L'application devrait être opérationnelle.
Afin d'effectuer un scan, vous devrez ajouter manuellement au moins une entrée dans Administration/Repository. Voici quelques exemples de dépôts de règles Semgrep/Opengrep qui peuvent être utilisés :
https://github.com/opengrep/opengrep-rules : la bibliothèque standard pour les règles Opengrephttps://github.com/patched-codes/semgrep-rules : une collection de règles Semgrep sous licence permissivehttps://github.com/trailofbits/semgrep-rules : règles Semgrep développées par Trail of Bitshttps://github.com/Decurity/semgrep-smart-contracts : règles Semgrep recherchant des motifs de vulnérabilités dans les contrats intelligentshttps://github.com/0xdea/semgrep-rules : règles Semgrep par 0xdeahttps://github.com/mindedsecurity/semgrep-rules-android-security : règles Semgrep dérivées de l'OWASP MASTG spécifiquement pour les applications Androidhttps://github.com/akabe1/akabe1-semgrep-rules : collection de règles Semgrep personnalisées d'akabe1https://github.com/s0rcy/semgrep-rules : collection de règles Semgrep personnelles de s0rcy pour l'analyse de sécurité et la rechercheAssurez-vous d'accepter et de respecter le fichier LICENSE des dépôts de règles que vous utilisez !
À ce stade, il vous suffit de créer des packs de règles selon vos besoins, puis de lancer vos scans.
Récupérer le code
$ git clone https://github.com/Orange-Cyberdefense/grepmarx.git
$ cd grepmarx
Installer les modules virtualenv
$ virtualenv env
$ source env/bin/activate
Installer les modules Python
$ # SQLite Database (Development)
$ pip3 install -r requirements.txt
$ # OR with PostgreSQL connector (Production)
$ # pip install -r requirements-pgsql.txt
Installer les dépendances supplémentaires
# 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
Assurez-vous que la version de nodejs est >= 20.X, sinon cdxgen échouera.
Un serveur Redis est nécessaire pour mettre en file d'attente les scans de sécurité. Installez le paquet
redisavec votre gestionnaire de paquets préféré, puis :
$ redis-server
Définir la variable d'environnement FLASK_APP
$ export FLASK_APP=run.py
$ # Set up the DEBUG environment
$ # export FLASK_ENV=development
Démarrer le processus worker celery
Modifiez la concurrence pour augmenter le nombre de scans simultanés
$ celery -A app.celery_worker.celery worker --pool=prefork --loglevel=info --detach --concurrency=1 -Q scans
Démarrer l'application (mode développement)
$ # --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
Accéder à grepmarx dans le navigateur : http://127.0.0.1:5000/
Grepmarx - Fourni par Orange Cyberdefense.