среда, 30. октобар 2013.

Edukacija o bezbjednosti - 5 mitova o podizanju svijesti



Gotovo je nevjerovatno koliko, čak i u samoj zajednici profesionalaca u IKT bezbjednosti opstaje pogrešna slika o vrijednosti edukacije  ljudi i podizanju svijesti o informacionoj bezbjednosti ( eng. Security awareness programs) .
U nastavku je objašnjenje za pet najčešćih mitova odnosno zabluda, koje se često čuju a nisu tačne.



 

       1.       Edukacija ne funkcioniše
Često se čuje sljedeća izjava: „Programi edukacije su beskorisni. Još nisam vidio slučaj da je program edukacije o bezbjednosti promijenio ponašanje ljudi“.
Iskreno, u mnogome se lako složiti sa ovom izjavom. Često smo bili svjedoci različitih obuka, koje zaista nisu uticale na ponašanje ljudi. Međutim, mnogi  programi iz prošlosti nisu ni bili iskreno namijenjeni da utiču na ponašanje ljudi. Sprovođeni su da bi se postigla usklađenost sa planovima, i da se čekira da je zadatak izvršen. U skladu sa tim, izvođeni su uz minimalne troškove i resurse . bile su to PowerPoint prezentacije jednom godišnje, koje su u najboljem slučaju slijedili formalni testovi provjere znanja, ili periodična propagandna poruka.
Da bi program edukacije dao rezultate on mora biti kreiran sa osnovnim ciljem da iz korjena promijeni ponašanje i da se to prilikom kreiranja uvijek ima na umu. Takođe, treba da je kontinuiran.

       2.       Nije vrijedno truda jer će neko uvijek zabrljati
Vlada mišljenje da je edukacija neuspjeh, jer  koliko god trenirali ljude, uvijek će postojati  grupa ljudi koji će biti žrtve nepažnje. Ali, ljudi, pa bezbjednost je priča o smanjenju rizika, a ne eliminaciji!
Svjesnost nije ništa drugo nego još jedna bezbjednosna kontrola. Zašto ljudi posmatraju svjesnost kao potpuno posebnu kategoriju u bezbjednosti – ostaje tajna. Svjesnost se ne razlikuje od šifrovanja, na primjer, FW  ili detekcije upada. Međutim, sa povećanjem svijesti može se dobiti puno veći povraćaj uloženog. Ispitivanja su pokazala da se nakon intenzivne edukacije i testiranja, rizik sa 95% smanjuje na 5%. Postoji li ijedan uređaj sa takvim rezultatima?

       3.       Ljudi već znaju  šta treba da rade
Postoje mišljenja da ljudi jako dobro znaju pravila, te šta treba da rade a šta ne, samo se jednostavno ne pridržavaju toga. Ovo mišljenje često ćete čuti i među profesionalcima.
Činjenica je da je ovakvo mišljenje paušalno i potpuno neutemeljeno. Profesionalci koji drže obuke po organizacijama svjdoče da zaposleni  ne samo da obično zaista nemaju pojma koja pravila treba da slijede, i naročito - zašto, već su i naprosto gladni da uče u toj oblasti. Većina ljudi zna da opasnost preti sa mreže, da postoje neki „loši momci“ , ali ne znaju šta tačno treba da urade da bi se zaštitili. Dakle, problem nisi ljudi. Problem je što obuka nije efikasna.
Evo primjer jedne stvari koju većina zaposlenih prije obuke nije znala: da je održavanje operativnih sistema i aplikacija ažurnim i njihovo redovno pečovanje presudno za bezbjedan rad njihovih računara, tableta i mobilnih telefona.

       4.       Sve je u prevenciji
Kad se diskutuje o bezbjednosnoj svjesnosti, ona se često posmatra isključivo u diskursu prevencije. Pokušava da se nametne i sprovede ideja „ljudskog zida“. Prevencija jeste važna, ali zašto se ograničavati? Idealno je da ljude posmatramo ( i treniramo da budu) upravo i detektori  incidenata.
Važno je da zaposleni steknu saznanje o kompromisu koji se nameće: ne može se sve preduprediti, ali dobro je i ako se detektuje i prijavi . Dobar primjer za uvođenje ovakvog ponašanja je da se prilikom terstiranja zaposlenih podložnosti prevarama i napadima ( npr. interna fišing procjena) , pored broja radnih stanica sa kojih je pokrenut „opasan“ link, vodi evidencija i o broju radnika koji su incident prijavili. Ovakvim treninzima istinski jačamo svoju organizaciju.

       5.       Ma to je jednostavno!
Mnogo ljudi, čak i iz oblasti IKT bezbjednosti reći će: edukacija zaposlenih – ma to je jednostavno! Da, ukoliko vam je usaglašenost sa propisima i standardima jedini cilj, onda jeste. Održi se bilo kakvo predavanje i čekira se aktivnost „podizanje svijesti“ .
Međutim, ukoliko je cilj da se efikasno smanji rizik od zloupotrebe ljudskog ponašanja, potrebno  je imati jasan plan i držati ga se. Konkretno,  potrebno je da u pripremi vašeg programa identifikujete koje su to promjene u ponašanju koje bi bitno smanjile rizik u vašoj organizaciji, a zatim kako se angažovati da se one najefikasnije sprovedu.

Jedna od najčešćijh prepreka je, zapravo, obeshrabrenje na samom početku – Kako uopšte početi?
Ukoliko u organizaciji nemate profesionalca, ovaj posao povjerite iskusnom edukatoru, ili pronađite organizaciju koja već ima pripremljen program.  Ovo nije posao koji se završava jednom serijom predavanja. Ljudi obično ne vole predavanja, ali sa druge strane – vole da uče! Bitno je da se ova obuka na samom početku napravi privlačnom, uz isticanje važnosti, te da se nastavlja kontinuirano uz redovna testiranja. Zaposleni će je vrlo brzo prihvatiti, i prigrliti osjećaj "važne karike" koji će im ovakva obuuka pružiti. 

Dobra strategija je da se počne sa kraćim video sadržajima, a da se periodično održavaju i prezentacije. Prezentacije treba da budu pripremljene posebno za različite tipove korisnika ( npr nije ista za zaposlene u IT sektoru, za top menadžment,  za poslovne funkcije, i npr. službe obezbjeđenja).
Posteri sa bezbjednosnim porukama istaknuti po organizaciji su nenametljiv, ali vrlo efikasan alat. Slično tome su i povremeni informacioni mejlovi, kao i poruke koje se izmjenjuju periodično na intranet portalima organizacije.
Jednom kad se uspostavi ovakav kontinuitet edukacije, i pravilo da se svaki novozaposleni odmah edukuje,  ostaje samo da se program ažurira novim sdržajima ( uvijek je bitno predstaviti nove opasnosti – npr. iako je lažni antivirus prisutan već nekoliko godina, malo je programa za edukaciju koji daju primjer kako konkretno izgleda i kako se nositi sa tim).

Lično sam veliki pobornik preduzimanja obuke za  podizanje svijesti u bezbjednosti IKT. Takođe, bavim se izučavanjem socijalnog inženjeringa i ljudskog ponašanja. Najjednostavnije rečeno, iako je svako od nas posebna jedinka kompleksnog ponašanja, može se sprovesti generalizacija da je zaposleni prilikom obavljanja radnih zadataka samo jedan operativni sistem – ljudski, možda malo nestabilniji od onog što inače tako zovemo , ali ipak sa definisanim operacijama. I vrlo skalabilan. Ako to tako posmatramo, onda će smanjenje rizika ići uporedo sa održavanjem tog ljudskog OS ažurnim, kao što to radimo i na mašinama.
Treba takođe iskoristiti ljudsku prirodu i reći : koliko se žalimo da je ljudska nepažnja neograničena, isto možemo posmatrati i da je u drugom smjeru neograničena ljudska inventivnost i želja da se uči. U tom slučaju, kao što već poslovično svuda povećava rizik, ljudski faktor na drugoj strani postiže najbolje rezultate i na smanjenju rizika.  Bitno je za šta se odlučimo.




недеља, 27. октобар 2013.

7 servisnih zahtjeva od kojih bi se IT osoblje najradije rasplakalo


Širom svijeta, u svakom trenutku neko zove IT podršku da riješi neki problem. Danas malo šta može da funkcioniše bez toga. Pored činjenice da se mnogi problemi uspješno i stručno riješe, postoje i oni koji su toliko bizarni, da ljudi iz IT podrške ne znaju da li da se smiju ili da plaču...

Help desk?
Tehnička podrška je tu da pomogne. Ali, kao što mnogi help-desk zaposleni to znaju, ponekad nije tehnologija, nego korisnik taj koji na kraju napravi problem.  Evo sedam priča iz prakse, preuzetih sa http://www.csoonline.com koje govore o tome kako su IT ljudi ušli u priču i savladavajući se da drže jezik za zubima uspjeli da lošu situaciju ne naprave – još gorom.
izvor clker.com

