Press "Enter" to skip to content

Záměrně děravé webové aplikace

Pro každého, kdo se pohybuje v oblasti kyberbezpečnosti webů (a nejen webů), je nezbytné mít praktické dovednosti s identifikací bezpečnostních chyb, zranitelností, vektorů útoků, rizik, hrozeb, … Bez ohledu na to, zda jsem nováček, který se pokouší porozumět metodám a postupům zabezpečení webových aplikací, nebo instruktor, usilující o demonstrování souvisejících aspektů svým studentům, praxí nabyté zkušenosti jsou nepostradatelné.

Slabá místa ve webových aplikacích a v související infrastruktuře jsou pro kyberzločince oblíbenými cíli. Je proto nezbytné, aby bezpečnostní testeři, analytici, vývojáři a další zúčastnění rozuměli těmto slabým místům a byli schopni identifikovat potenciální zranitelnosti a útoky.

Praktické ověření slabých míst a potenciálních zranitelností může být však komplikované, ba dokonce nelegální, pokud se provádí na „skutečných“, ne-li přímo ostrých (produkčních) webových systémech. V takovém případě v úvahu přicházejí záměrně děravé webové aplikace. Tyto aplikace jsou navrženy tak, aby byly nezabezpečené a poskytovaly relativně bezpečné prostředí pro testování hackerských (resp. crackerských) dovedností. Díky tomu mohou nejen bezpečnostní profesionálové praktikovat své dovednosti a zlepšovat se v nalezení a opravování zranitelností.

Vždy je však třeba mít na paměti zákon. Úmyslné neautorizované přístupy k systémům a osobním datům, stejně jako jiné aktivity spojené s kybernetickou kriminalitou, jsou trestné podle zákona. Například Zákon č. 40/2009 Sb. (trestní zákoník) stanoví různé trestné činy proti svobodě a právům na ochranu osobnosti, soukromí a listovního tajemství, souvisejícím trestním činům proti majetku, jako je neoprávněný přístup k počítačovému systému a nosiči informací…

Proto existují webové systémy navržené tak, aby sice byly nezabezpečené, ale zároveň poskytovaly bezpečnější prostředí pro bezpečnostní testování a jiná zkoumání. Tyto – někdy opravdu setsakramentsky děravé – webové systémy jsou velmi dobrým učebním prostředkem pro ty, kdo chtějí zvýšit své odborné znalost a dovednosti. Jsou navrženy tak, aby pomohly zdokonalit dovednosti v oblasti zabezpečení webových aplikací, nabízejí výzvy od snadných až po obtížné úrovně zabezpečení.

V následujícím seznamu uvádím velmi stručný popis několika doporučených záměrně děravých webových aplikací (podrobnějšímu popisu se snad budu věnovat někdy později), které jsou k dispozici zdarma:

  1. DVWA (Damn Vulnerable Web App): DVWA je aplikace založená na PHP a MySQL, která je úmyslně navržena tak, aby byla „zatraceně zranitelná“. Aplikace má několik úrovně zabezpečení (resp. nezabezpečení) – každá vyžaduje odlišné dovednosti. Zdrojový kód DVWA je volně dostupný pro zkoumání, což je velkým přínosem pro bezpečnostní výzkumníky. DVWA poskytuje testovací prostředí pro řadu zranitelností, včetně XSS, CSRF, SQL injection a mnoho dalších.
  2. Web Security Dojo (WSD): WSD (Ubuntu, VirtualBox, VMware) je virtuální počítač sady nástrojů (zranitelných webů, testovacích nástrojů) a cílových strojů pro testování zranitelností. Tento virtuální počítač je skvělou volbou pro samostudium nebo výuku, ale třeba i pro pořádání „capture the flag“ (CTF) soutěží.
  3. Buggy Web Application (BWAPP): BWAPP (PHP, MySQL) je nástroj, který poskytuje více než 100 různých chyb pro testování a zdokonalování dovedností v oblasti hackování/crackování. Tento nástroj, odvozený z projektu OWASP Top 10, zahrnuje širokou škálu zranitelností a chyb, které lze v praxi nalézt.
  4. Google Gruyere: Tato aplikace, inspirovaná sýrem plným děr, je ideální pro začátečníky, kteří se chtějí naučit, jak vyhledávat a využívat zranitelnosti. Gruyere je napsaný v jazyce Python a nabízí různé kategorie zranitelností pro testování.
  5. WebGoat: Tento projekt, který je součástí OWASP, poskytuje platformu pro pochopení a testování častých bezpečnostních problémů server-side aplikací založených na Javě. WebGoat je vytvořen tak, aby uživatelům umožnil seznámit se s různými bezpečnostními chybami a následně na nich v bezpečném prostředí útočit. Zranitelnosti zahrnují přetečení vyrovnávací paměti, nesprávné zpracování chyb, různé druhy injekčních útoků, problémy s konfigurací a bezpečností komunikace a mnoho dalších.
  6. Atd.

Atd. Mezi další stejně zaměřené projekty patří například Badstore, Metasploitable 2, Mutillidae II, OWASP Juice Shop, Zero Bank, XXE, Conclusion, web-ctf-container, Latte, Uguu a další. Všechny zmiňované projekty (a tím jejich výčet jistě nekončí) mají různou kvalitu a jejich využití záleží na preferencích uživatele. Účelem těchto projektů je umožnit vývojářům, bezpečnostním odborníkům a studentům testovat své schopnosti v oblasti identifikace a zneužívání zranitelností. Tímto způsobem mohou lépe porozumět potenciálním útokům a naučit se, jak tyto problémy efektivně řešit.

Existují i webové aplikace, které jsou původně neúmyslně zranitelné. Například starší verze více či méně populárních správců obsahu, jako je WordPress či Textpattern CMS – mohou mít známé zranitelnosti, které byly odhaleny a opraveny ve svých aktualizacích.

Je důležité mít na paměti, že využívání záměrně děravých webových aplikací by mělo být prováděno pouze za účelem výuky a v rámci povolených a zabezpečených prostředí. Pokud se rozhodnete zkoumat zranitelnosti jiných webových aplikací, je nezbytné získat předchozí souhlas vlastníka nebo provozovatele a dodržovat všechny příslušné právní předpisy a etické zásady.

Nebezpečí zranitelných webových aplikací je neustále přítomné. Tyto aplikace mohou představovat vážnou hrozbu pro běhové a související prostředí, pokud jsou spuštěny bez dostatečných opatření. Proto je důležité dbát na to, aby takové aplikace nebyly umístěny například ve veřejných složkách html poskytovatelů hostingu ani na serverech s přímým přístupem na internet.

Pro ochranu proti zranitelným webovým aplikacím se doporučuje využít vhodně nastavený virtuální počítač, jako je například VirtualBox nebo VMware. Tyto virtuální počítače lze nastavit do režimu sítě NAT, což omezuje jejich přístupová práva a minimalizuje riziko útoků. Je také možné vytvořit upravené prostředí, ve kterém jsou brány v úvahu možné specifické bezpečnostní hrozby.

Využití děravých webových aplikací jako nástroje pro vzdělávání a trénink může být velmi užitečné. Přináší studentům, vývojářům a bezpečnostním odborníkům praktickou zkušenost s reálnými zranitelnostmi a útoky, které se vyskytují v digitálním prostředí. Díky tomu mohou získat hlubší porozumění mechanismů a technik, které se používají při zneužívání zranitelností.