Penetrační testování
Aplikace běžící v prohlížeči uživatele jsou v dnešní době jednou z hlavních softwarových platforem, která zjednodušuje mnoho aspektů jejich vývoje a uvedení do provozu pro koncové uživatele. Ovšem také s sebou přináší větší možnosti napadení těchto systémů případným útočníkem. Důkladné a pravidelné penetrační testování webových aplikací připojených k internetu je nezbytnou součástí celkové stavebnice opatření zajišťujících důvěrnost, integritu a dostupnost informací zpracovávaných těmito systémy.
Navíc na tato uživatelská rozhraní - webové front-end systémy - jsou často navázány další podpůrné webové a aplikační služby, které vyžadují obdobnou pozornost a ochranu. Vývojáři by pravděpodobně tento výčet označili za úplný, nicméně do úplnosti chybí ještě jedna oblast zájmu, kterou není možné přehlížet, a tou je síťová infrastruktura zajišťující běh všech výše uvedených součástí aplikačního stacku.
Naše služby penetračního testování vychází z několika desetiletí zkušeností s bezpečností systémů i aplikací a mohou poskytnout hodnotný náhled na možné způsoby útoku - včetně doporučení, jak se jim bránit. Nesnažíme se vždy znovuobjevovat kolo, a proto vždy stavíme na osvědčených metodikách jako je OWASP či OSSTMM, jak se můžete dočíst níže.
Naší misí je zabránit jakýmkoliv výpadkům a únikům dat aktivní ochranou proti nepřátelským útokům.
OWASP TOP 10
Open Worldwide Application Security Project je organizace koordinující mnoho metodické práce na poli informační bezpečnosti síťových aplikací. Mezi její nejznámější výstupy patří OWASP TOP 10 - seznam nejčastějších zranitelností vzdáleně přístupných systémů.
Aktuální seznam takových zranitelností je následující:
- Cross Site Scripting (XSS).
XSS je metoda narušení WWW stránek využitím bezpečnostních chyb ve skriptech (především neošetřené vstupy). Útočník díky těmto chybám v zabezpečení webové aplikace dokáže do stránek podstrčit svůj vlastní kód, což může využít buď k poškození vzhledu stránky, jejímu znefunkčnění nebo dokonce k získávání citlivých údajů návštevníků stránek, obcházení bezpečnostních prvků aplikace a phishingu. - Injection flaws.
SQL injection je technika napadnutí databázové vrstvy programu vsunutím (injection) kódu přes neošetřený vstup a vykonání vlastního, pozměněného, SQL dotazu. Toto nechtěné chování vzniká při propojení aplikační a databázové vrstvy (téměř vždy jde o dva odlišné programy) a zabraňuje se mu pomocí jednoduchého nahrazení potencionálně nebezpečných znaků escape sekvencemi. - Malicious File Execution.
Tato zranitelnost umožňuje útočníkovi spustit na straně serveru škodlivé soubory. - Insecure Direct Object Reference.
Zranitelnosti této kategorie umožňují útočníkovi získat informace o jednotlivých objektech cílové aplikace bez patričné autentifikace. Další možností je získání interních systémových informací. - Cross Site Request Forgery (CSRF)
je technika, která umožňuje útočníkovi podvrhnout formulář na jiné stránce nebo pomocí některých HTTP metod přesměrovat prohlížeč oběti na skript zpracovávající legitimní formulář aplikace s daty, které můžou oběť poškodit. - Information Leakage and Improper Error Handling.
Zranitelnosti tohoto typu útočníkovi zpřístupňují v případě chybového stavu aplikace informace, které lze později použít k lepšímu plánování útoku. Příkladem může být změna vstupního parametru, která způsobí chybu, a aplikace dobrovolně oznámí cestu ke skriptu, ve kterém chyba nastala. - Broken Authentication and Session Management.
Zranitelnosti tohoto typu umožňují útok na přihlašovací části aplikace či úplné obcházení přihlašovacího systému. Ze strany aplikace je nutné zaměřit se na zabezpečené předávání autentifikačních údajů a bezpečné úložiště identifikátoru relace („session id“). - Insecure Cryptographic Storage.
Zranitelnosti tohoto typu můžou způsobit kompromitaci privátního šifrovacího klíče jedné či obou stran spojení. - Insecure Communications.
Zranitelnosti tohoto typu umožňují útočníkům odchytávat komunikaci, která jim není určená. - Failure to Restrict URL Access.
V případě, že aplikace umožňuje neautentifikovaný přístup i ke stránkám, ke kterým by měl být přístup jen po příslušné autentifikaci, je možnou zranitelností situace, kdy takto odkazovaná stránka zobrazí některé informace, které by měly být přístupné jen konkrétním autentifikovaným uživatelům, či systémové informace citlivého charakteru.
OSSTMM
Open Source Testing Methodology Manual publikovaný organizací ISECOM poskytuje velmi dobrý základ pro každý projekt penetračního testování od samostatných systémů s jednou aplikací po skenování a analýzu zranitelností síťové infrastruktury velkého rozsahu.
Ačkoliv je tato metodika jedna z těch rozsáhlejších (jde o více jak 200 stran normativního textu), je vhodná téměř pro všechny testovací scénáře a naši pracovníci jsou velmi dobře obeznámeni s její praktickou aplikací v reálném nasazení.
Bez metodiky jako je tato by bylo téměř nemožné pokrýt všechny známé aspekty celkové bezpečnosti systémů, což je základním klíčem k tomu být vždy o krok napřed před útočníky.
Typy testování
Někdy je užitečné simulovat práci útočníka bez jakýchkoliv interních informací - tato metoda je obvykle označována jako black box testování. Občas je nutné poskytnout auditorům detailní informace o testovaných systémech - obvykle z důvodu zajištění provozu bez výpadků i během testování. Této metodě se říká white box testování.
A také jsou často případy, kdy je vhodný kombinovaný přístup, kdy jsou pracovníkům k dispozici omezené interní informace o zkoumaném systému, nicméně vlastní testování probíhá obdobně jako by postupoval útočník bez těchto znalostí. Takto naplánovaný audit se nazývá grey box testování.
Naše zkušenosti nás naučily, že pro získání optimálních výstupů penetračního testování je vždy nutné zvolit individuální přístup za použití těchto postupů.
Výstupy z testování
Výsledkem penetračního testování jsou vždy dvě zprávy.
Jednak je zpracována detailní technická zpráva popisující nalezené zranitelnosti, jejich závažnost, dopad a doporučení, jak provést nápravu. Vždy je ovšem důležité všechna zjištění zhodnotit z hlediska skutečného vlivu na bezpečnost zpracovávaných dat, neboť i méně závažná zranitelnost může být velkým problémem, pokud se týká důležitých dat a naopak.
A jednak je vytvořeno manažerské shrnutí pro vedení společnosti s hodnocením vlivu jednotlivých zjištění. Obvykle je interpretace technických výsledků stejně důležitá jako ony samotné.
Samozřejmě s Vámi a Vašimi programátory rádi prodiskutujeme jednotlivé položky technické zprávy a pomůžeme s nalezením nejlepšího technického řešení zjištěných problémů. V tomto procesu nejsou žádné špatné otázky - vždy je zodpovíme všechny!