Penetrační testy API / web services
Účel
Stále častěji je třeba vystavit zákazníkům či obchodním partnerům rozhraní (API), které poskytuje různé služby. Obvykle jde o zprostředkování komunikace stroj-stroj.
Cílem penetračního testu je prověřit, zda je dané rozhraní zabezpečené, zda nelze získat osobní či jiné citlivé údaje, přístup do nežádoucích oblastí nebo zda dokonce nelze cílový stroj ovládnout.
Typy rozhraní
Základní typy rozhraní jsou:
Webové služby (web services) na bázi protokolu SOAP/HTTP
REST API rozhraní
SOAP (Simple Object Access Protocol) je protokolem pro výměnu zpráv založených na XML přes síť, hlavně pomocí HTTP. Základním popisem SOAP rozhraní jsou WSDL definice (opět XML), které popisují jednotlivé funkce, které dané rozhraní nabízí.
REST (Representational State Transfer) je architektura rozhraní, které definuje přístup k datům pomocí 4 základních metod (CRUD – create, retrieve, update, delete), tyto metody jsou implementovány pomocí odpovídajících HTTP metod (POST, GET, PUT, DELETE). Strukturovaná data jsou v případě REST API přenášena obvykle ve formátu JSON (může být XML, ATOM aj.).
Testování
Testování WS/REST API není na rozdíl od jiných testů vhodné testovat přístupem black-box (bez jakýchkoliv znalostí o předmětu testu), protože tester více času stráví otázkou „Jak to funguje?“, než „Kde je slabina?“.
Pro efektivní testování je třeba vzorová implementace klienta, SoapUI projekt nebo podrobnou dokumentaci k použitým metodám a parametrům, resp. obecně popis komunikace mezi koncovými body.
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.
Při testování lze využít relevantní části z metodiky pro testování webových aplikací. Zohledňujeme též doporučení sdružení OWASP určená přímo pro webové služby uveřejněná v rámci jejich REST Security a XML Security Cheat Sheets.
Reporting
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 samozřejmě doporučení ke snížení rizika.
Pro klasifikaci závažnosti zranitelnosti standardně využíváme škálu: Nízká (Low), Střední (Medium), Vysoká (High) a Kritická (Critical). V případě požadavku zákazníka přidáme hodnocení pomocí CVSS skóre (Common Vulnerability Scoring System) nebo použijeme zákazníkem dodané klasifikační schéma.
Zpráva je připravena ve formátu MS Word a PDF a zákazníkovi zaslána bezpečným způsobem.
Penetrační testy mohou být zakončeny prezentací výsledků u zákazníka – manažerská prezentace nebo technický workshop/diskuse nad závěrečnou zprávou.
Další typy testů
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.
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.