Linuks i maliciozni programi

Linuks i maliciozni programi

offline
  • Fil  Male
  • Legendarni građanin
  • Pridružio: 11 Jun 2009
  • Poruke: 14644

==========================================
NAPOMENA:

Ovo je kopija članka za Linuks forum. Prvobitna verzija članka i tema u kojoj treba da komentarišemo je na ovome linku:
http://www.mycity.rs/Zastita/Linuks-i-maliciozni-programi.html

Hvala i uživajte Ziveli

==========================================

[0] Intro



* Napomena:
Ako pri čitanju članka naiđete na neke nepoznate pojmove, preporučujem čitanje Malog Rečnika Zaštite kako bi se informisali o tim pojmovima ili možda rešili neke nedoumice po pitanju razgraničavanja pojmova.

Rešio sam da malo proučim kakvo je stanje na Linuksu po pitanju malicioznih programa (malware-a) i da ovim člankom utvrdim "malware scenu" Linuksa. Da bih to istražio morao sam da posećujem različite underground sajtove na kojima sam mogao da nađem razne maliciozne programe.

Kao što znamo, Linuks generalno važi za bezbedan operativni sistem, ali ipak nije u potpunosti imun na malware. U članku će biti opisani razlozi zašto je to tako, načini zaštite, inficiranje u realnom vremenu, pokušaj dezinfekcije i neki generalni saveti i utisci.

Kod pojedinih stvari će biti napravljena paralela sa operativnim sistemom Windows.

Bobby me je, takođe, snabdeo sa različitim uzorcima malware-a za Linuks u vidu ELF datoteka, shell i perl skripti koje sam testirao na virtualnoj mašini, a neke na fizičkoj mašini (testirani malware neću da imenujem, već ću ga pomenuti u generičkom smislu).

Za svaki operativni sistem je moguće napraviti malware koji će uništiti, tj. onesposobiti taj operativni sistem. Međutim, moderni malware ima tendenciju da preuzme kontrolu nad računarom (tj. da napravi zombija) kako bi poslužio nekoj svrsi tvorcima malware-a ili kako bi se pokrali neki podaci.

Što se tiče onesposobljavanja operativnog sistema, najlakše ga je onesposobiti tako što mu se zauzmu resursi.

Na primer, pretpostavimo da operativni sistem ima više korisnika, i da korisnicima nije određena quota za raspoloživ prostor na disku. Postoji PoF (proof of concept) malware koji prodire na sistem, i kreira izuzetno veliki broj malih fajlova, sve dok ne popuni File Alocation Table (FAT ili ekvivalentan na datoj particiji) čime praktično blokira mogućnost kreiranja datoteka ostalim korisnicima.

Druga mogućnost je kreiranje ogromnog broja programskih niti (threadova) ili procesa, sve dok se ne popuni limit broja procesa/threadova koje kernel može da kreira.
Time se blokira rad gotovo svih aplikacija na računaru. Ovaj napad se zove "Fork Bomb" (Fork je isto što i Thread kod Windowsa).

Onda, postoje i bombe za antivirus programe. Jedna od najpoznatijih je ZIP bomb. Predstavlja posebno osmišljenu ZIP datoteku (veličine svega par kB) kome je struktura direktorijuma tako napravljena da se vrti u krug, usled čega antivirus bude beskonačno dugo zaposlen skeniranjem te arhive. U slučaju Linuksa - postoji TAR.GZ bomba.



[1] Tvrđava



Linuks predstavlja tvrđavu koju je, u principu, teško probiti iz sledećih razloga:

1. postojanje velikog broja distribucija, forkova, derivata (recimo Debian --> Ubuntu --> Mint i sl.) koje, opet, imaju različite načine instalacije paketa i softvera, dolaze sa različitim grafičkim okruženjima, ... Dakle, različitost je jedna od linija odbrane.

2. *NIX operativni sistemi su "od starta" osmišljeni kao višekorisnički i bezbedni operativni sistemi. Svaki korisnik ima svoje privilegije i može da manipuliše sa onim datotekama za koje ima privilegije. Da bi malware mogao da zarazi celokupan sistem, potrebna mu je privilegija root-a (privilegija najvišeg nivoa). Dakle, za pravljenje "veće štete" je neophodan root pristup računaru. U većini slučajeva malware ima opseg home particije tekućeg korisnika i može da manipuliše (i pravi štetu) nad datotekama tekućeg korisnika (korisnika koji je ulogovan). (zabranjeno)erima je još uvek enigma kako pribaviti pristup root nalogu.

