Penetrační testování webových aplikací

Webové aplikace dnes obsluhují celou řadu procesů, které dříve stály na on-site platformách ukrytých v interní síti. To s sebou přináší řadu výhod, ale také zcela nových bezpečnostních rizik. Webové aplikace zpracovávají ohromné množství citlivých dat, navíc jsou napojeny na další interní systémy. Nezřídka představují součást kritické infrastruktury, jejíž kompromitace či kolaps může zcela ochromit chod organizace. Zároveň jsou však webové aplikace z internetu přístupné komukoliv, proto je zásadní důsledně kontrolovat stav jejich zabezpečení.

Zatímco skenováním zranitelností webových aplikací získáte v řádu hodin přehled o potenciálních slabinách v zabezpečení, výstup z penetračního testování je nesrovnatelně komplexnější. Metody, nástroje a techniky využívané při „pentestu“ simulují reálný útok, který může trvat dny, týdny, v některých případech i měsíce. Výsledky testu pak velice přesně reflektují reálné riziko kompromitace vašich systémů a dat.

Penetrační testování webové aplikace si klade následující cíle:

  • Identifikovat zranitelnosti v zabezpečovacích mechanismech a logice aplikace.
  • Revidovat zdrojový kód aplikace (volitelně v rámci white box testování).
  • Analyzovat možnosti zneužití zranitelností k prolomení či obejití zabezpečení.
  • Využít nalezených cest k získání kontroly nad aplikací a daty jí spravovanými.
  • Navrhnout konkrétní řešení eliminující (snižující) riziko provedení útoku zjištěnými cestami.

Relativně přímočaře formulovaných cílů se však nelze dobrat žádným univerzálním postupem. Penetrační testování představuje složitý iterační proces, kdy se z postupně zpřesňovaných dílčích kroků skládají cesty vedoucí skrze bezpečnostní mechanismy aplikace. K dosažení průlomu zabezpečení je obvykle třeba kreativním způsobem sestavit kaskádu několik objevených zranitelností.

V průběhu tohoto procesu je evaluována proveditelnost a efektivita možných průnikových cest. Při penetračním testování webových aplikací postupujeme dle vlastní komplexní metodiky, odvozené od celosvětově uznávané metodiky organizace OWASP Foundation. Pokud vás zajímají technické podrobnosti průběhu testování, věnujte prosím pozornost závěrečné části tohoto textu.

Kdo jsme a jak pracujeme

EO SECURITY s.r.o. je nezávislá česká společnost s transparentní vlastnickou strukturou. Od roku 2016 působíme v oborech ochrany proti odposlechu, kybernetické bezpečnosti a datové bezpečnosti. Díky našemu týmu expertů ve zmíněných oblastech, jejichž hranice se nutně překrývají, dokážeme klientům poskytnout komplexní služby. Od analýzy a testování stávajícího zabezpečení až po návrh a realizaci nového.

Jsme držiteli prestižních průmyslových bezpečnostních certifikací:

TUV SUD

Přínosy penetračního testování webových aplikací

Výsledkem penetračního testování webové aplikace je podrobný report, popisující úroveň zabezpečení aplikace a schopnost obstát proti reálnému útoku. Při hloubkovém testování hraje velkou roli faktor kreativity a erudice testera, a také nutnost manuálně evaluovat jednotlivé kroky. Proto se jedná o zdaleka nejspolehlivější zhodnocení stavu zabezpečení, kterého se může vaší aplikaci dostat.

Na rozdíl od skenu zranitelností webové aplikace, který obsahuje pouhý výčet známých zranitelností, přináší penetrační test ukázky jejich praktického zneužití. Závěrečná zpráva identifikující a dle závažnosti klasifikující všechny slabiny webové aplikace podrobně dokumentuje postupy, zdrojové kódy a příkazy, které byly použity k útoku.

Nedílnou součástí jsou snímky obrazovky, zachycující jednotlivé příkazy a jejich výsledky krok za krokem. U každé odhalené slabiny zabezpečení rovněž naleznete doporučená opatření, která by mělo vaše IT oddělení implementovat pro eliminaci zjištěné bezpečnostní mezery. Tyto informace vám pomohou velmi účelně alokovat prostředky vynakládané na kyberbezpečnost.

Penetrační testování vyvíjených webových aplikací

Penetrační testy důrazně doporučujeme integrovat už do vývojového cyklu připravované webové aplikace. Stejně zásadní roli hraje penetrační testování každé vydané aktualizace. Testováním v průběhu vývoje lze dosáhnout markantní úspory času a prostředků, které by jinak musely být vynaloženy na odstraňování bezpečnostních chyb po spuštění aplikace. Odhalené problémy velmi často vyžadují zásadní a dodatečně neproveditelné změny v architektuře, je tudíž nutno některé části aplikace vybudovat znovu od nuly.

Penetračním testováním během vývoje webové aplikace rovněž předejdete riziku zneužití chyb v zabezpečení a kompromitace reálných dat v době, kdy už aplikace běží, ale dosud nebyla prověřena penetračním testem. V rámci implementace zásad bezpečného vývoje vám rádi nabídneme pomoc v podobě konzultace. Absolvováním penetračního testu pak aplikace vyhoví bezpečnostním požadavkům standardu ISO 27001 a zákona o kybernetické bezpečnosti. Otestováním posílíte svou důvěryhodnost, zejména v očích zahraničních partnerů (ale i seriózních českých společností) představuje zásadní kritérium při výběru dodavatele.

Penetrační testování provozovaných webových aplikací

Ostrý provoz webové aplikace pracující s reálnými daty bez patřičného prověření bezpečnosti vystavuje provozovatele vysokému riziku. Níže popisujeme v praxi nejčastěji využívané metody útoku na webové aplikace. Jejich rozšířenost je samozřejmě dána vysokou četností výskytu zneužívaných zranitelností v současných webových aplikacích. V případě prolomení zabezpečení může dojít (nebo již došlo) k výpadku fungování aplikace či ke kompromitaci citlivých dat.

Zatímco první scénář představuje (v závislosti na míře kritičnosti aplikace) zejména provozní a přidružené ztráty, smluvní pokuty a riziko poškození dobrého jména organizace, ve druhém případě mohou následovat navíc právní sankce vyplývající z porušení povinností stanovených nařízením GDPR. Provedením penetračního testování vašich webových aplikací získáte možnost těmto problémům aktivně předejít.

Průběh a metodika penetračního testování webových aplikací

Níže uvádíme modelový příklad průběhu naší spolupráce poté, co odešlete poptávku penetračního testování webové aplikace. Výčet konkrétních technik, používaných nástrojů a časové náročnosti jednotlivých úkonů přesahuje rámec tohoto textu a mění se dle zadání testu. Rádi vám jej však detailně zpracujeme do cenové nabídky.

Definice subjektu a pravidel penetračního testu

Naše spolupráce začíná společnou definicí předmětů, cílů a mantinelů penetračního testování. Test může být zacílený na konkrétní služby aplikace (platební brána, komunikační rozhraní, služba pro upload uživatelských souborů apod.), nebo na aplikaci jako funkční celek.

Dále se dohodneme na povolených a zakázaných metodách testování, respektive povolených aktivitách v testovaných systémech. Zejména při testování webových aplikací nasazených v ostrém provozu je zásadní určit i to, nakolik smí testování omezit běh aplikace (zatížení aplikace, případné pády serveru apod.)

V neposlední řadě definujeme rozsah informací, které od vás coby zadavatele o testované aplikaci získáme. Penetrační testování (nejen) webových aplikací lze realizovat jedním ze tří přístupů:

  • Black box – zadavatel neposkytuje žádné informace. Tester mapuje testované prostředí stejnými metodami, které by byl nucen použít útočník bez vazby na vaši organizaci. Časově náročnější přístup, avšak s přidanou hodnotou v podobě získání výčtu potenciálně zneužitelných informací o testovaném prostředí, které lze získat z internetu. Při nízké časové dotaci a omezeném rozpočtu dochází k zásadnímu snížení hloubky testování.
  • White box – zadavatel poskytuje veškerou dokumentaci k testované webové aplikaci, zdrojový kód a účet s administrátorskými právy. Rovněž časově náročný přístup, který však dokáže zefektivnit vývoj kvalitně zabezpečené aplikace. Umožňuje odhalit hlubší problémy: nebezpečné řetězce dílčích zranitelností a chyby v logice aplikace.
  • Grey box – kompromisní přístup, který umožňuje penetrační testování urychlit a prohloubit oproti přístupu black boxu. V tomto případě dle povahy testované aplikace doporučíme, jaké informace by měl zadavatel poskytnout pro dosažení co nejlepší efektivity.

