A5 - Nezabezpečená konfigurace

A5 - Nezabezpečená konfigurace (Security Misconfiguration)

Zranitelnost umožňující napadení využitím nedostatků v zabezpečení konfigurací aplikačních serverů, webových serverů, databázových serverů, softwarových platforem atd. (např. ponecháním výchozích hodnot, neaktualizováním aj.).

Znalosti zranitelností serverů mohou ohrozit provozovatele serveru anebo ostatní provozovatele webů, kteří hostují na stejném serveru. Proto jestliže nejste provozovatelem serveru, kde je webová aplikace hostována, zjištěné slabiny Vám můžeme sdělit pouze po svolení provozovatele serveru, a to pouze v případě, že tímto sdělením nebude ohrožen jiný provozovatel webu.


    Původce hrozby Vektor útoku Bezpečnostní slabina Technické dopady Obchodní dopady
    Aplikační specifikum Zneužitelnost
    snadná
    Rozšíření
    běžné
    Zjistitelnost
    snadná
    Dopad
    střední
    Aplikační / obchodní specifikum
    Uvažte anonymní externí útočníky i uživatele s vlastními účty, kteří se mohou pokusit kompromitovat systém. Také vezměte v úvahu aplikace znalé osoby, které chtějí zakrýt své činy. Útočník přistupuje k výchozím účtům, nepoužívaným stránkám, neopraveným chybám, nechráněným souborům a adresářům atd., aby získal neoprávněný přístup nebo informace o systému. Nezabezpečená konfigurace se může objevit na jakékoliv úrovni aplikace včetně platformy, webového serveru, aplikačního serveru, databáze, frameworku nebo vlastního kódu. Na správné konfiguraci tohoto celého komplexu musí spolupracovat vývojáři a správci systému. Pro detekci chybějících záplat, chybné konfigurace, výchozích účtů, nepotřebných služeb atd. jsou vhodné automatizované skenery.

    Takovéto zranitelnosti často poskytují útočníkovi neautorizovaný přístup k některým datům nebo funkcím systému. Mohou případně vést i k naprosté kompromitaci systému.

    Systém může být zcela kompro- mitován, aniž byste o tom věděli. Mohou být ukradena nebo postupně měněna všechna vaše data.

    Náklady spojené s obnovou mohou být značné.

    Jsem zranitelný vůči „nezabezpečené konfiguraci“?
    Nechybí vaši aplikaci řádné zabezpečení některé části zásobníku aplikace? To mj. znamená:
    • 1. Není některý váš software zastaralý? Například OS, webový nebo aplikační server, databázový systém, aplikace a všechny potřebné knihovny (viz nový bod A9).
    • 2. Nejsou povoleny nebo nainstalovány některé nepotřebné funkce (např. porty, služby, stránky, účty, oprávnění)?
    • 3. Nejsou výchozí účty a jejich hesla stále funkční a beze změny?
    • 4. Neodhaluje uživateli zpracování chyb výpis zásobníku nebo jiná příliš informativní chybová hlášení?
    • 5. Nejsou bezpečnostní nastavení ve vašem vývojářském frameworku (např. Struts, Spring, ASP.NET) a knihovnách nastavena na nebezpečné hodnoty?
    Bez sehraného, opakovatelného procesu zabezpečení konfigurace aplikace jsou systémy vystaveny vyššímu riziku.
    Jak mohu předejít „nezabezpečené konfiguraci“?
    Hlavním doporučením je realizovat všechny následující body:
    • 1. Opakovaný proces posilování bezpečnosti, který umožní rychlé a snadné nasazení jiného, řádně zabezpečeného prostředí. Prostředí pro vývoj, QA a produkci by měla být nakonfigurována shodně (s různými hesly v každém prostředí). Tento proces by měl být automatizovaný, aby se minimalizovalo úsilí potřebné k nastavení nového bezpečného prostředí.
    • 2. Proces pro včasné nasazení všech nových softwarových aktualizací a oprav v každém prostředí. To samé nutně platí také pro všechny knihovny (viz nový bod A9).
    • 3. Silnou architekturu aplikace, která poskytuje účinné, bezpečné oddělení komponent.
    • 4. Zvažte pravidelná skenování a audity, která mohou odhalit budoucí chybné konfigurace nebo chybějící záplaty.
    Příklady možných útoků

    Příklad č. 1: Neodstraní se automaticky nainstalovaná administrátorská konzole aplikačního serveru. Nezmění se výchozí účty. Útočník zjistí, že na vašem serveru jsou standardní administrátorské stránky, přihlásí se s výchozími hesly a přebere nad serverem kontrolu.

    Příklad č. 2: Na vašem serveru není zakázán výpis adresářů. Útočník zjistí, že může jednoduše vypsat adresáře a najít jakýkoli soubor. Útočník najde a stáhne všechny vaše zkompilované třídy Java, ty dekompiluje a pomocí reverzního inženýrství získá všechen váš kód. Poté ve vaší aplikaci najde vážnou chybu řízení přístupu.

    Příklad č. 3: Konfigurace aplikačního serveru umožňuje vypsat zásobník, a odhalit tak uživateli případné skryté nedostatky. Útočníci mají rádi, když mohou z chybových hlášení získat další informace.

    Příklad č. 4: Aplikační server je dodáván s ukázkovými aplikacemi, a ty se neodstraní z produkčního serveru. Ukázkové aplikace mají dobře známé bezpečnostní chyby, které mohou útočníci použít k ohrožení vašeho serveru.

    Odkazy
    OWASP:

    Další požadavky v této oblasti můžete najít v ASVS requirements area for Security Configuration (V12).

    Externí:
    Originál o nezabezpečené konfiguraci v angličtině