
semgrep v1.171.0
Легковесный статический анализ для многих языков. Находите варианты ошибок с помощью паттернов, похожих на исходный код.
Сканирование кода с невероятной скоростью.
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, поскольку она добавляет следующие критические возможности:
- Улучшенные возможности основного анализа (межфайловый, межфункциональный, достижимость потока данных), которые значительно снижают количество ложных срабатываний на 25% и увеличивают количество обнаруженных истинных срабатываний на 250%
- Контекстная постобработка результатов с помощью Semgrep Assistant (ИИ) для дальнейшего снижения шума на ~20%. Кроме того, Assistant обогащает результаты индивидуальными пошаговыми инструкциями по устранению, которые люди считают действенными в >80% случаев.
- Настраиваемые политики и бесшовная интеграция в рабочие процессы разработчиков, предоставляющие командам безопасности детальный контроль над тем, где, когда и как различные результаты представляются разработчикам (IDE, комментарий к PR и т. д.)
Semgrep AppSec Platform работает «из коробки» с более чем 20 000 проприетарных правил для SAST, SCA и секретов. Pro-правила написаны и поддерживаются командой исследователей безопасности Semgrep и отличаются высокой точностью, что означает, что команды AppSec могут уверенно передавать результаты напрямую разработчикам, не замедляя их.
Semgrep анализирует код локально на вашем компьютере или в вашей среде сборки: по умолчанию код никогда не загружается. Начать →.
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.
Начало работы 🚀
Новым пользователям мы рекомендуем начать с Semgrep AppSec Platform, так как она предоставляет визуальный интерфейс, демо-проект, рабочие процессы триажа и исследования результатов, а также ускоряет настройку в CI/CD. Сканирование по-прежнему выполняется локально, и код не загружается. В качестве альтернативы вы также можете начать с CLI и перемещаться по выводу терминала для выполнения одноразовых поисков.
Вариант 1: Начало работы с платформой Semgrep AppSec (рекомендуется)
-
Зарегистрируйтесь на semgrep.dev
-
Изучите демонстрационные результаты, чтобы узнать, как работает Semgrep
-
Отсканируйте свой проект, перейдя в
Projects > Scan New Project > Run scan in CI -
Выберите вашу систему контроля версий и следуйте шагам адаптации для добавления проекта. После этой настройки Semgrep будет сканировать ваш проект после каждого pull request.
-
[Опционально] Если вы хотите запустить Semgrep локально, следуйте шагам в разделе CLI.
Примечания:
Если возникнут вопросы, обратитесь за помощью в Slack сообщества Semgrep.
Вариант 2: Начало работы с CLI
-
Установите 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 -
Запустите
semgrep login, чтобы создать учетную запись и войти в Semgrep. Этот шаг необязателен, но вход в Semgrep дает вам доступ к: