Eszközök/Biztonság és megfelelés
Semgrep: statikus elemzés, amely belefér egy pull requestbe
A Semgrep 30 nyelvet parse-ol, és YAML-mintákat illeszt másodpercek alatt; az engine LGPL-2.1 alatt ingyenes. A cross-file elemzés, a szabálykészletek és az AI-triage fizetős csomagban van.
- Típus
- Static analysis with AI rules
- Ár
- Free · from $30 per seat
Balázs Csorba··10 perc olvasás
- SAST
- Static analysis
- CI security
- Rule authoring
- AppSec

A lényeg röviden
- A Semgrep engine LGPL-2.1 alatt áll, és offline több mint 30 nyelvet szkennel; a cross-file elemzéshez proprietáris bináris és fiók kell.
- Az ingyenes csomag 10 közreműködőt és 10 privát repót fed le, a közreműködőket pedig gördülő 90 napos git logból számolja.
- 2024. december 13. óta a Semgrep által karbantartott szabályokon a Semgrep Rules License v1.0 érvényes, amely tiltja a továbbterjesztést és a szolgáltatásként használatot; az OpenGrep az LGPL fork, amely erre válaszol.
- A cross-file elemzés 5 GB memória vagy három óra után csendben fájlalapúra esik vissza, így egy nagy repó bukás nélkül veszít mélységből.
- Az AI Autofix találatonként 20 kreditet kér, miközben a Teams közreműködője havonta 20 kreditet kap, így az autofix a csomag legdrágább művelete.
A Semgrep mintaillesztésre épülő statikus elemző: a forráskódot szintaktikai fává parse-olja, majd minden helyet jelent, ahol egy YAML-szabály mintája erre a fára illeszkedik. Az engine LGPL-2.1 alatt nyílt forráskódú, hálózat nélkül fut a laptopon, és egy tipikus repót másodpercek alatt befejez. Az itt képviselt álláspont: ez a legolcsóbb hihető első SAST-eszköz, amelyet egy kis csapat CI-be tehet, az ingyenes csomag pedig jól megépített rámpa, nem kész termék, mert a zajt leginkább megszűnő elemzés, a mellékelt szabálykészletek és az AI-triage is belépés mögött ül.
A meglévő linterek és a security mérnököt igénylő nehéz szkennerek közé ül. Gyakorlatban a CodeQL-lel versenyez mélységben, a SonarQube-dzal a pull request kapujáért, a Snyk Code-dzal a fejlesztői élményért; a nyílt forráskódú OpenGrep fork a licencért versenyez. Leggyakrabban egy félig karbantartott grep-minták mappát vált le.
Mi ez
Parancssori szkenner plusz hosztolt platform. A parancssor végzi a munkát: megadod a célmappát és egy vagy több szabálykészletet, cserébe találatokat kapsz szabályazonosítóval, súlyossággal, üzenettel és a találat tartományával. A platform, Semgrep AppSec Platform néven, vezérlőpultot, szabályzatot, pull request kommenteket, Supply Chaint, titokkeresést és az AI-funkciókat ad hozzá. A platform alatti minden a Community Edition.
- Engine-licenc: LGPL-2.1; legújabb kiadás 1.179.0, 2026. október 1.
- Több mint 30 nyelv a Community Editionben, több mint 35 a Semgrep Codehoz
- Több mint 3 000 közösségi szabály, továbbá előtaggal hívható készletek, például
p/python - Ingyenes csomag: 10 közreműködő, 10 privát repo, havonta 60 AI-kredit
- Teams 30 dollártól közreműködőnként havonta, a Secrets 15 dollár
- A közreműködőket gördülő 90 napos ablakból, a git logból számolják
- A cross-file elemzéshez proprietáris bináris kell:
semgrep install-semgrep-pro
Hogyan működik
Minden nyelvhez van parser, túlnyomórészt tree-sitter alapú, amely a fájlt szintaktikai fává alakítja. A szabály egy ilyen fára írt minta, $X és $F metaváltozókkal, továbbá opcionális feltételekkel a patterns, pattern-not, metavariable-regex és a taint mode kulcsokban. Az illesztés szerkezeti, nem szöveges: a szóköz, az átnevezett változók és a sorba rendezett utasítások nem rejtik el a találatot, ezért a téves pozitív arány elég alacsony marad egy pull request kapuhoz.
A találatok szabályazonosítót, súlyosságot és üzenetet hordoznak, és soronként egy nosemgrep kommenttel, illetve szabályonként egy ignore bejegyzéssel elnémíthatók. A kimenet a terminálra, JSON-ba vagy SARIF-be kerül, ezt olvassák be a vezérlőpultok.
A döntő határ a kiterjedés. A Community Edition elemzése intraprocedurális: egyetlen függvényen belül gondolkodik. A függvények közötti és a fájlokon átívelő elemzés a Pro engine-en fut, amely külön bináris, és csak semgrep login, majd semgrep install-semgrep-pro után aktiválódik.
Első lépések
A CLI pip, pipx, uv vagy brew segíthetővel telepíthető; közösségi szabályokkal szkennelni nem kell fiók. A szabályfájl elég kicsi ahhoz, hogy a védett kód mellett lakjon.
# rules/no-pickle.yaml
rules:
- id: avoid-pickle-load
languages: [python]
severity: WARNING
message: |
pickle.load executes whatever is in the stream. Only feed it
bytes that never left this machine; use json.loads otherwise.
pattern: pickle.load($STREAM)Futtasd a semgrep scan --config rules/no-pickle.yaml src/ parancsot egy készlethez, a semgrep scan --config p/python src/-t registry előtaghoz, vagy a semgrep --config auto-t, hogy az eszköz a felismert nyelvekhez válasszon készletet. Tedd hozzá a --json vagy --sarif kapcsolót gépi olvasatú kimenethez, és a semgrep ci-t, amint a repo össze van kötve egy deployyal.
Árazás és a szabályok licence
Az engine ingyenes, az érdekes pénz körülötte van. Az október 2026-i árlista három csomagot sorol fel, az ingyenes pedig úgy van korlátozva, hogy a határ csak a tizenegyedik közreműködőnél látszik.
| Csomag | Ár | Korlátok | Mit nyit meg |
|---|---|---|---|
| Free | $0 | 10 közreműködő, 10 privát repo | Code és Supply Chain, havonta 60 AI-kredit |
| Teams | 30 dollártól közreműködőnként havonta | 500 privát repo | SSO, szerepalapú hozzáférés, Secrets 15 dollárért, fejenként 20 AI-kredit |
| Enterprise | Egyedi | Korlátlan repo és közreműködő | Helyben futó forráskódkezelés, saját CI, 50 AI-kredit, kapcsolattartó |
A licenc más kérdés, mint az ár. Az engine megmarad LGPL-2.1-nek, de 2024. december 13. óta a Semgrep által karbantartott szabályok a Semgrep Rules License v1.0 szerint érkeznek: belső, versenyt nem sértő használat megengedett, a továbbterjesztés és a szabályok szolgáltatásként kínálása nem. A tanácsadók és a belső használó cégek ezen belül maradnak, az ebből versengő SAST-terméket építő szállító nem. Ez a változás hozta létre az OpenGrepet, egy LGPL-2.1 forkot, amelyet az Aikido, az Endor Labs, a Jit és az Orca Security biztonsági cégekből álló konzorcium karbantart.
Az AI-funkciókat külön kreditben mérik, a költségek pedig nyilvánosak. A pull requesten lévő komment ingyenes, a triage találatonként egy kredit, az Autofix, amely javító pull requestet nyit, pedig húsz.
| AI-művelet | Kredit | Mit csinál |
|---|---|---|
| AI-komment a pull requesten | 0 | Útmutatás a PR-n |
| AI-elemzés találatonként | 1 találatonként | Triage, javítási útmutatás, komponens-címkézés |
| AI Autofix | 20 találatonként | Pull requestet nyit a javítással |
| AI-alapú detekciós szkennelés | Változó | A szkennelés méretétől és összetettségétől függ |
| Agentic Workflow futtatás | Változó | Többlépéses elemzés, több token, mint egy detekciós szkennelés |
CI-ben futtatva
A Semgrep abban szokatlan, hogy az ingyenes csomag valóban gyors, és ez megváltoztatja, mi éri meg a kaput. A nagy repókban a hibák a mélységről és a memóriáról szólnak, nem magáról a szkennelésről.
- A diff-aware szkennelés csak azt vizsgálja, amit a pull request érintett; a cross-file elemzés teljes szkennelésen fut, pull request szkennelésen soha.
- A cross-file elemzés egyszerű fájlalapúra esik vissza, ha a szkennelés átlépi a 5 GB memóriát vagy a három órát, így egy nagy repó csendben veszít a mélységből, ahelyett hogy elbukna.
- A monorepo-támogatás minden csomagban darabokra bontja a repót; a több gépes elosztott szkennelés a Teams-től indul.
- A join mode, az open engine egyetlen eszköze a szabályokon átívelő találat-összekapcsolásra, a dokumentáció szerint kísérleti, és nem gondozzák aktívan.
- A szabályok a registry-n keresztül oszthatók meg; a belső logikát a szervezetben tartó privát szabályokhoz Teams kell.
Hol csikorog
A plafon hamarabb jön, mint ahogy az árlista sejteti. A Community Edition csak egy függvényen belül gondolkodik, egy helperen átmenő szennyezett érték láthatatlan, amíg valaki nem fizet a Pro engine-ért, és a típusinferencia valamint a konstanspropagáció ugyanígy jár. A második határ a szabályminőség: meta változós feltétel nélküli általános minták elég zajt termelnek, hogy egy csapat megtanulja figyelmen kívül hagyni az eszközt, a szoros szabályok megírása pedig készség, amit a csapatnak meg kell szereznie. A harmadik a számtan: 30 dollár közreműködőnként havonta, egy gördülő 90 napos számlálóból a git logból, és mindenki számlázva van, aki abban az ablakban privát repóba commitolt, akár még a projekten van, akár nem.
| Eszköz | Elemzés mélysége | Szabályírás | Mennyibe kerül |
|---|---|---|---|
| Semgrep CE | Intraprocedurális, egyszerre egy függvény | Olvasható YAML-minták | Ingyenes engine, a Semgrep-szabályok csak belső használatra |
| CodeQL | Adatfolyam az egész adatbázison át | QL, valódi tanulási görbével rendelkező lekérdezésnyelv | Nyilvános repókhoz ingyenes, máshogy GitHub Code Security |
| SonarQube | Minőség plusz alapszintű security, taint csak fizetős csomagban | Egyéni szabályokhoz Java plugin kell | Community Build ingyenes, a fizetős csomagok gépenként |
| Snyk Code | Adatfolyam hosztolt engine-ben | Szállítói szabályok, kevés saját írnivaló | Fizetős, fejlesztőnként árazva |
Az erősebb változat: egy nyolc fős csapatnál a mélység kevésbé számít, mint az, hogy elolvassák. Egy olyan szabálykészletet, amit egy fejlesztő ért és YAML-ban bővíteni tud, alkalmazni fognak; egy olyan adatbázis-lekérdezési nyelvet, amire senkinek nincs ideje, nem. Amint a fenyegetési modell a szolgáltatáshatáron átívelő adatfolyam, a Semgrep CE nem tud választ adni, és a 30 dolláros csomag olcsóbb, mint a szabályok QL-re költöztetése.
Ítélet
Vidd alapértelmezett első szkennernek, nyitott szemmel arra nézve, hol ül a fizetős plafon.
- Az ingyenes Community Editiont használd, ha a cél egy működő security kapu a CI-ben egy héten belül, és a csapatban senki sem ír lekérdezésnyelvet.
- Fizess a Teamsért, ha az egyetlen függvényes elemzés olyan találatokat ad, amiken a fejlesztők vitatkoznak, és az SSO, a vezérlőpult és a privát szabályok követelménnyé váltak.
- Ne kezeld 30 dollárnak az árat: 30 dollár közreműködőnként havonta, gördülő 90 napos számlálón, a korlátlan repo, a helyben futó forráskódkezelés és a saját CI-integráció pedig az Enterpriseban van.
- Válaszd a CodeQL-t, ha arról van szó, hogyan ér el az adat egy sinket lefordított kódban, a SonarQube-ot pedig, ha a kapu a karbantarthatóságról is szól, nem csak a biztonságról.
- Ha a szabályokat tovább kell adni vagy szolgáltatásként kínálni, csak a Semgrep-szabálykészletek nélküli engine vagy az OpenGrep olyan megoldás, amelyhez nem kell egyeztetni a szállítóval.
Források
Gyakori kérdések
A Semgrep ingyenesen használható produkcióban?
Az engine LGPL-2.1 alatt ingyenes, a CLI pedig fiók nélkül fut. A hosztolt ingyenes csomag 10 közreműködőig és 10 privát repóig terjed, afölött a Teams 30 dollártól indul közreműködőnként havonta. A Semgrep által karbantartott szabályok csak belső, versenyt nem sértő használatra ingyenesek.
Mi a különbség a Community Edition és a Pro engine között?
A Community Edition elemzése intraprocedurális, vagyis egyetlen függvényen belül gondolkodik. A Pro engine hozzáadja a függvények közötti elemzést, amit a Semgrep Code alapból futtat, és az opcionális fájlokon átívelő elemzést. Külön bináris, amely a semgrep login után semgrep install-semgrep-pro segítségével települ.
Mennyire pontos a Semgrep?
Nincs közzétett pontossági szám, ezért a becsületes válasz szerkezeti: az illesztés szintaktikai fán történik, így egy találat vagy pontos mintailleszkedés, vagy túl lazán írt szabály. A gyakorlati zaj legnagyobb része a meta változós feltétel nélküli szabályokból jön, nem az engine-ből.
A Semgrep felküldi a forráskódot a felhőbe?
Helyben vagy teljesen a saját CI-ben futtatva a forráskód marad; a szolgáltatásba csak szkennelési metaadatok mennek. Az AI-funkciók a találatot tartalmazó fájlt adják át egy modellnek, a Managed Scan pedig a szkennelés idejére klónozza a repót, és utána törli a klónt.