Bezpečné hranice  Časť 1: Čo je to penetračný test

Bezpečné hranice Časť 1: Čo je to penetračný test

Výraz „perimeter“ v matematike znamená celkovú dĺžku vonkajšieho obvodu dvojrozmerného objektu. V prenesenom zmysle sa tento výraz používa ako „hranica“, teda priestor, ktorý sa nachádza na vonkajšej strane hranice vymedzeného objektu.

V informačnej bezpečnosti sa pod pojmom „perimeter“ rozumie vonkajší, cudzí priestor, mimo predmetného virtuálneho prostredia. Najčastejšie sa v tomto kontexte jedná o sieťový perimeter, teda hranicu počítačovej siete. Avšak virtuálnym prostredím môže byť aj počítač, aplikácia, alebo databázový systém. Mimochodom – pre oblasť fyzickej bezpečnosti sa používa totožný výraz pre určenie vonkajšej hranice ochrany objektu mechanickými zábrannými prostriedkami. 

Overovanie úrovne odolnosti sieťového perimetra organizácie voči potenciálnym prienikom, patrí k najefektívnejším aktívnym metódam overovania úrovne odolnosti virtuálnych prostredí, nepriamo teda aj overovania úrovne informačnej bezpečnosti.

dom


Dôveruj ale preveruj

Overovanie úrovne informačnej bezpečnosti je proces, ktorý umožní determinovať IT riziká pôsobiace na zúčastnené entity, t.j. na servery, na koncové pracovné stanice, na počítačovú sieť, na procesy, na používateľov, na klientov atď., v snahe dosiahnuť špecifické bezpečnostné ciele. Tieto entity  sú v procese overovania úrovne informačnej bezpečnosti všeobecne nazývané ako „objekty overenia“ (assessment objects).

Existujú tri základné prístupy ku overeniu úrovne informačnej bezpečnosti: testovanie, preskúmanie a auditný pohovor.

Testovanie je proces, v ktorom je jeden alebo viac objektov overenia vystavených určitým podmienkam, s cieľom porovnať aktuálne a očakávané správanie sa objektov.

Preskúmanie je proces kontroly, inšpekcie, revízie, pozorovania, štúdia, alebo analýzy jedného alebo viacerých objektov overenia, čo môže napomôcť pochopiť, dokázať, potvrdiť alebo získať dôkaz o správaní sa objektov.

Auditný pohovor je proces, v ktorom sú vedené diskusie s jednotlivcami, alebo skupinami v rámci organizácie, čo môže napomôcť pochopiť, dokázať, potvrdiť, získať dôkaz o správaní sa objektov, alebo získať informácie o umiestnení  dôkazov.

V tomto článku sa pokúsim sústrediť špecificky len na testovanie sieťového perimetra tzv. „penetračným testom“.

Penetračný test je simulácia reálneho bezpečnostného útoku, ktorým je možné odhaliť mnohé zjavné formy pokusov o neoprávnený prienik do systémov, zistiť možné cesty kompromitácie klasifikovaných informačných aktív, slabiny a mieru zraniteľnosti organizácie.


Legislatívny rámec penetračných testov

Výkon penetračného testovania nie je explicitne ošetrený žiadnou právnou normou.  Nepriamo je možné pre legálny výkon penetračného testu aplikovať ustanovenia Zákona 502/2001 Z. z. o finančnej kontrole a vnútornom audite, resp. niektorých osobitných zákonov, ktorými je ošetrená povinnosť alebo právo organizácie (zvyčajne pravidelne) vykonávať penetračné testy, napr. v zmysle Zákona č. 483/2001 Z. z. o bankách.

Objednané penetračné testy sú štandardnou službou ktorá je vykonaná na základe zmluvy a objednávky. Je dobrou praxou, že pre tento typ služby je ošetrená povinnosť zachovania mlčanlivosti a dôvernosti získaných informácií.

Pri nevyžiadaných penetračných testoch je z trestno-právneho hľadiska vždy nutné posudzovať účel takéhoto testu. Konanie musí napĺňať skutkovú podstatu trestného činu a nebezpečnosť takéhoto jednania, potom musí dosahovať požadovaný stupeň nebezpečenstva pre spoločnosť, prípadne pre subjekt. Predmetom posudzovania je tiež dokazovanie, či z danej činnosti vzniká škoda. V každom prípade však nevyžiadané penetračné testy sa pohybujú na tenkej hranici medzi legálnou a nelegálnou činnosťou so všetkými dôsledkami.