3. i Linuks ima svoje ranjivosti (recimo: postojanje neažurnih biblioteka), ali Linuksov mehanizam ažuriranja sistema i aplikacija (što zavisi od distribucije do distribucije) i aktivnosti zajednice doprinose da se neažurne datoteke brzo zamene novijim. Za razliku od Windowsa, gde moramo ažurirati svaku aplikaciju pojedinačno, kod moje distribucije se ažuriranje svih aplikacija na najnovije verzije vrši samo uz par klikova mišem. Time se izbegavaju ranjivosti neažurne aplikacije, kritične za bezbednost sistema.

4. upotreba softverskih repozitorijuma značajno smanjuje opasnost od malicioznih programa. Stoga nema pojava rogue softvera niti trojanaca koje možemo "zakačiti" na različitim mestima na Internetu jer se o repozitorijima stara tim održivača (maintainers), koji praktično garantuju da je softver legitiman.

5. što se tiče open source softvera i exploita, primarna prednost open source modela je što kôd može pročitati svako, tj. dostupan je svakome. A više pogleda na kôd može iznaći i potencijalne bezbednosne probleme.

Zbog ovih razloga još uvek nema masovnih infekcija na Linuksu (za razliku od Windowsa).



[2] Napad na tvrđavu!



S obzirom na stavku 1.1 pisci malware-a su prinuđeni da napišu takav malware koji će da funkcioniše na različitim distribucijama. Jedan od načina je da se koristi kôd koji se pokreće sa nekim interpreterom (na primer Perl skripta) ili kôd koji treba kompajlirati. Iz ovoga vidimo da pisci malware-a pretpostavljaju da je instaliran Perl ili pak GCC (ili drugi), jer ako iste nemate instalirane, nećete moći pokrenuti malware. Tvrđavu je još teže napasti ako imamo u vidu da Linuks skripte po defaultu nisu podešene kao executable (isto važi i za ELF datoteke).

Po Wikipediji trebalo bi da do danas postoji oko 1000 uzoraka malware-a za Linuks. Dosta njih predstavlja samo "proof of concept", dakle, malware samo pokazuje mogućnost da se nešto uradi ali ne pravi štetu. Ostali koje sam pokretao su relativno stari (najviše do 2008. godine) i gađaju rupe koje su odavno zakrpljene, ali ima tu i funkcionalnog malware-a. Recimo, virusi; na Internetu se mogu naći izvorni kodovi virusa (pa čak i tutorijali) koji zaista mogu da rade u dozvoljenom opsegu, a ako dobiju root pristup mogu da zaraze sve izvršne datoteke na računaru! Teoretski, poznavalac programskog jezika C može, uz minimalne modifikacije postojećih izvornih kodova za viruse, napisati svoj virus i dati mu ime (tako da je broj oko 1000 uzoraka, vrlo upitan Neutral )

Kao što rekoh, pisci malware se najviše bave pribavljanjem root privilegije. U "podzemlju" sam video da postoje tzv. local root exploits koji su posebna filozofija (svaka verzija kernela ima zasebnu temu) i koji se vezuju za specifične verzije Linuks kernela (recimo 2.2 ili 2.4). Dakle, ni ovde nema nekog univerzalnog pristupa jer su exploiti usko specifični za kernel.

Pod pretpostavkom da je malware dobio sve neophodne privilegije, jedan od načina pokretanja je kroz crontab. Susretao sam se i sa malicioznim screensaverima koji su usput pokušavali da pokrenu malicioznu skriptu.

Postoje i exploiti za aplikacije, recimo OpenOffice dokumenta sa makro kôdom (Document malware).
Od 2007. godine su registrovani pokušaji da se napiše multipltformski malware. Jedan na koji sam naišao predstavlja proof of concept i teoretski se može izvršiti na Windowsu, Linuks i MacOS-u (kažem teoretski jer i on pretpostavlja postojanje Perla odnosno Ruby-ja. Za Windows je dovoljan samo dvostruki klik Mr. Green )

