Молниеносный статический анализатор кода с человекочитаемым синтаксисом правил (похож на сам код, а не на regex): находит реальные уязвимости и антипаттерны в десятках языков за секунды на кодовых базах любого размера. Используется огромным количеством компаний для проверки кода на лету, до продакшна.
Динамический инструментарий для анализа и модификации поведения запущенных процессов на Windows, macOS, Linux, iOS, Android и …
Продвинутый сканер XSS-уязвимостей с собственным парсером HTML и JavaScript. Генерирует умные пейлоады на основе анализа контекста …
CTF-фреймворк и библиотека для эксплуатации на Python. Упрощает взаимодействие с процессами и сокетами, ROP-цепочки, работу с …
Инструмент для тестирования, подделки и взлома JSON Web Tokens: проверяет уязвимые реализации (alg=none, слабый секрет, path …
# pipx (рекомендуется) pipx install semgrep # Homebrew (macOS/Linux) brew install semgrep # pip (в virtualenv) pip install semgrep semgrep --config auto /path/to/code semgrep --config "p/security-audit" .
<a ...
<source ... light)" ...
<source ... dark)" ...
<a ...
<a ...
<a ...
<a ...
<a ...
<a ...
<a ...
<a ...
<a ...
Semgrep — это быстрый, открытый инструмент статического анализа, который ищет код, находит ошибки и обеспечивает защиту от уязвимостей и стандарты кодирования. Semgrep поддерживает 30+ языков и может работать в IDE, как предварительная проверка перед коммитом, и как часть CI/CD-процессов.
Semgrep — это семантический grep для кода. В то время как grep "2" будет искать только строку 2, Semgrep [найдет x = 1; y = x + 1 при поиске ... Semgrep-правила выглядят так же, как код, который вы уже пишете; без абстрактных синтаксических деревьев, борьбы с регулярными выражениями или болезненных DSL.
Обратите внимание, что в контексте безопасности Semgrep Community Edition может пропускать многие истинные положительные результаты, так как он может анализировать код только в пределах одной функции или файла. Если вы хотите использовать Semgrep для целей безопасности (SAST, SCA или сканирование секретов), настоятельно рекомендуется использовать Semgrep AppSec Platform, так как она добавляет следующие критически важные возможности:
Semgrep AppSec Platform работает «из коробки» с 20000+ проприетарными правилами по SAST, SCA и секретам. Pro-правила написаны и поддерживаются командой безопасности Semgrep и имеют высокую точность, что означает, что команды AppSec могут быть уверены в том, что результаты можно напрямую передавать разработчикам, не замедляя их работу.
Semgrep анализирует код локально на вашем компьютере или в среде сборки: по умолчанию код не загружается. Начать →.
<a ...

Semgrep Code поддерживает 30+ языков, включая:
Apex · Bash · C · C++ · C# · Clojure · Dart · Dockerfile · Elixir · HTML · Go · Java · JavaScript · JSX · JSON · Julia · Jsonnet · Kotlin · Lisp · Lua · OCaml · PHP · Python · R · Ruby · Rust · Scala · Scheme · Solidity · Swift · Terraform · TypeScript · TSX · YAML · XML · Generic (ERB, Jinja, etc.)
Semgrep Supply Chain поддерживает 12 языков через 15 менеджеров пакетов, включая:
C# (NuGet) · Dart (Pub) · Go (Go modules, go mod) · Java (Gradle, Maven) · Javascript/Typescript (npm, Yarn, Yarn 2, Yarn 3, pnpm) · Kotlin (Gradle, Maven) · PHP (Composer) · Python (pip, pip-tool, Pipenv, Poetry) · Ruby (RubyGems) · Rust (Cargo) · Scala (Maven) · Swift (SwiftPM)
Для получения дополнительной информации см. Поддерживаемые ...
Register on semgrep.dev
Explore the demo findings to learn how Semgrep works
Scan your project by navigating to Projects > Scan New Project > Run scan in CI
Select your version control system and follow the onboarding steps to add your project. After this setup, Semgrep will scan your project after every pull request.
[Optional] If you want to run Semgrep locally, follow the steps in the CLI section.
If there are any issues, please ask for help in the Semgrep Slack.
Install Semgrep CLI
``` # For macOS $ brew install semgrep
# For Ubuntu/WSL/Linux/macOS $ python3 -m pip install semgrep
# To try Semgrep without installation run via Docker $ docker run -it -v "${PWD}:/src" semgrep/semgrep semgrep login $ docker run -e SEMGREP_APP_TOKEN= --rm -v "${PWD}:/src" semgrep/semgrep semgrep ci ```
Run semgrep login to create your account and login to Semgrep. This step is optional, but logging into Semgrep gets you access to:
- Semgrep Supply Chain: A dependency scanner that detects reachable vulnerabilities in third party libraries - Semgrep Code's Pro rules: 600+ high confidence rules written by Semgrep's security research team - Semgrep Code's Pro engine: An advanced code analysis engine, designed to detect complex vulnerabilities, and reduce false positives
Go to your app's root directory and run semgrep ci. This will scan your project to check for vulnerabilities in your source code and its dependencies.
Try writing your own query interactively with -e. For example, a check for Python == where the left and right hand sides are the same (potentially a bug):
$ semgrep -e '$X == $X' --lang=py path/to/src
The Semgrep ecosystem includes the following:
Semgrep AppSec Platform - Easily orchestrate and scale SAST, SCA, and Secrets scanning across an organization, with no risk of overwhelming developers. Customize which findings developers see, where they see them, and integrate with CI providers like GitHub, GitLab, CircleCI, and more. Includes both free and paid tiers.
Semgrep MCP - Model Context Protocol сервер, который позволяет AI-ассистентам кодирования запускать сканирование Semgrep напрямую. Интегрируется с Cursor, VS Code, Windsurf, Claude Desktop и другими. Запустите semgrep mcp, чтобы запустить его локально.
write_custom_semgrep_rule, помогают AI-ассистентам писать точные правила Semgrep./plugin marketplace add semgrep/mcp-marketplaceДополнительные ресурсы:
Присоединяйтесь к сотням тысяч других разработчиков и инженеров по безопасности, уже использующих Semgrep в компаниях, таких как GitLab, Dropbox, Slack, Figma, Shopify, HashiCorp, Snowflake и Trail of Bits.
Semgrep разрабатывается и коммерчески поддерживается Semgrep, Inc., software security.
Правила Semgrep выглядят так же, как код, который вы уже пишете; без абстрактных синтаксических деревьев, борьбы с регулярными выражениями или болезненных DSL. Вот быстрое правило для поиска операторов print() в Python.
Запустите его онлайн в Playground Semgrep, нажав.

Посетите Документация > Правила для примеров использования и идей.
| Использование | Правило Semgrep | | :---------------------------------- | ... | | Запрет опасных API | Запретить использование | | Поиск маршрутов и аутентификации | Извлечение Spring | | Применение безопасных настроек по умолчанию | Безопасная настройка Flask | | Внедрение вредоносных данных в точки уязвимости | ExpressJS dataflow into | | Соблюдение лучших практик проекта | Использовать assertEqual для == Всегда проверять subprocess | | Формализация знаний о проекте | Проверка транзакций перед их выполнением | | Аудит точек безопасности | Поиск XSS в Apache Жестко закодированные | | Аудит конфигурационных файлов | Поиск S3 ARN | | Миграция с устаревших API | DES устарел Устаревший Flask Устаревший Bokeh | | Автоматическое исправление | Использовать |
Посетите [Документация > ... чтобы узнать, как использовать Semgrep в вашем редакторе или pre-commit. При интеграции в CI и настройке для сканирования pull requests Semgrep будет сообщать только о проблемах, введенных этим pull request; это позволяет начать использование Semgrep без исправления или игнорирования существующих проблем!
Просмотрите полную [документацию Semgrep на ... Если вы новичок в Semgrep, посмотрите [Документация > Начало работы ... или [интерактивный ...
Использование удаленной конфигурации из ... (например, --config=p/ci) отправляет псевдонимные метрики правил на semgrep.dev.
При использовании конфигураций из локальных файлов (например, ... метрики отправляются только при входе пользователя в систему.
Чтобы отключить метрики правил Реестра, используйте --metrics=off.
[Политика конфиденциальности ... описывает принципы, которые руководят решениями по сбору данных, и разбор данных, которые собираются и не собираются, когда метрики включены.
Чтобы обновить, выполните команду ниже, связанную с тем, как вы установили Semgrep:
# Using Homebrew
$ brew upgrade semgrep
# Using pipx
$ pipx upgrade semgrep
# Using uv tool command
$ uv tool upgrade semgrep
# Using Docker
$ docker pull semgrep/semgrep:latest