Do nelegálnej oblasti nepochybne spadajú také penetračné testy, ktoré majú za cieľ poškodiť testovaný subjekt, testy objednané pre účely nekalej hospodárskej súťaže (napr. poškodenie konkurencie kompromitáciou dát, odcudzením alebo zničením dát, alebo spôsobením nedostupnosti služieb), testy vykonané za účelom vydierania, testy vykonané s úmyslom poškodiť dobré meno osôb a právnych subjektov, atď.  Pre takéto konanie sa zvyčajne uplatňujú ustanovenia Trestného zákona súvisiace s elektronickou komunikáciou, ochranou tajomstva, ochranou práv a ekonomickou kriminalitou ako napríklad:

  • 196 a § 197 TZ o porušovaní tajomstva prepravovaných správ,
  • 247 TZ o poškodení a zneužití záznamu na nosiči informácií,
  • 226 TZ o neoprávnenom obohatení,
  • 219 TZ o neoprávnenom vyrobení a používaní elektronického platobného prostriedku a inej platobnej karty,
  • 264 TZ o ohrození obchodného, bankového, poštového, telekomunikačného a daňového tajomstva,
  • 282 TZ o porušovaní priemyselných práv,
  • 283 TZ o porušovaní autorského práva,
  • 361 TZ o šírení poplašnej správy.

Zvyčajne sa používa výklad podľa metódy “argumentum e contrario“, t.j. vyvrátenie tvrdenia dokazovaním, že penetračný test nutne povedie ku sporu alebo k neprijateľným dôsledkom. (tiež tzv. „dôkaz sporom“).

S trochou zveličenia je možné túto časť článku uzatvoriť tvrdením, že i neobjednaný penetračný test môže pomôcť k zlepšeniu stavu informačnej bezpečnosti, ak sú jeho výsledky prezentované seriózne a s čestným úmyslom. J


Rozsah a ciele testovania

V ďalšom texte už vychádzam z predpokladu, že diskutujeme o objednanom, teda legálnom  penetračnom teste.

Pred započatím samotného testu je nutné stanoviť spôsob, akým bude vykonaný penetračný test, dohodnúť so štatutárnymi zástupcami organizácie podmienky testovania, technické, prevádzkové a právne obmedzenia pre výkon testu a najmä spôsob, akým bude organizácia oboznámená s priebehom a výsledkami testovania.

Zároveň je nutné získať písomnú autorizáciu na vykonanie penetračných testov a uzatvoriť dohodu o mlčanlivosti, v ktorej sa obe strany vzájomne ubezpečia, že hlavným cieľom, ktorý má byť testovaním dosiahnutý, je získanie znalostí o zraniteľnostiach, bez toho, aby testovaním došlo ku poškodeniu alebo kompromitácii informačných aktív organizácie a  následne zvýšenie odolnosti sieťového perimetra na základe získaných výsledkov testu.

Penetračný test je overenie, či aktuálny stav bezpečnosti systému alebo siete je v súlade s požadovaným stavom. Zároveň je to však overenie pravdepodobnosti, že systémy a siete budú náchylné úspešnému útoku zo strany zlomyseľného vonkajšieho útočníka alebo podlého vnútorného používateľa.

Proces penetračného testovania zahŕňa nájdenie a vymenovanie všetkých technických nedostatkov alebo zraniteľností. Pokiaľ sú nájdené akékoľvek zraniteľnosti, nasleduje pokus o prienik dovnútra siete, získanie a využitie dôveryhodného kanála na prístup a získanie zdrojov pre ďalší pohyb v doméne. Tento prístup si často vyžaduje spustenie reálneho útoku na reálne systémy a dáta rovnakými technikami, aké sú používané skutočnými útočníkmi.

Väčšina penetračných testerov sa snaží zreťaziť zraniteľnosti rôznych systémov v rôznych kombináciách. Tento prístup zvyčajne zabezpečí získanie vyšších oprávnení v cieľovom systéme, než môžu byť dosiahnuté prostredníctvom jedinej zraniteľnosti.

Penetračné testy sú zároveň vhodné na:

  • určenie, ako efektívne dokáže cieľový systém odolávať reálnym útokom,
  • určenie miery pravdepodobnosti, akou sofistikovaný útočník dokáže úspešne kompromitovať systém,
  • identifikáciu možných dodatočných protiopatrení, ktoré môžu prispieť ku zníženiu hrozieb,
  • overenie schopnosti organizácie včas detegovať útok a vhodným spôsobom reagovať.

