Ko je ovde lud, a ko blesav...

1

Ko je ovde lud, a ko blesav...

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Glupi AV...

Dobrodosli na citanje mog drugog kvazi-naucnog-vise-sarkasticnog clanka

U ovom 'broju' cemo pricati o tome kako se trenutno nadmudruju AV programi i njihovi direktni neprijatelji - maliciozni programi.
Ovi drugi trenutno vode, i to iz manje-vise idiotsko-glupih razloga koji mogu da se rese sa par linija koda u AV programu.


Istorija nadmudrivanja izmedju 'nasih' i 'njihovih'

I bese virus...

Neznam odakle bih stvarno poceo pricu, ali najverovatnije bi trebalo da pocnem od vremena pre pojave heuristike.
Ono po cemu su AV programi u pocetku prepoznavali viruse su bili tekstualni podaci u virusima, uglavnom poruke koje su virusi ispisivali na ekran.
Maltene svaki pisac virusa je patio od kompleksa potpisivanja, tj. da pokaze da je on novi King of the Hill, i maltene po pravilu su ostavljali poruke u telima virusa.
Ona sacica njih koja nije patila od tog kompleksa, nije bila bas puno uspesnija - kao i svaki program, i virus se sastoji od gomile naredbi poredjanih jedna za drugom.
Ukoliko za nesto dokazete da je virus, onda pogledate koja grupa naredbi (koda) je specificna za taj virus, i to se proglasi njegovim potpisom.
Skeniranje se sastojalo od trazenja potpisa u fajlovima na disku.
Rezultat utakmice je trenutno 1:1.
Pisci virusa su onda poceli da razmisljaju o tome kako da njihovi virusi ne ostavljaju potpise.
Radjaju se dve ideje:
- virus treba da mutira tako da svaki put ima drugaciji potpis
- virus treba da bude sakriven u 'kovertu', i da odatle izleti tek kada se koverta nadje u memoriji
Oba principa se koriste do dana danasnjeg, doduse izdeljeni na vise nacina izvodjenja.
Heuristika teoretski moze da se izbori protiv oba principa, ali je to u praksi jako tesko.
Sta je heuristika?
Zamislite virtuelnu masinu u kojoj vas AV program simulira okruzenje u kome virusu dozvoli da se startuje. On prati rad nepoznatog mu programa, i dize uzbunu onog momenta kada program u virtuelnoj masini proba da nadje zirtvu koju bi zarazio.
Ovo se zove sandboxing (u parkovima je to ogradjeno polje sa peskom u kome se deca igraju).
Sandboxing je spor proces, uz to i nesiguran, posto ne mora da znaci da ce virus odmah pokusati da se razmnozi. Mozda ce cekati odredjeni datum...
Drugi vid heuristike je slican reversnom inzenjeringu. AV program pokusava da 'prouci' kod virusa, i da nadje bilo koje tragove koda koji sluzi za malicioznu akciju (u to doba se radilo samo o inficiranju drugih fajlova).
Modul za heuristiku je znaci trebao samo da ima mogucnost prepoznavanja svih tehnika razmnozavanja.
Ovakva heuristika se isto zaobilazi, i to postoje razradjeni nacini kojima AV programi jos nisu nasli leka.
Sandboxing je dosta sigurniji, ali smo gore vec spomenuli da je uzasno spor, cak iako u sandboxu simulirate ubrzano brojanje vremena.
Sandboxing ostaje vredan kao postupak za laboratorijska istrazivanja, da bi se utvrdilo da li je nesto uopste maliciozno, pa tek onda krenuti u analizu i nalazenje potpisa.

Rezultat utakmice je trenutno 2:1 za starije (dobra heuristika trazi jaku masinu i dosta vremena, za kucne kompove morate plasirati oslabljenu heuristiku)

Sto se tice envelopa koje smo spominjali, to otprilike funkcionise ovako:
Napravili ste virus (ili imate primerak vec postojeceg) i zelite da duze vreme ostane neotkriven.
Jedan od scenarija je da napravite program koji ce u sebi sadrzati vas virus (pricam virus, a odnosi se na celokupan malware). Jedino vas program zna kako je taj virus tu kodiran.
Time smo se resili heuristike, koja nece moci da prepozna maliciozan kod.
Vas program izbacuje malware i aktivira ga. Oba ova procesa su sami po sebi bezopasni, opasan je samo aktiviran virus.
Ukoliko se cela stvar desi u memoriji, onda ce vas program koji je kontejner za virus, ostati virtuelno neumesan u celokupnu spletku, tj. AV programi nece na njega sumnjati.
Vas virus ce inficirati druge programe, a koverta ce da cuci u cosku, i da ceka sledecu priliku za akciju.
U laboratoriju ce po svoj prilici da stigne virus, ali koverta nece posto na nju niko ne sumnja (barem nece u pocetku), tako da ste svom virusu podarili dug i uspesan zivot.
Koverte mogu biti razlicitih mogucnosti. Neke ce samo da urade kompresiju i enkripciju tovara, neke ce da ga mutiraju, tako da svaki izbacen tovar ima razlicit potpis... Mogucnosti su neiscrpne.

Ovde na red dolazi jedna stvar koja me i dana danasnjeg nervira:
Cak i kada AV program ima potpis tovara, cak iako ga prepozna odmah cim bude istovaren, jos uvek ne mogu da nadju iz koje je koverte izbacen.
Kovertu ce da prepoznaju tek ako imaju i njen potpis.
Windows omogucava da se prati stvaranje i promene svih fajlova na sistemu. Kada covek zeli, moze da napravi program koji ce da prati sve procese na sistemu i da zabelezi svaki poziv za stvaranjem fajla.
Ovo pricam kao poznavaoc materije, ne pricam napamet.
Najprostije posmatranje (monitoring) je omoguceno ako se program poveze (hook) na doznake o novim fajlovima na sistemu. Na ovaj nacin AV programi saznaju u kom folderu se pojavio novi fajl.
Ovaj nacin ne omogucava da se sazna ko je stvorio fajl.
Osim ove doznake (event), Windows generise doznake za sve operacije koje sluze za najrazlicitije vidove stvaranja novog sadrzaja (bio on binarni fajl, tekst ili nesto trece, da li se formira u memoriji kao stream, ili negde na HD-u...).
Posmatranjem tih ostalih eventa se moze doci do zakljucka ko je 'roditelj' spornog tovara. time mozete da 'zigosete' kovertu kao opasnu.
Zasto se to ne koristi (barem ja jos uvek ne vidim efekte koje bi ovakvo posmatranje trebalo da proizvede), meni nije jasno.
Ili toliko opterecuje sistem da bi bilo suvise zamarajuce za sistem, ili se jos niko nije prihvatio posla.
Jutros sam citao o patentiranoj komponenti (programska komponenta koju programer moze da umetne u svoj program) koja belezi bukvalno sve ove promene na sistemu.
Cene su nenormalne, uverite se i sami:
http://www.alfasp.com/products.html - pogledajte Alfa file monitor

Da li su stvarno samo oni sposobni da naprave tako nesto, pa to naplacuju kao da je od zlata, ili to imaju i AV programi, ali cela tehnologija nema efekta.
Ovo za mene ostaje misterija, ali i dalje mislim da AV programi iz meni nepoznatih razloga ovo jednostavno ne zele da implementiraju (zavera protiv nas obicnih smrtnika?).

Pod pojmom 'koverte' sam strpao exe-pakere, exe-protectore, exe-cryptore, morphing-engine, obfruskatore koda...
Zacudili bi ste se koliko tih razlicitih 'koverti' postoje, i koliko se lako nalaze na netu, i vecina su besplatne.
Oni koji su procitali MyCity AV test, videli su da smo poseban naglasak stavili na neke jako cesto koriscene 'koverte', konkretno, na par exe-packera i exe-protectora.
Najveci deo AV programa sa testa nije umeo da izadje na kraj sa preko 70% 'koverti', a 'tamo napolju' ima jos 10 puta vise 'koverti' nego sto smo mi testirali.
Bruka i sramota, jer ako sam ja mogao da ih nadjem, i da za vecinu nadjem informacije kako da 'izvucem tovar iz koverte', onda su to mogle da urade i AV kompanije.