Priča prva: Sumnjivi  atačment
Proslijeđivanje mejla sa spear-phishing atačmentom, to je ono što napadači upravo žele da uradimo. Nećete vjerovati, jedan korisnik je dobio mejl pod nazivom "CIA Prism Watch List" , i pratećom porukom da se u atačmentu nalazi word dokument sa imenima svih ljudi koje CIA posmatra. Naravno, otvorio ga je, i naravno proslijeđen je svima iz adresara.

Priča druga:  Zbrka sa portovima
Kupac je koristio aplikaciju vendora, koja po pravilu koristi tri navedena TCP porta: 9898, 8080 i 1169. Međutim, kupac nije htio da koristi te brojeve portova “iz bezbjednosnih razloga” . To je u redu, kupcima je dozvoljena i takva alternativa, ali na nesreću, ovaj je izabrao brojeve portova 1, 2, i 3.
Budući da su ovi portovi rezervisani od sistema za druge svrhe, to je izazvalo nestabilnost mreže. Nakon godinu dana stalnog pozivanja podrške, kupac je pristao da promijeni portove, ali sa novim zahtjevom:  pitao je da na ponuđene četverocifrene brojeve portova doda “50” na početak svakog !!

Priča treća: Podsjetnici za lozinke
Da pisanje lozinki na stikere koji stoje zalijepljeni na monitor nije najstrašniji prizor koji IT oči mogu da vide potvrđuje korisnica koja je svoju lozinku ispisala markerom na poklopac laptopa.

Priča četvrta:  Virtualna glavobolja
Kao odgovor na pitanja koja je korisnik upućivao i  rješenje problema, predloženo mu je da poveća memoriju dodijeljenu virtualnom uređaju. Nakon čekanja od nedjelju dana, stigao je odgovor od korisnika koji odbija da poveća memoriju: “ VM neće imati dodatni vRAM. Budući da je uređaj  “deployed appliance”  , to znači da je sve prvobitno bilo upakovano kao virtuelna hardverska konfiguracija, i kao takva ima sve što će joj ikad trebati. Štaviše, smatramo da  alokacija vRAM-a može/će izazvati da uređaj postane nestabilan”

Priča peta: Pozajmljivanje laptopa
Jedna korisnica otišla je na dvonedeljni odmor, i ostavila svoj službeni laptop mlađem bratu. Kako se to otkrilo? Kad se vratila sa odmora i pokušala da koristi laptop, bio je potpuno neupotrebljiv zbog malicioznih programa. Help desk je oporavio laptop, i ponovo joj, u četiri oka ponovili instrukcije o politici kompanije i sigurnom korišćenju računara. Najzanimljivije je ovdje što ona i dalje zove i pita šta je zapravo uradila pogrešno ?!

Priča šesta: Kad se DVD umiješa
Korisnik je proslijedio zahtjev u kom se žali da mu fajl sistem javlja grešku “zabranjen pristup” kad pokuša da pristupi određenim folderima. Brine ga to što se ti folderi prate i sa drugih servera,a nigdje se ne pojavljuje ta greška.  Serviser mu je za početak poslao generički odgovor gdje su definisana prava pristupa i mogući problemi. Uskoro je stigao odgovor:  “ Problem je bio u činjenici da je na mojoj VM mašini sa D: mapiran DVD drajv. Uklonio sam to sa VM, i sad radi bez ikakvih problema.”  Serviser je samo pomislio: Ko zna kakvo bi pitanje bilo da je u drajvu bio i neki disk...

Priča sedma: Kad Serveri zaćute
Klijent je naručio “big-data” projekat, potrošeno je puno vremena i truda da bi dobio upravo ono što je tražio. ( Migracija podataka u i iz baze je uvijek dobra zabava, zar ne? ) . Nakon nekoliko dana od migracije i puštanja u produkciju, serviser je nazvao korisnika da pita kako ide.  Ovaj je oštrim glasom odgovorio: “Nikako!Sve je stalo, evo, sve stoji! “
Na strani podrške je počelo panično pripremanje za reverzni  inženjering čitavog procesa, kad se začuo veseli glas korisnika: “A, ne ! Samo je server baze podataka bio restartovan! “

I na kraju, moj komentar. Ovo su internacionalana iskustva. Kad bi se sjetili, imali bi ih mi ohoho. Ja ću prepričati još jedno iz života:
Svojevremeno, u jednoj banci, imali smo na šalterima Unix konfiguraciju, gdje se pri podizanju server prvo “spašavao” na jednog od klijenata. Jednom to nije dobro urađeno, i koleginica telefonom instruira ženu na šalteru da restartuje komunikacije. Kao odgovor treba da se na ekranu pojave pojedine komponente, te 1 ili 0 s obzirom da li rade ili ne. Prosto.
Kad je ova to uradila, koleginica kaže:
-          Ajde, sad mi čitajte te brojeve što vidite desno odozdo na gore.
-          Nula...
-          Dobro..
-          Jedan...
-          Dobro...
-          Četiri..
-          Četiri??!!
-          Da, četiri
-          Kako četiri, gdje vidite četiri?
-          Kod mene je četiri.
-          Na ekranu?
-          Neee, na tastaturi..






понедељак, 14. октобар 2013.

Nova verzija ISO/IEC 27001:2013 je stigla!

Međunarodno priznati standardi za upravljanje informacionom bezbjednošću, ISO/IEC 27001) i pridruženi  ISO/IEC 27002, ‘Code of practice for information security management controls’ revidirani su ove godine. Nova verzija objavljena je 25. Septembra 2013.
Nakon objavljivanja inicijalne draft verzije i široke javne rasprave , oba, i  ISO/IEC 27001 i ISO/IEC 27002 su prošli draft fazu i doživjeli finalnu publikaciju u konačnoj verziji. 
Koje su glavne izmjene?

·         Revidirani standard je pisan koristeći novu strukturu višeg nivoa, karakterističnu za sve nove standarde koji se bave upravljanjem sistemima. To dozvoljava jednostavnu integraciju kad se implementira više od jednog sistema kvaliteta.
·         Urađene su određene izmjene u terminologiji, neke definicije su sklonjene ili premještene
·         Zahtjevi procjene rizika usklađeni su sa  BS ISO 31000
·         Zahtjevi prema menadžmentu imaju naglasak na vođenju ( “leadership”)
·         Preventivne akcije su zamijenjene sa “akcije za uočavanje rizika i mogućnosti”
·         SOA  zahtjevi su slični, sa  mnogo jasnije naznačenom potrebom da se kontrole određuju kroz proces upravljanja
·         Kontrole u  Anexu A su izmijenjene tako da odražavaju promijenjene pretnje, da se otklone duplikati i postigne bolje lokalno grupisanje. Dodate su i specifične kontrole u vezi kriptografije i bezbjednosti u vezama sa dobavljačima
·         Stavljen je veći naglasak na postavljanje ciljeva, praćenje performansi i metriku

Za više informacija:




уторак, 8. октобар 2013.

9 popularnih praksi u IT bezbjednosti koje jednostavno – ne rade ono što očekujemo

Bezbjednosni proizvodi i tehnike na koje se oslanjamo često nas ne čine onoliko sigurnim koliko mislimo