Na základě výše uvedených požadavků připravíme podrobnou metodiku testu, časový plán penetračního testování a rozvrh reportingu. Uvedený dokument obsahuje také nezbytnou autorizaci k provedení útoku na webovou aplikaci, kterou je před zahájením testu nutné stvrdit podpisem oprávněné osoby.

Průběh penetračního testu webové aplikace

Průzkum testovaného prostředí

V přípravné fázi penetračního testu probíhá sběr informací o testovaném prostředí. Realizujeme jej velmi efektivním skenováním zranitelností (podrobné informace naleznete na stránce služby) s využitím automatických a poloautomatických skenerů. V tomto kroku získáme přehledové informace mimo jiné o:

  • Operačním systému serveru, serverových technologiích, dostupných aplikacích a jejich verzích.
  • Použitém šifrování transportní vrstvy a souborových adresářích, autentizačních mechanismech.
  • Funkcionalitě a logice aplikace a mechanismech, které ke svému fungování využívá.

Následně jsou nálezy manuálně prověřovány, aby bylo možno vyloučit falešnou pozitivitu. Relevantní zranitelnosti dále rozvíjíme ručně prováděnými testy. Získané informace jsou následně průběžně prohlubovány a zpřesňovány ve směru postupujících pokusů o penetraci webové aplikace.

Pokusy o průnik zabezpečením webové aplikace

Druhá fáze penetračního testu webové aplikace se odvíjí od zranitelností zjištěných v předchozí fázi, stále ovšem plně využívá rámce naší metodiky tak, aby nedošlo k opomenutí žádné z potenciálních hrozeb. Každý z kroků je důkladně dokumentován (snímky obrazovky, použité příkazy, zdrojové kódy použitého malwaru).

Mezi techniky, které používáme k penetračnímu testování webové aplikace, patří například:

  • Manuální testování všech požadavků a odpovědí mezi prohlížečem a cílovou aplikací.
  • Manipulace se server-side a client-side kompomenty aplikace.
  • Manipulace s parametry dotazů s cílem přečíst chráněná data z databází (využití SQLi).
  • Útoky pomocí Cross-site Request Forgery (CSRF).
  • Využití Cross-site Scriptingu (XSS) k převzetí kontroly nad klientskou částí aplikace.
  • Obejití sanitace souborů při uploadu k distribuci malwaru na server, například s cílem získat neoprávněný přístup k adresářům a souborům.
  • Zneužití slabých procesů pro obnovu hesel, stále aktivní výchozí a testovací účty.
  • Odposlech nezabezpečené komunikace serveru s klientem, vyhledávání nechráněných souborů, nešifrovaných záloh.

Vystavení závěrečné zprávy a následná spolupráce

Kompletní dokumentaci účinně využitých technik naleznete v reportu z penetračního testu. Ten obsahuje:

  • Výčet nálezů klasifikovaných dle rizikovosti
  • Detailní popis nálezu
  • Snímky obrazovky krok za krokem zaznamenaný postup vedoucí k zneužití zranitelnosti
  • Kompletní zdrojové kódy a použité příkazy
  • Detailní instrukce pro vaše IT oddělení k provedení změn a oprav, které je nutno provést pro odstranění bezpečnostních rizik

Velmi si zakládáme na tom, aby prostředky vynaložené na penetrační testování skutečně přispěly ke zvýšení zabezpečení vaší webové aplikace. Proto vám nabízíme navazující konzultace při zpracování výsledků testování, které je nutno provést v co možná nejkratším čase po testování. Při implementaci doporučených bezpečnostních opatření můžeme spolupracovat s vaším IT týmem. Po realizaci opatření dokážeme provést zkrácené (ověřovací) testy jejich účinnosti.

Naším cílem je, abyste se po skončení celého procesu mohli spolehnout na to, že vaše aplikace obstojí proti útoku vedeném v běžném rozsahu (definovaném zejména vynaloženými prostředky).

Máte zájem o penetrační testování webové aplikace?

V případě zájmu o penetrační testování webové aplikace nás kontaktujte na e-mailu sales@eo-security.com

Penetrační testování infrastruktury

Skenování zranitelností webových aplikací a interní infrastruktury

Testování pomocí metod sociálního inženýrství

Testování Wi-Fi sítí

Konzultace IT bezpečnosti

Menu