Penetračné testy môžu byť veľmi užitočným nástrojom na zvýšenie úrovne informačnej bezpečnosti, avšak sú mimoriadne náročné na ľudské zdroje a to z hľadiska prácnosti, ako i z pohľadu nutných expertných znalostí testerov. Špeciálne znalosti a zručnosti  sú nutné najmä z toho dôvodu, že počas penetračného testovania môžu byť systémy  vystavené riziku zničenia, alebo nedostupnosti počas riadnej prevádzky, v rozpore s pôvodne mienenými benefitmi penetračného testovania. I keď skúsený tester dokáže ošetriť hlavné riziká, bolo by nereálne očakávať, že tieto budú eliminované úplne. V každom prípade – penetračné testy by mali byť vykonané až po opatrnom zvážení, a plánovaní.


Kategorizácia penetračných testov

Jestvujú rôzne typy penetračných testov. Testy sú kategorizované rôznym spôsobom, v závislosti na tom, odkiaľ, s akou znalosťou cieľového prostredia a v akej miere agresivity je vedený pokusný „útok“. A v neposlednom rade aj podľa legitimity testu.

Pozrime sa teda na ich rozdelenie.

A: Vysoká vs. nízka znalosť cieľového prostredia

White-Box

Testovací tím má „voľné ruky“ na prístup do ktorejkoľvek časti siete. Tímu je poskytnutá kompletná dokumentácia technickej infraštruktúry ako aj detaily o architektúre systémov a topológie siete skôr, než započne samotné testovanie.

Tento postoj k testovaniu samozrejme nie je porovnateľný s testovaním „naslepo“, avšak môže zásadným spôsobom prispieť k  zrýchleniu procesu, dosiahnutiu výrazných výsledkov s oveľa presnejšími hodnotami.

Objem potrebných znalostí je smerovaný na testovanie konkrétnych cieľových operačných systémov, aplikácií a sieťových zariadení, ktoré prináležia konkrétnej a známej sieti. To je efektívnejšie, než nutné trávenie času na predchádzajúcej príprave, overovaní dostupnosti a odhadovaní možnej architektúry.

Tento typ testu zodpovedá situácii, keď má útočník kompletné znalosti o vnútornej sieti Väčšinou sa jedná o odhodlaného vnútorného útočníka, zamestnanca, alebo bývalého zamestnanca (tzv. „insider-a“).

Black-Box

Testovací tím nemá žiadne predchádzajúce vedomosti o počítačovej sieti organizácie.

Ako príklad tejto situácie možno uviesť stav, keď sú testované iba web servery publikované do externého prostredia a testovací tím má k dispozícii iba zoznam IP adries a zoznam URL.

Tento typ testu zodpovedá situácii, keď útočník nemá presné znalosti o vnútornej sieti a má tendenciu do tejto siete preniknúť (špecificky sa jedná o odhodlaného vonkajšieho odhodlaného útočníka, tzv. „hacker-a“).

Grey-Box

Testovací tím simuluje útok, ktorý by mohol byť vykonaný zo strany nelojálneho, resp. nespokojného zamestnanca alebo dodávateľa, ktorý má aspoň čiastočný prístup ku kritickým systémom.

Testovaciemu tímu môžu byť poskytnuté zodpovedajúce prístupové práva na úrovni príslušného používateľa a čiastočná dokumentácia o technickej infraštruktúre.

B: Externé vs. interné testovanie

Externé testovanie

Testovanie je vedené z vonkajšej strany sieťového perimetra. Tento prístup umožňuje vnímať stav bezpečnosti skúmaného prostredia tak, ako sa javí z internetu, s cieľom odhaliť také zraniteľnosti, ktoré môžu byť zneužité práve zo strany vonkajšieho útočníka.

Pri externom testovaní sa tester zvyčajne sústredí na verejne publikované služby, resp. vyhradené služby publikované alebo prepájané prostredníctvom verejných sietí. Testovanie je tiež zamerané na odhalenie zraniteľností prístupových metód, ako napríklad bezdrôtových prístupových bodov, modemov a portálov vnútorných serverov.

Interné testovanie

Pri internom testovaní pracujú testeri vo vnútri siete a preberajú na seba identitu dôveryhodného vnútorného používateľa, prípadne útočníka, ktorý prenikol ochranou sieťového perimetra. Tento typ testovania napomáha demonštrovať potenciálnych dopady ktoré môžu byť spôsobené práve zo strany vnútorného útočníka.

Interné testovanie sa sústreďuje na úroveň bezpečnosti systémov umiestnených v LAN a VLAN a ich konfiguráciu , vrátane konfigurácie aplikácií a služieb, bezpečnosti autentifikačných metód, adresárových služieb, riadenia prístupov a hardeningu serverov.