Ovo sto sledi je statistika upotrebljenih 'koverti' za viruse koje smo imali na MC AV testu (oko 20.000 malicioznih fajlova):

Ime packera  |  Broj pojavljivanja u fajlovima (napomena: pojedini fajlovi su bili visestruko pakovani)

PkLite   51
ASPack   348
UPX   1109
PE_Patch   115
FSG   72
Neolite   13
Petite   45
PE-Crypt.Wonk   5
DoomPack   7
Ezip   3
PE-Diminisher   10
Yoda   5
Morphine   8
PE-Crypt.Stone   3
Exe32Pack   4
ExeStealth   2
PECompact   69
PE_Patch.Mutex   105
PEBundle   10
PECrypt32.Kila   3
WWPack32   10
Rapid   1
JDPack   4
TeLock   49
DBPE   2
ASProtect   26
Pex   4
PE-Pack   10
BitArts   3
Edit   15
PE_Patch.PECompact   146
PecBundle   7
Com2Exe   1044
PESpin   2
Shrinker   2
Bat2Exec   28
ExePack   89
Clipper   1
LzExe   23
AIN   2
Apack   3
Diet   7
Tinyprog   1
Rjcrush   3
UPD   4
PackCrypt   3
PackLite   4
BitArts.Cruncher   2
Crypt.BWG   7
VGCrypt   2
PE_Patch.Pex   81
PCShrink   2
PKLite32   43
Crypt.Quarantine   2
EXE_Patch   1
BitArts.Fusion   2
PECRC   1
Crypt.Cryptcom   7
LzCom   2
BJFnt   1
VisualDialogScript   2
Crypt.THC   3
Com2Txt.Dandler   1
Batlite   2
Exe2Com.tECC   4
Crypt.IBBM   4
PaquetBuilder   1
CodeCrypt   2
RarPSW   1
EXE-Package   9
Splasher   3
UPC   5
Cexe   1
Mmpo   1
MEW   1
AVL   1
PELock   2
Crypt.Dismember   2
DebugScript   24
Crypt.CC286   2
SCRNCH   1
AVPACK   1
CryptCOM.b   12
ICE   1
CPAV   1
Crypt.Deeper   1
Crypt.Bom   1
CryptGeneric   1
Expert   1
Com2NE   3
Com100   19
Exe2NE   3
PE_Patch.Ginra   9
PE_Patch.Morphine   5

