Co je SAST?
SAST (Static Application Security Testing) je metoda testovani bezpecnosti aplikaci, ktera analyzuje zdrojovy kod, bytecode nebo binarni soubory bez nutnosti spoustet aplikaci. SAST nastroje hledaji bezpecnostni zranitelnosti a problemy v kodu jiz ve fazi vyvoje, coz umoznuje jejich vcasnou opravu za vyrazne nizsich nakladu.
Jak SAST funguje
SAST nastroje analyzuji zdrojovy kod pomoci kombinace statickych analytickych technik. Proces zahrnuje parsing kodu, vytvoreni abstraktniho syntaktickeho stromu (AST) a naslednou analýzu data flow a pattern matching proti znamym bezpecnostnim vzorum.
Analyza zdrojoveho kodu
SAST nastroj parsuje zdrojovy kod a vytvari abstraktni syntakticky strom (AST), ktery reprezentuje strukturu programu.
Data Flow Analysis
Nastroj sleduje tok dat v aplikaci a identifikuje cesty, kterymi mohou neduveryhodna data proniknout do citlivych funkci.
Pattern Matching
Porovnani kodu s databazi znamych bezpecnostnich vzoru a anti-patterns (napr. SQL injection, XSS, hardcoded secrets).
Generovani reportu
Vytvoreni detailniho reportu s nalezenymi zranitelnostmi, vcetne zavaznosti (CVSS score), umisteni v kodu a doporuceni k oprave.
Priklad: SQL Injection detekce
Popularni SAST Nastroje
SonarQube
Komplexni platforma pro code quality a security s podporou 27+ programovacich jazyku.
- Detailni dashboardy a metriky kvality kodu
- Quality Gates pro automaticke blokovani
- Integrace s GitHub, GitLab, Azure DevOps
- Community edition zdarma
Checkmarx SAST
Enterprise-grade SAST reseni s pokrocilou data flow analyzou a nizkym poctem false positives.
- Pokrocila data flow analyza
- Nizka mira false positives
- OWASP Top 10 a CWE/SANS Top 25 coverage
- Podpora pro compliance (PCI DSS, HIPAA)
Semgrep
Rychly a flexibilni SAST nastroj s podporou vlastnich pravidel a IaC scanningu.
- Velmi rychla analyza (10-100x rychlejsi)
- Snadne psani vlastnich pravidel
- Podpora pro IaC security scanning
- Free tier s core funkcionalitou
GitHub CodeQL
Semanticka analyza pomoci QL dotazu s nativni integraci do GitHub Actions.
- Semanticka analyza pomoci QL dotazu
- Nativni integrace s GitHub Actions
- Zdarma pro public repositories
- Pokrocile security queries
Veracode SAST
Cloud-based SAST s policy-based reporting a compliance certifications.
- Cloud-based analyza (bez instalace)
- Policy-based reporting
- Compliance certifications (NIST, OWASP)
- Managed service option
Snyk Code
Real-time scanning v IDE s AI-powered fix suggestions.
- Real-time scanning v IDE (VS Code, IntelliJ)
- AI-powered fix suggestions
- Developer-friendly UX
- Integrace s Snyk Open Source (SCA)
Integrace SAST do CI/CD Pipeline
GitLab CI/CD Pipeline
GitHub Actions Workflow
Best Practice: Security Gates
Nastavte quality gates v CI/CD pipeline, ktere automaticky zablouji deployment, pokud SAST nastroj najde zranitelnosti nad urcitou zavaznosti (napr. Critical nebo High).
Vyhody a Vyzvy SAST
Vyhody SAST
- Casna detekce: Zranitelnosti jsou odhaleny ve fazi vyvoje, ne az v produkci
- Nizke naklady na opravu: Oprava v dev fazi je 85% levnejsi nez v produkci
- 100% code coverage: SAST analyzuje cely kod, nejen bezne pouzivane cesty
- Automatizace: Scanning probiha automaticky pri kazdem commitu/merge
- Vzdelavani vyvojaru: Vyvojari se uci bezpecnemu programovani z reportu
- Compliance: Pomaha splnit regulatorni pozadavky (NIS2, PCI DSS, GDPR)
Vyzvy a Omezeni
- False positives: SAST muze hlasit zranitelnosti, ktere nejsou skutecne hrozby
- Konfigurace a tuning: Vyzaduje cas na spravne nastaveni pravidel
- Runtime zranitelnosti: SAST neohali problemy, ktere se projevi az za behu (k tomu slouzi DAST)
- Triage overhead: Vyvojari musi vyhodnotit a prioritizovat nalezy
- Legacy code: V starych codebases muze najit tisice issues najednou
SAST vs DAST
SAST (White-box): Analyzuje zdrojovy kod, najde vice zranitelnosti, ale generuje vice false positives.
DAST (Black-box): Testuje bezici aplikaci, najde runtime issues, ale ma limitovany coverage.
Nejlepsi pristup: Kombinace SAST + DAST + SCA = kompletni security testing.
Implementacni Pruvodce
Faze 1: Vyber nastroje
Vyberte SAST nastroj podle:
- Podporovanych programovacich jazyku
- Integrace s vasimi CI/CD nastroji
- Licencnich nakladu (open source vs commercial)
- Miry false positives (trial test na vasem kodu)
Faze 2: Pilot projekt
Zacnete s jednim projektem nebo tymem:
- Spustte baseline scan
- Vyreste kriticke a high severity issues
- Nastavte quality gates
- Zmerte metriky (pocet nalezu, cas na opravu)
Faze 3: Skalovani
Rozsirite na celou organizaci:
- Vytvorte centralni security team pro triage
- Nastavte SLA pro remediation (napr. Critical: 7 dni, High: 30 dni)
- Integrujte s ticketing systemem (Jira)
- Pravidelny reporting pro management
Faze 4: Optimalizace
Prubezne vylepsovani:
- Tuning pravidel pro snizeni false positives
- Vytvoreni vlastnich custom rules
- Developer training na secure coding
- Automatizace remediation pomoci auto-fix funkci