Na Internetu sam malo tražio i utiske napadnutih korisnika, kao i onih koji su pokušavani biti napadnuti. Obično je reč o nekom backdooru (perl trojancu, npr.) ili ranjivostima sistema (ssh, telnet) usled čega računar treba da postane deo botnet mreže na IRC kanalu kako bi služio za DDoS napade ili kao server za pirateriju. Korisnici uglavnom otkriju čudno ponašanje računara - zakucavanje procesora na 100% (recimo iz foldera /tmp/ ), te povećana mrežna aktivnost.

Za Linuks nije karakterističano širenje virusa, s obzirom na pomenuta ograničenja već su neki drugi tipovi malware-a zastupljeni na njemu, na primer trojanci, crvi i rootkitovi.

Posebnu pažnju sam posvetio rootkitovima jer kod Unixovih naslednika rootkitovi uključuju i različite metode napada trojancima, sniffinga i drugo, pa je dobro ovako kumulativno obraditi ovu priču.

Na Unix sistemima rootkitovi se spominju od 1990-ih godina i ovaj naziv se preneo i na ostale operativne sisteme (dakle, prvi rootkitovi su pisani za Unix). Iako po svojoj definiciji nisu maliciozne prirode, ovde će biti razmatrani u zlonamernog kontekstu.

Za Unix i naslednike postoje 3 klase rootkitova:

1) binarni rootkitovi - cilj im je da zamene određene sistemske datoteke sa trojancima.

Naime, kritične sistemske datoteke ( /bin/login i sl. ) se kompromituju kako bi se obezbedio udaljeni ili lokalni pristup mašini. Prvi rootkitovi su bili binarni rootkitovi koji su predstavljali tar arhive popularnih sistemskih datoteka koje admin koristi. Takođe, dizajnirani su tako da sakriju maliciozne procese od korisnika.

Obično su prekompjalirani za određenu arhitekturu (Intel i386, Sparc i sl.).

Zamenom datoteka, rootkit ima cilj da:

• Pribavi root pristup računaru. Dakle, u prošlosti se ubacivao trojanac na poziciju /bin/login ili
SUID datoteke (/bin/ping, /usr/sbin/traceroute, /bin/su i druge) kako bi se pribavile root privilegije

• Omogući sakrivanje procesa. Ubacivanjem trojanca na /bin/ps (na primer).

• Omogući sakrivanje konekcije. Ubacivanjem trojanca na /bin/netstat (primer)

• Omogući sakrivanje datoteka. Trojanovani ls, dir ili cat, mogu da sakriju maliciozne datoteke.


Rootkitovi ovoga tipa uključuju i dodatne alate za modifikovanje atributa tipa datum kreiranja (tj. timestamp) i veličina datoteke. Na primer preko komande touch, timestamp jedne datoteke se može dodeliti drugoj (malicioznoj):

touch -r prvobitna_datoteka trojan_datoteka


2) kernel rootkitovi - manipulišu sa modulima kernelima ili predstavljaju dodatne maliciozne module koji se zakače (hook) na kernel.

Za razliku od binary rootkitova koji zamenjuju legitimne sistemske izvršne datoteke, LKM (Loadable Kernel Module) rootkitovi se zakače (hookuju) na kernel sistema i zamenjuju (remapiraju) ili izmene (tj. presreću) pozive kernela. Na ovaj način, praktično celi operativni sistem postaje nepouzdan.

Ukoliko aplikacija treba da pristupi nekom hardveru, taj svoj zahtev će izraziti u vidu sistemskog poziva (na primer za čitanje datoteke: read() ; ) na osnovu čega kernel omogućava pristup datoteci na disku. *nix sistemi imaju sličnu listu sistemskih poziva (koja se obično nalazi na lokaciji /usr/include/sys/syscall.h ili /usr/include/syscall.h). Programski kôd za ove pozive je deo kernela; LKM može da promeni taj kôd i samim tim promeni funkcionalnost sistemskog poziva.
Tako da umesto "otvori datoteku sa ove lokacije" funkcionalnost može biti "otvori datoteku sa ove lokacije, ako se ta datoteka ne zove neki_rootkit".


3) rootkitovi biblioteka - cilj je zamena biblioteka sa trojancima.

Ovim napadima se pozivi unutar biblioteka zamenjuju sa malicioznim pozivima trojanca.
Ukoliko se rootkit pozicionira na /etc/ld.so.preload , učitaće se pre sistemskih biblioteka i osigurati da se njegovi pozivi koriste umesto sistemskih. Administrator se može boriti protiv ovih napasti sa alatima tipa: ltrace, strace i truss kako bi ušli u trag sistemskim pozivima i pozivima biblioteka.


