Linuks i maliciozni programi

1

Linuks i maliciozni programi

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

[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
==============================================================



PDF verzija clanka (Springfield Ziveli )

DOWNLOAD



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • dr_Bora  Male
  • Anti Malware Fighter
    Rank 2
  • Pridružio: 24 Jul 2007
  • Poruke: 12280
  • Gde živiš: Höganäs, SE

Fino... I like it. Samo jedna sitnica...


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



Ne sviđa mi se ovakav zaključak.

Da ne bude zabune: slažem se, ali mi se ne sviđa na čemu je temeljen (tj. ono što je navedeno kao osnova za zaključak) i kako to zvuči jednom noob-u.

Zašto to pogrešno zvuči?

Tipičan korisnik izjednačava zaštitu sa postupkom instalacije krekovanog NOD-a ili KAV-a misleći da to sve rešava. Taj (takav) korisnik ne uviđa nedovoljnost i nemoć jednog parčeta softvera - njemu, već to, zalazi u neshvatljivo, pa time ni ne može da se dalje udubi u problematiku.

Sama problematika je daleko ozbiljnija no što to većina misli. Verujem da naše pisanije ovde po forumu mnogima zvuče kao preterivanje, možda čak i paranoja.

No, daleko je to od preterivanja. Uzeću sebe za primer: redovno plaćam račune preko neta, povremeno kupujem preko neta (što uključuje ukucavanje imena i broja bankovne kartice; što je, opet, dovoljno za skidanje novca sa moga računa).

Šta bi jedan keylogger mogao da učini? Ili jedan banking trojan?

Ovo nije nikakvo teoretisanje, već tužne činjenice. Svake godine, ljudi diljem sveta, budu ojađeni za velike pare.



A temelji... E, to su već pingvinska posla. Wink

Naravno, moraću da napravim par uporedbi sa Windows-om kako bi priča ipak bila lakše svarljiva većem broju ljudi (pošto je Windows ono što je većini poznato).



Citat:[1] Tvrđava

ThePhilosopher, prijatelju naš... Very Happy

Ja koristim Windows 7 - potpuno ažuran. Za svaki "problematični" softver, ja koristim alternativu.
UAC mi je aktivan. Imam i OnlineArmor (softverski firewall, antivirus, antikeylogger, HIPS, banking mode rada), MBAM Pro (antimalware i IP range blocker), MCShield ( Razz )... Koristim i dodatni bankovni softver (secure login i tako to), koder za potvrđivanje online transakcija... Sve to se nalazi iza hardverskog firewalla. Mr. Green Šifre ne zapisujem (bilo gde), a znam i ponešto o operativnom sistemu i malware-u.

Hajde, jednom rečju, u security smislu, opiši moj PC dok ja sedim ispred njega.

Ja ne znam kako bih ga ja opisao, ali sam prilično siguran da ne bih koristio tako "tešku" reč kao što je tvrđava.


Citat: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.


Svakako da jeste. Reci mi samo (ovo pitam, ne polemišem) kakvo je trenutno stanje u udelu na Linux tržištu? Ne mogu da nađem neke konkretne cifre.

Slabo ja to pratim, no nekako mi se čini da važi Linux = Ubuntu (mislim na Desktop i "obične" korisnike).

S jedne strane, isticanje pojedinih distribucija je dobro (bar za Linux), no s druge strane to ima security related implikacije ako udeo jedne distribucije postane preterano veliki (otuda pitanje).


Citat: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.

Pljas! Very Happy
Ovo je bilo prilično bacanje u plićak, to ti je jasno?

Pa ne vrti se DOS okolo po kompjuterima, već NT Windowsi sa gomilom fancy skraćenica za opisivanje security feature-a.

Čak i tupavi UAC može da iskontroliše malware i ograniči štetu na trenutnog korisnika. To što ljudi isključuju UAC da ih "ne smara" ne može da se pripiše OS-u, već ljudskoj gluposti.



Citat: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.

Situacija: nova verzija programa sadrži neku ranjivost => svih pet korisnika ( Mr. Green ) distribucije bivaju pogođeni istom ranjivošću.



Citat: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.

Sećam se, onako kroz maglu, da je softver na tim pouzdanim serverima znao da bude kompromitovan (ili prosto sam od sebe štetan) i takav da bude distribuiran mesecima jer, je l', ljudi nisu imali čime da ga detektuju. Događalo se to, zar ne?

Kao i prethodno, dobar feature, ali ne i bulletproof (lažni osećaj sigurnosti?).


Citat: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.

Recimo da si ti, umesto što si filozof Razz , neki zločesti haker i da hoćeš da pronađeš rupu u softveru kako bi je iskoristio za kompromitovanje tuđih kompjutera.

Da li je tvoj posao lakši ako ti dam exe kompresovan nekom custom zaštitom ili ako ti dam source code?

Prednost? Diskutabilno je, zar ne?


Citat: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.

...

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).



