Penetrační testeři, vývojáři, analytici, klienti, hackeři … ti, kteří se chtějí podílet na vývoji (či provozu) bezpečných webových aplikací, jsou povahou svého zájmu nuceni pochopit bezpečnostní problém. A to v obecné či případ od případu v konkrétní podobě. Přitom to po právní stránce mají čím dál tím těžší. S příchodem roku 2010 přišel i nový trestní zákoník, který nám např. v oblasti bezpečnostního vzdělávání anebo při penetračním testování může učinit neradostnou čáru přes rozpočet.
Nás zajímá zvláště:
Část druhá, Hlava II: Trestné činy proti svobodě a právům na ochranu osobnosti, soukromí a listovního tajemství; Díl 2 § 180 – 184 Trestné činy proti právům na ochranu osobnosti, soukromí a listovního tajemství:
-
§ 180 Neoprávněné nakládání s osobními údaji
-
§ 182 Porušení tajemství dopravovaných zpráv
-
§ 183 Porušení tajemství listin a jiných dokumentů uchovávaných v soukromí
Část druhá, Hlava V: Trestné činy proti majetku:
-
§ 230 Neoprávněný přístup k počítačovému systému a nosiči informací
-
§ 231 Opatření a přechovávání přístupového zařízení a hesla k počítačovému systému a jiných takových dat
-
§ 232 Poškození záznamu v počítačovém systému a na nosiči informací a zásah do vybavení počítače z nedbalosti
V případě, že se ve vaší společnosti věnujete např. penetračnímu testování anebo třeba pořádáte workshopy k tématu bezpečnost webových aplikací, zohledněte možné právní dopady takových aktivit. Máte povoleno provádět penetrační testování na dané aplikaci? Jste právně jištěni? Netestujete náhodou na ostrých datech? Kam až může vaše testování zajít? Nemůžete někoho nebo něco poškodit?
Bezpečnostní trenažéry
Osobně si nemyslím, že děti nelezou po stromech. Ale když jsme uvědoměle dospělí, použijme raději přístup, který nás nevystaví případným pádům. Zkoušejme, ukazujme, trénujme na trenažérech. Bude se nám to jistě hodit i ke zkoušení bezpečnostních nedostatků, které si v dalších dílech ukážeme.
Příklady trenažérů bezpečnosti webových aplikací:
Myslete na to, kam aplikace umisťujete! Myslete na důsledky plynoucí z proděravělosti webové aplikace!
WebGoat
Jedním z uvedených trenažérů, na kterém si můžete vyzkoušet projevy některých bezpečnostních děr, je WebGoat, projekt, který realizuje Bruce Mayhew pod OWASP s dalšími „dobrovolníky“.
WebGoat je úmyslně děravá webová J2EE aplikace, která slouží zejména výukovým účelům. WebGoat je rozdělen do několika tematických lekcí. V každé lekci musíte prokázat, že jste pochopili bezpečnostní problém. Máte také možnost si vytvářet své lekce.
Cíle projektu
Málokdo z nás vlastní e-shop nebo online banku, na nichž by si vyzkoušel jejich proděravělost. Navíc, pro naše zkoušení potřebujeme, aby aplikace byla děravá – a to bychom ve své online bance jistě nechtěli. Jste-li penetračními testery, potom navíc často potřebujete prověřit nové testovací postupy či nástroje. Jak jinak – bez možných právních dopadů.
Bruce Mayhew si svým dílem vytyčil hlavní cíl – interaktivní výukové prostředí pro zabezpečení webových aplikací. Tím je WebGoat.
Přehled
Instalace a spuštění pod Windows
→ Stáhnout aktuální verzi WebGoat (nyní to je WebGoat-OWASP_Standard-5.3.zip)
→ Rozbalit
→ Dvakrát poklikat na webgoat.bat → spustí se Tomcat
→ V prohlížeči zadat http://localhost/webgoat/attack
→ Jméno uživatele: guest Heslo: guest
→ Start WebGoat
Změny v uživatelském nastavení (hesla apod.) je možné provádět změnou údajů v souboru tomcat-user.xml (WebGoat-5.3_RC1/tomcat/conf/tomcat-user.xml), kde nalezneme následující obsah:
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="webgoat_basic"/> <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="webgoat_admin"/> <role rolename="webgoat_user"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="webgoat" password="webgoat" roles="webgoat_admin"/> <user username="basic" password="basic" roles="webgoat_user,webgoat_basic"/> <user username="guest" password="guest" roles="webgoat_user"/> <user username="role1" password="tomcat" roles="role1"/> </tomcat-users>
Rozhraní
Levé menu: Kategorie jednotlivých lekcí. Kliknutím na danou kategorii se zobrazí jednotlivé lekce v dané kategorii.
Hints: Technické rady.
Show Params: Zobrazí parametry HTTP požadavku.
Show Cookies: Zobrazí HTTP požadavky na cookies
Lesson Plan: Popis cílů lekce.
Show Java: Zobrazí základní zdrojový Java kód.
Solutions: Řešení lekce.
Restart this Lesson: Restartování lekce.
Postup absolvování lekcí
Výrobce doporučuje postupovat následovně: 1. Přečíst „Lesson Plan“, 2. Pokusit se lekci vyřešit, 3. V nouzi použít nápovědu ze „Solutions“.
Potřebné doplňující nástroje
Abyste mohli projít všechny lekce, budete vedle aplikace WebGoat potřebovat následující nástroje:
-
Web-proxy
Přijímá, zpracovává a předává HTTP a HTTPS komunikaci mezi klientem a serverem.
-
Spider
Spidering slouží k procházení webu a k identifikaci, popř. ke sledování stránek a odkazů v rámci webové aplikace.
Web-proxy i spider jsou obsaženy např. v následujících doporučených nástrojích:
Projektu OWASP WebScarab budu věnovat samostatný díl našeho seriálu.
Další užitečné podpůrné nástroje
Firebug
Plugin pro Firefox, jenž nám umožňuje např. kontrolovat či upravovat HTML, CSS, Javascript.
IEWatch
Uživatelé IE jistě ocení tento nástroj pro analýzu HTTP a HTML.
LiveHTTPHeaders
Plugin pro Firefox vhodný pro sledování požadavků a odpovědí či analýzu hlaviček.
Wireshark
Určen pro sledování a analýzu síťového provozu.
Scanner
Scannerů je mnoho. Některé skenují porty, jiné zjišťují náchylnost webové aplikace na tu či onu bezpečnostní chybu (XSS, SQL Injection aj.). Mezi opensourcové skenery patří např.:
Závěr
WebGoat pro svou propracovanost, dostupnost a snadnou modifikovatelnost je vhodným prostředkem pro výuku ve společnostech, kde je bezpečnost webových aplikací brána vážně. WebGoat je možné využít nejen ke vzdělávání, ale také za účelem prověření testovacích metod.
Cílem tohoto dílu bylo v základní úrovni čtenáře seznámit s aplikací WebGoat. Vynechal jsem ukázky z jednotlivých lekcí, vytvoření vlastní lekce a některé další věci – avšak s tímto nástrojem se budeme setkávat v průběhu dalších dílů našeho seriálu v souvislosti s konkrétními útoky, takže bychom neměli o nic zajímavého přijít.