Tuesday, February 7, 2012 2:32 PM levaja

Kako napisati RFP za penetration testing

Kako napisati RFP za penetration testing

Prirodom posla kojim se bavim, relativno često sam u prilici da dobijem ili čitam zahteve za dostavljanje ponuda za penetration testing usluge. U 10% slučajeva, RFP (request for proposal) je napisan smisleno, u ostalih 90% nije, što je uglavnom posledica nedovoljnog poznavanja ovog tipa usluga na našem tržištu. Ovaj post ima za cilj da bar malo razveje maglu koja obavija datu temu i da omogući donosiocima odluka u kompanijama/institucijama/bankama/štagod da lakše napišu RFP, kao i da bolje odaberu izvođača (OK, bilo bi idealno da je to uvek moja firma, ali nažalost to nije moguće :) ). Cela priča ide u 6 tačaka i to:

1. Potreban nam je penetration testing/vulnerability assessment

2. Šta se testira i kako?

3. Pošto penetration testing (Daj 5)?

4. Ko treba da radi PT?

5. Nastup

6. Primer

Vežite se, krećemo:

1. Potreban nam je penetration testing/vulnerability assessment.

Čekajte...da li vam je potreban penetration testing ili vulnerability assessment? To nije isto.

Da ne bih pisao nešto što je već X puta napisano, evo jednostavnog objašnjenja:

http://www.darknet.org.uk/2006/04/penetration-testing-vs-vulnerability-assessment/

2. Šta se testira i kako?

PT može da se izvede na dva osnovna načina:

· bez prethodnog poznavanja ciljeva

· sa poznavanjem ciljeva.

Ukoliko želite najrealniju sliku bezbednosti vaše mreže, onda je testiranje bez prethodnog poznavanja ciljeva, baš ono što vi želite, posebno kada se radi o testiranju iznutra (internal PT). Zašto? Zato što ovakav pristup ima i realan napadač na vašoj mreži. Da li ćete vašeg zaposlenog koji je, eto malo rešio da neautorizovano eskalira svoje privilegije, zamoliti da ne dira ona dva domen kontrolera koji su još uvek pod Windowsom 2000 i ažurirani su poslednji put dok je još postojala SFRJ ili tako nekako? Ne naravno. Nećete najverovatnije ni znati da je neko počeo napad, a samim tim ni šta napadač napada. Pred njim je široko polje i ima mogućnost da zloupotrebi bilo koji sistem ili deo sistema za svoje potrebe. Takva su pravila igre. Ako želite realan uvid u stanje bezbednosti, konsultant treba da poštuje isto pravilo igre. Izuzeci naravno postoje. Možete se dogovoriti koji sistemi ne treba da se testiraju npr. u radno vreme, jer testiranje može da proizvede „štucanje“ u radu produkcije, te je iz tog razloga pametno da se npr. produkciona Oracle baza zaobiđe u radno vreme ili da se preslika na neko virtuelno okruženje (što efikasno onemogućava deo testova, ali bar aplikativni nivo može da se proveri). Drugi razlog za ovakav pristup je što je on u isto vreme i kontrola vašeg IT odeljenja. Gotovo redovno nam se događa da kada IT unapred zna šta će biti testirano, ti sistemi budu „specijalno“ podešeni za testove (bivaju ažurirani dan pre testiranja iako nisu ažurirani proteklih 6 meseci, razna ometanja komunikacije, nerealni ACLovi na mrežnoj opremi itd..). Nama je takav setup dodatni izazov sa kojim se rado (i uspešno) nosimo, ali vi ne dobijate realnu sliku bezbednosti, a to je ono zašta nas plaćate! Ovakvo ponašanje nije samo greška ljudi iz IT odeljenja, već i menadžmenta koji rezultate koristi da „nabije na nos“ administratorima, iako pre toga naravno nisu slali ljude na security kurseve a smatraju ih odgovornima za sve, pa se oni prirodno brane na ovaj način. U krajnjem skoru, ispašta kompanija. Dakle, testovi širokog opsega daju realniju sliku (još ako su nenajvaljeni IT-ju, tim bolje). Ne dozvolite da se rezultati koriste za „prepucavanje“. Rezultati su tu da bi kompanija bezbednije, a samim tim i bolje poslovala.

