Metodologija Penetracijskog Testiranja: CCERT-PUBDOC-2008-02-219

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

Metodologija penetracijskog

testiranja
CCERTPUBDOC200802219

Sigurnosni problemi u raunalnim programima i operativnim sustavima podruje je


na kojem CARNet CERT kontinuirano radi.
Rezultat toga rada ovaj je dokument, koji je nastao suradnjom CARNet CERTa i
LS&Sa, a za koji se nadamo se da e Vam koristiti u poboljanju sigurnosti Vaeg
sustava.

CARNet CERT,

www.cert.hr nacionalno sredite za sigurnost


raunalnih mrea i sustava.

LS&S,

www.lss.hr laboratorij za sustave i signale pri Zavodu za


elektronike sustave i obradbu informacija Fakulteta elektrotehnike i
raunarstva Sveuilita u Zagrebu.

Ovaj dokument predstavlja vlasnitvo CARNeta (CARNet CERTa). Namijenjen je za javnu objavu, njime se
moe svatko koristiti, na njega se pozivati, ali samo u originalnom obliku, bez ikakvih izmjena, uz obavezno
navoenje izvora podataka. Koritenje ovog dokumenta protivno gornjim navodima, povreda je autorskih prava
CARNeta, sukladno Zakonu o autorskim pravima. Poinitelj takve aktivnosti podlijee kaznenoj odgovornosti
koja je regulirana Kaznenim zakonom RH.

Revizija v1.0

CCERT-PUBDOC-2008-02-219

Stranica 2 / 14

Sadraj

1.

UVOD .............................................................................................................................................. 4

2.

OPENITO O PENETRACIJSKOM TESTIRANJU .......................................................................................... 5

3.

FAZE PROCESA PENETRACIJSKOG TESTIRANJA ....................................................................................... 5

3.1.
3.2.
3.3.
3.4.
3.5.
3.5.1.
3.5.2.
3.6.
3.7.
3.8.
4.
4.1.
4.2.
4.3.
5.
5.1.
5.2.
5.3.

PRIKUPLJANJE INFORMACIJA ...................................................................................................................... 5


MAPIRANJE MREE ................................................................................................................................. 5
IDENTIFICIRANJE RANJIVOSTI ..................................................................................................................... 6
PENETRACIJA ....................................................................................................................................... 6
DOBIVANJE PRISTUPA I POVEANJE OVLASTI ..................................................................................................... 6
Dobivanje pristupa ......................................................................................................................... 6
Poveanje ovlasti ........................................................................................................................... 7
DALJNJE POPISIVANJE OBJEKATA (ENG. ENUMERATING FURTHER) ............................................................................. 7
KOMPROMITACIJA SUSTAVA ........................................................................................................................ 7
ODRAVANJE PRISTUPA I SKRIVANJE TRAGOVA ................................................................................................... 7

POSTOJEI STANDARDI PENETRACIJSKOG TESTIRANJA ............................................................................ 8

OPEN SOURCE SECURITY TESTING METHODOLOGY MANUAL (OSSTMM)........................................................................ 8


NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY (NIST) STANDARD ................................................................... 8
INFORMATION SYSTEMS SECURITY ASSESSMENT FRAMEWORK (ISSAF) ......................................................................... 9
ALATI ZA AUTOMATSKO PROVOENJE PENETRACIJSKOG TESTIRANJA ........................................................ 9
COREIMPACT ........................................................................................................................................ 9
METASPLOIT ...................................................................................................................................... 10
CANVAS ............................................................................................................................................ 11

6.

PREDNOSTI I NEDOSTACI AUTOMATSKOG PROVOENJA PENETRACIJSKOG TESTIRANJA............................... 11

7.

ZAKLJUAK .................................................................................................................................... 14

8.

REFERENCE..................................................................................................................................... 14

Revizija v1.0

CCERT-PUBDOC-2008-02-219

Stranica 3 / 14

1. Uvod
Etian haker (eng. ethical hacker, white hat) je strunjak u podruju raunarstva i raunalnih mrea.
On napada raunalne sustave pokuavajui iskoristiti njihove slabosti, ali, za razliku od zlonamjernih
hakera (eng. hacker, black hat), on to ini prema nalogu vlasnika ciljanog sustava i upravo s ciljem
identifikacije ranjivosti i spreavanja djelovanja zlonamjernih hakera.
Rad etinog hakera esto se jo naziva i penetracijskim testiranjem (eng. penetration testing).
Penetracijsko testiranje, unato uvrijeenom miljenju, ipak nije samo pokretanje nekoliko alata i
izrada izvjetaja. U ovom je podruju, naime nasuno potrebna struktura i organizacija koja, osim
propisivanja grupe testova, mora osigurati i odgovore na pitanja kvalitete, sveobuhvatnosti i
ponovljivosti rezultata. Ta je struktura u ovom podruju obuhvaena metodologijom, a, razvija se kako
bi od penetracijskog testiranja uinila alat koji e pruiti to je mogue realistiniju sliku o aktualnoj
sigurnosti testiranog objekta.
U dokumentu dan kratak pregled osnova penetracijskog testiranja s posebnim naglaskom na
metodologiju. Dokument opisuje uobiajene faze procesa penetracijskog testiranja, postojee
standarde te se osvre na prednosti i nedostatke postojeih alata koji automatiziraju ovaj proces.

