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.

Demo zpráva


Máte otázky?

Pokud Vás zajímá více detailů, prosím kontaktujte nás.

Dotaz e-mailem