Zamislite AV program koji ne prepoznaje samo prvih deset packera sa liste, pa ce vam biti jasno koliko ce taj virusa propustiti, cak iako ima njihove potpise.
Osim ovih vrsta koverti, postoje jos i druge grupe.
U ovoj grupi su se svi programi raspakovali u memoriji, i tamo pokretani. Koriste se uglavnom za viruse.
Za trojance se koriste druge vrste koverti, posto njih trebaju da izbace i na HD, ne samo u memoriju.
Takvi programi obicno sebe upisuju na listu programa koja treba da se startuje sa sledecim startovanjem Windowsa, i uglavnom uspevaju da dobiju prioritet tako da se startuju pre AV programa.
Ni to mi ne ulazi u glavu, zasto im je omoguceno da se startuju pre AV programa. Zanimljivo je da Adaware i SpyBot uspevaju da zadrze prioritet u vecini slucajeva (napomena: oni nisu AV programi).
Kada se startuju, oni izbace tovar i aktiviraju ga. AV program se startuje tek posle toga, pa vec bude kasno.
Tovar obicno bude izbacen svaki put pod drugim imenom, tj. fajl tovara se uvek drugacije zove. I obicno izbace par kopija tovara u jednom naletu, tako da brane jedna drugu.
AV program ubije jedan tovar, drugi ga 'ozivi' (naredi koverti da izbaci drugi tovar). AV program po pravilu nikada ne stigne da ubije kovertu jer se mlati sa tovarima.
Ili, tovari toliko dobro stite kovertu da joj AV program ne moze nista.
Jedino resenje je Safe Mode, ili Remote ciscenje (upravo sam sada tako krstio postupak kada izvadite HD na kojima je zaraza, ubacite ga u drugi komp, i tamo ga ocistite).
Da stvar bude losija, vecina AV programa imaju ocajno malo uspeha u otkrivanju koverti.
Da stvar bude jos losija, uz sve vecu popularnost rootkitova, koverte se jos bolje sakrivaju.
Rootkit je naziv za program ili drugu vrstu tehnologije, koja na sistemu uspesno sakriva neki program, a moze da sakriva i druge parametre.
Moze recimo da sakrije da je nekom fajlu promenjena velicina (inficiran je pa su dodati bajtovi), datum zadnje izmene fajla itd...

Rootkitovi su u svakom slucaju omrazeni, bilo da se koriste u lose ili dobre svrhe (recimo AV program sakriva svoje fajlove da ne bi bili kompromitovani).
Jednu od tehnologija zastite egzistencije koju koriste trojanci, AV programi nisu iskoristili jos uvek (a nije mi jasno zasto) - menjanje imena procesa AV programa.
Nije vam jasno zasto bi AV program menjao svoje ime, tj. ime procesa (ono sto vidite u Task Manageru)?
Pa vecina trojanaca (kojima nije bitna velicina fajla, tj. ne teze da budu toliko mali kao virusi) imaju spisak vecine procesa koje imaju AV programi.
Ubijanje procesa je decija igra za bilo kog programera, jer je dobro dokumentovana.
Kada bi AV program uvek imao drugo ime procesa, 'liste za streljanje' koje imaju trojanci bi bile beskorisne.
Da spomenem samo da neki AV programi vec deset i vise godina imaju jedno te isto ime procesa, pa ih teoretski mogu ubiti i 10 godina stari trojanci.

Cemu ovolika tromost u razvoju AV programa?
Zasto jos nisu implementirali stvari koje su tako ocigledne, i tako cesto koriscene od strane malwarea da bi se AV program zaobisao ili onesposobio?
Na trzistu postoje par programa koji debelo obracaju paznju na stvari o kojima sam vam ovde pricao, ali ni jedan od njih ne prelazi granicu od 80% u resavanju problema koje sam ovde spomenuo.


Rezultat utakmice na kraju ovog teksta:
2:0 za mene

Napomena: ovaj tekst nije pisan da posluzi kao strucno/tehnicko stivo, vec cisto kao uvid u situaciju. U cilju prilagodjavanja teksta manje upucenim citaocima, vecinu tehnicki izraza sam zamenio lakse shvatljivim izrazima. Vecina stvari su zakljuci izvedenih iz licnog iskustva, tako da ne moraju da oslikavaju stvarno stanje. Svi oni koji zele da me iskritikuju zbog 'nestrucnosti teksta', zelim samo da ima kazem da tekst ni nije bio namenjen strucnjacima, posto njima nije ni potreban, vec onima koji o ovim stvarima nisu ni culi, ili nisu imali ideju da postoje. Tacka



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • BMW 
  • Ugledni građanin
  • Pridružio: 25 Mar 2005
  • Poruke: 314

"Cemu ovolika tromost u razvoju AV programa?"

Možda su čekali tebe. Zašto mi ne bi napravili jedan dobar AV koji bi odrađivao sve ovo što si naveo? Kad mogu Rumuni, Španci, što ne bi i mi?
Ako ne možemo sve sami, možda u saradnji sa 'braćom' Rusima?
Znači, kupimo jednu polovnu mašinu od KAV-a i malo uložimo, doteramo je da radi sve što treba.