3. Pošto penetration testing (Daj 5)?

clip_image002[1]

Ukoliko ovako postavite pitanje, odgovori koje ćete dobiti se kreću u cenovnom rangu od par stotina evra do par desetina hiljada evra.

Penetration testing (PT) nije burek. Pa čak i bureka ima različitih i na osnovu toga ima i različitih cena. Takođe, nisu svi pekari, kao ni sve pekare, isti, tako da cena zavisi i od toga.

Cena zavisi od tačke 2 (šta se testira i kako). Ukoliko se testira bez prethodnog poznavanja ciljeva, onda ste vi ti koji određujete koliko će testovi trajati, a ne konsultanti!!!

Dužina trajanja testova zavisi od toga kako ste uradili analizu. Ukoliko vaša analiza kaže da prosečan napadač provede toliko i toliko sati pokušavajući da vam hakne sajt, onda je to odlična polazna osnova. Za testiranje iznutra stvari su malo komplikovanije, jer najverovatnije nemate logove koje bi ste analizirali kao u slučaju extraneta i doneli neki zaključak o potrebnom vremenu (nemate logove? :) ovo je tema za sasvim drugi post). U zavisnosti od veličine i kompleksnosti mreže, kao i od sprovedenih zaštitnih mehanizama, varira i vreme. Ukoliko ne možete nekom internom matematikom doći do toga koliko bi napadač posvetio vremena pokušajima upada, pitajte nekoga.

Ukoliko ste odabrali drugi pristup, odnosno testiranje sa prethodnim poznavanjem opsega ciljeva, onda možete dobiti od ponuđača njihovu procenu vremena potrebnog za testiranje. Međutim:

Poznavanje ciljeva nije nabrajanje opsega IP adresa!!! Ukoliko tražite da vam dostave ponudu na osnovu broja IP adresa, opet ćete dobiti uglavnom netačne procene vremena. Možda u ovom trenutku pomislite da vas baš briga ako se konsultantska firma prevarila pa dala pogrešnu procenu na svoju štetu. E pa razmislite ponovo na čiju je štetu. Da li više volite da automehaničar odvoji vreme da vam detaljno pregleda auto pred put na more ili da pošalje momka koji uči zanat da otalja posao jer je majstor loše pogodio posao? Sve ima svoju cenu. Nema besplatnog ručka (sada vam nisam rekao ništa novo, ali bolje da naglasim).

Jedna IP adresa može imati samo jedan otvoren port/servis, a može ih imati XY (reverse proxy, anyone?). Na osnovu IP adrese ne možete dobiti dobru ponudu. Poznavanje ciljeva znači da ste u svom RFP-u tačno naveli šta treba da se testira i koliko čega ima. U slučaju eksternog testiranja koje često obuhvata i web sajt/web aplikacije, podrazumeva se da ponuđač unapred zna kolika je web aplikacija - nije isto testirati sajt moje firme koji je 10 stranica statičkog HTMLa i testirati neku online prodavnicu sa milion interaktivnih formi. Ovakav način naručivanja posla, posebno kroz tendere koji su javno dostupni nosi u sebi rizik da celom svetu opišete šta od opreme imate i koliko i gde mislite da ste „tanki“ pa zato to želite i da testirate. Hakeri prate ovakve RFP-ove, ne pomažite im da vam ugroze sistem. Ukoliko odaberete ovaj pristup RFP-u, napravite tender po pozivu ili tako nekako.
I tako stižemo i do sledećeg:

4. Ko treba da radi PT?

I ovde postoje dva pristupa:

· Sertifikati

· Reference

