Bezpečné hranice  Časť 2: Penetračné testy v praxi

Bezpečné hranice Časť 2: Penetračné testy v praxi

V prvej časti článku som opísal základný prístup ku penetračnému testovaniu a rozdelenie typov penetračných testov. Ako je však penetračné testovanie vykonávané v praxi? Je jasné, že ak má byť počítačovú sieť podrobená simulácii reálneho bezpečnostného útoku, je bezpodmienečne nutné zapodievať sa podrobnou prípravou a plánovaním činností. A ak má poctivý pentest poslúžiť dobrej veci, potom je na záver pravdaže očakávaný aj návrh protiopatrení.


Koordinácia penetračného testovania

Penetračné testovanie je vzhľadom na svoju kritickosť obzvlášť citlivé na vzájomnú koordináciu viacerých entít v rámci organizácie. Koordinácia by mala byť súčasťou plánu testovania.

Náležitá koordinácia testovania zaručí že:

  • všetky zainteresované strany si budú vedomé rozvrhu testovania, súvisiacich aktivít, požiadaviek na zdroje a potenciálneho dopadu na cieľové systémy,
  • testovanie nebude vykonávané počas iných kritických činností, napr. počas výkonu upgrade, implementácie, integrácie, alebo zásadných zmien technológií alebo v iných časoch, keď je nevhodné vyťažovať systémy testovaním, napríklad v termínoch účtovných uzávierok, v čase pravidelne vysokého vyťaženia, atď.,
  • testeri budú vybavení požadovanými úrovňami prístupu do priestorov aj do systémov,
  • príslušní riadiaci zamestnanci budú okamžite informovaní o všetkých kritických zraniteľnostiach ihneď, ako budú zistené,
  • príslušní zamestnanci a dodávatelia budú informovaní o plánovanom výkone testov a prípadnom incidente alebo výpadku služieb spôsobenom testami (najmä testeri, audítori, tím reakcie na bezpečnostné počítačové incidenty, vedenie organizácie a všetci zainteresovaní členovia vyššieho manažmentu),
  • v prípade incidentu alebo výpadku služieb spôsobenom testami, bude penetračné testovanie prerušené a opätovne bude spustené až na základe vopred dohodnutého potvrdenia zo strany zodpovedného riadiaceho zamestnanca.


Logistika testovania

Koordinácia, zosúladenie, prepojenie a optimalizácia toku procesov súvisiacich s výkonom testovania zahŕňa identifikáciu a vyhradenie všetkých zdrojov potrebných na výkon penetračného testovania, zaistenie prostredia, z ktorého bude vykonávané testovanie a zadováženie požadovaných technických prostriedkov a softvéru.

Je dôležité si uvedomiť, že logistické požiadavky sa líšia podľa testovacích fáz. Napríklad v závislosti na rozsahu testovania môžu jednotlivé testy vytvoriť nároky na dodatočné zdroje, prostriedky alebo logistické požiadavky, ako napr.  požiadavku na obhliadku  na mieste, pre externý testovací tím, doručenie ďalších zariadení do priestorov klienta a ich inštaláciu za účelom rozšírenia, resp. upresnenia testovacích predpokladov, plánovanie pracovných ciest atď.

Jednou z najbežnejších požiadaviek testerov býva požiadavka na poskytnutie súčinnosti jednotlivých pracovných rolí na strane organizácie. Špecificky sú to predovšetkým:

  • správcovia aplikácií,
  • správcovia počítačovej siete,
  • správcovia databáz,
  • správcovia operačných systémov,
  • špecialisti informačnej bezpečnosti.


Testovacie fázy

Na nasledujúcom obrázku č. 1  sú schematicky zobrazené tri základné fázy penetračného testu a fáza aktivít po skončení testovania, ktorú pre zjednodušenie možno nazvať reporting.

Obrázok č.1. Fázy penetračného testu

Obrázok č.1. Fázy penetračného testu

 

Fáza plánovania

Vo fáze plánovania sú definované pravidlá, zabezpečuje sa schválenie zo strany štatutárnych zástupcov organizácie a sú stanovené ciele testu. V rámci plánovacej fázy  sú vybudované základy pre úspešný penetračný test. V tejto fáze nie sú vykonávané žiadne konkrétne testy.

