← Cloudflare API Shield / api-shield / security
Detekce zranitelnosti Broken Object Level Authorization
Zranitelnost Broken Object Level Authorization (BOLA) nastává, když aplikace nebo API řádně neověří, zda má uživatel oprávnění přistupovat ke konkrétním datům.
Chyby v aplikaci nebo API umožňují útočníkům obejít kontrolu autorizace a získat přístup k potenciálně citlivým informacím tím, že manipulují s identifikátory objektů (například ID uživatelů nebo objednávek) a postupně je procházejí.
Zranitelnosti mohou vzniknout kdykoli, a to už i při původním nasazení aplikace. Tyto chyby ale mohou přinést i změny nebo aktualizace zásad ověřování a autorizace.
Zranitelnosti BOLA jsou stejně nebezpečné jako převzetí účtu. Úspěšné zneužití zranitelnosti BOLA umožní útočníkovi přistupovat k datům, ke kterým by neměl mít přístup, nebo je měnit.
Cloudflare označuje koncové body rizikem BOLA, pokud zjistí dva odlišné signály typické pro útoky zneužívající BOLA: Parameter pollution a Enumerace.
Enumerace
Cloudflare sleduje, jak každá relace komunikuje s jednotlivými koncovými body, a označuje relace, které úspěšně vyžádají výrazně více unikátních datových bodů, než je výchozí hodnota pro daný koncový bod.
Příklad enumerace
Endpoint: GET /api/v1/users/{userId}/credit-cards
- Normální chování: Uživatelé si vyžádají platební karty pouze pomocí vlastního
userId. - Chování útoku: Útočníci si vyžádají stovky
userIdhodnot na relaci hrubou silou postupným procházenímuserIdsnalezené jinými metodami. - Výsledek: Pokud je u tohoto koncového bodu porušena autorizační politika originu, útočník získá údaje o platební kartě u každého uživatelského účtu, o který požádá.
Parameter pollution
Cloudflare detekuje úspěšné požadavky, u nichž se hodnota parametru nalezená na očekávaném místě (v cestě, řetězci dotazu, hlavičce nebo cookie) opakuje i na neočekávaném, podobném místě. Toto chování může naznačovat, že se útočníci snaží zmást autorizační systém API a obejít bezpečnostní kontroly.
Příklad techniky parameter pollution
Endpoint: GET /api/v1/orders/{orderId}
- Normální chování:
orderIdodeslané v proměnné cesty, napříkladGET /api/v1/orders/12345 - Chování útočníka:
orderIdse zároveň odesílá jako parametr dotazu, což spustí starý, nezdokumentovaný kód, který objednávky v parametru dotazu vyhledává a náhodou postrádá kontrolu oprávnění:GET /api/v1/orders/12345?orderId=67890 - Výsledek: Odesláním falešné objednávky nebo objednávky, kterou útočník vlastní (
12345), mohou spustit starý, nedokumentovaný kód a získat přístup k objednávce, kterou nevlastní (67890)
Proces
API Shield detekuje útoky BOLA na základě učení vzorců návštěvnického provozu a identifikace neobvyklého přístupu ke konkrétním objektům. Postižené koncové body se automaticky označí následujícím štítky rizika:
cf-risk-bola-enumeration: Automaticky se přidá, pokud koncový bod vrací úspěšné odpovědi s výraznými rozdíly v počtu unikátních prvků požadovaných různými uživatelskými relacemi.cf-risk-bola-pollution: Automaticky se přidá, pokud koncový bod vrací úspěšné odpovědi, u nichž se parametry vyskytují na více místech požadavku, než odpovídá schématu API.
Pokud se u některého z endpointů vašeho API zobrazí jeden z těchto štítků, projděte si se svým vývojářským týmem jeho autorizační politiku a zjistěte, zda neobsahuje chyby v autorizaci. Můžete se také obrátit na Cloudflare a vyžádat si zprávu s identifikátory útočníků, která potvrdí rozsah a dopad útoku.
Informace o útocích BOLA najdete ve svém Přehled zabezpečení, Security Analytics, a Podrobnosti o koncovém bodu.
Přehled zabezpečení
Pokud byly na vašich endpointech zjištěny zranitelnosti BOLA, můžete si v Cloudflare dashboardu zobrazit přehled útoku a doporučení k jeho zmírnění.
-
V dashboardu Cloudflare přejděte na Security stránce.
Přejděte na Přehled ↗ -
Přejděte na Zneužití API nebo Všechny návrhy.
-
V závislosti na typu útoku vyberte Kontrola provozu z potenciálního výčtového útoku BOLA nebo Kontrola provozu z potenciálního útoku typu znečištění parametrů , kde zobrazíte podrobnosti útoku a doporučené akce.
-
Vyberte Zobrazit všechny dotčené endpointy nebo Zobrazit podrobnosti na konkrétním endpointu a zkontrolujte podezřelé relace v Webová aktiva.
Cloudflare vyhodnocuje požadavky ve vašich relacích z hlediska útoků typu enumerace i parameter pollution a poskytuje vám seznam ohrožených koncových bodů spolu s počtem anomálních relací, u kterých byl útok zjištěn. Podle navržených kroků pak můžete řešit zranitelnosti BOLA a předcházet budoucím útokům na vaše koncové body.
Security Analytics
V Cloudflare dashboardu si můžete prohlédnout analytické údaje o provozu vaší zóny a o podezřelých požadavcích souvisejících s útoky typu enumerace nebo parameter pollution.
Přejděte na Analytics ↗Požadavky můžete filtrovat podle typu útoku zjištěného ve vaší zóně, včetně hashovaných ID relací nalezených při útoku a odpovídajícího štítku rizika zranitelnosti BOLA, a zobrazit si tak analýzu aktivity požadavků za posledních sedm dní. Tento filtr zahrnuje veškerý provoz z podezřelých relací útočníka, takže můžete vyhodnotit i další akce, které proti vaší zóně podnikají.
Toto nefiltruje podle konkrétních endpointů.
Zkontrolujte hlavní statistiky a podrobnosti o spravovaných koncových bodech API, cestách a hodnotách, na které útok cílil, i o zdrojových IP adresách, user agentech a otiscích.
Zkontrolujte profil svého provozu, zda neobsahuje neobvyklé vzorce, například nárůsty požadavků na unikátní objekty nebo neočekávané umístění parametrů.
Podrobnosti o koncovém bodu
Rozbalením podrobností endpointu ve Web Assets získáte informace o aktivitě podezřelých relací na daném endpointu, včetně podrobností o útocích enumerací i útocích znečištěním parametrů.
Přejděte na Webová aktiva ↗V části Přehled zabezpečení, vyberte Zobrazit útok , abyste zkontrolovali dotčené relace s přiřazenými IP adresami a otisky JA4 (otisky TLS klienta, které pomáhají identifikovat software, jenž požadavek odesílá).
Můžete exportovat .csv soubor obsahující všechny IP adresy a otisky JA4 pro všechny relace nebo jen pro konkrétní relaci.
V podrobnostech je uveden ovlivněný parametr, počet relací zapojených do útoku a to, jak moc se jejich chování odchýlilo od výchozí hodnoty.
Pokud došlo k neoprávněnému přístupu k parametru, zvažte možný dopad na vaši aplikaci, uživatele a data. Doporučujeme neoprávněný přístup ověřit společně s vývojáři vaší aplikace a API, a to kontrolou logů vašeho API originu se zaměřením na IP adresu a JA4 otisk zneužívajících relací.
Data o útocích můžete zobrazit v Security Analytics.
Přejděte na Analytics ↗Spravovaný endpoint se automaticky vyfiltruje v aktivitě požadavků za posledních sedm dní. Filtrovat můžete také podle podezřelých IP adres a otisků nalezených v podrobnostech útoku.
Dostupnost
Detekce zranitelnosti Broken Object Level Authorization je dostupná pouze pro zákazníky s plánem Enterprise. Pokud jste zákazníkem s plánem Enterprise a máte o tuto funkci zájem, obraťte se na tým, který spravuje váš účet.