A02:2025 Chybná bezpečnostní konfigurace (Security Misconfiguration) 
Pozadí
Tato kategorie se oproti předchozímu vydání posunula z 5. místa na vyšší 2. pozici. U 100 % testovaných aplikací byla zjištěna nějaká forma chybné konfigurace, s průměrnou mírou výskytu 3,00 % a s více než 719 tisíci výskyty slabin klasifikovaných podle Common Weakness Enumeration (CWE) v této rizikové kategorii. S rostoucím rozšířením vysoce konfigurovatelného softwaru není překvapivé, že tato kategorie v žebříčku stoupá. Mezi významné zjištěné slabiny patří zejména CWE-16: Configuration a CWE-611: Improper Restriction of XML External Entity Reference (XXE).
Tabulka skóre
| Počet mapovaných CWE | Max míra výskytu | Průměrná míra výskytu | Max pokrytí | Průměrné pokrytí | Průměrná vážená zneužitelnost | Průměrný vážený dopad | Celkový počet výskytů | Celkový počet CVE |
| 16 | 27,70 % | 3,00 % | 100,00 % | 52,35 % | 7,96 | 3,97 | 719 084 | 1 375 |
Popis
Chybná bezpečnostní konfigurace znamená, že systém, aplikace nebo cloudová služba jsou nakonfigurovány nesprávně z hlediska bezpečnosti, což vede ke vzniku zranitelností.
Aplikace je zranitelná, pokud například:
- Chybí odpovídající bezpečnostní hardening v některé části aplikačního stacku nebo jsou nesprávně nakonfigurována oprávnění cloudových služeb.
- Jsou povoleny nebo nainstalovány nepotřebné funkce, například nevyužívané porty, služby, stránky, účty, testovací frameworky nebo oprávnění.
- Výchozí účty a jejich hesla zůstávají aktivní a nezměněná.
- Chybí centrální konfigurace pro zachytávání příliš informativních chybových zpráv. Zpracování chyb odhaluje uživatelům výpisy zásobníku (stack trace) nebo jiné příliš informativní chybové zprávy.
- U aktualizovaných systémů jsou nejnovější bezpečnostní funkce deaktivovány nebo nejsou nakonfigurovány bezpečně.
- Přílišné upřednostňování zpětné kompatibility vedoucí k nezabezpečené konfiguraci.
- Bezpečnostní nastavení aplikačních serverů, aplikačních frameworků (např. Struts, Spring, ASP.NET), knihoven, databází apod. nejsou nastavena na bezpečné hodnoty.
- Server neodesílá bezpečnostní hlavičky nebo direktivy, nebo nejsou nastaveny na bezpečné hodnoty.
Bez koordinovaného a opakovatelného procesu bezpečnostního hardeningu konfigurace aplikací jsou systémy vystaveny zvýšenému riziku.
Jak tomu zabránit
Měly by být implementovány bezpečné instalační procesy, včetně:
- Opakovatelný proces hardeningu umožňující rychlé a snadné nasazení dalšího prostředí s odpovídajícím zabezpečením. Vývojové, testovací (QA) a produkční prostředí by měla být konfigurována shodně, přičemž v každém prostředí by se měly používat odlišné přihlašovací údaje. Tento proces by měl být automatizován, aby se minimalizovalo úsilí potřebné k nastavení nového bezpečného prostředí.
- Minimální platforma bez zbytečných funkcí, komponent, dokumentace nebo ukázek. Odstraňte nebo neinstalujte nepoužívané funkce a frameworky.
- Revize a aktualizace konfigurací v návaznosti na všechna bezpečnostní upozornění, aktualizace a záplaty jako součást procesu správy záplat (viz A03:2025 Selhání dodavatelského řetězce softwaru). Kontrola oprávnění cloudových úložišť (např. oprávnění S3 bucketů).
- Segmentovanou architekturu aplikace, která zajišťuje účinné a bezpečné oddělení komponent nebo tenantů pomocí segmentace, kontejnerizace nebo cloudových bezpečnostních skupin (ACL).
- Zasílání bezpečnostních direktiv klientům, např. bezpečnostních hlaviček (Security Headers).
- Automatizovaný proces ověřování účinnosti konfigurací a nastavení ve všech prostředích.
- Proaktivní zavedení centrální konfigurace pro zachytávání příliš informativních chybových hlášení jako záložního opatření.
- Pokud tyto kontroly nejsou automatizované, měly by být alespoň jednou ročně prováděny manuálně.
- Využívání federace identit, krátkodobě platných přihlašovacích údajů nebo mechanismů řízení přístupu založených na rolích poskytovaných podkladovou platformou namísto ukládání statických klíčů nebo tajných údajů (secrets) do zdrojového kódu, konfiguračních souborů nebo CI/CD pipeline.
Příklady scénářů útoků
Scénář #1: Na aplikačním serveru zůstaly nasazeny ukázkové aplikace, které nebyly z produkčního prostředí odstraněny. Tyto aplikace obsahují známé bezpečnostní chyby, které mohou útočníci zneužít ke kompromitaci serveru. Pokud je jednou z těchto aplikací administrační konzole a výchozí účty nebyly změněny, útočník se přihlásí pomocí výchozích přihlašovacích údajů a převezme kontrolu.
Scénář #2: Na serveru není zakázán výpis adresářů. Útočník zjistí, že může zobrazit seznam adresářů, nalezne a stáhne zkompilované třídy Java, které následně dekompiluje a analyzuje. Na základě toho odhalí závažnou chybu v řízení přístupu aplikace.
Scénář #3: Konfigurace aplikačního serveru umožňuje zobrazování detailních chybových informací, například výpisů zásobníku (stack trace). Tím může dojít ke zpřístupnění citlivých informací nebo vnitřních nedostatků, například verzí použitých komponent, o nichž je známo, že jsou zranitelné.
Scénář #4: Poskytovatel cloudových služeb (CSP) má ve výchozím nastavení povolena oprávnění ke sdílení otevřená do Internetu. To umožňuje přístup k citlivým datům uloženým v cloudovém úložišti.
Reference
- OWASP Testing Guide: Configuration Management
- OWASP Testing Guide: Testing for Error Codes
- Application Security Verification Standard V13 Configuration
- NIST Guide to General Server Hardening
- CIS Security Configuration Guides/Benchmarks
- Amazon S3 Bucket Discovery and Enumeration
- ScienceDirect: Security Misconfiguration
Seznam mapovaných CWE
-
CWE-5 J2EE Misconfiguration: Data Transmission Without Encryption
-
CWE-13 ASP.NET Misconfiguration: Password in Configuration File
-
CWE-315 Cleartext Storage of Sensitive Information in a Cookie
-
CWE-526 Exposure of Sensitive Information Through Environmental Variables
-
CWE-611 Improper Restriction of XML External Entity Reference
-
CWE-614 Sensitive Cookie in HTTPS Session Without 'Secure' Attribute
-
CWE-776 Improper Restriction of Recursive Entity References in DTDs ('XML Entity Expansion')
-
CWE-942 Permissive Cross-domain Policy with Untrusted Domains
-
CWE-1174 ASP.NET Misconfiguration: Improper Model Validation