Kad je IT bezbjednost u pitanju, FUD princip (fear, uncertanity, doubt) je više od sredstva u rukama prodavaca da prodaju sljedeći u nizu svojih prehvaljenih proizvoda.  To je realnost u kojoj žive iskusni profesionalci IT bezbjednosti,  zahvaljujući u najvećoj mjeri  nedostacima tradicionalnih pristupa u obezbjeđenju IT sistema i podataka.
Istina je da proizvodi i tehnike IT bezbjednosti najčešće ne rade baš onako kako su reklamirani, ostavljajući nas mnogo izloženijima zlonamjernom kodu nego što smo toga svjesni. To je stoga što tradicionalni pristup bezbjednosti funkcioniše po principu stalnog ponavljanja istih obrambenih (reaktivnih) postupaka na pretnje, ostavljajući nas da čekamo naredni talas inovativnih malvera, koji se uglavnom prvo otkriju – na Internetu.
Dok ne riješimo taj problem – to jest dok se ne stvori kritična masa pogođena njime da se odluči da se ide u rješavanje – mi i dalje zavisimo od sigurnosnih rješenja koja nam ne pružaju dovoljnu zaštiti imajući u vidu eskalaciju malicioznog softvera i metoda za kompromitovanje sistema i krađu podataka.
U nastavku je dato 9 najčešćih proizvoda i tehnika u IT bezbjednosti koje ne čuvaju naš sistem baš u onolikoj mjeri koliko to mislimo.
Bezbjednosna greška 1.  Antivirusni skener neće otkriti prave ubice mreže.
Tradicionalni sve-u-jednom antivirus skeneri, onakvi kakve ih danas poznajemo, otkriveni su kasnih osamdesetih. Prije toga, ukoliko se sumnjalo na neku određenu malicioznu aplikaciju, pokretao se detekcioni program pravljen isključivo za tu vrstu virusa. Ukoliko se virus pronađe, tu je bio program za njegovo neutralisanje. Naravno, to je moglo zadovoljiti potrebe tog  vremena.  Mekafijevi  ViruScan i VirexPC bili su među prvim antivirus programima koji su pomerili granicu sa pojedinačnog virusa na “sve poznate”.
I zaista, ranih devedesetih, takvi sve-u-jednom antivirus skeneri bili su vrlo pouzdani u pronalaženju (jednog od desetina tada prisutnih) virusa, crva, Trojnaca. AV industrija je tako uspješno pronalazila načine za borbu sa malverom, da se čak vjerovalo da će maliciozni softver biti u potpunosti uništen, odnosno da neće postojati motivacija da se pravi. Međutim, desilo se suprotno, kako se industrija kreiranja malicioznog softvera širila, bile su potrebne sve veće i komplikovanije procedure za njihovo otkrivanje i neutralisanje, i to je uslovilo da između pojave virusa i odgovora antivirus programa prolazi sve više vremena.  Realnost je da se taj period može mjeriti danima pa i mjesecima, iako svi živimo u uvjerenju da je zaštita koju nam pruža naš AV softver tačna i potpuna. Istina je da profesionalni “loši momci” danas proizvode na hiljade ( ako ne i milione) novih malvera mjesečno, što je daleko više od onoga što bilo koji AV program može otkriti. To se kosi sa tvrdnjama proizvođača AV softvera da nude 100% pouzdanost detekcije malvera, pokazujući brojna priznanja, nagrade, reference. Stvarnost govori drugačije. Svi smo izloženi novom malveru koji AV programi naprosto nisu u stanju otkriti, i to nije rijetkost. Neki od vas su sigurno imali iskustva sa postavljanjem nekog novog malicioznog koda na sajt poput VirusTotal, pri čemu se vidi da pojedini virusi, crvi ili Trojanci ostaju neotkriveni danima, pa i nedjeljama.
Ne treba kriviti prodavce.  Budući da je činjenica da postoji više loših nego legitimnih fajlova na svijetu, antivirus skeniranje je težak posao, a liste “dobrih” i “loših” fajlova su postale predugačke.  U baze se moraju smejstiti milioni “potpisa” različitih malvera, i načini kako se otkrivaju novi virusi, za koje još ne postoji izolovan “potpis”, a samo skeniranje se mora raditi tako da ne ometa i ne usporava rad računara na kom se pokreće.
Internet je zaista zastrašujuće mjesto za izlazak bez zaštite, ali isto tako, zaštita koju danas dobijamo prestaje da bude pouzdana garancija.
Bezbjednosna greška 2.  Zaštita koju pruža Firewall je mala
Što se tiče IT bezbjednosti, Firewall postaje još manje relevantna zaštita od antivirus programa. Zašto? Zato što većina malicioznih programa radi tako da zavara krajnjeg korisnika da aktivira maliciozni kod na svom računaru, pri čemu je prethodno prošao Firewall zaštitu kao legitiman fajl ili njegov dio. Štaviše, loši programi se “provlače” koristeći portove 80 ili 443 koji su uvijek otvoreni na Firewallu.
Mnogi su zaštićeni sa više Firewall instanci: prema okruženju, na samoj radnoj stanici pa čak i nivou filtriranja aplikacija. Ali, ipak izgleda da sva ta tvrđava od pokušaja host-port izolacije naprosto ne brani kako treba. Izloženi smo i dalje.
Bezbjednosna greška 3.  Pečevi nisu lijek
Dugo godina broj jedan među bezbjednosnim savjetima je bilo da se samo redovno primjenjuju pečevi. Svaki softver ima ranjivosti, i pečevi su tu da se one otklone. Uprkos postojanju desetina peč-menadžment sistema koji obećavaju savršeno ažuriranje, i nekog razloga izgleda da to nije moguće ostvariti. Često razlog neuspjehu nije  peč-menadžment softver već  - menadžeri. Oni pečuju samo neke proizvode, ali često propuštaju da to urade upravo na najpopularnijima, kao što su Java, Adobe, Flash. Drugi je razlog što to ne rade u preporučenim intervalima, a često izostane i provjera da li su svi njihovi ljudi primjenili posljednji lansiran peč, i da li u tom smislu postoji možda neki procenat ranjivih korisnika.
Čak i u najboljem slučaju, širenje pečeva na veliki broj korisnika nikad nije momentalno, najčešće traje danima ili nedjeljama, dok se periodi širenja novih malvera Internetom mjere u minutima i satima.
Šta je još gore, upadi putem socijalnog inženjeringa su upravo iskoristili ovaj savjet broj jedan. Zamislite ovo: Ako sav softver ima nultu ranjivost (tj. nikad ne treba peč, ili je savršeno pečovan), to bi redukovalo izloženost  malicioznim napadima za barem 10-20% , što su pokazale studije. Kad bi se riješili napada koji koriste postojanje softvera koji zahtjeva pečeve, hakerima koji koriste upravo ovu karakteristiku softvera bio bi zaprečen jedan prilaz za njihove prljave poslove, i morali bi se pomeriti na drugu liniju napada ( čitaj: socijalni inženjering), što bi opet  smanjilo očekivanu redukciju sajber kriminala, a o čemu se govori u nastavku.
Bezbjednosna greška 4.  Edukacija krajnjih korisnika je ocijenjena – nulom.
U sam osvit personalnih računara upozoravali smo korisnike da ne pokreću računar ako je disketa u flopi drajvu, da ne dozvoljavaju pokretanje neočekivanog makroa, da ne klikću na neočekivani atačment,  i na kraju, najnovije, da ne pokreću nepoznate antivirus programe.  Od početka do danas – to još uvijek ne funkcioniše.
Kad bi politike edukacije krajnjih korisnika bile uspješne, mi bismo se dosad već odbranili od hakera i malvera.  I ako je suditi po posljednjim trendovima, svjesnost krajnjih korisnika je gora nego ikad. Upadi putem socijalnog inženjeringa kojima se obmanjuje krajnji korisnik tako da sam pokrene maliciozni program ili oda podatak su za sada najveća pretnja. Mnogi krajnji korisnici spremno dijele svu privatnost putem aplikacija ili javnih socijalnih portala; rade to bez imalo svijesti o posljedicama, što drastično povećava izglede da postanu mete i podlegnu socijalnom inženjeringu.
Ljudi koje stoje iza edukacionih programa za krajnje korisnike mnogo griješe:  u njihovim rukama krajnji korisnici postaju prisiljeni na neželjene, djetinjaste obuke. Edukacije se sprovode putem opštih, loše organizovanih programa koji često ne sadrže informacije o najnovijim napadima. Dozvolite pitanje:  Ako je sad najčešći način kojim krajnji korisnik biva napadnut Trojancem lažni antivirus program, da li je vaša kompanija pokazala svojim zaposlenima kako taj lažni antivirus program izgleda? Ako nije – zašto nije?
Takav pristup upravo dovodi IT sistem u opasnost. U prosjeku, prođe i po dvije godine da se konkretan napad nađe kao primjer u obrazovnim programima za krajnje korisnike, a samo minut je potreban napadaču da pređe na „novu temu“,  što nas stavlja u zaostatak od još dvije godine.
Šta je bolje od edukativnih programa za krajnje korisnike? Sigurniji softver i bolje difoltne postavke. Umjesto očekivanja da krajnji korisnik uvijek donese ispravnu odluku bolje je da mi to uradimo za njih. Makro virusi se neće širiti ako je difoltna postavka da se ne pokreće makro. Atačmenti neće biti tolika opasnost ako se većina njih blokira, i ako njihovo pokretanje postane komplikovanije.  Automatsko pokretanje crva sa USB uređaja neće se desiti ako Microsoft postavi kao difolt da je opcija „autorun“ sa USB priključka onemogućena.
Edukacija krajnjeg korisnika nikad nije kompletan posao, niti se na to možemo osloniti, jer je potreban samo jedan korisnik i samo jedna akcija da se zarazi cijela kompanija. Naravno, ne umanjuje se značaj ove prakse. Rizik se može značajno smanjiti, ali potrebno je sprovoditi bolje edukacije, usmjerene na konkretne teme i događaje.
Bezbjednosna greška 5.  Jake lozinke vas neće spasiti.
Često ponavljana mantra je: Kreirajte jaku lozinku, dugačku i kompleksnu, i mijenjajte je često.  A šta sa tim što su korisnici poznati po tome da istu lozinku koriste na mnogim sajtovima i domenima, da često bivaju prevareni da te “jake” lozinke unose u lažne forme za prijavu, pa čak ih i šalju mejlom. Šokantna su bila istraživanja ( na više lokacija u više zemalja)  koja su pokazala da će veliki broj ljudi dati svoju lozinku strancu na ulici, za neveliku novčanu nadoknadu. Brojni su  korisnici koji o svojim lozinkama vode mnogo manje računa nego što je očekivano.
Veći problem je što ni hakeri ne brinu pretjerano. Oni prevare korisnika Trojancem, uzmu administratorska prava, pokupe heševe za lozinke i koriste ih. Kad se jednom ima heš za lozinku to je to, isti je i isto se ponaša za “slabe” i “jake” lozinke.
Bezbjednosna greška 6.  Sistem detekcije upada (IDS) ne može da utvrdi namjeru
IDS su vrsta bezbjednosne tehnologije kojoj želimo da vjerujemo.  Definiše se gomila “potpisa” za napade, i ako IDS detektuje neki od tih stringova ili tipova ponašanja na mreži, proaktivno nas obavještava o tome, ili čak zaustavlja “napad”. Ali, kao i većina tehnologija i tehnika ovdje opisanih, jednostavno ne radi tako kao što se reklamira.
Prvo, ne postoji način da se obezbjede validni  potpisi svih napada koji mogu biti potencijalno opasni za vašu kompaniju. Najbolji  IDS mogu imati stotine potpisa dok će vaš sistem će gađati desetine hiljada napada, a toliko potpisa ne može da se smjesti u IDS, jer bi takav monitoring toliko usporio saobraćaj, da ne bi bilo vrijedno truda. Nadalje IDS uvijek imaju mnogo lažnih prijava, da se na kraju tretiraju poput firewall logova – ostaju zanemareni i nepročitani.
Ali pravi krah IDS doživljava zbog činjenice da mnogi loši momci upadaju upravo legitimnim načinima pristupa. Jer, nijedan IDS ne može razlikovati da li je direktor uputio zahtjev za podacima finansijskoj bazi, ili je to uradio napadač koristeći direktorov računar odnosno prava pristupa. To je smisao – IDS ne može da utvrdi namjeru, niti je moguće da se izda upozorenje za akciju koja po parametrima prolazi kao normalan, operativni posao.
Bezbjednosna greška 7.  PKI je oštećen
PKI je u svakom smislu matematički lijep izum. U poslovnim sistemima konstantno se instalira i unapređuje mnogo ovakvih infrastruktura. Problem je u tome što su mnogi od njih loše konfigurisani, žalosno nesigurni, i često ignorisani, čak i kad u javnom sektoru funkcionišu “besprekorno”.  U posljednje dvije godine nekoliko javnih certifikacionih tijela su užasno hakovani.  Hakerima je dozvoljeno da pristupe njihovim potpisanim ključevima, koji su trebali biti zaštićeni mnogo jače nego i jedna druga informacija, i da izdaju nove lažne ključeve drugim hakerima i  moguće, zainteresovanim vladama.
Ali, čak i kad je PKI savršen, jak i nehakovan – ljude to ne zanima. Mnogi krajnji korisnici, kad dobiju upozorenje da se postojećem digitalnom sertifikatu ne može vjerovati, jedva čekaju da kliknu na “Ignore”. Srećni su kad uspiju da mimoiđu bezbjednosnu neprijatnost, i nastave da uživaju u svom sajber životu.
Dio problema je i u tome što su sajtovi i programi koji koriste digitalne sertifikate zapravo nezainteresovani za njih, što za posljedicu ima da su poruke o grešci sertifikata postale svakodnevna pojava. Tako oni korisnici koji ne žele da ignorišu ovakve poruke, bivaju uskraćeni za veliki segment onlajn života, uključujući ponekad čak i udaljeni pristup vlastitom poslu.
Prodavci pretraživača , ukoliko bi strogo primjenjivali politiku sertifikata, i onemogućavali prikazivanje nesertifikovanih sajtova mogu samo da – izgube korisnike.  Potrošač će naprosto odabrati pretraživač koji će ga “pustiti da živi”. Zaključak : Oštećen PKI sistem se olako ignoriše, i mase uopšte ne mare za to.
Bezbjednosna greška 8. Vaši uređaji su san napadača.
Glavna prednost IT uređaja (appliances) – povećana bezbjednost - nije se pokazala.  Sa manje izloženim OS ( obično zaključani Linux ili BSD), uređaji obećavaju manju izloženost napadima nego što su to računarske konfiguracije sa tradicionalnim OS.  Ipak, to ne znači da nisu izloženi. Uređaji su zapravo operativni sistemi na zatvorenim diskovima ili sistemski softver, i upravo takav dizajn ih čini težim za primjenu pečeva.
Na primjer, jedno nedavno testiranje 100 američkih kompanija pokazalo je da je svaki od nekoliko stotina bežičnih mrežnih kontrolera nepečovani  Apache sa pokrenutim OpenSSH servisom. To oboje dozvoljava hakerima da preko javne bežične mreže pristupe internim kompanijskim mrežama kao admin. Njihovi IDS i Firewall uređaji sadržavali su skriptove davno ispoljenih ranjivosti i smiješnu autentifikaciju. Mejl servis je pokretao nesigurni FTP servis koji je dozvoljavao anonimne aploade.
Ovo nisu neobična otkrića. Uređaji često sadrže isto toliko ranjivosti koliko i njihovi softverski pandani, njih je samo teže nadograđivati i pečovati, i najčešće se to i ne radi. I umjesto da budu sredstva snažne odbrane, oni postaju san napadača.  Zato se u okruženjima sa puno uređaja preporučuje redovno penetraciono testiranje.
Bezbjednosna greška  9. Izolovana okruženja (sandboxes) su prav put ka osnovnom sistemu
Da li uzdahnuti svaki put kad se najavi novi bezbjednosni  sandbox?  Ovakva izolovana okruženja zamišljena su da spriječe upade, ili ih barem značajno otežaju. U stvarnosti, dešava se da svaki novi bezbjednosni sandbox upravo privuče pažnju hakera.  Najveća sigurna okruženja danas predstavili su Java i Google Chrome,  i oboje su iskusili preko 100 upada koji su oštetili sandbox i dozvolili direktan upad u osnovni sistem.
Ipak, to ne zaustavlja sanjare koji maštaju o tome da pronađu sigurno okruženje koje će zaustaviti sve napade, i ukinuti maliciozne napade zauvijek.