Fáza prieskumu

Fáza prieskumu sa skladá z dvoch častí. Prvou je spustenie reálneho testu, avšak iba so zameraním na pasívne získanie informácií. Tester predovšetkým potrebuje oscannovať otvorené sieťové porty, identifikovať dostupné sieťové protokoly a identifikovať spustené služby – to všetko za účelom identifikácie potenciálnych cieľov. Na prieskum sú použité rôzne techniky, ako napr.:

  • získanie názvov serverov a pracovných staníc a získanie IP adries pomocou mnohých metód, vrátane dotazov na DNS, WHOIS dotazov, sniffovania siete atď.,
  • získanie mien zamestnancov organizácie, kontaktných informácií, informácií o identitách, napr. prostredníctvom web serverov alebo adresárových služieb,
  • získanie systémových informácií, ako napríklad názvov zdieľaných zdrojov -tieto môžu byť vyhľadané napr. pomocou výpisov NetBIOS a NIS (Network Information System),
  • údaje o aplikáciách a službách, ako napr. názvov verzií, napr. pomocou banner grabbing-u.

V niektorých prípadoch sú použité doplnkové metódy, ako napríklad aj vyhľadávanie pozostatkov informácií v tlačenej forme v odpadkových košoch a v separovanom zbere (tzv. „dumpster diving“) alebo fyzická obhliadka priestorov, ktorá môže byť účelne využitá na zozbieranie dodatočných informácií o cieľovej počítačovej sieti, alebo na rozkrytie dodatočných informácií,  ktoré nie je možné získať prostredníctvom penetračného testu (napr. heslá zapísané na papieri, atď.).

Druhou časťou prieskumnej fázy je analýza zraniteľností, čo zahŕňa porovnávanie spustených služieb, aplikácií a operačných systémov, ako aj názvov scannovaných hostiteľov oproti známym databázam zraniteľností.

Proces porovnávania oproti známym databázam zraniteľností je v scannovacích nástrojoch zvyčajne zabudovaný a teda automatický, no v neposlednom rade sú to tiež testerove vlastné znalosti o zraniteľnostiach, ktoré prispejú ku úspešnému penetračnému testu. Manuálny postup identifikácie zraniteľností môže pomôcť identifikácii nových neznámych zraniteľností, avšak je výrazne zdĺhavejší, než automatický scan.

Fáza útoku

Vykonanie útoku je hlavným zmyslom každého penetračného testovania. Na nasledujúcom obrázku č. 2 sú zobrazené parciálne kroky vykonávané testerom vo fáze útoku.  Primárne sa jedná o proces overenia zraniteľností identifikovaných v predchádzajúcej fáze a snaha o ich využitie. Ak je útok úspešný, zraniteľnosti sú verifikované, čím je identifikovaný spôsob ich zabezpečenia a možné protiopatrenia asociované k jednotlivým bezpečnostným rizikám.

Obrázok č.2. Jednotlivé kroky vo fáze útoku

Obrázok č.2. Jednotlivé kroky vo fáze útoku

 


Po skončení testovania…

Po ukončení fázy útoku majú testeri k dispozícii zistenia o zraniteľnostiach cieľových systémov a počítačovej siete. Organizácia by mala využi tieto zistenia na spustenie aktivít, ktoré povedú ku zvýšeniu úrovne bezpečnosti, t.j. pristúpiť k urýchlenému návrhu protiopatrení na identifikované riziká.

Fáza útoku má byť ukončená nasledovnými aktivitami:

  • výkon finálnej analýzy a  návrh aktivít vedúcich k ošetreniu zistených rizík,
  • spracovanie záverečnej správy (tzv. Follow-up report) a jej prezentovanie na príslušnom fóre,
  • pomoc s prípravou plánu implementácie protiopatrení.

Mnohé z vyššie spomenutých aktivít už síce nie sú priamou súčasťou penetračného testovania, avšak predstavujú hlavnú pridanú hodnotu celého výkonu testovania. Výstupy penetračného testovania môžu a mali by byť ďalej rozpracované v analýze rizík, čo je však už úlohou zamestnancov podniku, nie testerov.

Reporting

Report podľa synonymického slovníka znamená správu, oznámenie, hlásenie, výkaz. Zjednodušene je teda možné povedať, že cieľom reportov z penetračných testov je  oznámiť organizácii zistené zraniteľnosti a navrhnúť spôsob ich ošetrenia.

Výsledky penetračných testov môžu byť použité nasledujúcimi spôsobmi:

  • ako referenčný bod pre započatie nápravných aktivít,
  • v mitigačných opatreniach smerovaných na riešenie identifikovaných zraniteľností,
  • ako metrika pre sledovanie dosahovania bezpečnostných požiadaviek,
  • na vyhodnocovanie stavu implementácie systémových bezpečnostných požiadaviek,
  • na vyhodnocovanie efektivity opatrení prijatých na zlepšenie systémovej bezpečnosti.

Výsledky testovania by mali byť zdokumentované a sprístupnené príslušným zodpovedným zamestnancom a taktiež vlastníkom dotknutých procesov a systémov. Keďže report môže mať viacerých príjemcov, je nutné report pripraviť vo viacerých verziách, čo zabezpečí, že všetky informácie sú náležite adresované.

Počas prípravy testovania a príprave zmluvy je potrebné zvážiť, či budú spracúvané aj predbežné reporty, správy a zápisy, napríklad:

  • reporty vykonávané počas štandardného stavu testovania:
  • denný súhrn,
  • priebežný súhrn,
  • záverečný rozbor testu resp. testovacej metódy.
  • Reporty vykonávané pri výskyte mimoriadneho stavu:
  • správa o identifikácii kritickej zraniteľnosti / exploitu,
  • správa o identifikácii predchádzajúceho, doteraz nezisteného prieniku,
  • správa o podozrení o spáchaní trestného činu, resp. správa o identifikácii zjavného naplnenia skutkovej podstaty trestného činu (napr. odhalená detská pornografia, odhalené znaky propagácie fašizmu, alebo iného extrémizmu, atď.).

Odporúčania na implementáciu protiopatrení

Väčšia časť analýz je vykonávaná už počas priebehu testovania. Záverečná analýza by však už mala zahŕňať aj návrh mitigačných opatrení. Tak, ako je dôležitá správna identifikácia zraniteľností, penetračný test má vyššiu pridanú hodnotu ak v závere ponúka aj návrh opatrení na ošetrenie zistených zraniteľností a rizík.

Odporúčanie, vrátane „root cause“ analýzy, by mali byť spracované pre všetky zistenia. Opatrenia môžu byť technického charakteru (napr. návrh na nasadenie konkrétnej systémovej záplaty) alebo procesného charakteru (napr. návrh na zmenu postupu v nasadzovaní systémových záplat).

Príkladmi mitigačných opatrení sú návrhy na zmeny politík, procesov, návrhy na modifikáciu procedúr, návrhy na zmenu bezpečnostnej architektúry, nasadenie nových bezpečnostných technológií, alebo nasadenie záplat operačných systémov alebo aplikácií.


Testovacie nástroje

Je potrebné uviesť, že nejestvujú komerčne vyvíjané špeciálne softvérové nástroje určené na penetračné testovanie. Je to z toho dôvodu, že trh takýchto nástrojov je vysoko špecifický a teda cieľová skupina záujemcov o takýto SW je príliš malá, oproti čomu je možné očakávať, že náklady na vývoj komplexného a univerzálneho SW balíka,  určeného na penetračné testovanie, by boli vysoké a teda zrejme vynaložené neefektívne.

Na druhej strane jestvuje dostatočné množstvo exploitov a  nástrojov použiteľných pre útok a napriek tomu, že sú väčšinou založené na voľne šíriteľných licenciách, ich podpora je štandardná a dlhodobo stabilne dostupná. Väčšinou sa jedná o kompaktné Linux distribúcie, zamerané na penetračné testovanie, obsahujúce sadu špecializovaných nástrojov.

Z mnohých je možné vymenovať napríklad:

Živé distribúcie týchto systémov sú úzko zamerané na penetračné testovanie a sú verejne dostupné. Živými sa tieto distribúcie nazývajú preto, že ich je možné zavádzať priamo z CD média, z externej  USB pamäte alebo externej diskovej jednotky, pričom nie sú inštalované na akúkoľvek živú partíciu počítača, ani nezanechávajú na počítači stopy (napr. vo forme záznamov v registri).

