История о том как semgrep лицензию поменяли
Владимир Карманов и Александр МареевЧто такое Semgrep и кто им пользуется
Semgrep — «семантический grep» для кода. Инструмент статического анализа (SAST), который ищет уязвимости по шаблонам, написанным «как обычный код», работая с собственным шаблонным сопоставлением AST.
На 23 июня 2025 г. репозиторий https://github.com/semgrep/semgrep имеет ≈ 11,9 k ⭐ и 700+ форков, а сам README перечисляет компании-пользователи (GitLab, Dropbox, Slack, Figma, Shopify и др.).
Хронология событий
13 декабря 2024 Пост в блоге “Important updates to Semgrep OSS”.
Одновременно Semgrep объявил, что OSS-версия теперь называется Semgrep Community Edition (CE). Лицензия движка осталась LGPL 2.1. А все правила, созданные Semgrep Inc., переведены на новую Semgrep Rules License v1.0 с Commons Clause, запрещающую их использование в конкурирующих SaaS-сервисах (grace-period до 31 января 2025). Также несколько экспериментальных функций и метаданных JSON/SARIF стали доступны лишь в коммерческой Pro версии.
январь 2025 Часть вендоров (Amplify, Jit, Aikido и др.) объявляют форк Opengrep.
Мотивация — закрепить полностью open-source модель и вернуть «отключённый» функционал.
январь 2025 Выходят публикации-разборы
Josh Grossman и Crash Override подчёркивают, что движок Semgrep не закрыли; вопросы вызывает новая лицензия для правил и требование логина для ряда фич.
Ключевой факт: исходный код движка Semgrep по-прежнему LGPL 2.1. — это формально сохраняет его open-source статус. Однако ключевые изменения коснулись лицензии на официальные правила, что уже сейчас осложняет использование Semgrep CE как встроенного компонента в вендорский продукт — ограничения касаются распространения правил в конкурирующих облачных сервисах. При этом возникают опасения, что Semgrep может со временем превратиться из полноценного open-source проекта в типичный Community Edition — с ограниченным доступом к функциональности и без гарантированного доступа к исходникам всего набора компонентов.
Что именно «ушло за paywall»
- Подсчёт LOC, fingerprinting, ignore-tracking, метапеременные (
$AUTHOR,$FILENAME) — теперь требует авторизации. - Часть полей SARIF/JSON (служебная телеметрия).
- Экспериментальные фичи (multilanguage scan, data-flow V2).
Реакция сообщества
- Дискуссии на Reddit / LinkedIn. Спор «open-core vs open-source» еще раз поднял извечную тему о прекрасном для AppSec-рынка — зависимость от вендора.
- DeepSource на этих новостях ускорили разработку сканера Globstar и в январе выпустили первую версию;
- Появился форк Opengrep, на него мы обратили особое внимание, об этом далее.
Opengrep
В результате всего вышеперечисленного родился Opengrep — независимый форк Semgrep CE, который финансируют девять AppSec-вендоров (Aikido, Amplify, Arnica, Endor Labs, Jit, Kodem, Legit, Mobb и Orca). Проект сохраняет 100% открытость и старую лицензию правил. Цель команды — передать движок в нейтральное сообщество и исключить ситуацию, когда один вендор может все изменить.

Отличия Opengrep от Semgrep
Мы в свою очередь успели протестировать Opengrep еще в апреле и вот результаты:
- Opengrep и его правила распространяются под лицензией LGPL-2.1, что предоставляет возможность использования стандартных правил в контексте SaaS и внутреннего тестирования других компаний, в отличие от Semgrep после изменения своей лицензии
- Убранные из SARIF поля fingerprint и metavars были возвращены
- Локальный playground
- Репозиторий с комьюнити правилами
Стоит отметить, что в оригинальном проекте Semgrep, по данным публичного roadmap большая часть усилий команды сосредоточена на разработке платной версии движка — Semgrep Pro engine, доступ к которой находится за пэйволлом.
Playground
Web-playground Semgrep поддерживает live-share и rule-builder; локальный Opengrep-playground пока без этих функций в остальном среда для тестирования правил по функционалу совпадает с оригиналом от Semgrep.

Полезные флаги
--dump-ast If --dump-ast, shows AST of the input file or passed expression and then exit (can use --json). --error Exit 1 if there are findings. Useful for CI and scripts. --json Output results in Opengrep's JSON format. -q, --quiet Only output findings. --sarif Output results in SARIF format. --test Run test suite. --test-ignore-todo If --test-ignore-todo, ignores rules marked as '#todoruleid:' in test files. --text Output results in text format. --output-enclosing-context that can be added to the scan command, adding information about the surrounding context of the matched fragments of code, such as the innermost function and/or class in which the match occurs. This is only available for json output, so the --jsonflag must also be passed, and it's an experimental feature so it also requires --experimental.
Замеченные недостатки в сканировании
- Не видит кроссфайловые обращения (это обещают добавить в ближайшем будущем)
- Не отслеживает реальный граф вызовов
- Не справляется с непрямыми вызовами
Какие планы в сообществе на Opengrep
Сообщество проводит открытые roadmap сессии для определения приоритетов на ближайший цикл разработки. Так по итогам открытого голосования участников сообщества и вовлечённых компаний сформировался следующий набор задач:

Сегодня Opengrep уже закрывает ключевой функционал Semgrep CE для CI, а дорожная карта проекта обещает то, чего в CE можно больше не ждать.
Лицензия любого «открытого» инструмента — такой же риск, как и его баги, поэтому к ней нужно относиться как к зависимости, которую могут внезапно поменять. Хоть проекты под защитой фондов (ASF, CNCF) меняют лицензию крайне редко, история с Semgrep, продуктами Hashicorp и ElasticSearch показала, что одним утром работающий инструмент может превратиться в экстренный аудит лицензий и миграции на форки.
Вывод простой: прежде чем встраивать open-source решения в свой процесс, заранее продумайте, что будете делать, если завтра его условия использования изменятся. Закладывайте «план Б»: готовый Helm-chart/контейнер с форком, чек-лист миграции и резервный бюджет на случай если нет альтернатив — тогда перемена лицензии станет лишь операционной задачей, а не пожаром.
Забавный факт — сообщество Opengrep считает трудозатраты в футболках

Ссылки на источники
Semgrep
- Semgrep blog - Важные обновления Semgrep OSS (13.12.2024)
- Amplify - Анонс Opengrep: форк Semgrep (23.01.2025)
- Aikido blog - Почему мы форкнули Semgrep (23.01.2025)
- Josh Grossman - Что произошло с (Sem|open)grep? (28.01.2025)
- Crash Override - Opengrep - Индустрия безопасности заслуживает лучшего (29.01.2025)
- Robert Lemos - Девять разработчиков инструментов для обеспечения безопасности приложений объединились, чтобы запустить аналог Semgrep (31.01.2025)
- Semgrep - Официальное сравнение с Opengrep (28.02.2025)
Opengrep
- Манифест Opengrep
- Opengrep на GitHub
- Запись roadmap сессии
- Дискуссии на reddit - Причины форка, сравнение лицензий, риски vendor-lock-in
- Linkedin - Pramod Gosavi «Не приведёт ли разрастание форков к фрагментации AppSec-рынка»
Globstar от DeepSource
- Deepsource выпускает Globstar на фоне негативной реакции на лицензирование Semgrep
- Globstar на GitHub