Nažalost, veliki dio kompjuterske bezbjednosti danas je više performans o sigurnosti nego sigurnost sama. Vaš posao je da između milijardu solucija izaberete one koje će zaista smanjiti vaš rizik. Bezbjednosne prakse koje su ovdje nabrojane nisu bezvrijedne, ali su naprosto previše nahvaljene. Kako to znamo? Pa zato što je svaka od njih implementirana, a hakovanje i upadi su popularniji nego ikad. Ne možemo zanemariti činjenice.



Original  preuzet sa  InfoWorld  By  Roger A. Grimes

петак, 5. јул 2013.

Pakiranje - nova glavobolja

Pišući o tehnikama reverznog inženjeringa, pomenula sam statičke i dinamičke tehnike.  Takođe, bilo je riječi o detekciji na bazi potpisa   i različitim načinima izrade malicioznog koda koji uključuju metode „prikrivanja“ zle namjere unutar samog koda – polimorfizam.

I dok se polimorfizam bazira na enkripciji malicioznog koda, što komplikuje njegovo otkrivanje , pakiranje ide korak dalje: dodaje se nekoliko slojeva, nivoa, kompresije i enkripcije istovremeno. Ovakve tehnike mogu biti otkrivene i rekonstruisane samo dinamičkom analizom – izvršavanjem programa u testnim uslovima u realnom vremenu, i analizom rezultata.

Dolazeći do algoritma pakiranja, reverznim inženjeringom, AV stručnjaci razvijaju AV-engine, mehanizam koji će prepoznati pakirani maliciozni kod, i „otpakovati“ ga istom rutinom, unazad. I onesposobiti.
Djeluje jednostavno, ali danas je ovo jedan od najvećih izazova AV industrije. Veliki procenat (oko 80%)  malvera je još uvijek „zapakovan“ , postoji preko 200 familija tzv. „pakera „ (rutina za pakiranje) i do 2000 varijanti svake familije ( izvještaj Simanteka za 2008, danas sigurno i više).
Jasno je, da bi se napravio algoritam za raspakivanje mora biti potpuno poznat algoritam pakiranja, a vrijeme otkrivanja tog algoritma za jedan „paker“ je od šest sati do šest mjeseci.