Príklad testovacieho nástroja

Rozoberme si trochu podrobnejšie obsahu distribúcie Backtrack.

BackTrack je odvodený z dvoch samostatných živých bezpečnostných Linuxových distribúcií, WHAX a Auditor Security Collection.

Obe boli veľmi populárne pre početnosť obsiahnutých bezpečnostných nástrojov s jednoduchým použitím. Krátko po svojom vzniku, obe distribúcie začali spolupracovať,  čoho výsledkom bola v máji 2006 prvá non-beta verzia, premenovaná na BackTrack. BackTrack sa veľmi rýchlo stal a stále zostáva favoritom pre mnohých bezpečnostných profesionálov.

Systém obsahuje kolekciu viac než 300 nástrojov na prieskum siete, scannovanie, sniffing, lámanie hesiel, testovanie kanálov vzdialeného prístupu, testovanie Bluetooth technológie, forenznú analýzu a penetračné testovanie. Umožňuje používateľskú modularitu, čo znamená, že používateľ si môže distribúciu prispôsobiť pomocou priložených skriptov.

BackTrack taktiež obsahuje nástroje na analýzu Voice over Internet (VoIP) protokolov, Session Initiation Protokolu (SIP); nástroje ako Cisco Global Exploiter (CGE) a Cisco Torch, ktoré sa zameriavajú práve na Cisco systémy a taktiež Metasploit nástroj na analýzu zraniteľností. Berúc do úvahy zvyšujúcu sa dôležitosť testovania bezpečnosti aplikácií taktiež obsahujú nástroje ako Peach, Fuzzer, Paros Proxy.

V nasledujúcej tabuľke sú uvedené príklady nástrojov dostupných v distribúcii BackTrack.

 

Testovacia technika Testovací nástroj
Revízia
Sniffovanie siete Dsniff, Ettercap, Kismet, Mailsnarf, Msgsnarf, Ntop, Phoss, SinFP, SMB Sniffer, Wireshark
Kontrola integrity súborov Autopsy, Foremost, RootkitHunter, Sleuthkit
Analýza a identifikácia cieľa
Testovanie bezpečnosti aplikácií CIRT Fuzzer, Fuzzer 1.2, NetSed, Paros Proxy, Peach
Prieskum  siete Autonomous System Scanner, Ettercap, Firewalk, Netdiscover, Netenum, Netmask, Nmap, P0f, Tctrace, Umit
Identifikácia sieťových portov a služieb Amap, AutoScan, Netdiscover, Nmap, P0f, Umit, UnicornScan
Sncannovanie zraniteľností Firewalk, GFI LANguard, Hydra, Metasploit, Nmap, Paros Proxy, Snort, SuperScan
Scannovanie bezdrôtových sietí Airsnarf, Airsnort, BdAddr, Bluesnarfer, Btscanner, FakeAP, GFI LANguard, Kismet, WifiTAP
Overenie zraniteľnosti cieľa
Password Cracking Hydra, John the Ripper, RainbowCrack, Rcrack, SIPcrack, SIPdump, TFTP-Brute, THC PPTP, VNCrack, WebCrack
Testovanie vzdialeného Prístupu IKEProbe, IKE-Scan, PSK-Crack, VNC_bypauth
Penetračné testovanie Driftnet, Dsniff, Ettercap, Kismet, Metasploit, Nmap, Ntop, SinFP, SMB Sniffer, Wireshark


Záver

Informačná bezpečnosť sa definuje ako „schopnosť siete alebo informačného systému ako celku odolať s určitou úrovňou spoľahlivosti náhodným udalostiam alebo nezákonnému, alebo zákernému konaniu, ktoré ohrozuje dostupnosť, pravosť, integritu a dôvernosť uchovávaných alebo prenášaných údajov a súvisiacich služieb poskytovaných, alebo prístupných prostredníctvom týchto sietí a systémov“.

Ak má byť hodnotenie miery a správnosti protiopatrení implementovaných s cieľom ošetriť identifikované riziká efektívne, malo by okrem iných metodík pozostávať aj z testovania odolnosti siete pomocou simulovaného pokusu o prienik, t.j. formou penetračného testu.

Ivan Makatúra

Vyjadrite váš názor v komentároch