
Платформа статического анализа исходного кода для энтузиастов AppSec.

Grepmarx — это веб-приложение, предоставляющее единую платформу для быстрого понимания, анализа и выявления уязвимостей в больших и незнакомых кодовых базах.
Функции SAST (статический анализ безопасности):
Функции SCA (анализ состава программного обеспечения):
Дополнительно
| Настройка сканирования | Рабочая область анализа | Редактирование пакета правил |
|---|---|---|
![]() | ![]() | ![]() |
Grepmarx поставляется с конфигурацией для запуска в Docker и Gunicorn.
Убедитесь, что на системе установлен docker-compose и запущен демон Docker. Затем приложение можно легко запустить в контейнере Docker. Пошаговая инструкция:
Получить код
$ git clone https://github.com/Orange-Cyberdefense/grepmarx.git
$ cd grepmarx
Запустить приложение в Docker
$ sudo docker-compose pull && sudo docker-compose build && sudo docker-compose up -d
Откройте в браузере http://localhost:5000. Приложение должно заработать.
Gunicorn 'Green Unicorn' — это Python WSGI HTTP-сервер для UNIX. Предоставляется файл конфигурации supervisor для его запуска вместе с необходимым рабочим процессом Celery (используется для постановки в очередь сканирований безопасности).
Установка с помощью pip
$ pip install gunicorn supervisor
Запуск приложения через бинарник gunicorn
$ supervisord -c supervisord.conf
Откройте в браузере http://localhost:8001. Приложение должно заработать.
Для выполнения сканирования необходимо вручную добавить хотя бы одну запись в Administration/Repository. Вот несколько примеров репозиториев правил Semgrep/Opengrep, которые можно использовать:
https://github.com/opengrep/opengrep-rules: стандартная библиотека правил Opengrephttps://github.com/patched-codes/semgrep-rules: коллекция правил Semgrep с разрешительной лицензиейhttps://github.com/trailofbits/semgrep-rules: правила semgrep, разработанные Trail of Bitshttps://github.com/Decurity/semgrep-smart-contracts: правила semgrep для поиска паттернов уязвимостей в смарт-контрактахhttps://github.com/0xdea/semgrep-rules: правила semgrep от 0xdeahttps://github.com/mindedsecurity/semgrep-rules-android-security: правила Semgrep, полученные из OWASP MASTG специально для Android-приложенийhttps://github.com/akabe1/akabe1-semgrep-rules: коллекция пользовательских правил Semgrep от akabe1https://github.com/s0rcy/semgrep-rules: коллекция личных правил Semgrep от s0rcy для анализа безопасности и исследованийУбедитесь, что вы согласны и соблюдаете условия LICENSE-файла используемых репозиториев правил!
На этом этапе вам остаётся только создать пакеты правил (Rules Packs) в соответствии с вашими потребностями, а затем запустить сканирования.
Получить код
$ git clone https://github.com/Orange-Cyberdefense/grepmarx.git
$ cd grepmarx
Установить модули virtualenv
$ virtualenv env
$ source env/bin/activate
Установить Python-модули
$ # SQLite Database (Development)
$ pip3 install -r requirements.txt
$ # OR with PostgreSQL connector (Production)
$ # pip install -r requirements-pgsql.txt
Установить дополнительные зависимости
# Требования для сканирования зависимостей (cdxgen)
$ sudo apt install -y npm openjdk-17-jdk maven gradle golang composer
$ sudo npm install -g @cyclonedx/cdxgen
# Зависимости Application Inspector
$ sudo apt install -y dotnet-runtime-8.0
Убедитесь, что версия nodejs >= 20.X, иначе cdxgen не будет работать.
Для постановки сканирований безопасности в очередь требуется сервер Redis. Установите пакет
redisс помощью менеджера пакетов вашего дистрибутива, затем:
$ redis-server
Установите переменную окружения FLASK_APP
$ export FLASK_APP=run.py
$ # Настройка среды DEBUG
$ # export FLASK_ENV=development
Запустите рабочий процесс celery
Измените concurrency для увеличения количества одновременных сканирований
$ celery -A app.celery_worker.celery worker --pool=prefork --loglevel=info --detach --concurrency=1 -Q scans
Запустите приложение (режим разработки)
$ # --host=0.0.0.0 — открыть приложение на всех сетевых интерфейсах (по умолчанию 127.0.0.1)
$ # --port=5000 — указать порт приложения (по умолчанию 5000)
$ flask run --host=0.0.0.0 --port=5000
Откройте grepmarx в браузере: http://127.0.0.1:5000/
Grepmarx — предоставлено Orange Cyberdefense.