Dakle, kao što sam rekla, radi se o više slojeva pakovanja, pri čemu je nepoznato koliko, a svaki sloj koristi svoj algoritam. Osim što se koristi polimorfizam, na djelu je često i metamorfizam – pa se na kraju enkriptuje i čitav sadržaj.
Pojednostavljeno, to izgleda ovako: Maliciozni softver  analizira vlastiti kod, i dijeli ga u blokove. Svaki od blokova mutira nezavisno, instukcije se zamjenjuju semantički identičnim, ali je rezultat drugačiji, jer se blokovi „ispremještaju“. Kao rezultat toga, pokretanje istog virusa na različitim mjestima daće različit izgled koda (ukoliko bi analizirali statički), pa je dinamička analiza jedini način da se razotkriju ovakvi algoritmi.







Izazovi AV industrije su svakim danom sve veći. Po podacima Simanteka iz 2008, AV industrija je dobijala preko 25.000 semplova malicioznog softvera dnevno. Jasno je da prvobitni pristup sa čuvanjem i distribucijom baza potpisa ne može „pokriti“ problem. Dinamička analiza i algoritmi za otkrivanje zahtijevaju od AV stručnjaka da razmišljaju kao kreatori virusa, i da izučavaju iste metode i tehnike kako bi ih mogli primjeniti u borbi pritiv malicioznog softvera, i spriječiti razvoj ove visokoprofitne i visoko kriminalne oblasti andergraund ekonomije.

U nastavku je link na studiju o OmniUnpack metodi dinamičke analize i raspakivanja, koja daje detaljan opis onog što sam ovdje načela – LINK ,

A takođe i još jedna studija o dinamičkoj analizi - LINK

среда, 3. јул 2013.

Nastavak istorije: Doba sajber kriminala


Teško je odrediti vrijeme, ali otprilike krajem prvog desetljeća ovog vijeka, oko 2006. počinje nova era u eksploataciji ranjivosti računarskih sistema.
Glavni motiv napada postaje novac, i napadi na računarske sisteme širom svijeta postaju noćna mora, kako za AV industriju, tako i za proizvođače operativnih sistema i legalnog softvera, ali i za kompanije.

Prvi pokušaji su bili potpuno neskrivenih namjera. 2006. pojavljuju se prvi "Rogue AV" programi , lažni "antivirusi" koji su se pokretali obično posjetom zaraženom sajtu. Tada se pokreće program koji se predstavlja kao antivirus, obavještava korisnika o navodnoj šteti na računaru od nekog virusa, i traži 10 - 100$ da se to otkloni. Prve verzije nisu pravile štetu na zaraženom računaru, osim iznude para, ali danas imamo lažne antiviruse koji pored toga zaista i pobrišu ili sakriju dio resursa.
2007. je godina pojave poznatih malvera ZeuS i Storm. Storm je pear-to-pear botnet čija je aktivnost spamovanje i zagušenje mreže. ZeuS je teško svrstati u pravu kategoriju, sa jedne strane je trojanac, ali i botnet. Danas se male ZeuS botnet mreže mogu kupiti ili iznajmiti. Trojan komponenta služi za krađu informacija, prvenstveno finansijskih. Pored ZeuSa, u posljednje vrijeme imamo još jednog poznatog "bankarskog" trojanca, SpyEye. Mobilne varijante ZeuS i SpyEye malvera su Zitmo i Spitmo.

U ovom istorijskom trenutku već se može pričati o velikim finansijskim dobicima kroz nelegalne radnje i korišćenje malicioznog softvera kroz računarske mreže i sisteme.

2008. je na neki način godina otrežnjenja i shvatanja da se borba protiv malicioznog softvera mora intenzivirati, i da su napadači prešli "ispred".  To je takođe godina ekspanzije botnet mreža.
2008. imamo Mebrot, Torpig i Koobface , platforme koje objedinjuju botnet i trojance i služe za krađu podataka.
Mebrot i Torpig su objašnjeni ranije , a Koobface ( anagram od Facebook) je dizajniran kao veb sajt koji je napadao korisnike mreže Fejsbuk i služio kao neka vrsta instal-servisa ( podraška za instaliranje ostalih malvera na zaraženi računar).
2009. Conflicker, slično kao Torpig, koristi dimenzionirane algoritme za kreiranje novih domena koji omogućuju nove "kontakte" sa žrtvama. Takođe, stvari se dodatno komplikuju, jer se uvodi koncept "pakiranja" .

Dakle, više nema nikakve sumnje da je zarada postala glavni motivator napadača, te da su gubici nastali djelovanjem malicioznog softvera veliki. Više nema nikakve sumnje da se radi o kriminalu.

Slike koje slijede najbolje opisuju dati istorijski pregled.



Izvor: IKARUS Security Software GmbH






Botnet

Botnet  (naziv nastao kombinovanjem riječi  roBOT i NETwork), predstavlja mrežu zaraženih računara kontrolisanu sa jednog mjesta ( bot master).  Vlasnici računara u botnet mreži najčešće nisu ni svjesni svoje “uloge”. Tu su se našli zbog slabe antivirus i firewall zaštite. Ovakve zlonamjerne konstrukcije najčešće se koriste za DoS napade, različite vrste spamovanja, “ click-fraud” , ali isto tako, prelaskom namjene malicioznog softvera iz sfere zabave u sferu zarade, botnet mreže su sve više instrument za krađu velikog broja finansijskih i ličnih informacija koje imaju vrijednost na tržištu.

Kao i mnoge stvari u nauci i tehnologiji koje su se vremenom “otele kontroli” i botnet mreže su počele kao potpuno benigna stvar. Ako definišemo da je Bot programčić koji je autonoman na nekoj mašini i izvršava zadatak u okviru mreže - prve botnet mreže  bile su zapravo IRC ( Internet Relay Chat).  I danas postoje servisi za “ćaskanje” koji su zapravo legalni botneti, NickServ – servis koji omogućuje sagovornike kao čvorove u komunikaciji i kanal između njih.

Problem nastaje sa početkom zloupotrebe IRC komunikacije, prvo kao mali IRC “ratovi”, a zatim i “preuzimanja” komunikacionih kanala većih razmjera, DoS napadi, i zloupotrebe IRC čvorova bez znanja njihovih vlasnika. IRC bot može da se nađe i na Internetu  http://www.eggheads.org/ , ova se stranica još uvijek održava  #lol.

Kako smo došli dovde? Istorija razvoja botneta izgleda u najkraćem otprilike ovako:
Rane ’90 – IRC botovi i automatizovano upravljanje IRC kanalima
1999. – 2000. – distribucija DDoS alata ( Trinoo, TFN2k, Stacheldraht)
1998. – 2000. – Trojanci - udaljena kontrola ( BackOrifice2k, SubSeven)
2001. – danas Crvi ( Worms) – širenje ( Code Red, Blaster, Saser)

Suštinski,  kao što sam rekla na početku, botnet je samo mreža zaraženih računara, hostova, na kojima „čuče“ maliciozni programi zvani botovi. Njima upravlja pomoću udaljene kontrole neka organizacija ili pojedinac, sajber kriminalci. Komunikacija je dvosmjerna od mastera prema hostu i nazad kroz komunikacioni kanal koji se zove C&C ( Control and Communication Chanell) , i može biti izveden u različitim topologijama. Kad govorimo u brojkama, postoje podaci da je danas u botnet mreže na svijetu uključeno preko 12 miliona računara (ne računajući novi trend, mobilne mreže), a ova kriminalna infrastruktura se može "iznajmiti" za manje od sto dolara.

Ono što je pravi problem je: kako se kreiraju i održavaju botnet mreže, zašto se kreiraju i kako se to sve zajedno može izbjeći ili ublažiti.
Samo kreiranje svodi se na to da se zarazi što više računara. Kako jedan host može postati bot? Na jako puno načina: nekad su „crvi“ bili najpopularniji, jer su se brzo širili mrežom, a danas je najčešći način zaraze „drive-by-download“ , Sql-injection, Cross-site-scripting , zapravo bilo koji danas poznati način propagacije virusa. U svakom slučaju, cilj je da žrtva instalira bot-program na svoju mašinu i „stupi u službu“  botnet mreže.
Kontrola nad ovim mrežama vrši se koristeći karakteristike samog C&C kanala ( Fast Flux, domain flux, push/pull/P2P).
Razlog kreiranja botnet mreža danas je isključivo zarada, i tu se ne treba zavaravati. Radi se o kriminalnim radnjama.

Osim pomenutih IRC botneta imamo i naprednije varijante HTTP botnete i P2P botnete. HTTP botneti koriste ranjivosti DNS servera i tako „švercuju“ maliciozni kod na host koji žele da zaraze ( npr. domain flux). P2P botneti se baziraju na prostom pretraživanju mreže, otkrivanju ključeva za pojedine proksije i „ulazak“ u mrežu. Dalje, kad se ima port i IP adresa,  sve je na nivou pear-to-pear komunikacije. Najpoznatija P2P botnet mreža je Storm.

