Инструмент статического анализа с открытым исходным кодом, который выполняет поиск в коде, находит ошибки и обеспечивает соблюдение безопасных ограничений и стандартов кодирования. Semgrep поддерживает более 30 языков и может работать в интегрированной среде разработки, в качестве проверки перед коммитом и в рамках рабочих процессов CI/CD.
🍏🖥 Установка:
# For macOS
brew install semgrep
# For Ubuntu/WSL/Linux/macOS
python3 -m pip install semgrep
Для запуска в автоматическом режиме необходимо перейти в корневой каталог проекта и использовать команду:
semgrep --config "auto". Параметр config отвечает за выбор правил для сканирования. В режиме auto используются все публичные правила и сканирование начинается с текущей директории.📋 Так же есть готовые наборы правил для проверки под разные задачи:
semgrep --config p/python
semgrep --config p/owasp-top-ten
semgrep --config p/cwe-top-25
Через параметр --exclude в командной строке можно исключить файлы или директории, которым не требуется сканирование.
🆒 Правила для Semgrep пишутся в формате YAML, что упрощает их создание и настройку. Можно использовать уже готовые правила, а можно создавать собственные. Пример использования кастомного правила для поиска операторов Python print():
Сохраняем этот файл с именем no_print.yaml и запускаем утилиту:
semgrep --config no_print.yaml <путь_к_коду>
