Chybné nastavení zabezpečení
- Aplikace může být zranitelná, pokud
- chybí vhodné zabezpečení v jakékoli části aplikace,
- nejsou správně nakonfigurované cloudové služby,
- jsou povoleny nebo nainstalovány nepotřebné funkce (např. nepotřebné porty, služby, stránky, účty),
- jsou výchozí účty a jejich hesla stále aktivní a nezměněná,
- error zprávy zobrazují stack trace nebo obsahují jiné příliš konkrétní zprávy,
- mají aktualizované systémy zakázané funkce zabezpečení nebo jsou špatně nakonfigurovány,
- nastavení zabezpečení v aplikačních serverech, frameworcích, knihovnách, databázích atd. není nastavené na bezpečné hodnoty,
- server neodesílá bezpečnostní hlavičky nebo nenastavuje direktivy na bezpečné hodnoty,
- je systém zastaralý nebo zranitelný.
- Bez sladěného a opakovatelného procesu konfigurace zabezpečení jsou systémy vystaveny vyššímu riziku vzniku této zranitelnosti.
Nejčastější zranitelnosti
- Nesprávná konfigurace.
- Nesprávné omezení XXE (XML External Entity).
Jak zranitelnosti předcházet
🔴 Použijte proces bezpečné instalace.
🔴 Opakujte proces pro kalení (hardening), který umožňuje rychlé a snadné nasazení jiného prostředí, které je vhodně chráněno.
🔴 Nakonfigurujte QA, vývojové a produkční prostředí stejně, přičemž v každém použijte jiné credentials.
- Automatizujte tento proces, čímž minimalizujete úsilí potřebné k nastavení nového zabezpečeného prostředí.
🔴 Minimalizujte použití zbytečných funkcí, komponent, dokumentace, ukázek a dalších.
🔴 Odstraňte, nebo neinstalujte nepoužívané knihovny, funkce a frameworky.
🔴 Zkontrolujte a aktualizujte konfigurace odpovídající bezpečnostním doporučením, aktualizacím a záplatám v rámci procesu správy záplat.
🔴 Ověřte oprávnění cloudových úložišť.
🔴 Segmentujte architekturu aplikací a zajistěte bezpečné a účinné oddělení komponent pomocí segmentace, kontejnerizace skupin cloudového zabezpečení (ACL).
🔴 Odesílejte security directives na klienty (security hlavičky).
🔴 Automatizujte proces ověřování konfigurace a nastavení ve všech prostředích.
Příklad zneužití zranitelnosti
- Aplikační server obsahuje ukázkové aplikace, které nebyly odstraněny z produkčního serveru. Tyto aplikace mají známé bezpečnostní chyby, kterých útočníci využívají. Předpokládejme, že jednou z aplikací je konzole pro správce systému a její výchozí účty nebyly změněny. V takovém případě se útočník přihlásí pomocí výchozích hesel a převezme kontrolu nad systémem.
- Výpis adresářů není na serveru zakázán. Útočník zjistí, že může jednoduše vypsat seznam adresářů a souborů. Vzápětí najde a stáhne zkompilovaný Java kód, který dekompiluje, a pomocí reverzního inženýrství si zobrazí kód. Pak útočník v aplikaci najde závažnou chybu v řízení přístupu, které následně využije.
- Konfigurace aplikačního serveru umožňuje uživatelům vracet podrobná chybová hlášení se stack traces. To potenciálně odhaluje citlivé informace nebo základní chyby, jako je verze komponent, o nichž je známo, že jsou zranitelné.
- Poskytovatel cloudových služeb (PCS) má výchozí oprávnění ke sdílení (otevřeného do internetu) ostatním uživatelům PCS. To umožňuje přístup k citlivým datům uložených v cloudu.