Назад к обновлениям
New releaseJul 24, 2026

semgrep v1.171.0

Легковесный статический анализ для многих языков. Находите варианты ошибок с помощью паттернов, похожих на исходный код.

Поделиться

Semgrep logo

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

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


Semgrep — это быстрый инструмент статического анализа с открытым исходным кодом, который ищет код, находит ошибки и обеспечивает соблюдение защитных барьеров и стандартов кодирования. Semgrep поддерживает более 30 языков и может запускаться в IDE, как проверка pre-commit и как часть процессов CI/CD.

Semgrep — это семантический grep для кода. В то время как запуск grep "2" найдет только точную строку 2, Semgrep найдет x = 1; y = x + 1 при поиске 2. Правила Semgrep выглядят как код, который вы уже пишете; никаких абстрактных синтаксических деревьев, борьбы с регулярными выражениями или болезненных DSL.

Обратите внимание, что в контексте безопасности Semgrep Community Edition пропустит много истинных срабатываний, так как может анализировать код только в пределах одной функции или файла. Если вы хотите использовать Semgrep для целей безопасности (SAST, SCA или сканирования секретов), настоятельно рекомендуется использовать Semgrep AppSec Platform, поскольку она добавляет следующие критические возможности:

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

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

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

Изображение Semgrep CLI

Language support

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 и т.д.)

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)

Для получения дополнительной информации см. Supported languages.

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

  1. С платформы Semgrep AppSec
  2. Из CLI

Новым пользователям мы рекомендуем начать с Semgrep AppSec Platform, так как она предоставляет визуальный интерфейс, демо-проект, рабочие процессы триажа и исследования результатов, а также ускоряет настройку в CI/CD. Сканирование по-прежнему выполняется локально, и код не загружается. В качестве альтернативы вы также можете начать с CLI и перемещаться по выводу терминала для выполнения одноразовых поисков.

Вариант 1: Начало работы с платформой Semgrep AppSec (рекомендуется)

Изображение платформы Semgrep

  1. Зарегистрируйтесь на semgrep.dev

  2. Изучите демонстрационные результаты, чтобы узнать, как работает Semgrep

  3. Отсканируйте свой проект, перейдя в Projects > Scan New Project > Run scan in CI

  4. Выберите вашу систему контроля версий и следуйте шагам адаптации для добавления проекта. После этой настройки Semgrep будет сканировать ваш проект после каждого pull request.

  5. [Опционально] Если вы хотите запустить Semgrep локально, следуйте шагам в разделе CLI.

Примечания:

Если возникнут вопросы, обратитесь за помощью в Slack сообщества Semgrep.

Вариант 2: Начало работы с CLI

  1. Установите 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=<TOKEN> --rm -v "${PWD}:/src" semgrep/semgrep semgrep ci
    
  2. Запустите semgrep login, чтобы создать учетную запись и войти в Semgrep. Этот шаг необязателен, но вход в Semgrep дает вам доступ к:

Категории