Očekuješ od nooba da to uradi? Teško.



Šta je poenta ovoga što pišem?

Verovali ili ne, nije mi cilj da pljujem po Linux-u (da je OSX u pitanju, to bi već bila druga priča Mr. Green ).

Ako pričamo striktno o malware-u na lokalnom kompjuteru, jasno je da je mala verovatnoća infekcije (za razmišljanje: koliko malo mora da bude malo da bi bilo zanemarljivo?).

Razlog za to, suprotno tipičnim tvrdnjama fanboy-a, nije neka čudesna savršenost i oob bezbednost Linux-a, već činjenica da se moderan malware piše kako bi autoru istoga pribavio novčanu dobit što je u slučaju Linux-a slabe vajde zbog malog udela na tržištu Desktop operativnih sistema.
Još kada se uzme u obzir "različitost", broj potencijalnih žrtvi je premali da bi došlo da hiperprodukcije malware-a (kao što je situacija za Windows).

Vratimo se na trenutak na priču o open source-u, a vezano za zastupljenost na tržištu: Firefox (za Windows) je open source, zar ne?
Ti, naravno, znaš da je FF jedna velika bezbednosna rupa. A zašto je to tako? Može li imati veze sa udelom na tržištu?

To je to - malware = market share ^2 (ili ko zna koji stepen).


