Závislosti
SAST vs SCA
SAST hledá chyby v kódu, který píše váš tým. SCA hledá známá rizika v kódu, na kterém váš tým závisí. Každý se dívá na jiný kód a zachytí jiné problémy, takže jeden nenahradí druhý.
Aktualizováno
Rozdíly na první pohled
| SAST | SCA | |
|---|---|---|
| Zkratka znamená | Statické testování bezpečnosti aplikací (static application security testing) | Analýza softwarového složení (software composition analysis) |
| Zkoumá | Váš vlastní zdrojový kód | Open source komponenty a komponenty třetích stran |
| Nachází | Injection, nebezpečné zpracování vstupů, nezabezpečené vzory | Známé zranitelnosti, problémy s licencemi, zastaralé balíčky |
| Spoléhá na | Pravidla nebo modely toho, jak vypadá špatný kód | Databáze zveřejněných bezpečnostních upozornění |
| Nález se objeví, když | Se změní váš kód | Se změní závislost nebo vyjde nové bezpečnostní upozornění |
| Typický šum | Falešně pozitivní nálezy v kódu, který je ve skutečnosti bezpečný | Skutečné shody, které se netýkají toho, jak balíček používáte |
| Oprava | Změňte svůj kód | Aktualizujte nebo nahraďte komponentu |
Co dělá SAST
Nástroj SAST čte zdrojový kód, aniž by ho spouštěl, a sleduje, jak jím proudí data. Pokud se uživatelský vstup dostane do databázového dotazu bez ošetření, nahlásí soubor a řádek. Protože pracuje s vaším kódem, dokáže najít chyby, které nikdo nikdy nezveřejnil. Je také zdrojem stížností na falešně pozitivní nálezy, protože uvažuje o tom, co by kód mohl dělat, ne o tom, co skutečně dělá.
Co dělá SCA
Sken SCA identifikuje komponenty v projektu a vyhledá je v datech o zranitelnostech a licencích. Neanalyzuje vaši logiku. Ví, že daná verze má zveřejněnou chybu, takže jeho výsledky jsou obvykle věcné, ale méně toho řekne o tom, zda je pro vás chyba podstatná, pokud nástroj nepřidá analýzu dosažitelnosti. Celkový obraz najdete v článku co je analýza softwarového složení.
Proč potřebujete obojí
Tato dvě selhání jsou na sobě nezávislá. Kódová základna bez jediného nálezu SAST může stále dodat zranitelnou závislost a čistý strom závislostí nevypovídá nic o SQL injection ve vašem vlastním handleru.
Liší se i načasování. Nález SAST se objeví, když někdo změní kód, takže většinu z nich zachytí check v pull requestu. Nález SCA se může objevit u vydání, které jste dodali před měsíci, v den, kdy vyjde nové bezpečnostní upozornění, aniž by cokoli spustil jakýkoli commit. SCA proto potřebuje něco, co průběžně kontroluje, co bylo dodáno.
Kam patří DAST
Dynamické testování bezpečnosti aplikací útočí na běžící aplikaci zvenčí, tak jako by to udělal skutečný útočník. Najde to, co se projeví až za běhu, například problémy s autentizací a konfigurací, aniž by četlo kód.
| SAST | SCA | DAST | |
|---|---|---|---|
| Potřebuje | Zdrojový kód | Manifesty, image nebo záznam buildu | Běžící aplikaci |
| Běží | V pull requestech | V pull requestech, v buildech a po vydání | Proti testovacímu prostředí |
| Nejlépe odhalí | Chyby ve vašem kódu | Známá rizika v závislostech | Chyby za běhu a v konfiguraci |
Co spustit jako první?
Pro většinu týmů SCA. Rychle se nastavuje, běží v řádu sekund až minut a pokrývá největší část toho, co dodáváte, protože většinu moderní aplikace tvoří závislosti. Jako další přidejte SAST do pull requestů a vylaďte ho na pravidla, která jsou důležitá pro váš stack. DAST přidejte, jakmile budete mít stabilní testovací prostředí, na které ho nasměrujete.
Koupit jednu platformu, nebo několik nástrojů?
Platformy jako Snyk, Checkmarx a GitHub Advanced Security spojují SAST a SCA, což znamená jednu smlouvu a jeden workflow. Samostatné nástroje mohou být v každé oblasti silnější. Důležitější jsou ale vstupy: oba typy skenerů pracují s tím, co je deklarováno nebo napsáno, a ani jeden nevidí, co build skutečně stáhl.
Co nepokrývá ani jeden
SAST i SCA čtou soubory. Ani jeden nesleduje build, takže kód stažený instalačním hookem, balíčky obnovené z cache CI a samotné nástroje buildu mohou zůstat mimo dohled. Právě o této mezeře je bezpečnost softwarového dodavatelského řetězce.
CRACI pokrývá tuto část a skenování kódu přenechává nástrojům, které jsou pro to stavěné. Záměrně nedělá SAST ani skenování tajných klíčů a spousta vynikajících nástrojů SAST funguje vedle něj. Je to runner pro GitHub Actions, který zaznamenává, co každý job stáhne, do SBOM a průběžně kontroluje SBOM dodaného softwaru proti novým zranitelnostem. Podívejte se na nejlepší nástroje SCA a kam vedle nich zapadá CRACI.
SAST vs SCA: časté dotazy
Jaký je rozdíl mezi SAST a SCA?
SAST analyzuje kód, který píše váš tým, a hledá v něm chyby, například injection. SCA analyzuje open source komponenty a komponenty třetích stran, na kterých závisíte, a hledá známé zranitelnosti a problémy s licencemi.
Nahrazuje SCA SAST?
Ne. Každý se dívá na jiný kód. SCA nenajde chybu ve vaší vlastní logice a SAST vám neřekne, že závislost má zveřejněnou zranitelnost.
Jaký je rozdíl mezi SAST, DAST a SCA?
SAST čte váš zdrojový kód. SCA kontroluje vaše závislosti. DAST testuje běžící aplikaci zvenčí. Každý najde problémy, které zbylé dva přehlédnou.
Je Snyk SAST, nebo SCA?
Obojí. Snyk začínal skenováním open source závislostí a nabízí také SAST spolu se skenováním kontejnerů a infrastruktury jako kódu.
Je SonarQube SAST, nebo SCA?
SonarQube je nejznámější statickou analýzou vašeho vlastního kódu, tedy SAST. Co dalšího obsahují, ověřte v aktuálních edicích.
Co je na řadě dřív, SAST, nebo SCA?
SCA bývá rychlejší výhrou, protože se snadno nastavuje a pokrývá největší část toho, co dodáváte. SAST vyžaduje více ladění, aby se udržel nízký počet falešně pozitivních nálezů.
Pokryjte, co vaše skenery nevidí
Ponechte si své nástroje SAST a SCA a přidejte záznam toho, co každý build v GitHub Actions skutečně stáhl.
Rezervujte si demo