Bezpečnost5 min čtení

SAST: statická analýza bezpečnosti

Automatická detekce bezpečnostních zranitelností přímo ve zdrojovém kódu: najdete a opravíte problémy dřív, než se dostanou do produkce.

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, aniž by bylo nutné aplikaci spouštět. SAST nástroje hledají bezpečnostní zranitelnosti a chyby v kódu už ve fázi vývoje, což umožňuje opravit je dřív, než se dostanou do produkce.

#1 Cross-site scripting (CWE-79) v CWE Top 25 2025
#2 SQL injection (CWE-89) v CWE Top 25 2025
24/7 Průběžná automatická kontrola

Jak SAST funguje

SAST nástroje analyzují zdrojový kód kombinací statických analytických technik. Proces zahrnuje parsing kódu, vytvoření abstraktního syntaktického stromu (AST) a následnou analýzu data flow a pattern matching proti známým bezpečnostním vzorům.

1

Analýza zdrojového kódu

SAST nástroj parsuje zdrojový kód a vytváří abstraktní syntaktický strom (AST), který reprezentuje strukturu programu.

2

Data Flow Analysis

Nástroj sleduje tok dat v aplikaci a hledá cesty, kterými se mohou nedůvěryhodná data dostat do citlivých funkcí.

3

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).

4

Generování reportu

Vytvoření detailního reportu s nalezenými zranitelnostmi, včetně závažnosti, klasifikace CWE, umístění v kódu a doporučení k opravě.

Příklad: detekce SQL injection

// Zranitelný kód: SAST by toto odhalil String query = "SELECT * FROM users WHERE username = '" + userInput + "'"; Statement stmt = connection.createStatement(); ResultSet rs = stmt.executeQuery(query); // SQL Injection risk! // Bezpečný kód: parametrizovaný dotaz String query = "SELECT * FROM users WHERE username = ?"; PreparedStatement stmt = connection.prepareStatement(query); stmt.setString(1, userInput); // Safe - parametrized ResultSet rs = stmt.executeQuery();

Populární SAST nástroje

Open Source

SonarQube

Platforma pro kvalitu a bezpečnost kódu. Bezplatná Community Build podle dokumentace analyzuje 22 jazyků, další (např. C/C++, COBOL) jsou v placených edicích SonarQube Server a Cloud.

  • Detailní dashboardy a metriky kvality kódu
  • Quality Gates pro automatické blokování
  • Integrace s GitHub, GitLab, Azure DevOps
  • SonarQube Community Build zdarma
Enterprise

Checkmarx SAST

Enterprise SAST, součást platformy Checkmarx One. Pro on-premise provoz je k dispozici CxSAST.

  • Pokročilá data flow analýza
  • Cloud (Checkmarx One) i on-premise (CxSAST)
  • Java, C#, Go, Python, COBOL, PL/SQL a další jazyky
  • Certifikace SOC 2 Type II a ISO/IEC 27001
Open Source

Semgrep

Rychlý a flexibilní SAST nástroj s podporou vlastních pravidel a IaC scanningu. Open source jádro se jmenuje Semgrep Community Edition (CE).

  • Výstup přímo ve formátu GitLab SAST (--gitlab-sast)
  • Snadné psaní vlastních pravidel
  • Podpora pro IaC security scanning
  • Semgrep CE zdarma pod licencí LGPL-2.1
GitHub Native

GitHub CodeQL

Sémantická analýza pomocí QL dotazů s nativní integrací do GitHub Actions.

  • Sémantická analýza pomocí QL dotazů
  • Nativní integrace s GitHub Actions
  • Zdarma pro veřejné repozitáře, pro privátní je nutná GitHub Code Security (plán Team nebo Enterprise)
  • Copilot Autofix navrhuje opravy nálezů
Enterprise

Veracode SAST

SAST služba, která skenuje zdrojový kód i zkompilované binárky, takže zvládne i kód třetích stran bez zdrojových souborů.

  • Source, binary i hybridní skenování
  • Policy-based reporting
  • Policy kontroly přímo v CI/CD buildu
  • AI remediace Veracode Fix
Developer-First

Snyk Code

Skenování přímo v IDE s automatickými opravami Snyk Agent Fix (dříve DeepCode AI Fix).

  • Pluginy pro VS Code, Visual Studio a JetBrains IDE
  • Snyk Agent Fix navrhuje opravy nálezů
  • Developer-friendly UX
  • Integrace se Snyk Open Source (SCA)