Neke firme preferiraju ljude sa sertifikatima. Sertifikati dokazuju da je neko prošao neku obuku. Kao što i diploma fakulteta pokazuje da je neko završio fakultet. Svi znamo na koje sve načine može da se stigne do diplome/sertifikata, tako da oslanjanje na papir ovog tipa, kada je PT u pitanju, nije dobar izbor. Postoji još jedan problem, opet u vezi sa nepoznavanjem ove problematike od strane naručilaca posla, a to je zahtevanje pogrešnih sertifikata u RFP-u. Ljudi, hajde da jednom za svagda definišemo ovu stvar: CISSP je menadžment sertifikat, a ne tehnički sertifikat!!!

To je kao da vam treba centarfor za tim, ali stalno raspisujete konkurs za trenera. U ovom slučaju, CISSP je veoma, veoma cenjen sertifikat i nimalo ga nije lako dobiti, čak šta više, nemoguće je „namestiti“ ispit, to znaju svi koji su u struci. Međutim, poznavanje procedura za rukovanje incidentima, svakako nije ono što ste vi tražili...vama ljudi treba neko ko ume da prepozna tehničku anomaliju i da je zloupotrebi. Ima CISSP sertifikovanih koji poseduju i ovaj skill set, ali to definitivno nema nikakve veze sa time što su CISSP sertifikovani.

Dalje, sertifikati iz security struke koji se stiču tako što se na ispitu odgovara na na a,b,c,d pitalice su blago rečeno smešni kada je PT u pitanju. Odgovorno ovo tvrdim jer sam i sam ponosni vlasnik nekih od njih. Isti su mi potrebni samo da bih odgovorio na RFP koji je pogrešno napisan :).

Mali je broj sertifikata koji zaista zahtevaju demonstraciju praktičnog znanja. Pogledajte npr. Offsec sertifikate http://www.offensive-security.com/ . Ispiti traju 24 do 48 sati i polažu se hands on. Nema pitalica, nema drag-and-drop pitanja. Samo vi, metasploit i debugger :).

Reference. E to je ono što vama treba. I to ne reference firme. Trebaju vam lične reference konsultanata koji će eventualno raditi posao, jer firme ostaju a ljudi odlaze i drugi dolaze. Pogledajte FK CZ danas i FK CZ 1991. god.. Isto ime, a današnji rezultati – drama J (BTW, navijam za Partizan).

Pogledajte za koga su ti ljudi radili, šta su radili (do onog stepena do kojeg to mogu da vam kažu, sigurno su obavezani mnogim NDA ugovorima). Pogledajte da li su objavljivali radove, pisali alate, koliko su zero-day ranjivosti pronašli. To su bitni parametri. Svako (ili skoro svako) ume da pokrene Nessus i da vam da izveštaj. To nije ono što vi plaćate!

Firmu pitajte da li zapošljava ljude sa krimogenom prošlošću. Poslednje u životu što vam treba je da angažujete konsultante sa dosijeom u MUP-u. Posle njih možete lepo „format C:\“ cele mreže, pa lagano ispočetka. Proverite imena na internetu, Google (skoro) sve zna i pamti kao slon.

5. Nastup

Nastup: Vi ste u velikom problemu, samo vam mi možemo pomoći! Postoji određen etički kodeks u našem poslu koji zabranjuje FUD (http://en.wikipedia.org/wiki/Fear,_uncertainty_and_doubt ) marketing prema klijentima. Ukoliko primetite da konsultanti primenjuju ove metode, tražite odmah druge. Neiskrenost prema klijentu je loša u svakom poslu, a u pitanjima bezbednosti može imati vrlo poražavajuće implikacije po naručioca.

Nastup: Poznajemo sve tehnologije. Ukoliko konsultanti sve znaju, onda mi javite njihove telefone ili email adrese. Mnogo bih voleo da upoznam nekoga ko sve zna. Evo ja se bavim ovim poslom skoro deceniju, pa svaki dan učim nešto novo. Šta ću, verovatno sam glup :).

