znamkamarada

Jak jsme se zapojili do znamkamarada

Stát byl připravený zaplatit 401 milionů korun za e-shop a webovou aplikaci pro nákup elektronických dálničních známek. Bez otevřeného výběrového řízení. Po výzvě Tomáše Vondráčka z ACTUM Digital se team Citadelo zapojil do hackathonu #znamkamarada. Prověřit zabezpečení programátorského výtvoru, na kterém pracuje kolem šedesáti dobrovolníků v několika týmech, vznikajícího během jediného víkendu, je pro pentestery opravdová výzva.

Již během příprav byla diskutována budoucí architektura a použité technologie pro aplikaci. Vývojářským týmům jsme předali doporučení (“best practices”), na co si dát pozor a nezapomenout při vývoji aplikací ve stanovených technologiích. Upozornili jsme na existující zranitelné verze platformy, kterým je třeba se vyhnout. Z naší zkušenosti lze jednoduchými a dobře cílenými radami na začátku předejít vzniku řady problémů, což bylo při takto časově napjatém běhu potřeba.

Samotný vývoj aplikace probíhal v super rychlém tempu, takže jsme přizpůsobili i postup penetračního testování a hledání zranitelností tak, abychom vždy testovali maximum možného z té části aplikace, která byla ve funkční podobě a přístupná pro test. V první fázi (sobota večer) se celý tým zaměřil na back-end API, u kterého jsme se dle metodiky OWASP zaměřili na nejčastější zranitelnosti webových aplikací a API. U dynamicky vyvíjeného řešení jsme poukázali na nutnost doplnění autentizační a autorizační vrstvy, pro řízení přístupů a oprávnění volaných metod. Také jsme s vývojovým týmem ladili doporučení pro použité šifrování při zabezpečení komunikace a metody validace vstupních hodnot.

V druhé fázi (neděle ráno) vývojové týmy připravily první verze samotných webových portálů na nákup známek, v nichž jsme prověřovali ošetření vstupů, autentizační a registrační funkcionality a celý proces nákupu až po integraci s platební bránou. V této části se podařilo odhalit zranitelnost v zasílaných hodnotách o známce a další vstupy, které by útočník mohl ovlivnit a zneužít ve svůj prospěch.

Běžné penetrační testy probíhají v naprosto jiném režimu, kdy před zahájením potřebujeme mít k dispozici funkční a finální verzi systému. I při vynaložení maximálního úsilí nebylo v tomto případě možné provést testy v dostatečné hloubce a detailu, na které jsme zvyklí. Test byl výrazně limitován časem (od sobotního do nedělního večera) a probíhajícími pracemi v testovaném prostředí. Některé naše nálezy tak potřebují ještě v následujících dnech důslednou revizi a opravu.

Díky skvělé kooperativní náladě a společnému cíli, kterým nebylo dodat jen funkční, ale i bezpečný výsledek, jsme byli schopni řešit nedostatky a reportovat nálezy v reálném čase. Ne vždy je provádění pentestů ze strany vývojářů vnímáno pozitivně. Proběhlý hackathon ale dokazuje, že nastavení bezpečnosti jako funkčního požadavku otevírá možnosti mnohem efektivnější teamové spolupráce mezi vývojovým teamem a pentestery, která ve finále vede k bezpečnějšímu a tím i lépe fungujícímu výsledku.

Za celý tým děkujeme organizátorům hackathonu #ZNAMKAMARADA za velmi profesionální přístup k organizaci akce.

O autorovi

Martin Leskovjan
CZ Country Manager
Pohybuji sa na pomezí IT bezpečnosti, práva a umění. Za svůj masterpiece považuji český tým Citadelo. Moje srdce bije pro kryptotechnologie a decentralizované struktury, což mě vedlo i k angažování v projektu Paralelní Polis. Kde se podílím na chodu a strategickém směřování organizace. Kancelář pro firmu si vybírám podle nejbližší dráhy pro slalom na divoké vodě. Miluji freestyle cooking a nenávidím stát v řade na cokoliv.
Zobrazit více od autora

Podobné blogy