Semgrep

Exploitation v1.171.0 · 22.07.2026 активный

Молниеносный статический анализатор кода с человекочитаемым синтаксисом правил (похож на сам код, а не на regex): находит реальные уязвимости и антипаттерны в десятках языков за секунды на кодовых базах любого размера. Используется огромным количеством компаний для проверки кода на лету, до продакшна.

v1.171.0
22.07.2026 current

Установка
# 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)" ... Semgrep logo

Сканирование кода с невероятной скоростью.

<a ... Homebrew <a ... PyPI <a ... Documentation <a ... Join Semgrep community Slack <a ... Issues welcome! <a ... Star Semgrep on GitHub <a ... Docker Pulls <a ... Docker Pulls (Old) <a ... Follow @semgrep on Twitter


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, так как она добавляет следующие критически важные возможности:

  1. Улучшенные возможности основного анализа (межфайловый, межфункциональный, достижимость потока данных), которые уменьшают ложные срабатывания на 25% и увеличивают обнаруженные истинные положительные результаты на 250%
  2. Контекстная постобработка результатов с помощью Semgrep Assistant (AI) для дальнейшего уменьшения шума на ... Кроме того, Assistant обогащает результаты пошаговыми рекомендациями по устранению, которые люди находят удобными для выполнения более 80% времени.
  3. Настраиваемые политики и беспрепятственное интеграция в рабочие процессы разработчиков, что позволяет командам безопасности точно управлять тем, где, когда и как различные результаты представляются разработчикам (IDE, комментарий к PR и т. д.)

Semgrep AppSec Platform работает «из коробки» с 20000+ проприетарными правилами по SAST, SCA и секретам. Pro-правила написаны и поддерживаются командой безопасности Semgrep и имеют высокую точность, что означает, что команды AppSec могут быть уверены в том, что результаты можно напрямую передавать разработчикам, не замедляя их работу.

Semgrep анализирует код локально на вашем компьютере или в среде сборки: по умолчанию код не загружается. Начать →.

<a ... Semgrep CLI image

Поддержка языков

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)

Для получения дополнительной информации см. Поддерживаемые ...

Начало работы 🚀

  1. [Из Semgrep AppSec ...
  2. Из Semgrep ... For new users, we recommend starting with the Semgrep AppSec Platform because it provides a visual interface, a demo project, result triaging and exploration workflows, and makes setup in CI/CD fast. Scans are still local and code isn't uploaded. Alternatively, you can also start with the CLI and navigate the terminal output to run one-off searches.

Option 1: Getting started from the Semgrep Appsec Platform (Recommended)

Semgrep platform image

  1. Register on semgrep.dev

  2. Explore the demo findings to learn how Semgrep works

  3. Scan your project by navigating to Projects > Scan New Project > Run scan in CI

  4. 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.

  5. [Optional] If you want to run Semgrep locally, follow the steps in the CLI section.

Notes:

If there are any issues, please ask for help in the Semgrep Slack.

Option 2: Getting started from the CLI

  1. 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 ```

  2. 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

  3. 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.

  4. 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

Semgrep Ecosystem

The Semgrep ecosystem includes the following:

  • Semgrep Community Edition - The open-source program analysis engine at the heart of everything. Suitable for ad-hoc use cases with a high tolerance for false positives - think consultants, security auditors, or pentesters.
  • 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 Code (SAST) - Make real progress on your vulnerability backlog with SAST that minimizes noise and empowers developers to quickly fix issues on their own, even if they have no security knowledge. Easy to deploy secure guardrails and tailored, step-by-step remediation guidance mean developers actually fix issues since they don't feel slowed down.
    • Semgrep Supply Chain (SSC) - A high-signal dependency scanner that detects reachable vulnerabilities in open source third-party libraries and functions.

Semgrep

  • Semgrep Secrets (Secrets) - Обнаружение секретов, использующее семантический анализ, улучшенный анализ энтропии и валидацию для точного выявления конфиденциальных учетных данных в рабочем процессе разработчика.
  • Semgrep Assistant - Assistant — это AI-инженер по информационной безопасности, который помогает как разработчикам, так и командам AppSec приоритезировать, классифицировать и устранять выявленные Semgrep на масштабе. Люди соглашаются с автоматическим принятием решений Assistant в 97% случаев, а руководства по устранению считают полезными в 80% случаев. Для обзора работы Assistant прочитайте это.
  • Semgrep MCP - Model Context Protocol сервер, который позволяет AI-ассистентам кодирования запускать сканирование Semgrep напрямую. Интегрируется с Cursor, VS Code, Windsurf, Claude Desktop и другими. Запустите semgrep mcp, чтобы запустить его локально.

    • Hooks - Автоматически запускайте сканирование Semgrep во время кодирования.
    • Skills / Prompts - Встроенные MCP-подсказки, такие как write_custom_semgrep_rule, помогают AI-ассистентам писать точные правила Semgrep.
    • Claude Code plugin - Доступен на официальном маркетплейсе и через репозиторий: /plugin marketplace add semgrep/mcp-marketplace
    • Cursor plugin - Доступен на официальном маркетплейсе и через репозиторий.

Дополнительные ресурсы:

  • Semgrep - Интерактивный онлайн-инструмент для написания и обмена правилами.
  • Semgrep - 2000+ правил, разработанных сообществом, охватывающих вопросы безопасности, корректности и уязвимостей зависимостей.

Присоединяйтесь к сотням тысяч других разработчиков и инженеров по безопасности, уже использующих Semgrep в компаниях, таких как GitLab, Dropbox, Slack, Figma, Shopify, HashiCorp, Snowflake и Trail of Bits.

Semgrep разрабатывается и коммерчески поддерживается Semgrep, Inc., software security.

Semgrep Rules

Правила Semgrep выглядят так же, как код, который вы уже пишете; без абстрактных синтаксических деревьев, борьбы с регулярными выражениями или болезненных DSL. Вот быстрое правило для поиска операторов print() в Python.

Запустите его онлайн в Playground Semgrep, нажав.

Semgrep rule example for finding Python print() statements

Примеры

Посетите Документация > Правила для примеров использования и идей.

| Использование | Правило 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 ...
  • [Справочник CLI и коды выхода ...
  • [Semgrep YouTube ...
  • [Лицензия ...
  • [Лицензирование ...

Обновление

Чтобы обновить, выполните команду ниже, связанную с тем, как вы установили 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
Войдите, чтобы оставить комментарий