offline
  • SSpin 
  • Saradnik foruma
  • Pridružio: 09 Dec 2004
  • Poruke: 6488
  • Gde živiš: Nis -> ***Durlan City***

procitao sam ceo txt... bas mi se dopao, pogotov stil kojim je pisan, svaka pohvala bobby Wink


Citat:Cemu ovolika tromost u razvoju AV programa?
Zasto jos nisu implementirali stvari koje su tako ocigledne, i tako cesto koriscene od strane malwarea da bi se AV program zaobisao ili onesposobio?
Na trzistu postoje par programa koji debelo obracaju paznju na stvari o kojima sam vam ovde pricao, ali ni jedan od njih ne prelazi granicu od 80% u resavanju problema koje sam ovde spomenuo.


A, sta mislis, da li je teoretski sve to moguce impementirati u AV program?Da li bi takav AV bio dostupan, prosecnim korisnicima desktop racunara?Da li bi u tom slucaju zauzimao previse resursa, i ono glavno sta mislis da je glavni razlog.... [ trazim tvoje subjektivno misljenje]

offline
  • Pridružio: 30 Maj 2005
  • Poruke: 274
  • Gde živiš: Gondor

Pa verovatno im iz nekih razloga ne ide u prilog da naprave idealan AV. Ne znam zasto, nemam ni ideju.
A mozda su i finansije u pitanju. Mada mi je i to glupav razlog.

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

Imam i ja nesto da kazem povodom koverti i Alfa corporation.

Koverte ne mozes da blokiras zato sto je vecina koverti zestoko upotrebljavano u normalnim aplikacijama. ASPack je jedan od njih i, osim sto pakuje exe na 30% velicine, ubrzava izvrshavanje i "kriptuje" kôd da hakeri ne mogu da izvuku serijske brojeve. Ja sam jedan od srecnih korisnika ASPack-a za svoje potrebe.
Znaci, vid heuristike nad kovertama pada u vodu. Vecina su regularne aplikacije. Jednostavno, ne vidim resenje ovog problema, nikako.
Zamisli da meni, recimo Symantec, blokira aplikaciju zato sto je pakovana ASPack-om?! Pa ne da bi ih razvalio na sudu nego to je chudo jedno... i ne samo ja... a tek ASPack kompanija...

Druga stvar je Alfa. Inace, to je nasa kompanija, covek se zove Dejan, ali necemo dalje, to je njegova stvar. Na vrlo inteligentan nacin je uze SILNE pare, i svaka mu cast. Skidam kapu. Svojevremeno sam radio oko enkripcije sa njim.

Kako je Alfa u stvari zamisljen, mislim na glavni proizvod "Alfa transparent encryption". On transparentno, u backgroundu, kriptuje sve sto ide na disk, pre nego sto do njega stigne, i obrnuto, dekriptuje sve sto sa diska stize. Ovim je dobio simpatije od dve vladine organizacije iz USA.
Radi na Rijndael cipheru sa ECB modom.

Iako je Alfa krajnje ozbiljan proizvod, vec pocinjem da se tresem od straha ako neki virus kreatori pocnu da koriste ovu tehnologiju (nece im Alfa prodati, ali ako naprave nesto slicno)... bas bi voleo da vidim AV koji ce to da sprechi.

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

@beli
Nisam sugerisao da blokiraju ASPack i slicne packere, vec sledece:
Ako su neki tamo ljudi uspeli da naprave UnASPack, ne vidim zasto jedna ozbiljna AV kompanija ne moze da implementira tako nesto u svoj program, pa da vidi sta je to tamo pakovano.
btw. ASPack uopste nije problem, maltene svi AV programi ga raspakuju bez problema.
Problem su drugi, manje poznati packeri. NFO i FSG se jako puno koriste, a dobar deo AV programa ne moze da ih raspakuje (a ja sam na netu nasao programe za raspakovanje).