No, poenta (poente, je l' Smile) nije ubeđivanje da bi malware-a bilo i na Linux-u ako bi on bio zastupljeniji (to je valjda logično), već isticanje da se priča tu ne završava.

Security nije samo zaštita od malware-a. OS može da bootuje i sa CD-a pa da bude 100% čist, a da korisnik na*ebe ukoliko mu je npr. router kompromitovan.

Onda imamo klasičan phishing, pa dobri stari rizik od neželjenog fizičkog pristupa kompjuteru (recimo, brza krađa šifri raznim alatima), itd.


Treba li AV na Linux-u? Verovatno ne (ako detektuju i Windows malware, onda je korisno zbog drugih kompjutera).


Znači li to da mozak može na pašu? Ne.



offline
  • Uroš Ilić
  • dr stom.
  • Pridružio: 08 Jul 2006
  • Poruke: 2182
  • Gde živiš: Beograd

Sjajan clanak ThePhilosopher! Temeljan, informativan i prakticno propracen. Svaka cast!
BTW, dosta od pomenutih stvari sam citao i istrazivao, ali nikada i isprobao. Pravi pristup jednog AMF-ovca Wink
Sto se tice rootkita, kao mozda najrealnije forme infekcije na Linuxu, ima dobar skener koji sam isprobao. Zove se rkhunter...
@ dr Bora
Na stranu kompetentne Windows/Linux diskusije, iako favorizujem Linux, slazem se sa vecinom pragmaticnih stavova dr Bore. Pogotovo po pitanju zasto je Linux relativno malware free. Opet dr Boro, nemojmo biti bas paranoicni! na Linuxu smo prilicno sigurni, cak i sa mozgom na ispasi Mr. Green

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

Napisano: 18 Maj 2011 0:09

Haha,boro ti si car.Kako ja uopste da diskutujem sa svojim mentorima!?

No, sacekacu malo komentare ostalih, pa cu se i ja pridruziti diskusiji Ziveli

Dopuna: 18 Maj 2011 0:17

Zmaje, pa i ta app ima u clanku Smile Hvala. Ziveli
Laku noc, sutra ce biti vise price.

offline
  • Uroš Ilić
  • dr stom.
  • Pridružio: 08 Jul 2006
  • Poruke: 2182
  • Gde živiš: Beograd

Uh, izvini, promace mi...

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

God damn it. Mr. Green
Ne bih ja bio ja da odmah ne prokomentarisem cim ugrabim vremena Mr. Green

Citat:Fino... I like it. Samo jedna sitnica...
Clanak je pisan (u vise navrata) izmedju 28 Apr 2011 do 17 Maj 2011. I ovu "sitnicu" tek sad kazes Razz Mislim, mogli smo malo pricati o ovome u diskusiji pre objave. Very Happy

Citat:Ne sviđa mi se ovakav zaključak.
OK, onda cu dopuniti clanak sa novom serijom testiranja sa drugom distribucijom i to sve sa non-root nalogom, recimo sa PCLOS-om kao logicnim izborom za pocetnike. Vise o tome kad se nakanim da dizem novu VM. I to bih bas mogao da instaliram ovu Full monty koja u startu dolazi sa brukom softvera.


Citat:Šta bi jedan keylogger mogao da učini? Ili jedan banking trojan?
Odlicna ideja. Keyloggere nisam probao da izvrsim. Verovatno bi za tako nesto trazio root pristup. Moram naci neki i probati.

Citat:Ja koristim Windows 7 - potpuno ažuran. Za svaki "problematični" softver, ja koristim alternativu.
UAC mi je aktivan. Imam i OnlineArmor (softverski firewall, antivirus, antikeylogger, HIPS, banking mode rada), MBAM Pro (antimalware i IP range blocker), MCShield ( Razz )... Koristim i dodatni bankovni softver (secure login i tako to), koder za potvrđivanje online transakcija... Sve to se nalazi iza hardverskog firewalla. Mr. Green Šifre ne zapisujem (bilo gde), a znam i ponešto o operativnom sistemu i malware-u.

Hajde, jednom rečju, u security smislu, opiši moj PC dok ja sedim ispred njega.

--> jedna rec: tenk ; sintagma: izvanredno zasticen OS

Sto se tice udela na trzistu, mozda je bolje da to kaze neko iskusniji po pitanju administracije servera ili neko ko je skoro to citao/pratio desktop udele. Ja ne znam te cifre. Ali, krenuo sam od pretpostavke da svako ko je cuo za Linux - da je cuo za Ubuntu.

Sto se tice termina "tvrdjava", u testiranje sam krenuo sa pretpostavkom da mi malware ne moze nista Mr. Green Otud tvrdjava, a otud sam i inicijalno probao par malware-a na svojoj fizickoj masini. Moram priznati da sam se na kraju pomalo i razocarao po pitanju mogucnosti zaraze, ali eto ostalo je "tvrdjava".

Citat:Čak i tupavi UAC može da iskontroliše malware i ograniči štetu na trenutnog korisnika. To što ljudi isključuju UAC da ih "ne smara" ne može da se pripiše OS-u, već ljudskoj gluposti.

Ali kad je nastao UAC? Wink Linux stoji na izvanrednim temeljima! U samom startu je imao odlicnu visekorisnicku strukturu, a to se ne moze reci za Windows familiju. Korisnici su mogli pristupati drugim datotekama korisnika.

Ono sto je interesantno je testirati rolling distribucije. Tipa Mint Debian itd.

Citat:Situacija: nova verzija programa sadrži neku ranjivost => svih pet korisnika ( Mr. Green ) distribucije bivaju pogođeni istom ranjivošću.

Ali ovo piscima malware-a nije nikako isplativo s obzirom kojom brzinom se izadju nove verzije biblioteka i nacinu azuriranja na nove verzije aplikacija u Linuxu. Primera radi svaki par dana (nekada i dnevno) izlazi nova verzije aplikacije MultiSistem (bila je opisana u jednom od clanaka za kreaciju bootabilnog USB diska). Motivacija?


Citat:Sećam se, onako kroz maglu, da je softver na tim pouzdanim serverima znao da bude kompromitovan (ili prosto sam od sebe štetan) i takav da bude distribuiran mesecima jer, je l', ljudi nisu imali čime da ga detektuju. Događalo se to, zar ne?
Ako korisnik koristi samo softver koji moze naci u repoima antivirus mu sigurno nije potreban. Ne mislim da je to osecaj lazne sigurnosti. Ja u zadnjih dve godine nisam cuo ni za jedan slucaj malverzacije nad repozitorijumima !? (mozda je pre bilo, to ne znam).


Citat:Recimo da si ti haker i da hoćeš da pronađeš rupu u softveru kako bi je iskoristio za kompromitovanje tuđih kompjutera.

Da li je tvoj posao lakši ako ti dam exe kompresovan nekom custom zaštitom ili ako ti dam source code?


Lakse je kada covek ima cist source kod, ukoliko je haker.


Citat:Očekuješ od nooba da to uradi? Teško.
Ovaj clanak i nije bio namenjen n00bovima Smile Iako sam se trudio da sve pojasnim.
btw, ovi dodatni saveti su bili vec za one pomalo paranoicne. Cak sam mislio da napisem i neki odeljak o "paranoja" stvarima (tipa: po podesavanju servera, pogasiti i sve kompajlere i sve ostalo sto je suvisno, itd, itd) ali to izlazli iz okvira ovoga teksta.


Citat:da je OSX u pitanju, to bi već bila druga priča Mr. Green
Mr. Green

Citat:novčanu dobit što je u slučaju Linux-a slabe vajde zbog malog udela na tržištu Desktop operativnih sistema.
OK, a sta je sa serverima? Ima li tu neke dobiti?

Citat:To je to - malware = market share ^2 (ili ko zna koji stepen).
Za ovo se slazem. Mozda nekada bude razradjena metodologija logova i za Linux, ko zna. Ja sam vec video neke opcije u antirootkit alatima.


Citat:Security nije samo zaštita od malware-a. OS može da bootuje i sa CD-a pa da bude 100% čist, a da korisnik na*ebe ukoliko mu je npr. router kompromitovan.

Pa da. Uz Phishing, Pharming, itd. Ali ovde je akcenat na cuveneom mitu Linux + Virusi - nooo waaay Very Happy

Citat:Znači li to da mozak može na pašu? Ne.
Kao sto rece hazmaju, i moj mozak je poprilicno na ispasi sto se Linuxa tice Smile Koliko ce dugo biti ne znam, ali za sada je na ispasi Smajli

offline
  • Pridružio: 30 Dec 2007
  • Poruke: 4759
  • Gde živiš: Niš

linux je tvrdjava kao japanski nosači aviona i zaštičeni smo pomoću zero-aero planes Zagrljaj

i nikad niko ne zna u kom će smeru da udare Bebee Dol
što se odnosi na protivnike ,hoću reći korisnike Confused ili na pisce malware-a

Citat:
Šta bi jedan keylogger mogao da učini? Ili jedan banking trojan?

Ovo nije nikakvo teoretisanje, već tužne činjenice. Svake godine, ljudi diljem sveta, budu ojađeni za velike pare.

problem je da se tehnologija servira poslednjih 20 god bez adekvatne sigurnosne osnove
odnosno,da li je moguće i zaštititi se uopšte
(jer se zahtevi tržišta u stvari i kose sa običnim zdravim razumom Confused pa i market shareovi LOL )

ovo je samo moj pomalo drugačiji pogled na stvari
setite se da su i englezi do pre 100 godina ovce čuvali kao i mi Evil or Very Mad

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

Zbog (pre)velikog interesovanja za problematiku Mr. Green , dodata je i PDF verzija teksta.

Ziveli

offline
  • dr_Bora  Male
  • Anti Malware Fighter
    Rank 2
  • Pridružio: 24 Jul 2007
  • Poruke: 12280
  • Gde živiš: Höganäs, SE

http://www.mycity.rs/IT-desavanja-u-svetu/Bezbedno.....rnela.html

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

klodovik ::Interesantno, ali ipak mislim da nije nešto zabrinjavajuće u pitanju.

Bilo kakav kod sa strane teško je ubaciti u kernel Linux-a, čak i sa root privilegijama. Sve komponente kernela pri izdavanju koriste kriptografski hash, a isti je zapisan na koznakoliko drugih stranica po netu.


Smile

Ko je trenutno na forumu
 

Ukupno su 1154 korisnika na forumu :: 37 registrovanih, 9 sakrivenih i 1108 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: 8u47, 9k38, A.R.Chafee.Jr., AK - 230, Apok, babaroga, bojanM84, darkojbn, Denaya, djboj, doktor123, flash12, ikan, Istman, Karla, Krvava Devetka, ksyyaj, kunktator, kybonacci, Luka Blažević, Marko Marković, mercedesamg, Mercury, milenko crazy north, mnn2, nenad81, procesor, raptorsi, Sale.S, solic, Srle993, Stoilkovic, Tvrtko I, virked, VladaKG1980, W123, yrraf