Penetrační testování

Cílem penetračních testů je odhalení zranitelností cílového informačního systému, stanovení způsobu jejich možného využití a doporučení vedoucí k jejich nápravě.
Mezi nejčastější příčiny zranitelností IS řadíme zejména:

  • Nedodržování platných standardů (RFC, W3C, ISO )
  • Nedůsledná konfigurace zařízení (povoleny zbytečné/nevyužité síťové služby, slabé šifrování)
  • Nevyhovující topologie systému
  • Neznalost managementu/odborné obsluhy
  • Nepořádek

 

Možné důsledky zranitelnosti informačního systému

Zde se skutečně může jednat o velmi vážné škody mající dopad zejména na:

  • Důvěryhodnost firmy
  • Právní postih v případě zneužití/znehodnocení údajů dalších subjektů (osobní údaje, obchodní data, čísla kreditních karet apod.)
  • Ztráta zakázky
  • Finanční ztráty spojené s neefektivním využíváním informačního systému

 

Druhy penetračních testů

Obecně vzato, můžeme penetrační testy rozdělit na:

  • Destruktivní a nedestruktivní
  • Externí a interní

 

Obecný postup provádění penetračních testů

Při realizaci penetračního testu se snažíme proniknout do cílového informačního systému a určit (pokud možno) všechny postupy a místa, jak by takový útok mohl být ve skutečnosti proveden:

Úvodním krokem je obvykle mapování informačního systému. Jedná se o nenásilný sběr dostupných informací, směřující k vytvoření představy o topologii informačního systému. Úkolem je zjistit co největší množství dat o organizaci, její infrastruktuře, ISP, provozovaném adresním rozsahu, identifikace mechanismu připojení k internetu apod.

Další fází obvykle bývá průzkum adresního prostoru, kdy se rozpoznávají testované cíle a zjišťují jejich charakteristiky. Je prováděno scanování portů a detekování „živých“ systémů. Scanování portů je invazivní testování systémů na transportní a síťové úrovni s cílem zjistit provozované služby a následně i úroveň filtrace a blokování paketů.

Mapování systémů za firewallem. U testů z prostředí internetu je v drtivé většině případů testovaná síť umístěná za firewallem tj. v chráněné oblasti. Tehdy je nutné využít techniky reflektující existenci firewallu a v optimálním případě obcházející jeho pravidla. Jednou z metod je užití fragmentace v kombinaci s využitím timeoutu mezi jednotlivými datagramy pro detekci žijících systémů, vysílání paketů s chybnou délkou hlavičky či jiné (nasazení trojského koně - Trojský kůň je program, který se tváří, že dělá užitečnou činnost, ale na pozadí této činnosti provozuje jiné aktivity).

Zneužití e-mailu. Touto cestou je možné získat podrobné informace o síti zákazníka.

Pokusy o získání root shellu v Unixových systémech. K získání root shellu v Unixových systémech se téměř vždy využívá technika datových útoků. Ta spočívá v odeslání takových dat, které způsobí neočekávanou reakci služby. Z hlediska útočníka je neočekávaná reakce žádoucí, protože mu může umožnit získání nadvlády nad cílovým systémem. Tato neočekávaná reakce vzniká ze dvou důvodů:

  • přeplnění vyrovnávací paměti (buffer overflow)
  • nedostatečná kontrola vstupních dat

Hledání implicitních účtů na síťových prostředcích. Implicitní jméno a heslo je jedním z nejčastěji objevovaných bezpečnostních nedostatků. Téměř každé síťové zařízení na trhu je dodáváno s implicitním uživatelským jménem nebo administrátorským účtem. První věcí, kterou je nutno při instalaci zařízení udělat, je odstranění, či změna implicitního účtu.

Kvalitní posouzení úrovně informační bezpečnosti nelze provést pouze auditem či pouze penetračními testy. Samotný audit nemůže dost dobře posoudit konfiguraci systémů a jejich schopnost odolat venkovním a vnitřním maligním útokům. Stejně tak provedení samotných penetračních testů, bez zasazení jejich výsledků do celkového kontextu úrovně zajištění bezpečnosti, nemá vypovídající hodnotu. Penetrační testy sice odhalí chyby v konfiguraci a nastavení HW, neukáží však na chyby v organizačním a procesním zajištění bezpečnosti. Je možné, že penetrační testy potvrdí dokonalé nastavení systému, nicméně systém sám bude vykazovat vážné závady, které mohou mít fatální dopad na jeho provoz. Je tedy jednoznačně výhodné využít synergického efektu