Interné testovanie nemá tie limitácie, ako externé testovanie, keďže prebieha zvnútra ochrany perimetra, napriek tomu, že aj vo vnútri siete existujú isté obranné mechanizmy.

Zmiešaný prístup

Ak sú vykonávané naraz externé aj interné penetračné testy, externé by mali byť vykonané ako prvé. Toto je obzvlášť potrebné, pokiaľ testy vykonáva jeden a ten istý tester. Ak by tento získal informácie z interného penetračného testovania ako prvé, mohlo by to mať negatívny vplyv na dôveryhodnosť údajov získaných z následného externého penetračného testu.

C: Transparentné vs. utajené testovanie

Transparentné testovanie

Transparentné (otvorené, neskrývané) testovanie známe tiež pod názvom „white hat“ testovanie, znamená výkon externého alebo interného testovania s vedomím a súhlasom tej organizačnej jednotky, ktorej zodpovednosťou je prevádzka IKT, umožniac tak komplexné zhodnotenie úrovne bezpečnosti siete.

Keďže IT útvar organizácie je zainteresovaný do testovania, mal by byť schopný poskytnúť podporu smerujúcu k minimalizácii potenciálnych negatívnych dopadov testovania. Testovanie môže tiež poskytnúť príležitosť na získanie neoceniteľnej skúsenosti s profesionálnymi metódami overenia úrovne bezpečnosti.

Utajené testovanie

Utajené (skryté) testovanie známe tiež ako „black hat“ testovanie oproti predchádzajúcemu spôsobu používa prístup, pri ktorom  je testovanie vykonávané bez predchádzajúceho upovedomenia organizačnej jednotky, ktorej zodpovednosťou je prevádzka IKT. Testovanie vopred odsúhlasí len najvyššie vedenie organizácie a oboznámené sú len útvary zodpovedné za informačnú bezpečnosť, resp. za interný audit. Skryté testovanie môže byť následne spustené s predchádzajúcim upozornením, alebo aj bez akéhokoľvek upozornenia.

Účelom skrytého testovania je preskúmať možnosti zničenia informačných aktív, alebo spôsobenia dopadu na informačné aktíva. Tento test nie je zameraný na identifikáciu zraniteľností, ale má za cieľ testovať úroveň zabezpečenia z pohľadu potenciálneho nepriateľa. Skrytý test má vopred určené iba hranice, ktoré pokiaľ sú testermi dosiahnuté, považuje sa test za úspešne ukončený (napr. dokázateľné získanie príslušných prístupových práv alebo dokázateľne kompromitované vopred určené cieľové informačné aktíva).

Transparentné testovanie je menej nákladné, generuje nižšie riziká a je používané častejšie. Oproti tomu utajené testovanie poskytuje kvalitnejšiu indikáciu o potenciálnych rizikách, pretože správcovia systémov nie sú vopred upozornení na potrebu zvýšenej pozornosti a teda nemajú tendenciu „oklamať“ testovanie bezprostrednou reakciou počas prebiehajúcich testov.

testy


Výnimky z penetračného testovania

Z rámca penetračných testov sú zvyčajne vopred zmluvne vylúčené testovacie postupy, ktorých základom sú metódy sociálneho inžinierstva, keďže takéto testovanie je nasmerované na zneužitie zraniteľnosti vyplývajúcej z nízkeho bezpečnostného povedomia používateľov a nie na zisťovanie úrovne bezpečnosti sietí a systémov.

Rovnako tak by mali byť vopred automaticky zmluvne vylúčené testovacie postupy, ktoré smerujú na odopretie služby napr. zahltením komunikačného kanála (DoS, DDoS), preťažením zdrojov, alebo odstavením služieb na strane poskytovateľov základných médií (napr. odstavenie dodávky elektrickej energie, chladenia, dátového pripojenia, atď.), alebo rušením rádiofrekvenčného pásma (v prípade služieb založených na bezdrôtových technológiách).

S úmyslom zvýšenia efektivity penetračného testovania by z predmetu testovania mali byť taktiež vyňaté:

  • vývojové a testovacie verzie softvéru,
  • spoločne vlastnené a zdieľané zdroje a zariadenia (veľmi špecificky je to problém na otvorenú diskusiu, napr. v prípade, že organizácia používa architektúru zvanú “Cloud computing”),
  • notebooky a prenosné zariadenia, resp. iba po predchádzajúcej dohode,
  • skúšobné verzie komerčného softvéru,
  • nestabilní hostitelia,
  • sieťová infraštruktúra dodaná len na testovacie účely.

 

Ivan Makatúra

Vyjadrite váš názor v komentároch