Rootkitovi svoju funkcionalnost ostvaruju kroz:

• omogućavanje pristupa na računar

Što se tiče zlonamernog pristupa na računar, biće opisani neki vektori napada. Zlonamerni napadi često gađaju exploite ssh-a umesto telneta jer se ssh sadržaj kriptuje i takve komande IDS sistemi ne mogu da otkriju.

Kada se uspostavi konekcija na žrtvin računar, kernel rootkit će poslužiti da sakrije konekciju od administratora, tako da se maliciozne konekcije ne vide u netstat komandi.

Ukoliko je u pitanju Web server, postoje maliciozne CGI skripte kako bi se iskoristili exploiti tog servera.

UDP listener: napadi preko UDP portova se teže otkrivaju jer se UDP portovi teže skeniraju (za razliku od TCP portova). Dakle, ukoliko maliciozna aplikacija "sluša" na UDP portu, manja je verovatnoća da će biti otkrivena (sa nmap ili sličnim alatom). Takođe, sa dodatnom enkripcijom, saobraćaj neće bit sumnjiv IDS sistemu (za više informacija o TCP i UDP portovima i skeniranju portova, videti mali rečnik zaštite).

Takođe su česti UDP flood napadi na servere. Navodno, većina game servera koriste UDP protokol za konektovanje svojih klijenata. Ovim napadima, kao tipu DDoS napada, se guši server do stanja neupotrebljivosti. Odbrana za ovu vrstu napada je jasno definisanje IPTABLES politike.

Primer napada (više paketa male dužine):

Citat:Oct 18 13:23:25 beta kernel: IPTABLES TOTAL LOG: IN=eth0 OUT= MAC=00:16:3e:05:e4:fc:00:0c:ce:da:84:8a:08:00 SRC=***.XXX.***.XXX DST=XXX.***.XXX.*** LEN=46 TOS=0x00 PREC=0x00 TTL=119 ID=5378 PROTO=UDP SPT=3633 DPT=7777 LEN=26
Oct 18 13:23:25 beta kernel: IPTABLES TOTAL LOG: IN=eth0 OUT= MAC=00:16:3e:05:e4:fc:00:0c:ce:da:84:8a:08:00 SRC=***.XXX.***.XXX DST=XXX.***.XXX.*** LEN=28 TOS=0x00 PREC=0x00 TTL=119 ID=5379 PROTO=UDP SPT=3633 DPT=7777 LEN=8
Oct 18 13:23:25 beta kernel: IPTABLES TOTAL LOG: IN=eth0 OUT= MAC=00:16:3e:05:e4:fc:00:0c:ce:da:84:8a:08:00 SRC=***.XXX.***.XXX DST=XXX.***.XXX.*** LEN=46 TOS=0x00 PREC=0x00 TTL=119 ID=5380 PROTO=UDP SPT=3633 DPT=7777 LEN=26
Oct 18 13:23:25 beta kernel: IPTABLES TOTAL LOG: IN=eth0 OUT= MAC=00:16:3e:05:e4:fc:00:0c:ce:da:84:8a:08:00 SRC=***.XXX.***.XXX DST=XXX.***.XXX.*** LEN=28 TOS=0x00 PREC=0x00 TTL=119 ID=5381 PROTO=UDP SPT=3633 DPT=7777 LEN=8
Oct 18 13:23:25 beta kernel: IPTABLES TOTAL LOG: IN=eth0 OUT= MAC=00:16:3e:05:e4:fc:00:0c:ce:da:84:8a:08:00 SRC=***.XXX.***.XXX DST=XXX.***.XXX.*** LEN=46 TOS=0x00 PREC=0x00 TTL=119 ID=5382 PROTO=UDP SPT=3633 DPT=7777 LEN=26
Oct 18 13:23:25 beta kernel: IPTABLES TOTAL LOG: IN=eth0 OUT= MAC=00:16:3e:05:e4:fc:00:0c:ce:da:84:8a:08:00 SRC=***.XXX.***.XXX DST=XXX.***.XXX.*** LEN=28 TOS=0x00 PREC=0x00 TTL=119 ID=5383 PROTO=UDP SPT=3633 DPT=7777 LEN=8


