Penetrační test API
Webová služba neboli API představuje prostředek pro komunikaci ve strojově čitelném formátu. Mnoho moderních aplikací využívá na pozadí nějakou formu API. V takovém případě testujeme API typicky jako součást webové, mobilní nebo desktopové aplikace.
Tato stránka pojednává a testu samostatných API vystavených například pro potřeby zákazníků či obchodních partnerů. Ti mohou API využít ve svých softwarových řešeních.
Přínosy
Problematika zabezpečení webových služeb je podobná jako v případě webových aplikací. Také API je typicky vyvíjeno na zakázku a může tak obsahovat unikátní chyby. Jelikož bývá vystaveno do internetu, neubrání se řadě neustálých útoků.
I zde platí, že část nedostatků mohou nalézt automatizované nástroje. S některými druhy zranitelností, jako jsou například chyby v aplikační logice, si ale neporadí. Při našich testech proto vždy kombinujeme pokročilé automatizované nástroje (včetně komerčních) s důkladným manuálním testováním.
Nejčastěji potkáváme SOAP a REST API. Poradíme si ale i s GraphQL, gRPC a dalšími.
Průběh testů
Pro webové služby neboli API není na rozdíl od jiných druhů testů příliš vhodný black box přístup (bez jakýchkoliv znalostí o předmětu testu), protože tester pak více času stráví otázkou „Jak to funguje?“, než zkoumáním „Kde je slabina?“.
Pro efektivní testování je vhodné mít k dispozici vzorovou implementaci klienta, SoapUI projekt, OpenAPI specifikaci nebo jinou formu podrobné dokumentace k použitým metodám a parametrům. Vhodné mohou být i ukázkové příklady volání API.
Na pracnost testování má vliv počet použitých metod, parametrů, testovacích scénářů, způsob autentizace a počet uživatelských rolí, které mají být předmětem testu. Občas dává smysl netestovat celé API, ale jen vytipovanou reprezentativní sadu volání.
Při testování vycházíme z relevantních částí metodiky OWASP WSTG (OWASP Web Security Testing Guide) a projektu OWASP API Security. Napříč týmem testerů sdílíme zkušenosti z mnoha předchozích projektů.
Další typy testů
Jak již bylo zmíněno, mnoho moderních aplikací využívá na pozadí API. Pokud je k dispozici klientská aplikace, doporučujeme netestovat API samostatně, ale jako součást testu webové, mobilní nebo desktopové aplikace.
Detailnější analýzu zdrojových kódů webové služby můžeme provést v rámci code review.
Vedle výše popsaných testů poskytujeme našim klientům také mnoho jiných typů penetračních testů – viz Penetrační testování – přehled.
Závěrečná zpráva
Výstupem penetračního testu je závěrečná zpráva, která obsahuje podrobnosti o průběhu testu, popis a klasifikaci nalezených zranitelností a doporučení ke snížení rizika. Zprávu předáváme bezpečně ve formátech MS Word a PDF a výsledky lze prezentovat formou manažerské prezentace nebo technického workshopu.
Vzorová zpráva
Ukázka výstupu pro lepší představu o kvalitě naší práce.
Máte otázky?
Pokud Vás zajímá více detailů, prosím kontaktujte nás.