Integrace SAST do CI/CD Pipeline

GitLab CI/CD Pipeline

# .gitlab-ci.yml stages: - build - test - security - deploy sast-scan: stage: security image: semgrep/semgrep script: - semgrep scan --config auto --error --gitlab-sast --output gl-sast-report.json artifacts: when: always reports: sast: gl-sast-report.json allow_failure: false # --error vrátí exit 1 při nálezu, job selže a zablokuje merge

GitHub Actions Workflow

# .github/workflows/sast.yml name: SAST Security Scan on: push: branches: [ main, develop ] pull_request: branches: [ main ] jobs: codeql-analysis: runs-on: ubuntu-latest permissions: contents: read security-events: write steps: - name: Checkout code uses: actions/checkout@v7 - name: Initialize CodeQL uses: github/codeql-action/init@v4 with: languages: javascript-typescript, python - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v4

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 a výzvy SAST

Výhody SAST

  • Časná detekce: zranitelnosti se odhalí ve fázi vývoje, ne až v produkci
  • Levnější oprava: chyba nalezená při vývoji nevyžaduje hotfix, nový release ani řešení incidentu
  • Pokrytí celého kódu: SAST analyzuje celý kód, nejen běžně používané cesty
  • Automatizace: scan proběhne automaticky při každém commitu nebo merge
  • Vzdělávání vývojářů: vývojáři se z reportů učí bezpečnému programování
  • Compliance: pomáhá doložit bezpečný vývoj podle NIST SSDF (praktika PW.7, revize a analýza kódu), PCI DSS 4.0.1 (požadavek 6.2) a NIS2

Výzvy a omezení

  • False positives: SAST může hlásit zranitelnosti, které nejsou skutečnou hrozbou; OWASP uvádí vysoký počet false positives jako hlavní slabinu
  • Konfigurace a tuning: správné nastavení pravidel vyžaduje čas. Chybnou konfiguraci prostředí SAST často nevidí, protože není v kódu
  • Runtime zranitelnosti: SAST neodhalí problémy, které se projeví až za běhu (k tomu slouží DAST)
  • Triage overhead: vývojáři musí nálezy vyhodnotit a prioritizovat
  • Legacy kód: ve starých codebases může najít tisíce nálezů najednou

SAST vs DAST

SAST (white-box): analyzuje zdrojový kód včetně málo používaných cest, ale generuje více false positives.

DAST (black-box): testuje běžící aplikaci, najde runtime problémy, ale má omezené pokrytí.

Nejlepší přístup: kombinace SAST, DAST a SCA dává kompletní security testing.

Průvodce implementací

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, nebo komerční)
  • míry false positives (zkušební scan na vašem kódu)

Fáze 2: Pilotní projekt

Začněte s jedním projektem nebo týmem:

  • Spusťte baseline scan
  • Vyřešte nálezy se závažností Critical a High
  • 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 tým pro triage
  • Nastavte SLA pro nápravu (např. Critical: 7 dní, High: 30 dní)
  • Integrujte s ticketovacím 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 pravidel
  • Školení vývojářů v secure coding
  • Automatizace nápravy pomocí auto-fix funkcí

Zdroje

  1. MITRE: 2025 CWE Top 25 Most Dangerous Software Weaknesses (prosinec 2025)
  2. OWASP: Source Code Analysis Tools (říjen 2026)
  3. NIST: SP 800-218, Secure Software Development Framework (SSDF) 1.1 (únor 2022)
  4. Semgrep Docs: CLI reference (říjen 2026)
  5. GitLab Docs: Security scanner integration (říjen 2026)
  6. GitHub: github/codeql-action releases (v4.39.0) (říjen 2026)
  7. GitHub: actions/checkout releases (v7.0.1) (červenec 2026)
  8. GitHub Docs: Workflow configuration options for code scanning (říjen 2026)
  9. GitHub Docs: About GitHub Advanced Security (říjen 2026)
  10. Sonar Docs: SonarQube Community Build, Languages overview (říjen 2026)
  11. Snyk Docs: Fix code vulnerabilities automatically (říjen 2026)
  12. Checkmarx: Checkmarx SAST (říjen 2026)

Chcete to mít vyřešené bez vlastního DevOps týmu?

Náš čtyřčlenný DevOps tým se o vaši platformu stará za pevnou měsíční cenu.

Nebo napište na info@devsecops.cz. Údaje zpracujeme podle zásad ochrany soukromí.