Osim packera, mislio sam i na druge vrste koverti, konkretno na droppere, bindere i ostala cuda.
Zabadava meni AV program nalazi trojanca, ako ne moze da nadje na sistemu droppera koji je tog trojanca na sistem ubacio.

Sto se tice Alfe, konkretno interesantna stvar je njihova komponenta koja prati celokupan WinAPI u potrezi za procesima koji pokusavaju da naprave stream ili fajl. Vecina AV programa koriste samo onaj glupi notifikacion event Windowsa (ne mogu da se setim sada imena), dok im formiranje streamova u memoriji prolazi ispred nosa.

@SSpin
Ne bih umeo da ti odgovorim. To bih mogao tek ako bih ja uspeo da isprogramiram takav program za pracenje desavanja na sistemu, pa tek onda da kazem da li je to korisno ili ne, i da li je 'pretesko' za sistem.
Mozda Beli ima iskustva sa paketom koji sam gore spomenuo, i koliko on opterecuje sistem.

offline
  • BMW 
  • Ugledni građanin
  • Pridružio: 25 Mar 2005
  • Poruke: 314

Trend Micro Anti-Spyware može da pokaže putanju odakle je došao spywar, od kojeg programa. Da li je to ono o čemu ovde govoriš?

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

@Bobby

Interesantno je kako Alfa uopste ne opterecuje sistem. Deja je izmislio jedan algoritam koji to radi sa sitnim paketima (iz tog razloga je ECB, inace drugo ne bi moglo, kao na primer CBC), tako da se obradjuju samo odredjene adrese po zahtevu procesa. To je sto se tice ekripcije. Inace, kako prati sve procese, to je njegova industrijska tajna, znam sigurno da ne koristi hook, bar ne u klasicnom obliku.

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

@BMW
Nisam probao doticni program, ali verujem da je u pitanju detekcija u kojem se programu nalazi spyware, a ne koji tacno fajl (od svih fajlova tog programa) ima u sebi skriven/neaktivan spyware.
Jedno je kada je fajl malwarea na slobodi, drugo je dok stoji pritajen u nekom drugom fajlu.

Ajde jedno slikovito objasnjenje:

Zamislite da imate arhivu slicnu RAR-u kome je postavljen password.
Jasno je da AV program ne moze da skenira unutar arhive jer su podaci u njoj kriptovani tim passwordom.
Zamisli sada da je ta arhiva izvrsan fajl (EXE). Jasno je da AV program ne moze da prodre i skenira ono sto je unutra arhivirano (tovar).
AV detektuje tek kada se tovar raspakuje. Ukoliko se ne unisti i arhiva (koverta) koja je nosila tovar - onda ce tovar biti ponovo izbacen, i tako u nedogled.

offline
  • Pridružio: 10 Feb 2005
  • Poruke: 3549

A da slucajno nema nekog AV-a koji skenira i unutar arhive?.A da ga mi koristimo.

Ko je trenutno na forumu
 

Ukupno su 1369 korisnika na forumu :: 62 registrovanih, 8 sakrivenih i 1299 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 357magnum, Aleksandar Tomić, amstel, Atomski čoban, bladesu, Boris90, brundo65, ccoogg123, cenejac111, comi_pfc, Denaya, Dorcolac, dozorni, draganca, dule10savic, Faki-Valjevo, GandorCC, goxin, hatman, hologram, ikan, ivicasimo, JimmyNapoli, Joco Skljoco, JOntra, jukeboxer, kalens021, kokodakalo, Krusarac, Kubovac, kunktator, kybonacci, Luka Blažević, mercedesamg, Mercury, mile23, MILICAT, nemkea71, oganj123, oldtimer, Panter, panzerwaffe, Parker, raptorsi, rasok, Romibrat, rovac, ruma, ruso, ser.hill, Sirius, Sićko, slonic_tonic, solic, SR-3m, Srle993, t84dar, vathra, Vladko, vukovi, Wrangler, Zimbabwe