Sniffers - ovaj metod napada uključuje veliki nivo tajnosti, jer aplikacije ovoga tipa ne otvaraju portove, već "njuškaju" po mrežnom saobraćaju u potrazi za relevantnim podacima (lozinke i drugi podaci). Na jednom od screenshotova u članku se može videti promena režima rada mrežnog adaptera, usled rada malicioznog programa.

Kod starijih kernela (zaključno sa 2009. godinom) su česti pokušaji eskalacije (proširenja) privilegija kroz izmenjene SUID binaries. Kernel trojanac se može iskoristiti da dozvoli root pristup (veća prava) izvesnim korisnicima modifikacijom setuid() poziva kernela.


• napad na druge sisteme

Jedna od funkcionalnosti rootkitova, dobavljenih preko honeynetova se ogleda i kroz napad na druge mašine u lokalnoj mreži ili Internetu, kroz formiranje botnetova, a kako bi se proširila "zauzeta teritorija". Većina analiziranih rootkitova uključuje i password sniffer (npr. linsniff), a meta ovih sniffera su "tekst-protokoli" kao što su POP3, IMAP, telnet, FTP i drugi. Takođe, mogu se sniffovati i e-mailovi koji idu preko SMTP protokola (budući da je i on plaintext protokol).

Preduslov za rad alata za sniffing predstavlja stavljanje mrežnog interfejsa, na konkretnoj mašini, u "promiskuitetni mod". Alati uključuju i algoritam za parsiranje dobijenog saobraćaja tako da se traže stringovi kao "login:," "password:" . Prisustvo sniffera se može identifikovati posredno sa komandom:

 /sbin/ifconfig

(naravno, ako komanda nije meta trojanca koji će sakriti flag).

Takođe, moguće je naći alate koji sniffuju SSH syscall. Dakle, presretanjem sistemskih poziva kao što su read() i write(), traga se za podacima za autentikaciju korisnika SSH sesija.


• uklanjanje svih dokaza/tragova o njihovom postojanju

Treći krucijalni element funkcionalnosti rootkita uključuje eliminisanje "dokaznog materijala". Ove aktivnosti se sastoje u uklanjanju dokaza koji prethode samom napadu na sistem, kao i sprečavanju novog dokaznog materijala o prisustvu rootkita. Ti dokazi se ogledaju u uklanjanju raznih logova, zatim istorijskog zapisa komandi (npr. shell histories), malicioznih procesa i datoteka, podešavanja mrežnog interfejsa i malicioznih konekcija.

Uklanjanje dokaza se obično vrši sa LKM rootkitovima (Loadable Kernel Module rootkit).

Rootkitovi mogu da uključe i dodatne mehanizme koji podrazumevaju delovanje virusa kako bi još više "učvrstili položaj" na mašini. Postoji proof of concept malware koji pri svakom otvaranju terminala briše neki log file ili podešavanja pretraživača. Uz ovakve kombinovane načine delovanja malicioznih programa (trojanaca, virusa, sniffera i rootkitova), gotovo je nemoguće iskoreniti malware.


Šablon prodora rootkita na sistem se može opisati kao sledeći pseudo postupak:

- Pronaći ranjivog domaćina kroz automatizovane skenere, autorootere ili underground baze podataka o otkrivenim ranjivim domaćinima.
- Iskoristiti nađene ranjivosti, kako bi se izvršio napad na sistem.
- Download rootkita na sistem; u zavisnosti od exploita i alata za exploit, taj alat može odmah po otkrivanju ranjivosti ubaciti trojanca.
- izvršenje rootkita sa malicioznom skriptom.
- onemogućavanje shell history (unset HISTFILE)
- formiranje dodatnih struktura direktorijuma i raspakivanje modula
- ubijanje syslog daemon i zamrzavanje sistemskih logova
- startovanje backdoora
- [kod određenih verzija] hookovanje LKM za kernel kako bi se osiguralo startovanje malware-a prilikom bootovanja sistema i kako bi se sakrili "dokazi" o postojanju rootkita.
- pokretanje dodatnih alata. Na primer alati za DoS napade.



[3] Odbrana tvrđave



