Neomezený přístup k citlivým tokům
- Při návrhu API je potřeba se zamyslet, jakou byznys logiku bude vystavovat jaký endpoint.
- Některá byznys logika může být citlivější než jiná a její zneužití by mohlo byznys výrazně poškodit.
- Příklady citlivé byznys logiky:
- Objednávka - útočník může pomocí skriptu vykoupit celý sklad nedostatkového zboží a prodat jej z druhé ruky.
- Komentáře - útočník může spamovat systém.
- Rezervace - útočník může rezervovat veškeré volné sloty a znemožnit tak ostatním používání systému.
- Citlivost byznys logiky závisí na konkrétním use casu - pro jednu sociální síť může být spamování komentáři přijatelné a pro druhou ne.
- API je zranitelné, pokud není daná byznys logika vhodně omezená.
Jak zranitelnosti předcházet
🔴 Identifikujte rizika pro váš byznys a zjistěte, jaké funkce ho při jejich zneužití můžou poškodit.
🔴 Najděte vhodné technické řešení, které pomůže zmíněnému riziku předcházet.
🔴 Znemožněte přístup k službě neočekávaným zařízením (např. headless browser).
🔴 Použijte CAPTCHu nebo jiné řešení, které pomůže identifikovat, že jde o člověka.
🔴 Analyzujte uživatelské flow a identifikujte non-human patterny (např. přidání do košíku a dokončení objednávky během vteřiny).
🔴 Zabezpečete a omezte přístup k vývojářským / B2B API.
Příklady zneužití zranitelnosti
- Společnost vydá limitovanou edici svého produktu.
- Útočník napíše skript, který toto zboží automaticky objedná.
- V den spuštění objednávek útočník spustí svůj skript z různých IP adres a poloh.
- API není vhodně omezené a útočníkovi se povede vykoupit celý sklad.
- Později toto zboží prodá na Amazonu za mnohem vyšší cenu.
- Letecká společnost umožňuje zakoupení letenek bez poplatku za zrušení.
- Útočník vykoupí 90 % sedadel a pár dní před odletem je všechny zruší.
- To leteckou společnost přinutí výrazně zlevnit letenky, aby let zaplnila.
- V návaznosti na to si útočník zakoupí výrazně levnější letenku.
- Aplikace nabízí referenční program.
- Za každého referenčního uživatele dostane uživatel kredit.
- Kredit může být později použit jako sleva pro nákup zboží.
- Útočník vytvoří skript pro automatickou registraci uživatelů.
- Tím na svůj účet dostane velké množství kreditů.
- Díky tomu útočník kupuje produkty společnosti zcela zdarma.