Přeskočit na hlavní obsah

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

  1. 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.
  2. 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.

Kam dál