Penetračné testy – API / WS

Účel

Stále častejšie je potrebné vystaviť zákazníkom či obchodným partnerom rozhrania (API), ktoré poskytujú rôzne služby. Obvykle ide o sprostredkovanie komunikácie stroj-stroj.

Cieľom penetračného testu je preveriť, či je dané rozhranie zabezpečené, či nie je možné získať osobné či iné citlivé údaje, prístup do nežiaducich oblastí alebo či dokonca nie je možné cieľový stroj ovládnuť.

Typy rozhrania

Základné typy rozhrania sú:

  • Webové služby (web services) na báze protokolu SOAP/HTTP

  • REST API rozhranie

SOAP (Simple Object Access Protocol) je protokolom na výmenu správ založených na XML, hlavne pomocou HTTP. Základným popisom SOAP rozhrania sú WSDL definície (opäť XML), ktoré popisujú jednotlivé funkcie, ktoré dané rozhranie ponúka.

REST (Representational State Transfer) je architektúra rozhrania, ktoré definuje prístup k dátam pomocou 4 základných metód (CRUD – create, retrieve, update, delete), tieto metódy sú implementované pomocou odpovedajúcich HTTP metód (POST, GET, PUT, DELETE). Štruktúrované dáta sú v prípade REST API prenášaná obvykle vo formáte JSON (môže byť XML, ATOM a i.).

Testovanie

estovanie WS / REST API nie je na rozdiel od iných testov vhodné testovať prístupom black-box (bez akýchkoľvek znalostí o predmete testu), pretože tester viac času strávia otázkou „Ako to funguje?“, než „Kde je slabina?“.

Pre efektívne testovanie je vhodná vzorová implementácia klienta, SoapUI projekt alebo podrobná dokumentácia k použitým metódam a parametrom, resp. všeobecne opis komunikácie medzi klientom a serverom.

Na prácnosť testovania má vplyv počet použitých metód, parametrov, testovacích scenárov, spôsob autentizácie a počet užívateľských rolí, ktoré majú byť predmetom testu.

Pri testovaní je možno využiť relevantné časti z metodiky pre testovanie webových aplikácií. Zohľadňujeme tiež odporúčania združenia OWASP určené priamo pre webové služby uverejnená v rámci ich REST Security a XML Security Cheat Sheets.

Reporting

Výstupom testu je záverečná správa, ktorá obsahuje opis priebehu testu, nájdenie zraniteľnosti, ich klasifikáciu a odporúčania na zníženie rizika.

V niektorých prípadoch je test ukončený prezentáciou výsledkov u zákazníka (manažérska prezentácia alebo technický workshop nad záverečnou správou).

Ďalšie typy testov

Okrem vyššie popísaných testov poskytujeme našim klientom tiež mnoho iných typov penetračných testov – viď Penetračné testovanie – prehľad.

Máte otázky?

Pokiaľ Vás zaujíma viac detailov, prosím kontaktujte nás.

Otázka e-mailom