Nastup: Sada ste garantovano bezbedni. Ukoliko vam konsultanti garantuju da ste bezbedni nakon njihovih testova, razmislite ponovo. To niko ne može da vam garantuje. Ko tvrdi suprotno, ili nema pojma o čemu priča ili srpski rečeno - laže. Penetration testing ne dokazuje da ste bezbedni. Penetration testing može samo da dokaže da niste bezbedni! Zapamtite ovo. To što mi nismo uspeli u određenom roku da vam upadnemo u sistem, ne znači da ste bezbedni. To samo znači da mi nismo pod datim uslovima i u tom vremenu uspeli. Možda bi neko drugi uspeo. Uvek ima neko jači. Možda je jutros neko pronašao zero-day ranjivost za koju mi ne znamo a odnosi se na sistem koji vi koristite. Penetration testing je „best effort“ pristup. Lažni osećaj sigurnosti je mnogo gori od svesti o tome da možda nešto nije u redu. Komunicirajte sa konsultantima.

Nastup: Naši testovi su 100% bezbedni po produkciju. Ma ‘hajte molim vas J. Možda ako se ne izvode na toj produkciji. Prilikom testiranja koriste se pored manuelnih tehnika i alata i automatizovani alati koji vrše i po nekoliko desetina hiljada testova. Iako postoje kategorije testova koji su opasniji po produkciju od nekih drugih, niko ne može da garantuje da neće imati uticaja. Potpisnik ovih redova je jednom vrlo uspešno „ubio“ bankarsku aplikaciju najobičnijim port skenom. Naravno, na konsultantima je da primene sve mere opreza da do takvih događaja ne dođe, već sam pominjao prebacivanje produkcionih osetljivih servera u virtuelno okruženje i slično, međutim napadač neće imati takvih skrupula. Možda je bolje da utvrdite nestabilnost sistema u kontrolisanom okruženju i uslovima kada možete ispratiti kako je došlo do incidenta nego da otkrijete na teži način. Pentesteri su probni vozači vaše mreže, bolje da sada ispadne menjač, nego na autoputu :).

6. Primer zahteva za dostavljanje ponuda

Primer kratkog i preciznog zahteva za PT :

Ciljevi i vremenski okvir

· Externi graybox penetration testing, na mrežnom i aplikativnom nivou, 5 dana van radnog vremena.

· Interni Blackbox penetration testing, na mrežnom i aplikativnom nivou, 10 dana u toku radnog vremena.

· Interni Blackbox penetration testing, na mrežnom i aplikativnom nivou, 2 dana van radnog vremena.

Lokacije:

· Externi penetration testing se radi sa lokacije konsultanta

· Interni penetration testing se radi sa naše lokacije i sa naše opreme.

Izveštaj

· Executive i tehnički izveštaj sa rangiranjem ranjivosti po CVSS sistemu i preporukama za ublažavanje rizika, rok 10 radnih dana.

Detalji se dalje definišu ugovorom, ali već ste naveli sve što treba da bi ste dobili kvalitetne ponude.

Nadam se da sam bar malo pomogao!

# re: Kako napisati RFP za penetration testing

Tuesday, February 7, 2012 6:56 PM by Zec

Vrh! Lepo receno :D

# re: Kako napisati RFP za penetration testing

Thursday, May 24, 2012 12:21 PM by xxx

Slucajni sam posetilac ovog bloga i pitanje da li cu se opet nekad zateci na njemu:) . Kada sam naisao na "Kako napisati RFP" , morao sam da procitam post. Ono sto mogu sa sigurnoscu da tvrdim je da autor ovog posta zna o cemu prica, koliko je dobar ili los u svom poslu , ne znam:) , ali definitivno zna o cemu prica i mislim da svako kome treba usluga ovog tipa, treba da procita post - veoma korisno.

Pozdrav

Leave a Comment

(required) 
(required) 
(optional)
(required) 
Are you a human?