Prednost Linuksaša (i open source-a) je transparentnost! Možemo otvoriti gedit, kate (ili neki drugi tekst procesor) i videti šta skripta radi. Našao sam lep slogan za korisnike Linuksa - Education is still the best defense against malware. Kod Windowsa nemamo ovakvu transparentnost zbog raznih pakera, obfuskatora koda, kriptera i sl.

Osim toga, pojedine skripte imaju i komentare! Na primer, u arhivi malware-a za Linuks sam naišao na sledeći komentar:

Citat:#!/bin/.mwsh
# [cenzurisano] Worm [cenzurisano]
# If you are an admin and find this on your machine,
# your security is very very lame and you have a big problem
# Have a nice day!


--> Em vas haknu, em vam ubiju i ponos admina Mr. Green . Ali je zato tu kôd, pa se može izvući poenta za bolju zaštitu tvrđave.

Dalje, treba izbegavati instaliranje piratskih aplikacija jer često (kao i na Windowsu) dolaze sa inficiranim keygenima i (zabranjeno)ovima. Čitao sam da jedan autor svoj malware distribuira preko P2P mreža (konkretno on to radi sa piratskom verzijom komercijalne aplikacije Cedega).

Relevantno je i da pomenemo aplikacije koje nam mogu pomoći u borbi protiv malware-a:


Citat:Antivirusne aplikacije:

* Avast! (freeware i komercijalna)
* AVG (freeware i komercijalna)
* Avira (freeware i komercijalna)
* BitDefender (freeware i komercijalna)
* Central Command Vexira Antivirus for Linux (komercijalna)
* ClamAV (open source)
* Dr.Web (komercijalna)
* Eset (komercijalna)
* F-Secure Linux (komercijalna)
* Kaspersky Linux Security (komercijalna)
* McAfee VirusScan Enterprise for Linux (komercijalna)
* Panda Security for Linux (komercijalna)
* RAV Antivirus Desktop (komercijalna)
* Sophos (komercijalna)
* Symantec AntiVirus for Linux (komercijalna)
* Trend Micro ServerProtect for Linux (komercijalna)


Antimalware aplikacije:

* Linux Malware Detect (open source)
* chkrootkit (open source)
* rkhunter (open source)



Pojedine antivirusne aplikacije pored on-demand skenera imaju i real-time skenere. Kaspersky, Avira (serverska edicija), Vexira Antivirus, na primer, imaju real time skenere pored on-demand skenera. Avast, koji sam probao, ima samo on-demand skener (u pitanju je freeware verzija).

Naročito su interesantni antimalware programi jer predstavljaju i dijagnostičke programe. Možda će se nekada koristiti kao pandan GMER-u za Windows. Prikazuju se tzv. loading point za malware, na primer crontab ili /etc/cron.d (i sl.) i druge lokacije kako bi helper onemogućio reinfekcije.

Starije Linuks distribucije su bile vrlo podložne buffer overrun napadima. Cilj napada je bio izvršavanje programskog kôda sa većim privilegijama (tj. pod privilegijama aplikacije koja ima određenu ranjivost). Dakle, programi koji dobijaju root pristup (preko setuid bita), iako su pokrenuti od korisnika sa manjim privilegijama, su bili česta meta napada. Međutim, od 2009. godine se ovoj i sličnim local root exploitima praktično "stalo u kraj" jer su kerneli dobili mnoga poboljšanja u vidu Address Space Layout Randomization (ASLR) tehnologije, poboljšane zaštite memorije i drugim ekstenzijama kernela koji znatno otežavaju ovakve vrste napada.



[4] Testiranje



Isprva sam probao malo da testiram na fizičkoj mašini (Isadora). Probao sam iskompajlirati par malware-a. Nisam uspeo (na svu sreću). Jer zbog različitih verzija biblioteka, različitih distribucija, datuma nastanka malware-a se javljaju poteškoće u kompajliranju, a i infiltriranju malware-a na više distribucija.

* Češći je pristup da se iskoristi neki poznati propust da se na računar ubaci skripta koja će sa Interneta preuzeti i iskompajlirati specifičan malware na domaćinu, te će on sigurno moći i da funkcioniše (naravno, ukoliko postoji odgovarajući kompajler).

Potom sam rešio da napravim VMWare virtualnu mašinu (na kraju testiranja se pokazalo da nisam pogrešio). Testna virtualna mašina je Ubuntu Lucid. Izabrao sam Ubuntu jer je najpopularnija distribucija. Naravno, malware može da deluje samo u onom segmentu za koji ima privilegije. Za potrebe testiranja sam rešio da u Ubuntuu aktiviram root nalog (onemogućen je po defaultu) i da testiram sa root naloga.

