Nesprávné řízení inventáře
- Je důležité vědět, jaká API se používají, ale taky jaká se vystavují, jak se s nimi pracuje a jak se sdílí s dalšími účastníky / uživateli / třetími stranami.
- Podpora více verzí API vyžaduje další management, zvyšuje prostor pro útok a využití zdrojů.
- API je nedostatečně zdokumentované, pokud
- není jasné, v jakých prostředích API běží a kde se nacházejí (produkce, stage, dev),
- není jasné, kdo má k API přístup (interní, zákazníci, veřejné, partneři),
- není jasné, jaké verze API běží / jsou aktivní,
- neexistuje dokumentace nebo není udržovaná,
- neexistuje API retirement plán.
- Dokumentace je klíčová v případě řešení bezpečnostního incidentu - umožňuje rychlou a efektivní orientaci.
- API má slabá místa v datovém toku, pokud
- existuje datový tok, kde se sdílí citlivé údaje se třetí stranou,
- neexistuje byznys odůvodnění takto citlivého datového toku nebo souhlas k němu,
- neexistuje seznam nebo dokumentace takto citlivého datového toku,
- není jasné, jaké citlivé informace nebo jejich typ se sdílí.
Jak zranitelnosti předcházet
🔴 Zdokumentujte API, která vystavujete.
🔴 Zdokumentujte, kdo a za jakých okolností má přístup k různým prostředím a v jakých sítích se API nachází.
🔴 Zdokumentujte, jaká data se sdílí se službami třetích stran nebo jaká data se od nich čerpají.
🔴 Napište a pravidelně aktualizujte API dokumentaci včetně endpointů, schémat, error zpráv atd.
🔴 Generujte dokumentaci automaticky jako součást CI/CD.
🔴 Použijte standardní formáty (OpenAPI) pro tvorbu API dokumentace.
🔴 Zpřístupněte API dokumentaci jen autorizovaným lidem.
🔴 Použijte externí ochranu pro API na všech prostředích.
🔴 Nepoužívejte produkční API a data na neprodukčních aplikacích / částech.
🔴 Vytvořte plán mitigace pro starší API, kde na novějším API došlo k bezpečnostním záplatám a vylepšením, aby nebyla zneužita funkcionalita za využití starší verze API.
Příklady zneužití zranitelnosti
- Aplikace obsahuje funkci, která předchází hádání tokenů pro reset hesla.
- Funkce není implementována jako součást API, ale jako mikroslužba mezi API a klientem.
- Útočník našel beta aplikaci, která využívá produkční API, ale není tam připojena funkce pro předcházení hádání tokenů.
- Útočník je schopen resetovat hesla pomocí hádání 6-místného kódu.
- Sociální síť umožňuje vývojářům integraci jejich API.
- K tomu je vyžadován souhlas uživatele se sdílením jeho dat s aplikací třetí strany.
- Datový tok mezi aplikacemi není restriktivní a vhodně monitorovaný.
- To umožní třetí straně získat nejen základní údaje o uživateli, ale i seznam přátel a informace o nich.
- To útočníkovi umožňuje získání milionů záznamů o uživatelích a jejich následný prodej.