Dakle, šta se preduzima? U analizi i suzbijanju botnet mreža, najvažnija tačka je prepoznati, a zatim i sprečiti, da dođe do „susreta“ botmastera i hosta žrtve ( AV stručnjaci to nazvaše rendez vous, pa recite da IKT ljudi nisu duhoviti i šarmantni) . To se radi različitim mehanizmima detekcije napada, i zaštitama na različitim komunikacionim nivoima ( prvenstveno preko ACL's - liste pristupa, na mrežnom nivou, HTTP i DNS)
Za detekcije mreže koje imaju za cilj pronalaženje botneta i potencijalnih botneta  (Bot Miner) danas je razvijeno nekoliko metoda, od kojih su najpoznatije A-Plane Monitor ( ko šta radi? ) i C-Plane Monitor ( ko razgovara sa kim? )

Predlozi za čitanje:

Your Botnet isMy Botnet: Analysis of a Botnet Takeover, Brett Stone-Gross, Marco Cova, Lorenzo Cavallaro, Bob Gilbert, Martin Szydlowski,Richard Kemmerer, Christopher Kruegel, and Giovanni VignaUniversity of California, Santa Barbara

Behavioral Clustering of HTTP-Based Malware and Signature Generation Using Malicious Network Traces
Roberto Perdiscia; Wenke Leea, Nick Feamstera, College of Computing, Georgia Institute of Technology, Atlanta,

Mining the Network Behavior of Bots, Lorenzo Cavallaro, Christopher Kruegel, and Giovanni Vigna, Department of Computer Science, University of California, Santa Barbara, July 16, 2009

уторак, 2. јул 2013.

Reverzni inženjering

 
                               
 

Reverzni inženjering u programiranju je najjednostavnije rečeno rekonstrukcija koda ako imamo samo izvršnu (.exe) verziju. Zašto je to potrebno?

Većina koda se isporučuje upravo u izvršnim verzijama, da bi se zaštitila autorska prava s jedne, i da bi se program zaštitio od zlonamjernih izmjena koda sa druge strane.
Međutim, napadači se služe metodama reverznog inženjeringa da bi rekonstruisali izvorni kod, a zatim u njega ubacili maliciozne komponente.

Da bi držali korak sa njima, odnosno predupredili njihove akcije, inženjeri u AV industriji bave se analiziranjem reverznog inženjeringa i načinima kako u kod ubaciti ometajuće elemente, koji će onemogućiti proces deasembliranja (code obfuscation).

Proces reverznog inženjeringa počinje sa deasembliranjem, što je proces prevođenja mašinskog koda ( u kome je izvršni fajl) u asembler (program višeg nivoa nego mašinski, koji se obraća procesoru, ali daleko nižeg nivoa od programskih jezika).

Svaki procesor ima svoj asembler, s obzirom na arhitekturu. Prevođenje mašinskog koda u asembler je jedan-na-jedan mapiranje, ali je asembler mnogo "čitljiviji" , odnosno lakši za razumijevanje.
Sretala sam ljude kojima je i mašinski jezik bio čitljiv, i koji su programirali direktno u "mašincu", ali to pripada ranijim periodima razvoja računarstva, i teško da danas neko razvija te vještine. Asemblerski jezik takođe zahtijeva ne samo poznavanje jezika, već i dobro poznavanje arhitekture računara, budući da se direktno obraća procesoru, memorijskoj lokaciji, registru.

Deasembliranje se vrši instrukcija po instrukcija, grana po grana (ovo je sad jako pojednostavljeno rečeno, ali to je suština). Važno je da se tačno razumije ponašanje programa bez njegovog izvršavanja. Ovo je zapravo dosta težak posao.
Ali da zakomplikujem još malo. Deasembliranje može biti statičko i dinamičko.
Statičko obrađuje čitav izvršni fajl odjednom, kao cjelinu, ali bez njegovog izvršavanja.
Dinamičko podrazumijeva izvršavanje dijelova programa sa zadanim ulazima, i rekonstrukcija na osnovu ponašanja. Ovaj vid deasembliranja više se koristio kod pronalaženja i otklanjanja grešaka ("debugging"), ali razvoj malicioznog softvera posljednjih godina nadilazi domete statičkih analiza, pa dinamičke postaju sve važnije. O tome u posebnoj temi.

Dva su glavna algoritma korištena za statičko deasembliranje: "Linear sweep" i " Recursive traversal".
Prvi se radi linearno, instrukcija po instrukcija, podrazumijevajući da kad se jedna instrukcija završi, naredna počinje. Slabost ovog algoritma je što sve interpretira kao kod, nije u mogućnosti da uoči problematičnu sekvencu. Rekurzivna metoda je tačnija, zasniva se na kontroli toka i prepoznavanju grananja i skokova u programu, pri čemu se svaka grana zasebno analizira.

Upravo ta grananja i skokovi se koriste pri formiranju izvršnog koda koji će biti nemoguće ( ili vrlo teško) deasemblirati. Tipična tehnika za takvo "zamajavanje koda" je "Branch functions" , koristi se upravo da "zbuni" proces ispitivanja toka programa i uzrokuje greške u deasembliranju.

Da budem potpuno iskrena, ovo je samo malo zagrebana površina ozbiljne, opširne i raznolike materije. Nisam smjela da se upustim u priču o arhitekturi procesora, asemblerskim instrukcijama ni funkcijama grananja, jer je to svako za sebe posebna velika oblast.

Preporuka za dalje čitanje:

1. Obfuscation of Executable Code to Improve Resistance to Static Disassembly
Cullen Linn,  Saumya Debray,Department of Computer ScienceUniversity of Arizona - link

2. N-version Disassembly: Differential Testing of x86 Disassemblers
Roberto Paleari, Lorenzo Martignoni‡ Giampaolo Fresi Roglia, Danilo Bruschi - link




Šta su potpisi u AV terminologiji - "malware signatures"


Prikupljanje uzoraka malicioznih kodova i dalje je glavna metodologija u razvoju detekcionih sistema za prepoznavanje virusa. Radi se o ogromnim bazama, McAfee je, na primjer, 2012. imao u svojim bazama preko 110 miliona uzoraka. Desetine hiljada potencijalnih malver kodova prijavljuju im se svakodnevno.

Naravno, bilo bi nemoguće čuvati u bazama čitave kodove, a skeniranje sa takvim uzorcima bi potpuno zagušilo sistem. Zato se kreira jedinstvena sekvenca na osnovu kompletnog sadržaja koda koja se zove potpis (signature). Ovo se obično radi heš funkcijom nad cijelim sadržajem koja kao rezultat daje znatno kraću sekvencu koja jednoznačno određuje sadržaj.

Heš funkcija H(M) korištena u kriptografiji treba da ima sljedeće osobine:
  • Kompresija - izlazna sekvenca mora biti kratka
  • Efikasnost - izračunavanje H(M) za neki sadržaj M se računa lako
  • Jednosmjerna je - Ako je poznato S kao rezultat heširanja H(M) , praktično je nemoguće naći M takvo da je H(M)=S
  • Otpornost na kolizije: 
    • za zadato M i H(M) nemogće je naći N≠M takvo da je H(N) = H(M)
    • nemoguće je naći N i M , N≠M takve da je  H(N) = H(M)
    • zapravo, postoji puno kolizija, ali ih je nemoguće pronaći
  • Efekat lavine - Promjena u jednom bitu sadržaja izaziva promjenu otprilike polovine izlaznih bitova
Najpopularnije heš funkcije su MD5 ,sa 128 bitnim izlazom, (tek nedavno otkrivene prve kolizije), i SHA-1, 160-bitni izlaz, koji kao standard koristi vlada SAD. Postoji još mnogo heš funkcija, ove su najčešće. Takođe, nije svaka heš funkcija kriptološka.

Mnogi od potpisa već su ugrađeni u operativne sisteme. To se posebno odnosi na potpise "dobrog" softvera,  pa tako imamo dodatnu zaštitu pri instalaciji drajvera i slično, naime, operativni sistem će nas upozoriti ako pokušavamo da instaliramo nešto što nema legitimni sertifikat, odnosno čiji potpis ne postoji u bazi sertifikovanog.

Budući da se broj novih, jedinstvenih kodova virusa povećava iz dana u dan, baze podataka potpisa se enormno povećavaju. Problem distributera AV proizvoda je: Kako distribuirati tolike količine heš potpisa desetinama miliona korisnika, nekoliko puta na dan?

Jedno od novih rješenja je korištenje string potpisa ("string signatures") , gdje se zapravo jednom kratkom kontinualnom sekvencom bajtova iz malicioznog koda  referencira na više virusa u okviru jedne familije.
Tako da, iako je string potpis veći od heš potpisa, generalno zauzima se manje mjesta u bazama, jer referencira na više virusa odjednom, familiju, te jedan string potpis zauzima puno manje prostora nego svi heševi koje zamjenjuje.
U početku su se ovi potpisi kreirali manuelno, jer je automatski bilo teško odrediti koja je to sekvenca bajtova iz koda virusa sa najmanjom vjerovatnoćom greške, odnosno njenog pojavljivanja u nekom goodware kodu.
Symantec je razvio Hancock - sistem za automatsko generisanje string potpisa sa zanemarivo malim stepenom greške i maksimalnim pokrivanjem familija virusa.


Preporuka za čitanje:
Automatic Generation of String Signatures for Malware Detection
Kent Griffin, Scott Schneider, Xin Hu, and Tzi-cker Chiueh
Symantec Research Laboratories - LINK

Borba protiv virusa - Kako rade antivirus programi

U prethodnim postovima dala sam pregled i istorijat razvoja malicioznog softvera. Iako se jednom rječju zove virusima, a industrija koja se protiv toga bori anti-virus  (AV) industrija, misli se na čitav korpus softvera koji narušava sigurnost računarskog sistema i proizvodi štetu. Tako da, kad u nastavku teksta budem koristila riječ "virus", odnosi se na ukupan zlonamjerni softver.

Često se pored izraza malware u literaturi može pronaći i relativno nov izraz - goodware
Goodware je zapravo onaj "dobri" softver, programi koji nisu pisani sa namjerom da bilo šta naruše ili unište, ali AV industrija mora da vodi računa i o njima, naime, koliko je loše da se u pretraživanju koje radi antivirus program ispusti i ne prepozna neki zlonamjerni softver, isto je tako nepoželjno da se neki dobar, legitiman softver greškom proglasi virusom i obriše.
Zato AV kompanije održavaju baze podataka i za  malware i za goodware. Naravno, u ovim bazama se ne drže kompletni kodovi, već se prave baze potpisa, sekvenci koje, (gotovo potpuno) jedinstveno, određuju sadržaj koda.

Šta to sve rade AV kompanije, i šta radimo instaliranjem i ažuriranjem AV proizvoda?

Glavni ciljevi borbe protiv virusa su:

  • Razumjeti ponašanje zlonamjernog koda
    • šta mu je cilj, postoji li monetizacija, da li se kradu povjerljivi podaci, da li se šalju spamovi ili onemogućuje pristup...
  • identifikovati (razviti automatske metode) i klasifikovati familije malicioznog koda
    • ovo je bitno jer se radi o jako velikom broju malicioznih programa dosad, koji svakodnevno raste
  • generisati (razviti automatske metode) efektivne modele detektovanja malicioznog koda
    • ovo je zapravo ono što nama stiže kao proizvod i što rade prodavci AV softvera: generišu se potpisi svih dosad poznatih virusa i šalju korisnicima, takođe uz metode prevazilaženja problema ( očisti, obriši, stavi u karantin...). 
AV kompanije ( koje su zapravo ujedno i veliki naučnoistraživački centri), rade na velikom zajedničkom projektu koji obuhvata:

Sakupljanje uzoraka malicioznog koda ( malware samples)
Kompanije koriste različite metode da bi se prikupili podaci od korisnika širom svijeta. Svakim detektovanim "sumnjivim" softverom na računaru šalje se informacija i proizvođaču antivirusa. Honeypots (neka vrsta računarskog sistema koji su mamac) su podešeni da izvršavaju različite vrste rizičnih operacija, posjećuju milione sajtova, da bi provjerili postojanje i širenje zlonamjernih softvera.

Analiza uzoraka
  1.  Statička analiza
Ovom metodom uzorci se raščlanjuju i ispituju njihove osobine bez izvršavanja programa. To obično zahtijeva neki od postupaka reverznog inženjeringa, koji opet može biti manuelni ( kad se analizira specifičan uzorak) ili automatski ( kod velikog broja sličnih uzoraka poznate strukture) . Ovdje ne postoji nešto što se zove "najbolji pristup" . Ponekad se radi o specifičnom napadu, posebno projektovanom za specifični cilj, i tada se cijela analiza radi potpuno manuelno, što može potrajati dugo.
U jednom od narednih postova ukratko ću opisati ovaj proces.
Istina je da zapravo ne postoji automatizovan način koji će pomoći da se razumije i objasni ponašanje malicioznog softvera.
  1. Dinamička analiza
Nasuprot statičkoj, ovdje se kod analizira tako što se izvršava. Dinamička analiza je limitirana, možemo posmatrati samo efekte koda. Limitirajući faktor je i oprema koja se koristi. Međutim, metode dinamičke analize se sve više razvijaju, budući da se kreatori malicioznih kodova sve više služe metodama koje se ne mogu rekonstruisati statičkom analizom

Izvođenje i generalizacija ponašanja malicioznog koda
Vrlo je važno dobro definisati ponašanje virusa, da bi se mogla projektovati zaštita i predvidjeti potencijalna šteta. Ove analize se rade na nivou mreže i nivou hosta, prate se "pravila ponašanja", koja su vrlo važna heuristički dobijena informacija za kreiranje sistema detekcije. Takođe, važno je pravilno rekonstruisati ponašanje malvera u kontekstu uticaja na sistem, jer pri njegovom uklanjanju sa zaraženog računara najčešće nije dovoljno samo obrisati binarnu sekvencu koda, već i pronaći zaostale akcije virusa po sistemu (upisi neželjenog sadržaja u registre, skriveni pozivi servisa i procesa), i vratiti sistem u stanje prije napada.

Generisanje i razvijanje modela detekcije
Na osnovu svega prethodnog razvijaju se modeli detekcije malicioznog koda koji sadrže uzorke, potpise, pravila ponašanja itd. i koji se stalno usavršavaju da bi se broj grešaka smanjio, i da bi se što brže reagovalo na nove viruse

Sve ovo je vrlo težak posao. Istina je da ne postoji konačan skup informacija o malicioznom softveru. Ne postoji ni nešto takvo što bi se moglo nazvati "generalno pravilo za ponašanje malicioznog koda" .
Jedino pravilo je da nema pravila. Štaviše, ne postoji ni definicija samog "zlonamjernog ponašanja" . Šta je to  protiv čega se zaista treba boriti, gdje su granice? Ponekad je i slanje SMS poruke ili mejla zlonamjerno, a da se ni po čemu drugom ne razlikuje od dobronamjernih akcija te vrste.
U onom što je poznati kontekst ipak mogu da se konstatuju neke istine. Jedna od njih je da se radi o stalnoj igri mačke i miša, pri čemu AV industrija još uvijek "juri" za napadačima.
Ono što je evidentno je da napadači zapravo imaju svu slobodu da rade neometano i dovoljno vremena. Onaj ko se štiti mora da zaštiti svaki "ćošak", a onome koji napada je dovoljno da pronađe malu pukotinu.

Dodatni problem je i dizajn savremenih virusa, i relativna nesvjesnost korisnika, koji zapravo svojom neopreznošću nenamjerno, dodatno pomažu napadačima, i nerjetko zapravo "autorizuju" zlonamjernu akciju.


Preporuka za čitanje:

Behavioral Clustering of HTTP-Based Malware and Signature Generation Using Malicious Network Traces,
Roberto Perdisci, Wenke Lee and Nick Feamster, link

Exploring Multiple Execution Paths for Malware Analysis,
Andreas Moser, Christopher Kruegel, and Engin Kirda, Secure Systems Lab
Technical University Vienna, link 



понедељак, 1. јул 2013.

Polimorfizam

Polimorfizam je metoda izrade malicioznog softvera koristeći enkripciju. Tačnije "payload", dio koda koji je zapravo maliciozna komponenta, je enkriptovan. Prvom pojavom polimorfnog koda smatra se lansiranje virusa Chameleon, 1991. godine, ali ozbiljniji prodor ovakvih virusa vezuje se za period od 2006. nadalje.

Osnovne karakteristike polimorfnih virusa su:

  •  mijenjaju izgled nakon svake infekcije
  •  "payload" je enkriptovan
  •  koriste različit ključ za svaku infekciju
  •  čine statičku analizu stringova praktično nemogućom
  •  enkripcijske rutine su takođe promjenjive (da bi se otežala detekcija)

Dakle, način na koji polimorfizam djeluje je da se  "payload" enkriptuje sa ključem koji se nanovo različito generiše pri svakoj infekciji (najčešće, mada postoje i neki drugi scenariji) , što čini statičku analizu vrlo komplikovanom. Na početku, teško je uopšte deasemblirati enkriptovanu sekvencu, prvo se mora tražiti način za dekripciju, a tek kad se pronađe rutina za dekriptovanje može se pristupiti statičkoj analizi.

Posebno stanje polimorfizma je metamorfizam, gdje se zapravo mijenja čitav virus a ne samo payload, i gdje se, pojednostavljeno rečeno kreira semantički identična, ali potpuno različita verzija koda za svaku aktivnost.

Da bi se izašlo na kraj sa ovim izazovima, AV industrija ulaže velike napore u otkrivanje načina kako se zapravo "inficira" kod , kako se unose ti zbunjujući i obmanjujući dijelovi koda koji naizgled ne mijenjaju semantiku programa ("code obfuscation"), da bi ih lakše pronalazili i detektovali.

Za sve ovo, važno je, pored enkripcije i dekripcije vladati i tehnikama asembliranja i deasembliranja.


петак, 28. јун 2013.

Kako razlikovati vrste malicioznog softvera

Naravno, ne postoji jedinstvena i univerzalna podjela, sve zavisi o tome koji se kriterijumi koriste.
Ovdje će biti prikazana podjela s obzirom na način širenja i aktivacije malicioznih softvera.


Naravno, ovdje se radi o vrlo uopštenoj podjeli, jer se maliciozni softver može naći i u kombinaciji navedenih. Ova podjela je interesantna jer daje osnovne informacije o načinu i sredstvima širenja, što omogućuje efikasniju borbu.
Dakle, isto to samo deskriptivno, može se prikazati i ovako:
  • Virus
    • replicira se samostalno
    • da bi inficirao sistem zahtijeva host
      • napada boot sektor fiksnog ili prijenosnog diska mijenjajući mu osobine, npr. može pregaziti sadržaj na disku nekim drugim; napada fajlove takođe ih mijenjajući, i ukoliko su izvršni širi se njihovim pokretanjem


  • Worm
    • replicira se samostalno, širi se nezavisno, autonomno kroz mrežu
      • iskorišćava ranjivosti tako što napada veliki broj računara
      • najčešće sam sebe šalje putem mejla
    • primjeri su Internet Worm, NetSky, Sobig, Code Red, Blaster, Slammer


  • Trojanac ( Trojan Horse)
    • maliciozni program prerušen u legitimni softver
    • može izvršavati mnogo zlonamjernih akcija
      • špijuniranje osjetljivih podataka korisnika
      • maskiranje prisustva ( npr. root-kit)
      • dozvoljavanje udaljenog pristupa (npr. BackOrifice, NetBus)


  • Root-kit
    • koristi se da održava udaljeni pristup kompromitovanom sistemu
    • obično služi da maskira, prikrije fajlove, rocese, mrežne konekcije
      • smješten na korisničkom i kernel nivou


Dialer, Spyware i Keylogger su klasični špijunski programi koji se instaliraju na napadnuti računar direktno ili koristeći neku od metoda socijalnog inženjeringa, i služe za prikupljanje informacija o radu korisnika.


Istorija ranog doba računarskih virusa

Računarski virusi, odnosno maliciozni programi ( softver koji je pisan sa namjerom da napravi neku štetu računarskom sistemu, i/ili pribavi korist onom ko ga inicira), počeli su u ranim vremenima i to prvo kao nenamjerne greške dizajnera sistema, ili namjerni „otvori“ (Trap Door) koje su dizajneri ostavljali u sistemu da bi kroz njih kasnije pristupali, a koji su iskorišćeni i u druge svrhe. Takve stvari su se dešavale, ali budući da nisu imale značajnije loše posljedice, dugo je izgledalo kao da je „sve u redu“.
Ovaj tekst je samo kratak osvrt na ranu istoriju razvoja malicioznog softvera, bez pretenzije da bude nabrojano sve, već samo da se napravi informativni pregled najvažnijih događaja koji su uslovili upravo i razvoj industrije antivirusnih softvera, kao i ostalih grana zaštite.

1982. Elk Cloner je bio vjerovatno prvi virus za Apple koji se nekontrolisano širio. Napisao ga je, šale radi, petnaestogodišnji učenik, širio se preko disketa,  igricom.
1983. Fred Cohen piše prvi „namjenski“ virus, da bi ga zapravo definisao, i objasnio javnosti šta je to i koje su opasnosti. F.Cohen se ujedno svrstava u osnivače čitave oblasti antivirusne industrije.
1986. pojavljuje se Brain Boot, kao prvi IBM PC virus , i kao što mu i ime kaže, služio je da „zarazi“ boot sektor na disketi kad joj računar pristupi. Napisala su ga dva brata iz Pakistana, sa osnovnom namjerom da zaštite svoje intelektualno vlasništvo.
1987. tu je Virdem ili CCC (Chaos Computer Club), MS DOS fajl koji se predstavlja kao igra nudeći korisniku da pogađa broj između nule i broja koji predstavlja generaciju virusa.
1988. je važna godina jer se pojavljuje prvi Internet Worm.  Napisao ga je i proširio Robert Morris Junior, koji je danas profesor na MIT. Namjera je bila da se ispitaju nove ranjivosti koje donosi pojava interneta i načini kako se one mogu zloupotrebiti
1990. virus pod nazivom 1260 ili V2PX1991. Chameleon bili su prvi polimorfni virusi, koji su koristili enkripciju i mutirajući kod što je otežavalo njihovo pronalaženje i deasembliranje.

Ono što je karakteristično za ovaj period razvoja računarskih virusa je da je iza njihove izrade stajala uglavnom radoznalost, igra i želja za slavom i publicitetom. Naprosto, radilo se o privlačnoj ideji da je moguće napraviti nešto što će kontrolisati neki sistem.  Nije bila pričinjena veća šteta.

1991. pojavljuje se Michelangelo , virus koji je napadao sam operativni sistem, i doslovno rečeno, obarao ga i činio nebutabilnim.
1995. je godina pojave prvih Macro virusa za Word koji su iskoristili upravo način na koji je ovaj program za editivanje teksta kreiran, a masovna upotreba elektronske pošte pospješila je njihovo širenje.

Ovih godina već imamo i ozbiljnu antivirus (AV) industriju, što znači da je problem ozbiljno shvaćen i da se pristupilo zaštiti kao neophodnoj kariki u IT svijetu. Detekcija virusa bila je brza i njihovo uklanjanje uspješno. Šteta još uvijek nije bilo.

1998. Chernobyl ili CIH nastaje upravo kao izazov AV industriji, budući da se radilo o virusu koga je tadašnjim  AV znanjem bilo zaista teško otkriti. Bio je takođe vrlo destruktivan, u to vrijeme izbacio je iz pogona oko 60 miliona zaraženih računara, a šteta je procijenjena na milijardu dolara. Ni njegovim autorima cilj nije bila zarada, već samo izazov – kako izigrati sisteme zaštite. 

2000. i 2001. godina u znaku su tri Macro worm virusa: Mellisa, Love Letter Worm i I Love You (Anna Kournikova Worm) koji su se širili mejlom u vidu atačmenta. Bili su to skriptovi čija namjera takođe nije bila da autoru donesu materijalnu korist. Prvi ozbiljan pokušaj te vrste urađen je nekoliko godina kasnije.

2004. virusi MyDoom i Net Sky su virusi koji su se šitrili Internetom, i u to vrijeme napravili dosta štete. Ono što je interesantno je da se ovdje prvi put primjećuje rivalitet među autorima, osim što bi zarazio sistem u koji je upao, Net Sky je sa zaraženog računara takođe i brisao MyDoom i Beagle ( još jedan worm iz tog vremena)

2005. se pojavljuje Samy My Hero kao prvi "cross site scripting worm" koji se širio preko Myspace mreže, naprosto posjetom zaraženom profilu.

Budući da se još nije prepoznavao pravi kriminal i dometi, AV industrija tada još nije funkcionisala na današnji način: prikupljanjem uzoraka virusa i distribucijom baza potencijalnih malicioznih kodova korisnicima.
Nakon doba "slave i dokazivanja" nailazi era ozbiljnih virusa i loših namjera. Pojavom polimorfnih virusa  i botnet mreža stavljaju se novi izazovi pred AV industriju.
Današnja  situacija je drugačija. Industrija malicioznog softvera po ilegalnim zaradama prestigla je i trgovinu drogom i oružjem, i borba koja se ovdje vodi je ozbiljna i neprestana. AV industrija je danas grana koja okuplja vrhunske stručnjake, a tehnologije koje će omogućiti prepoznavanje, čuvanje i distribuciju miliona uzoraka virusa neprestano se razvijaju.

- nastavak: drugi dio-


*Suprotno pravilima srpskog jezika, nazive virusa i njihove autore pisala sam izvorno, svjesno, da bih olakšala njihovo eventualno pronalaženje na internetu