Imao sam source kodove, ELF datoteke i razne maliciozne skripte. Prvo što treba pomenuti je to da radi i stariji malware. Testirani su virusi i rootkitovi iz 2001-2003 i rade.

Potom sam instalirao antivirus Avast free i evo jedne od infekcija na screenshotu:





Sa screenshota se može videti da nije bio u mogućnosti da dezinfikuje (repair) inficirane datoteke...

Potom sam startovao jos 20-ak malware-a iz arhive. Nakon toga sam restartovao mašinu. Pri sledećem startovanju operativnog sistema se javilo sledeće upozorenje:





Promiscuous mode (promiskuitetni mod) predstavlja konfiguraciju mrežnog adaptera tako da isti sav saobraćaj (umesto samo frejmova) usmerava na procesor. Ovaj metod se koristi u maliciozne svrhe za packet sniffing (mada ima i primena za legitimne svrhe). Snifferi tako gađaju protokole koji su bez enkripcije i vrše razmenu podataka (dakle, i lozinki) u tekstualnom obliku (na primer FTP i Telnet).

* preporuka je da se koriste sigurniji protokoli kao što je SSH!

Da VMware nije izbacio ovo upozorenje, kako otkriti pokušaj sniffinga?
--> Administratori će uočiti povećano opterećenje procesora jer kernel usmerava mrežni saobraćaj na CPU.

Dalje, terminal mi je postao potpuno onemogućen; kada ga pokrenem "nešto" ga ubija za manje od četvrtine sekunde. Pokušao sam i sa failsafe Gnome da se logujem, kao i sa xterm, ali ne pomaže. Kada pokušam xterm, opet me vrati na login screen. Virtualna mašina se usporila...

Pored toga, Avast se nekako sakrio. Pretpostavljam da je rootkit u pitanju. Kada pokušam da instaliram DEB, piše da je već instaliran (ponuđeno je samo reinstall package). Uklonio sam ga potpuno (uključujući i konfiguracione datoteke) i probao da ga opet instaliram, ali nema pomoći.

Instalirao sam i AVG, ali je na žalost konzolna aplikacija, pa nisam uspeo da skeniram.

Potom sam pokušao da ažuriram sistem, misleći da će rešiti neki problemi (da imam pristup terminalu). Update je konstantno failovao.



[5] Zaključak



Za desktop korisnike je dobra je praksa da se isključe servisi i paketi koji se ne koriste (ssh na primer). Takođe, onemogućavanje guest accounta. U Ubuntuu je root account onemogućen po defaultu (još jedan način zaštite OS-a). I naravno, treba biti oprezan kod davanja privilegija.

Što se tiče testiranja, generalni zaključak je da se Linuks mašina uz određene uslove ipak može inficirati sa virusom, ali samo one izvršne datoteka u opsegu privilegija tekućeg korisnika. Te iste privilegije onemogućavaju dalje širenje virusa. Ako malware slučajno dobije root pristup, šteta može biti velika, s tim da je veća šansa da "prođe" maliciozni skript fajl i ELF inficiranje, nego iskompajlirani malware (bar je tako bilo u mom slučaju).

U slučaju fork bombi, prvencija istih podrazumeva ograničavanje broja procesa koje jedan korisnik može imati (takođe, postoji patch za Linuks kernel - grsecurity, koji loguje koji korisnik je pokušao ovu vrstu napada).

---
Da li mi je potreban antivirus za Linuks !?
--> Ako postupate po konceptima i savetima opisanim u ovom članku, antivirus za Linuks vam nije potreban.

* Ukoliko odlučim da se još malo igram sa inficiranjem drugih distribucija (Arch, na primer), podeliću utiske u ovoj temi.


==============================================================
Credits: bobby, bocke
==============================================================



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
Ko je trenutno na forumu
 

Ukupno su 430 korisnika na forumu :: 10 registrovanih, 1 sakriven i 419 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 1567 - dana 15 Jul 2016 19:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: ALBION101, Alojz Hauptman, amstel2, Bane san, bobanrakidjic, Cobi026, djordje92sm, kybonacci, nick93ts, Sonyboy