Co je SAST?
SAST (Static Application Security Testing) je metoda testování bezpečnosti aplikací, která analyzuje zdrojový kód, bytecode nebo binární soubory bez nutnosti spouštět aplikaci. SAST nástroje hledají bezpečnostní zranitelnosti a problémy v kódu již ve fázi vývoje.
🎯 Klíčová výhoda SAST
SAST umožňuje najít a opravit bezpečnostní zranitelnosti ještě před tím, než se kód dostane do produkce. To výrazně snižuje náklady na opravu a riziko bezpečnostních incidentů.
Jak SAST funguje
Analýza zdrojového kódu
SAST nástroj parsuje zdrojový kód a vytváří abstraktní syntaktický strom (AST), který reprezentuje strukturu programu.
Data Flow Analysis
Nástroj sleduje tok dat v aplikaci a identifikuje cesty, kterými mohou nedůvěryhodná data proniknout do citlivých funkcí.
Pattern Matching
Porovnání kódu s databází známých bezpečnostních vzorů a anti-patterns (např. SQL injection, XSS, hardcoded secrets).
Generování reportu
Vytvoření detailního reportu s nalezenými zranitelnostmi, včetně závažnosti (CVSS score), umístění v kódu a doporučení k opravě.
Příklad: SQL Injection detekce
Populární SAST Nástroje
SonarQube
Podporované jazyky: Java, C#, JavaScript, Python, PHP, Go, Kotlin, Ruby, Swift, a další (27+ jazyků)
Výhody:
- Detailní dashboardy a metriky kvality kódu
- Quality Gates pro automatické blokování
- Integrace s GitHub, GitLab, Azure DevOps
- Community edition zdarma
Checkmarx SAST
Podporované jazyky: 25+ jazyků včetně legacy (COBOL, PL/SQL)
Výhody:
- Pokročilá data flow analýza
- Nízká míra false positives
- OWASP Top 10 a CWE/SANS Top 25 coverage
- Podpora pro compliance (PCI DSS, HIPAA)
Semgrep
Podporované jazyky: 30+ jazyků včetně infrastructure (Terraform, Dockerfile)
Výhody:
- Velmi rychlá analýza (10-100x rychlejší)
- Snadné psaní vlastních pravidel
- Podpora pro IaC security scanning
- Free tier s core funkcionalitou
GitHub CodeQL
Podporované jazyky: C/C++, C#, Java, JavaScript, Python, Go, Ruby
Výhody:
- Sémantická analýza pomocí QL dotazů
- Nativní integrace s GitHub Actions
- Zdarma pro public repositories
- Pokročilé security queries
Veracode SAST
Podporované jazyky: 100+ frameworks and languages
Výhody:
- Cloud-based analýza (bez instalace)
- Policy-based reporting
- Compliance certifications (NIST, OWASP)
- Managed service option
Snyk Code
Podporované jazyky: JavaScript, TypeScript, Java, Python, Go, C#, PHP, Ruby, Swift, Scala
Výhody:
- 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
Příklad: GitLab CI/CD Pipeline
Příklad: GitHub Actions Workflow
💡 Best Practice: Security Gates
Nastavte quality gates v CI/CD pipeline, které automaticky zablokují deployment, pokud SAST nástroj najde zranitelnosti nad určitou závažností (např. Critical nebo High).
Výhody SAST
- Časná detekce: Zranitelnosti jsou odhaleny ve fázi vývoje, ne až v produkci
- Nízké náklady na opravu: Oprava v dev fázi je 85% levnější než v produkci
- 100% code coverage: SAST analyzuje celý kód, nejen běžně používané cesty
- Automatizace: Scanning probíhá automaticky při každém commitu/merge
- Vzdělávání vývojářů: Vývojáři se učí bezpečnému programování z reportů
- Compliance: Pomáhá splnit regulatorní požadavky (NIS2, PCI DSS, GDPR)
- Rychlost: Mnohem rychlejší než manuální code review
Výzvy a Omezení
- False positives: SAST může hlásit zranitelnosti, které nejsou skutečné hrozby
- Konfigurace a tuning: Vyžaduje čas na správné nastavení pravidel
- Runtime zranitelnosti: SAST neodhalí problémy, které se projeví až za běhu (k tomu slouží DAST)
- Triage overhead: Vývojáři musí vyhodnotit a prioritizovat nálezy
- Legacy code: V starých codebases může najít tisíce issues najednou
- Licenční náklady: Enterprise nástroje mohou být drahé
⚖️ SAST vs DAST
SAST (White-box): Analyzuje zdrojový kód, najde více zranitelností, ale generuje více false positives.
DAST (Black-box): Testuje běžící aplikaci, najde runtime issues, ale má limitovaný coverage.
Nejlepší přístup: Kombinace SAST + DAST + SCA = kompletní security testing.
Implementační Průvodce
Fáze 1: Výběr nástroje
Vyberte SAST nástroj podle:
- Podporovaných programovacích jazyků
- Integrace s vašimi CI/CD nástroji
- Licenčních nákladů (open source vs commercial)
- Míry false positives (trial test na vašem kódu)
Fáze 2: Pilot projekt
Začněte s jedním projektem nebo týmem:
- Spusťte baseline scan
- Vyřešte kritické a high severity issues
- Nastavte quality gates
- Změřte metriky (počet nálezů, čas na opravu)
Fáze 3: Škálování
Rozšiřte na celou organizaci:
- Vytvořte centrální security team pro triage
- Nastavte SLA pro remediation (např. Critical: 7 dní, High: 30 dní)
- Integrujte s ticketing systémem (Jira)
- Pravidelný reporting pro management
Fáze 4: Optimalizace
Průběžné vylepšování:
- Tuning pravidel pro snížení false positives
- Vytvoření vlastních custom rules
- Developer training na secure coding
- Automatizace remediation pomocí auto-fix funkcí
Související témata
Potřebujete pomoc s implementací SAST?
Pomůžeme vám vybrat správný nástroj, nastavit CI/CD integraci a vyškolit váš tým v secure coding practices.