Základní rozdělení je z hlediska provádění testů. Externí testy jsou vykonány z prostředí internetu (měřící bod Zhotovitele), interní pak přímo z prostředí informačního systému zákazníka.

 

Externí penetrační testy

Externí penetrační testy tvoří jádro penetračních testů. Pokrývají oblast bezpečného připojení k internetu a správné konfigurace nabízených služeb. Účelem je důsledně prověřit nastavení a pokud možno ověřit a verifikovat náchylnost provozovaných služeb na nové nebo starší druhy útoků, popřípadě upozornit na zastaralost použitého programového vybavení.
Lze je rozdělit do několika technologických celků:

  • Kontrola DNS
  • Identifikace funkčních systémů
  • Inventarizace systémů
  • Kontrola zajištění operačních systémů (pokus o průnik)
  • Testování zabezpečení podnikového připojení (kontrola aktivních prvků, switche, routery, firewally, wifi hotspoty)
  • Testování poštovního serveru
  • Testování www serveru
  • Testování podnikového extranetu (odolnost proti neoprávněné změně informací)
  • Testování portálu pro firemní partnery

 

Interní penetrační testy

Interní penetrační testy představují specifickou množinu bezpečnostních kontrol, které si kladou za cíl prověřit stupeň zabezpečení dat uložených na systémech v interní síti. Dále pak míru zodpovědnosti oprávněných uživatelů při přístupu k těmto datům. Bezpečnostní nastavení těchto systémů musí odpovídat firemní kultuře a proto je vhodné provádět pravidelné bezpečnostní kontroly. Oproti externím penetračním testům lze interní penetrační testy doplnit o techniky odposlechu síťového provozu. Tato měření jsou samozřejmě závislá na umístění měřícího bodu (například v případě připojení k LAN přepínači můžeme obdržet rozdílné výsledky při připojení ke „klasickému“ rozhraní přepínače oproti připojení k tzv. „sdílenému“ rozhraní, které vidí celý provoz).
Interní penetrační testy se skládají z těchto technologických celků:

  • Identifikace funkčních systémů
  • Inventarizace systémů
  • Kontrola operačních systémů
  • Kontrola sítě a síťových prostředků
  • Získání uživatelských hesel a kontrola možnosti zneužití nastavených práv
  • Možnost zneužití vnitřní elektronické pošty (podvrhnutí zpráv)
  • Odposlech síťového provozu – případné zachycení nešifrovaných údajů (hesla, názvy uživatelských kont apod.)

 

Metodika

V zásadě lze pro penetrační testy využít následující metodiky

  • Penetration tests
  • OWASP - Open Web Application Security Project
  • BSI - Study, A penetration testing model

Penetration tests
je soubor rad a doporučení pro penetrační testování, který je veřejně dostupný na Wikipedii poté, co byl "The Open Source Security Testing Methodology Manual" z Wikipedie stažen. Toto rozhodnutí respektujeme. Pro vlastní penetrační testování pak používáme metodiku NIST, (National Institute of Standards and Technology) a dále pak metodiku BSI (Německá národní autorita, obdoba českého NÚKIBu).

OWASP - Open Web Application Security Project
Jedná se o komunitu bezpečnostních odborníků, která vznikla jako podpůrná organizace pro každého, kdo má zájem o vývoj, nasazování a podporu aplikací, které lze pokládat za důvěryhodné. Klade si za cíl napomáhat tvorbě programového vybavení, které je nejen funkční, ale splňuje bezpečnostní standardy zajišťující poskytování aplikace, ale i bezpečnost dat. Metodika je otevřená, více informací naleznete na stránkách https://www.owasp.org/index.php/OWASP_Testing_Guide_v4_Table_of_Contents

 

Výstupy penetračního testování

Výstupem je zpráva, kterou lze rozdělit na dvě části a sice:

  • Podrobný rozpis penetračních testů včetně technických detailů a výsledných doporučení
  • Manažerský souhrn