Revizija v1.0

CCERT-PUBDOC-2008-02-219

Stranica 4 / 14

2. Openito o penetracijskom testiranju


Penetracijsko testiranje je tehnika procjene sigurnosti raunalnog sustava ili mree koja se temelji na
oponaanju stvarnog napada. Prilikom testiranja, ovlateni ispitiva provjerava metu izvodei
razliite vrste napada jednakim tehnikama koje bi koristio i da je stvarni napada. Cilj mu je uoiti
bilo kakvu ranjivost koju je mogue iskoristiti za ostvarenje neovlatenog pristupa.
Iako ovakav nain testiranja daje rezultate i uspijeva pronai mane, esto se precjenjuje njegov
znaaj. Penetracijsko testiranje ne moe dokazati da je sustav potpuno siguran, bez ikakvih mana.
Moe jedino utvrditi odreenu granicu koliine znanja i rada neophodnog napadau za uspjean
prodor u sustav. Uz poznavanje spomenutih informacija mogue je jamiti sigurnost sustava samo u
odreenim situacijama, a ne nikako openito i generalno.
U samim poecima razvoja penetracijskog testiranja, vjerovalo se kako sve ranjivosti zadovoljavaju
odreene prepoznatljive obrasce te su se alati za automatsko provoenje testiranja razvijali upravo u
smjeru traenja tih generikih uzoraka. Naalost, zbog velike koliine razliitih raunala, operacijskih
sustava i programskih jezika (s razliitim sintaksnim i semantikim pravilima), koritenih za izgradnju
raunalnih sustava, koritenje takvih automatskih alata prilikom penetracijskog testiranja postaje
teko i nepraktino. Isto tako, skupo je mijenjati postojee alate, kako bi odgovarali svim novim
okruenjima i programskim jezicima.
Kako su moderni sustavi usmjereni na standarde nekoliko obitelji operacijskih sustava (npr. Unix,
Linux, Windows) i ne odvie velik broj programskih jezika (npr. C, C#, Java), budui alati, koji rade na
principu raspoznavanja obrazaca ranjivosti, mogli bi biti uspjeniji. Poinje se javljati nekoliko
specifinih trendova: antivirusni alati za popularne radne stanice i osobna raunala, Unix alati za
sigurnosno testiranje, sustavi za detekciju upada u sustav, alati za formalno dokazivanje specifikacije,
analizatori ranjivosti, alati za simboliko izvoenje i sl.
Netko se moe pitati to to penetracijsko testiranje nudi, a pretraivanje ranjivosti ne. Obje tehnike,
naime, mogu dati i daju procjenu moguih napada na sustav. Ipak, pretraivanje ranjivosti procjenu
stvara ne temelju automatiziranog procesa, te ga se moe smatrati uvodnim korakom u stvarno
penetracijsko testiranje koje potvruje ili opovrgava ranjivosti detektirane automatskim procesom. Za
razliku od pretraivanja ranjivosti, penetracijsko testiranje daje reducirani skup detektiranih ranjivosti
za koje se s izuzetno velikom sigurnou moe tvrditi da se doista nalaze u sustavu.

3. Faze procesa penetracijskog testiranja


3.1.

Prikupljanje informacija
Prikupljanje informacija je postupak koji ukljuuje koritenje Interneta za pronalazak informacija o
ciljnom sustavu, organizaciji ili osobi, uz pomo tehnikih (DNS/WHOIS) i netehnikih metoda
(pretraivai, novinske grupe, liste elektronike pote i sl.). Kod provoenja bilo kakvog testa na
informacijskom sustavu, prikupljanje informacija je kljuno i osigurava potrebne preduvjete za
nastavak testiranja. Prilikom prikupljanja podataka, vano je biti to domiljatiji te pokuati istraiti
sve mogue putove za lake razumijevanje ciljnog sustava i njegovih resursa. U ovoj fazi testiranja,
korisno je sve do ega se moe doi: organizacijske broure, poslovne kartice, prospekti, novinske
reklame, interni papiri i dr.
Prikupljanje informacija ne zahtjeva uspostavljanje kontakta s ciljnim sustavom, budui da se
informacije prikupljaju iz (uglavnom) javnih izvora na Internetu i organizacija koje dre javne
informacije (npr. porezne agencije, knjinice i dr.).

3.2.

Mapiranje mree
Specifine mrene informacije prikupljene u proloj fazi, koriste se i proiruju prilikom izrade
vjerojatne mrene topologije mete. U ovoj se fazi mogu koristiti razni alati i aplikacije, kao pomo u
otkrivanju tehnikih informacija o raunalima i mreama ukljuenim u testiranje.
Postupak mapiranja mree obuhvaa:
pronalazak aktivnih raunala,

Revizija v1.0

CCERT-PUBDOC-2008-02-219

Stranica 5 / 14

3.3.

pretraivanje prikljuaka i servisa,


odreivanje vanjskih rubova mree (usmjerivaa, vatrozida),
identifikaciju kritinih servisa,
utvrivanje informacija o operacijskom sustavu (eng. OS fingerprinting),
identifikaciju ruta koritenjem MIB (eng. Management Information Base) baze i
utvrivanje informacija o servisima (eng. Service fingerprinting).

Identificiranje ranjivosti
Prilikom identifikacije ranjivosti, analizator detektira slabe toke sustava koje su pogodne za
zloporabu. Aktivnosti kojima se postie takva detekcija ukljuuju:
identifikaciju ranjivih servisa koritenjem servisnih poruka (eng. banners),
pretraivanje ranjivosti s ciljem otkrivanja poznatih nedostataka - informacije vezane uz
poznate ranjivosti mogu se pronai u proizvoaevim sigurnosnim oglasima ili u javnim
bazama podataka, kao to su SecurityFocus, Secunia i sl.,
popisivanje otkrivenih ranjivosti,
procjenu oekivanog utjecaja (klasifikacija pronaenih ranjivosti) i
identifikaciju putova napada i scenarija za zloporabu.

3.4.

Penetracija
Analizator pokuava ostvariti neovlaten pristup zaobilaenjem sigurnosnih ogranienja, pri tome
nastojei dobiti to vee ovlasti. Ovaj se proces moe podijeliti u nekoliko faza:
Pronalazak programskog koda koji iskoritava ciljane ranjivosti (eng. exploit) mogue je
koristiti vlastiti repozitorij ili javno dostupne izvore. Ako je kd iz vlastitog, sigurnog
repozitorija, moe se koristiti, a u suprotnom ga sluaju treba prvo testirati u izoliranom
okruenju.
Razvoj alata/skripti - u nekim okolnostima potrebno je kreirati vlastite alate i skripte za
testiranje i za poveanje uinkovitosti.
Testiranje alata/kda za dokazivanje koncepta.
Prilagodba alata/kda za dokazivanje koncepta.
Potvrda ili pobijanje postojanja ranjivosti - jedino testiranjem ranjivosti analizatori mogu sa
sigurnou potvrditi ili pobiti postojanje ranjivosti.
Dokumentacija - mora sadravati detaljan opis putova zloporabe, utjecaja koji je ostvaren na
sustav i dokaza postojanja ranjivosti.

3.5.

Dobivanje pristupa i poveanje ovlasti


Ukoliko u fazi penetracije nije uspio pokuaj ostvarenja pristupa ovaj korak nudi neke alternativne
mogunosti. Ako je, ipak, penetracija dala odreene rezultate, jednako kao i kad to nije sluaj, ovaj
korak omoguuje dodatno poveanje ovlasti.
3.5.1.

Dobivanje pristupa

Ukoliko pokuaj penetracije nije dao odgovarajue rezultate analizatoru na raspolaganju stoje jo
neke mogunosti probijanja ugraene zatite:
otkrivanje korisnikih imena/zaporki - tzv. napad rijenikom (eng. dictionary attack) i napad
grubom silom (eng. brute force attack),
otkrivanje praznih ili podrazumijevanih zaporki u sistemskim raunima,
iskoritavanje proizvoaevih podrazumijevanih postavki, kao to su parametri mrene
konfiguracije, zaporke i sl. te
otkrivanje javnih servisa, koji dozvoljavaju obavljanje odreenih operacija na sustavu, kao to
je pisanje/stvaranje/itanje datoteka.
Ukoliko pokuaj zaobilaenja zaporki urodi odgovarajuim rezultatom, slijedi kompromitacija ciljnog
sustava. Ona moe ukljuivati i kompromitaciju posrednih sustava, kako bi se zaobile sigurnosne

Revizija v1.0

CCERT-PUBDOC-2008-02-219

Stranica 6 / 14

mjere i ostvario pristup konanom cilju. Ti mogui posredni sustavi mogu biti npr. usmjerivai,
vatrozidi, domenski posluitelji, radne stanice i dr.
3.5.2.

Poveanje ovlasti

esto se dogaa da je u prethodnim fazama dobiven pristup sustavu neke nie razine. U tom
specifinom sluaju, potrebno je izvesti mapiranje lokalnih ranjivosti (kao suprotnost ranjivostima
baziranim na mrei), iskoritavanje ili razvoj dokaza koncepta (testiranog u izoliranom okruenju i
primijenjenog na kompromitirani sustav).
U ovoj je fazi je cilj stei administratorske ovlasti temeljem prethodno steenih ovlasti manje
vanosti. Glavne prepreke tom cilju su primijenjene ispravke koje analizatoru bitno umanjuju broj
prisutnih ranjivosti, a time i mogunost zlouporabe. Dodatnu prepreku predstavljaju alati za provjeru
integriteta sustava (ukljuujui antivirusne alate), koji u nekim sluajevima mogu zaustaviti akcije
analizatora.

3.6.

Daljnje popisivanje objekata (eng. Enumerating Further)


Ova se faza sastoji od sljedeih koraka:
otkrivanja kriptiranih zaporki za probijanje sustava koji nije spojen na mreu (npr.
kopiranjem datoteka /etc/passwd i /etc/shadow na Linux sustavima),
otkrivanja zaporki (kriptiranih ili otvorenog teksta) koritenjem sniffer alata i drugih tehnika,
analize prometa,
prikupljanja kolaia (eng. cookie) i njihovog koritenja za iskoritavanje sjednica ili napade
na zaporke,
prikupljanja adresa elektronike pote,
identifikacije ruta i mrea, i
mapiranja internih mrea i ponovnog izvoenja prethodnih koraka, sa sustavom u danom
stanju kao polaznom tokom.

3.7.

Kompromitacija sustava
Jedna ranjivost u sustavu dovoljna je za izlaganje itave mree, neovisno o tome koliko je sigurna
njena periferija. Svaki je sustav jak (u ovom sluaju siguran) onoliko, koliko su jaki njegovi najslabiji
dijelovi. Komunikacija izmeu udaljenih korisnika/podrunica i organizacijskih mrea moe se
zatititi autentikacijom i enkripcijom, koritenjem tehnologija kao to je VPN (eng. Virtual Private
Network), kako bi se osigurala autentinost i privatnost prenoenih podataka. Meutim, to ne jami
pouzdanost krajnjih toaka u komunikaciji.
U takvim situacijama, analizator treba pokuati kompromitirati udaljene korisnike i/ili udaljene
podrunice organizacije. Ovaj mu postupak moe osigurati pristup internoj mrei.

3.8.

Odravanje pristupa i skrivanje tragova


Odravanje pristupa i skrivanje tragova nezaobilazan su dio penetracijskog testiranja, a analizatoru
osiguravaju stalnu i trajnu prisutnost na kompromitiranom sustavu bez mogunosti razotkrivanja.
Ovaj korak ukljuuje primjenu sljedeih alata i tehnika:
skrivenih kanala,
stranjih vrata (eng. backdoor),
tzv. rootkit alata,
prikrivanja tragova,
skrivanja datoteka,
ienja zapisnika,
ponitenja provjere integriteta i
ponitenja antivirusnih alata.
Ovdje je bino naglasiti da se prikrivanje kanala, instalacija "stranjih vrata" i rootkit alati uglavnom ne
koriste kao dio uobiajenog penetracijskog testiranja, zbog rizika od ostavljanja nekog od ovih alata

Revizija v1.0

CCERT-PUBDOC-2008-02-219

Stranica 7 / 14

pokrenutih i nakon kraja testiranja te, na taj nain, ostavljanja mogunosti stvarnom napadau za
njihovo iskoritavanje iskoristi u stvarnom napadu.

4. Postojei standardi penetracijskog testiranja


Ljudi su esto iznenaeni kada uvide mogunost postojanja strukture i organizacije u procesu
penetracijskog testiranja. Unato tome, postoji nekoliko izvora koji standardiziraju ovaj proces.
Najpoznatiji meu njima je onaj s instituta Institute for Security and Open Methodologies, poznat pod
akronimom OSSTMM (eng. Open Source Security Testing Methodology Manual).

4.1.

Open Source Security Testing Methodology Manual (OSSTMM)


OSSTMM je prirunik koji detaljno opisuje proces penetracijskog testiranja. Cilj prirunika, koji su
njegovi autori postavili jo za vrijeme njegovog sastavljanja, je definiranje stroge metodologije
penetracijskog testiranja, pri emu se moraju zadovoljiti tri uvjeta:
konzistencija,
ponovljivost i
pouzdanost rezultata.
OSSTMM je u svojoj sri skup uputa kojima je cilj provoenje iscrpnih penetracijskih testova koji e
pokriti sva potrebna podruja, pritom pazei na pridravanje zakonskih odredbi. Rezultat testiranja
uinjenog prema ovom standardu kvantificira stupanj opasnosti, konzistentan je i mora biti ogranien
na prezentaciju pronaenih injenica.
Sam prirunik podijeljen je u est dijelova (eng. channels):
informacijska sigurnost,
sigurnost procesa,
sigurnost Internet tehnologija,
sigurnost komunikacija,
sigurnost beinih tehnologija i
fizika sigurnost.
Izmeu ovih dijelova postoji mnogo preklapanja, a informacijska i fizika sigurnost predstavljaju
okosnicu cijelog dokumenta.
OSSTMM popisuje tehnike pojedinosti o tome to treba testirati, kao i o tome to treba uiniti prije,
za vrijeme i nakon samog testiranja. Kako bi odreeno penetracijsko testiranje bilo usklaeno s
OSSTMM standardom, ono mora pokriti sve module odreenog poglavlja. Ukoliko ne postoji
infrastruktura neophodna za izvoenje odreene skupine testova, ta se skupina u konanom izvjeu
oznaava oznakom NOT APPLICABLE.

4.2.

National Institute of Standards and Technology (NIST) standard


Nacionalni institut znanosti i tehnologije Sjedinjenih Amerikih Drava (eng. National Institute of
Science and Technology - NIST) nainio je dokument s naslovom Special Publication 800-42, Guideline

on Network Security Testing.

Cilj dokumenta je sistematino propisivanje elemenata testiranja sigurnosti u dravnim


organizacijama SAD-a. On identificira preduvjete koje je potrebno ispuniti za poetak testiranja i
preporua prioritete kojima je mogue testiranje provesti i s ogranienim resursima. Takoer
doprinosi izbjegavanju dvostrukog napora pruajui sustavan pristup cijeloj problematici. Dodatna mu
je prednost i postojanje vie razina testiranja koje, ovisno o organizaciji nad kojom se postupak
primjenjuje, mogu dovesti do znaajne utede sredstava.
Temeljni naglasak dokumenta stavljen je na pruanje osnovnih informacija o alatima i tehnikama koje
stoje na raspolaganju osobi koja eli zapoeti postupak testiranja sigurnosti. Dokument je, u prvom
redu, usredotoen na aspekt mrene sigurnosti, pri emu je posebna panja posveena slijedeim
sustavima:
vatrozidima (unutarnjim i vanjskim),
usmjerivaima i preklopnicima,
sustavima za zatitu mrenog okruenja (primjerice IDS Intrusion Detection System
sustavima),

Revizija v1.0

CCERT-PUBDOC-2008-02-219

Stranica 8 / 14

web, e-mail i ostalim aplikacijskim posluiteljma, te


ostalim posluiteljima (DNS Domain Name System , SMB Server Message Block, NFS
Network File System, FTP File Transfer Protocol i sl.)
Slijedea slika prikazuje raspored pobrojanih sustava u uobiajenoj mrenoj konfiguraciji.

Slika 1. Uobiajen razmjetaj temeljnih elemenata raunalne mree

Openito je preporuljivo testiranje zapoeti s pobrojanim kljunim elementima, a tek onda nastaviti s
testiranjem manje bitnih posluitelja, radnih stanica i testiranjem sigurnosne osvijetenosti
ukljuenog osoblja.
Testovi sadrani u dokumentu primjenjivi su na razliite faze razvojnog ciklusa sustava, ali su ipak
najkorisniji kao dio rutinskog programa testiranja mrene sigurnosti koji se provodi nad raunalima u
njihovom uobiajenom operativnom stanju.

4.3.

Information Systems Security Assessment Framework (ISSAF)


ISSAF je strukturirani radni okvir koji podruje procjene sigurnosti raunalnog sustava organizira u
razliite domene. Osim toga, on detaljno opisuje sasvim specifine testove koji se provode u svakoj od
njih.
Iako ukljuuje vrlo opsean skup sigurnosnih procedura, jo se uvijek smatra standardom u razvoju, te
se nije preporuljivo pouzdati u rezultate njegovog provoenja.

5. Alati za automatsko provoenje penetracijskog testiranja


5.1.

CoreImpact
CoreImpact je komercijalan alat, proizvoaa Core Security Technologies, namijenjen automatskom
provoenju penetracijskog testiranja. Radi na principu oponaanja stvarnih napada na mrene
posluitelje i radne stanice, krajnje sustave i web aplikacije. Omoguava pronalaenje i ispravljanje
ranjivosti prije nego se dogodi stvaran sigurnosni incident.
Neke od znaajki koje podrava su:
provjera iskoristivih operacijskih sustava i servisa,
mjerenje reakcije krajnjih korisnika na tzv. phishing i spear phishing napade, neeljene
poruke i druge prijetnje elektronike pote i sl.,
testiranje sigurnosti web aplikacija i demonstraciju posljedica web-utemeljenih napada,
razlikovanje pravih prijetnji od lanih,

Revizija v1.0

CCERT-PUBDOC-2008-02-219

Stranica 9 / 14

konfiguriranje i testiranje uinkovitosti IDS (eng. Intrusion Detection System), IPS (eng.
Intrusion Prevention System) sustava, vatrozida i slinih infrastruktura,
potvrdu sigurnosti nadogradnje, izmjena i zakrpa sustava te
uspostavljanje i odravanje postupaka testiranja ranjivosti.
Osim navedenog, alat omoguava i analizu stanja organizacijske sigurnosti u odnosu na tri
najpoznatije metode napada:
probijanje mrenih sustava obrane, uz pomo napada osmiljenih za iskoritavanje ranjivosti
u operacijskim sustavima i servisima instaliranim na posluiteljima, kao i ranjivosti
klijentskih aplikacija pokrenutih na stolnim raunalima,
prijevare od strane zaposlenika, dobavljaa i drugih krajnjih korisnika, uz pomo napada
socijalnim inenjeringom temeljenim na porukama elektronike pote i
manipulaciju web aplikacija, radi pristupa podacima putem tzv. SQL injection napada ili
napada ukljuivanjem udaljenih datoteka.
Najpoznatiji test CoreImpact alata jest brzi penetracijski test (eng. Rapid Penetration Test). Uz pomo
tog testa, korisnici mogu saznati sljedee informacije:
operacijske sustave i kritine servise,
aplikacije krajnjih toaka (web preglednike, itae elektronike pote, komunikaciju u
stvarnom vremenu (eng. instant messaging), alate za reprodukciju multimedijalnih sadraja,
poslovne aplikacije i sl.),
sigurnosna rjeenja krajnjih toaka (antivirusne alate, anti-phishing, anti-malware alate i sl.),
informiranost krajnjih korisnika o napadima socijalnim inenjeringom, neeljenim porukama
elektronike pote i dr. ,
koritene web aplikacije, kao to su Internet bankarstvo, ERP (eng. Enterprise Resource
Planning) sustavi i sl.,
prisutne IDS (eng. Intrusion Detection System) i IPS (eng. Intrusion Prevention System)
sustave, vatrozide i druge sigurnosne alate,
rezultate pretraivaa ranjivosti i
sigurnosne politike.
RPT provodi automatsko penetracijsko testiranje putem sljedeih est koraka:
1. prikupljanje informacija,
2. napad i penetracija,
3. prikupljanje lokalnih informacija,
4. poveanje ovlasti,
5. ienje i
6. generiranje izvjetaja.
Prikupljanje
informacija

Napad i
penetracija

Prikupljanje
lokalnih
informacija

Poveanje
ovlasti

ciklus

ienje

Generiranje
izvjetaja

Slika 2. est koraka RPT postupka

5.2.

Metasploit
Metasploit je projekt otvorenog koda, namijenjen analizi raunalne sigurnosti. Osigurava informacije o
sigurnosnim ranjivostima te pomae u izvoenju penetracijskog testiranja i razvoju IDS potpisa.
Njegov najpoznatiji podproizvod jest Metasploit okruenje (eng. Metasploit Framework), razvojna
platforma za izradu i izvoenje kda i alata za zloporabu na udaljenim raunalima.
Kao i drugi alati namijenjeni zatiti informacijske sigurnosti, Metasploit se moe koristiti za zakonite i
neovlatene aktivnosti.
Metasploit okruenje koriste sigurnosni strunjaci za izvoenje penetracijskog testiranja,
administratori sustava za provjeru instalacija zakrpa, proizvoai za testiranje regresije ranjivosti, ali i
ostali sigurnosni istraivai u razliite svrhe.

Revizija v1.0

CCERT-PUBDOC-2008-02-219

Stranica 10 / 14

Ovo je okruenje postojalo u tri razliite inaice, od srpnja 2003. godine. Trea (3.x) i trenutna inaica
je nastala potpunom izmjenom prethodnih i pisana je jezikom Ruby, a razvio ju je Metasploit LLC tim i
dostupna je pod Metasploit Framework licencom.
Metasploit okruenje sastoji se od alata, biblioteka, modula i korisnikog suelja. Osnovna funkcija
okruenja je uitavanje modula, to korisnicima omoguava konfiguraciju i iskoritavanje modula za
napad na ciljni sustav. U nomenklaturi Metasploit okruenja bitno je razlikovati pojmove modula,
exploit-a i payload-a. Modul je dio Metasploit okruenja namijenjen iskoritavanju jedne specifine
ranjivosti. Njemu pripada i odreeni programski kod (exploit) posebno oblikovan iskoritavanju
dotine ranjivosti. Cilj iskoritavanja ranjivosti je pokrenuti izvoenje posebno oblikovanog
programskog koda na ciljnom raunalu. Taj programski kod obino se naziva payload, univerzalan je za
sve exploit-e, a specifian za svaku raunalnu arhitekturu. Metasploit okruenje sadrava nekoliko
desetaka takvih kodova namijenjenih razliitim funkcijama i oni se na ciljnom raunalu koriste u
kombinaciji s odgovarajuim exploit-om.
Osnovni koraci iskoritavanja ranjivosti sustava koritenjem Metasploit okruenja su:
Odabir i konfiguracija kda (eng. exploit) kojim se prodire u ciljni sustav uz iskoritavanje
neke od poznatih ranjivosti. U Metasploit okruenje ukljueno je 200-tinjak razliitih exploit
kdova za Windows, Unix/Linux i Mac OS X operacijske sustave.
Provjera osjetljivosti ciljnog sustava na koritenu ranjivost. Ovaj je korak opcionalan.
Odabir i konfiguracija kda, ije e izvravanje biti pokrenuto na ciljnom sustavu u sluaju
uspjene zloporabe propusta (eng. payload). Primjerice, moe se raditi o udaljenoj ljusci
(eng. shell) ili VNC (eng. Virtual Network Computing) posluitelju.
Odabir tehnike za kodiranje payload-a, tako da ga sustav za detekciju upada (IDS) ne uoi.
Pokretanje izvoenja exploit kda.
Metasploit je podran na Linux, Windows, Mac OS X i veini BSD operacijskih sustava te na raznim
sklopovskim platformama (od Unix sredinjih raunala do Nokia n800 dlanovnika). Koristi tzv. tabcompleting suelje, Gtk GUI (eng. Graphical User Interface) suelje, skriptno suelje naredbenog retka
i web suelje s omoguenom AJAX funkcionalnou.

5.3.

Canvas
Immunity Canvas je komercijalan alat koji se koristi kao pomo timovima za provoenje
penetracijskog testiranja, a omoguava koritenje ugraenih exploit kdova. Baza podataka se
nadograuje jednom tjedno. Alat je otvorenog dizajna i prilagodljiv potrebama korisnika. Sadri i neke
kodove koji nisu dostupni nigdje drugdje.
Podran je na sljedeim platformama i instalacijama:
Windows (potreban mu je Python i PyGTK suelje),
Linux,
Mac OS X (potrebno mu je PyGTK suelje) i
svim drugim Python okruenjima, kao to su mobilni telefoni i komercijalni Unix sustavi
(inaice naredbenog retka).
Alat trenutno sadri oko 150 exploit kdova, a mjeseno ih se dodaje u prosjeku jo po etiri. Najvei
prioritet alata je iskoritavanje ranjivosti velikog sigurnosnog rizika, npr. udaljeni napadi i
iskoritavanje novih ranjivosti. Ranjivosti koje alat provjerava i pokuava iskoristiti takoer
obuhvaaju sve platforme i aplikacije.

6. Prednosti i nedostaci automatskog provoenja penetracijskog testiranja


Donedavno je penetracijsko testiranje bio vrlo kompleksan runi proces, koji je moglo izvesti samo
nekoliko sigurnosnih specijalista s dugogodinjim iskustvom. Ispitivai najee moraju pisati vlastite
kdove za zloporabu, nauiti dobro koristiti alate iz javne domene te izvoditi mnoge zamorne i
vremenski skupe zadatke. Osim to moe biti iscrpno, runo testiranje obino zahtjeva velik tim
profesionalaca, s razliitim vjetinama, a to si veina organizacija ne moe priutiti.
Automatsko provoenje penetracijskog testiranja, s druge strane predstavlja dobar proizvod za
izvoenje penetracijskog testiranja. Potrebne alate razvija tim sigurnosnih strunjaka, koji
kombiniraju sigurnu zloporabu i jednostavne pakete. Samo koritenje alata je preputeno osobama s

Revizija v1.0

CCERT-PUBDOC-2008-02-219

Stranica 11 / 14

Automatsko penetracijsko testiranje


Brzo, jednostavno i sigurno. Eliminira
pogreke zamornih runih zadataka.
Centralizirano i standardizirano s ciljem
dobivanja konzistentnih i ponovljivih
rezultata. Jednostavno za koritenje i
osigurava iste izvjetaje na temelju
kojih se moe reagirati.

MODIFIKACIJE
MREE

esto se dogode mnoge izmjene na sustavu.

Sustavi se ne mijenjaju.

ISKORITAVANJE,
RAZVOJ I
UPRAVLJANJE

Razvoj i odravanje baze zloporaba je


vremenski skupo i zahtjeva znaajnu
strunost. Javne zloporabe su sumnjive i
nesigurne za pokretanje. Ponovno pisanje i
unoenje koda je neophodno za vieplatformnu funkcionalnost.

Proizvoa proizvoda razvija i odrava


sve kodove te ih kontinuirano
nadograuje za postizanje maksimalne
uinkovitosti.
Kodove
piu
profesionalci, temeljito ih testiraju i
ine ih sigurnima za pokretanje.
Pisani su i optimizirani za razliite
platforme i vektore napada.

IENJE

Ispitiva mora zapamtiti i ponititi sve


izmjene. Nakon napada, mogu ostati
otvorena stranja vrata na sustavu.

Vodei proizvodi nude iscrpno


uklanjanje izmjena i stranja vrata se
nikad ne instaliraju.

STJECANJE I
POVEANJE
OVLASTI

Zahtjeva se izmjene sustava, budui da se


kd mora postaviti i prevesti na
kompromitiranom raunalu.

Korisnici mogu brzo prodrijeti dublje u


mreu. Kd se nikad ne mora
postavljati na ciljno raunalo i testovi
se mogu provesti udaljeno.

IZVJETAV
ANJE

Zahtjeva znaajan trud, biljeenje i


usporeivanje svih rezultata runo. Svi
izvjetaji moraju biti generirani runo.

Iscrpni prikaz prethodnih dogaaja i


pronaenih mana generiraju se
automatski i prilagodljivi su.

Spor, teak, esto netoan proces.

Automatski se snima detaljno izvjee


o svim aktivnostima.

OBUAVANJE

PROCES
TESTIRANJA

Runo penetracijsko testiranje


Radno-intenzivno, nedosljedno i sklono
pogrekama, s nespecificiranim standardima
kvalitete. Zahtijeva mnogo bitno razliitih
alata. Rezultati mogu znaajno varirati od
testa do testa. Openito zahtjeva struno
sigurnosno osoblje za pokretanje testa i
interpretaciju rezultata.

ZAPISIVANJE
/ ANALIZA

daleko niim stupnjem tehnikog znanja koje testiranjem svih radnih stanica i posluitelja diljem
mree, mogu nainiti ist i iscrpan pogled na sigurnosno stanje organizacije.
Slijedea tablica demonstrira prednosti i nedostatke automatskog i runog provoenja penetracijskog
testiranja.

Ispitivai
moraju
nestandardizirane,
ad-hoc
testiranja.

nauiti
metode

Korisnici mogu nauiti i instalirati


alat za manje od jednog dana.

Tablica 1. Usporedba automatskog i runog penetracijskog testiranja

Revizija v1.0

CCERT-PUBDOC-2008-02-219

Stranica 12 / 14

Iako bi se iz tablice moglo zakljuiti kako je automatsko penetracijsko testiranje apsolutni favorit, tj.
da automatsko testiranje ima samo pozitivne strane, to ipak nije tako. Automatskim testiranjem se
uistinu dobiva konkretan i pouzdan rezultat, ali automatsko testiranje, za razliku od runog testiranja
iskusnog ovjeka, ne moe osigurati testiranje svih teko iskoristivih ranjivosti. Zbog toga je, kod
automatskog testiranja sasvim mogua situacija u kojoj alat ne moe pronai ranjivost sustava koju e
stvaran napada ipak pronai i uspjeno iskoristiti.
Automatsko testiranje, s druge strane nudi dobru obranu za manje kritine servise, jer ih ipak
osigurava od veine zlonamjernih ljudi koji nemaju dovoljno znanja da bi iskoristili one "najmanje"
nedostatke.

Revizija v1.0

CCERT-PUBDOC-2008-02-219

Stranica 13 / 14

7. Zakljuak
to se tie budueg razvoja penetracijskog testiranja, pretpostavlja se da e bitka izmeu strunjaka
koji razvijaju sigurne raunalne sustave i hakera, jednako kao i u mnogim slinim suprotstavljenim
podrujima ljudske domiljatosti, ostati nerijeena. U ovom konkretnom primjeru ova je pretpostavka
utemeljena na zatvorenom krugu razvoja sigurnosti koji potie izgradnju novih tehnologija koje opet
nude novi prostor za otkrivanje novih ranjivosti i novih naina zlouporabe.
Unato dosad izreenom pesimizmu, penetracijsko testiranje ipak predstavlja jednu od svega nekoliko
tehnika koje se u ovom trenutku mogu suprotstaviti sigurnosnim prijetnjama. Ono je zapoelo kao
runi proces, koji je u novije vrijeme sve vie automatiziran. Ipak, u ovom trenutku vrhunsko
penetracijsko testiranje, bez obzira na razvoj tehnologije i mogunost automatizacije, nikako ne moe
biti izvedeno bez vrhunski obrazovanih ljudi.
tovie, pokazuje se da ni vrhunski kadar, sam za sebe, nije dovoljan za rjeenje ovog problema.
Sastojak koji nedostaje je standard, sustav koji e unificirati rezultate penetracijskog testiranja,
dovesti do njihove vee pouzdanosti i , na koncu, omoguiti njihovo to bolje koritenje u donoenju
poslovnih odluka.
Metodologija penetracijskog testiranja upravo se bavi rjeenjem tog problema i ona u ovom trenutku
predstavlja najslabiju kariku cijelog procesa. Ipak se, jednako tako, u posljednje vrijeme vrlo brzo
razvija, to prua osnovu za optimistina oekivanja vezana uz dominaciju tehnika obrane raunalnih
sustava nad tehnikama i mogunostima njihove zlouporabe .

8. Reference
[1] Manual Penetration Testing vs. Automated Penetration Testing,
http://www.coresecurity.com/?module=ContentMod&action=item&id=26 , veljaa 2008.
[2] Core Impact Overview, http://www.coresecurity.com/?module=ContentMod&action=item&id=32,
veljaa 2008.
[3] Metasploit Framework, http://metasploit3.com/ , veljaa 2008.
[4] Immunity CANVAS professional, http://www.immunitysec.com/products-canvas.shtml , veljaa 2008.
[5] http://www.vulnerabilityassessment.co.uk/Framework.png , veljaa 2008.
[6] Penetration Testing Methodology, http://www.asociacionaecsi.es/doc/Auditing/Penetration_Testing_Methodology.pdf, veljaa 2008.
[7] Penetration Testing Framework, http://www.vulnerabilityassessment.co.uk/Framework.png, veljaa
2008.
[8] Penetration Testing, http://www.acsac.org/secshelf/book001/11.pdf, veljaa 2008.
[9] Penetration Testing: Networks and Applications Staying Several Steps Ahead of the Attackers,
http://www.sacure.com/pentesting%20-%20whitepaper.pdf, veljaa 2008.
[10] Penetration Testing Methodology and Case Study,
http://itunit.ipa.ie/ICSCONF2007/Presentations/Hugh%20Callaghan%20%20Penetration%20testing%20.pdf, veljaa 2008.
[11] Information Systems Security Assessment Framework (ISSAF), http://www.oissg.org/issaf/index.php,
veljaa 2008.
[12] Guideline on Network Security Testing, http://csrc.nist.gov/publications/nistpubs/800-42/NISTSP800-42.pdf, veljaa 2008.
[13] OSSTMM 2.2. (Open Source Security Testing Methodology Manual),
http://isecom.securenetltd.com/osstmm.en.2.2.pdf, veljaa 2008.

Revizija v1.0

CCERT-PUBDOC-2008-02-219

Stranica 14 / 14

You might also like