Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
Prijevodi ove stranice:

Ovo je stara izmjena dokumenta!


Code Red Crv

0. Sažetak

Računalni crvi su računalni programi koji umnožavaju sami sebe. Pri tome koriste računalne mreže da bi se kopirali na druga računala, često bez sudjelovanja čovjeka. Za razliku od virusa, sa svojim djelovanjem ne moraju inficirati druge programe. Mogu stići i kao privitak u elektroničkoj pošti te im pristup računalu omogućuju propusti u operacijskim sustavima i aplikacijama. Crvi otežavaju rad mreže, a mogu oštetiti podatke i kompromitirati sigurnost računala.[1]
Code red crv je detektiran 15. srpnja 2001. godine. Napadao je računala koja koriste Microsoft IIS web poslužitelj.
Napad je počeo 13. srpnja, a najveći broj zaraženih računala je bio 19. srpnja.
Broj zaraženih računala 19. srpnja je iznosio 359 000.[2]

Keywords: Crvi; Code Red

1. Uvod

Računalni crvi su računalni programi koji umnožavaju sami sebe.
Pri tome koriste računalne mreže da bi se kopirali na druga računala, često bez sudjelovanja čovjeka.
Za razliku od virusa, sa svojim djelovanjem ne moraju inficirati druge programe.
Mogu stići i kao privitak u elektroničkoj pošti te im pristup računalu omogućuju propusti u operacijskim sustavima i aplikacijama.
Crvi otežavaju rad mreže, a mogu oštetiti podatke i kompromitirati sigurnost računala. Ovisno o vrsti tereta (engl. payload) koju crv prenosi, crvi mogu uspostaviti daljinsku kontrolu, koristiti zaražena računala za slanje spam poruka, kao posrednike za preusmjeravanje podataka, mogu stvoriti mrežu zombi računala koji služe za DoS napad, mogu prikupljati podatke ili brisati podatke te prouzročiti fizičku štetu.[1]

1.1. Povijest Crva

Pojam 'crv' u kontekstu računalne tehnologije se prvi puta spominje 1975. godine u romanu 'The Shockwave Rider', spisatelja Johna Brunnera.
Protagonist romana, Nichlas Haflinger dizajnira računalnog crva koji skuplja podatke s ciljem postizanja osvete nad moćnicima koji vode nacionalnu elektroničku informacijsku mrežu koja uzrokuje masovni konformizam.
Prvi računalni crv je bio zamišljen da ima funkciju antivirusnog programa.
Zvan 'Reaper', stvorio ga je Ray Tomlinson s ciljem samoumnožavanja programa kroz ARPANET u svrhu brisanja eksperimentalnog Creeper programa.
Robert Tappan Morris, student na Sveučilištu 'Cornell University', je 1988. godine stvorio tvz. 'Morris Worm'.
Taj crv je zarazio desetinu svih računala tada spojenih na internet. Morris je bio prva osoba u SAD-u osuđena pod federalnim zakonom 'Computer Fraud and Abuse Act'.
Također, jedna od indirektnih nuspojava te sudske parnice je bilo kasnije osnivanje CERT-a (computer emergency response team).[3]

1.2. Struktura Crva

Osnovna struktura crva je: bojna glava, pogon, mehanizam odabira mete, sustav za odabir mete, korisni teret.
Bojna Glava:
Dio koda koji iskorištava ranjivost sustava. Radi se o ranjivostima poput Buffer Overflowa, nezaštićene razmjene datoteka, ranjivosti elektroničke pošte, pogrešaka u konfiguraciji (poput slabih lozinki). Bojna glava otvara vrata napadaču.
Pogon:
Nakon iskorištavanja ranjivosti, potrebno je infiltrirati se u sustav. Pogon su vrlo često protokoli za prijenos poput TFTP, FTP, SMB, HTTP.
Algoritam za odabir mete:
Služi za traženje nove žrtve. Neki od mogućih načina traženja žrtve su pretraživanje adresa elektroničke pošte, /etc/hosts, pretraživanje račinala u lokalnoj mreži, upiti putem DNS-a, slučajno generirane IP adrese…
Sutav za odabir mete:
Na popis pronađen algoritmom za odabir mete se šalju datagrami na različite portove te se skeniraju ranjivosti. Cijeli postupak na novoj žrtvi se započinje iznova.
Korisni teret:
Otvara backdoor.
Pokreće glavnu svrhu crva npr. pokretanje distribuiranog napada uskraćivanjem usluge ili izvođenje složenog matematičkog zadatka.[4]

2. Code Red

Code Red je bio računalni crv detektiran na internetu 15. srpnja 2001. godine.
Napadao je računala pogonjena Microsoftovim IIS web poslužiteljem.
Code Red je bio prvi uspješan napad velikog razmjera na enterprise mreže.
Crva su otkrili Marc Maiffret i Ryan Permeh, zaposlenici kompanije eEye Digital Security.
Nazvan je Code Red jer su u to vrijeme pili Code Red Mountain Dew piće.[5]
Prva verzija se naziva CRv1. Druga verzijam detektirana 19. srpnja, koja je dijelila gotovo sve karakteristike s prvom verzijom, počela se širiti puno brže od originalne verzije.
Procjenjuje se da je unutar samo devet sati zaraženo više od četvrt milijuna računala diljem svijeta.
Ta verzija se naziva CRv2.[6]

2.2. Ranjivost

Microsoft IIS (Internet Information Services) instalira nekoliko ISAPI (Internet Services Application Programming Interface) ekstenzija.
Te ekstenzije se sastoje od dinamički povezanih biblioteka (dll) koji omogućuju developerima da prošire mogućnosti IIS-a.
Jedan od tih dll-ova, idq.dll je odgovoran za ranjivost koju iskorištava Code Red.
Idq.dll ima dvije funkcionalnosti:
- Omogućuje podršku za .ida (Internet Data Administration) datoteke.
- Obrađuje .idq (Internet Data Query) datoteke, koje se koriste za implementaciju prilagođenih pretraživanja.
Ranjivost koja se iskorištava jest činjenica da idq.dll sadrži neprovjeravani međuspremnik u dijelu koda koji se bavi ulaznim URL-ovima. Odnosno, idq.dll ne obavlja prikladnu validaciju ulaznih vrijednosti i upisuje sve podatke poslane od korisnika u međuspremnik. Ako je veličina podatka veća nego što program očekuje (odnosno, veća od veličine spremnika), to može izazvati preljev u susjedne spremnike i prepisati ili oštetiti podatke koje se tamo nalaze. Podaci sadržani u tome preljevu mogu sadržavati kod dizajniran od strane napadača da izazove neželjene radnje poput izvršavanja instrukcija na računalu žrtve. Važno je za nadodati da se preljev dešava prije nego se koristi funkcionalnost idq.dll-a, odnosno, sam servis (idq.dll) ne treba biti pokrenut da bi napadač mogao iskoristiti ovu ranjivost.
Postoji mala razlika između prve dvije verzije napada:

Code Red Version 1 (CRv1):
Nakon uspješne infekcije sustava, crv bi provjerio datum na računalu. Ako je datum bio između 1. i 20. srpnja, crv bi generirao nasumičnu listu IP adresa i probao izvršiti napad na ta računala.
Međutim, ako je datum bio između 20. i 28. srpnja, crv bi pokrenuo DoS napad na stranicu www.whitehouse.gov Doduše, ovaj crv je imao mali nedostatak. Naime, statičan seed je korišten za generiranje liste nasumičnih IP adresa. To je sprječavalo crva od naglog širenja.

Code Red Version 2 (CRv2):
Verzija 2 je bila gotovo jednaka verziji 1. Jedina razlika je bila činjenica da u ovoj verziji nije korišten statičan seed za generiranje liste IP adresa.
Stoga je propagacija crva kroz mrežu bila mnogo brža. Unutar prvih 14 sati je bilo zaraženo 359 000 računala.
CRv2 je također imao neželjeni učinak i na druge dijelove mreže (osim računala) poput usmjerivaća, mrežnih preklopnika i printera.
Iako ti uređaji nisu bili zaraženi, crv ih je tjerao na ponovno pokretanje.

Zbog toga što su obje verzije bile spremljene u radnoj memoriji, mogli su biti uklonjeni gašenjem računala. No, postojala je vrlo velika šansa nove zaraze pošto početna ranjivost i dalje nije riješena.[7]

2.3. Iskorištavanje Ranjivosti

2.3.1. Ručni napad


Ranjivost se može iskoristiti i ručno.
Napadač uspostavi TCP/IP vezu s poslužiteljem na portu 80.
Unošenjem HTTP GET zahtjeva koji izaziva isti preljev kao i Code Red može se postići isti efekt. Takav zahtjev bi mogao biti npr. ovakav (telnet napad):

C:\ telnet www.targetsystem.com 80
GET/default.ida?NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN%u9090%u6858%ucb
d3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u
9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00=a HTTP/1.0


2.3.2. Korak po korak


  1. Infekcija se desi kada IIS web poslužitelj, koji ima ranjivost na indexing međuspremniku, primi HTTP GET zahtjev koji sadrži Code Red vrstu napada. Pokazivač instrukcije (EIP), koji pokazuje na sljedeću instrukciju, je prepisan adresom koja pokazuje na instrukciju unutar msvcrt.dll. To uzrokuje da se program vrati na stog i skoči u kod koji se nalazi u početnom HTTP zahtjevu.
  2. Kod iz napadačkog zahtjeva se počinje izvršavati. Crv stvara novi stog za vlastite potrebe te pripadnu tablicu skokova.
  3. Izvršavaju se sljedeće instrukcije:
    From kernel32.dll:
    GetSystemTime
    CreateThread
    CreateFileA
    Sleep
    GetSystemDefaultLangID
    VirtualProtect  
    
    From infocomm.dll:
    TcpSockSend 
    
    From WS2_32.dll:
    socket
    connect
    send
    recv
    closesocket
  4. Crv izvodi akciju WriteClient (sadržana u ISAPI), koja šalje GET natrag crvu napadaću obaviještavajući ga o novoj infekciji.
  5. Crv broji trenutno pokrenute dretve. Ako je broj pokrenutih dretvi manji od 100, crv ponovno pokreće osnovni kod u novoj dretvi, stvarajući do 100 kopija koje koriste isti kod. Ako je broj dretvi veči od 100, crv stvara novu dretvu koja može izmijeniti funkcionalnost web stranice (ako su zadovoljeni određeni uvjeti).
  6. Crv ima ugrađeni 'deficit lizina'. To je provjera koja sprječava maliciozni kod da se širi bez kontrole. Izvodi se provjera na 'c:\notworm' da se ustanovi je li trenutni sistem već bio zaražen. Ako jest, crv prelazi u mirovanje, a inače nastavlja s infekcijom.
  7. Crv saznaje lokalno vrijeme sustava (UTC). Ako je vrijeme veće od 20:00 UTC, crv izvodi DoS napad na www.whitehouse.gov. Ako je vrijeme manje od 20.00 UTC, crv pokušava zaraziti dodatne sustave.
  8. Crv pokušava širi svoju infekciju šaljući maliciozni kod na svaku IP adresu kojoj se može spojiti na port 80. Nakon uspješnog slanja, ponavljaju se koraci od koraka 6.


2.3.2.1 Hakiranje Web Stranice


Crv prvo saznaje je li jezik sustava engleski (US). Ako jest, crv nagrđuje web stranicu ispisivajući:

Hacked by chinese !


Ako jezik sustava nije engleski (US), crv izvodi korake napad prateći korake 6. na dalje.
Nakon toga crv spava 2 sata. Razlog za dvosatno spavanje nije potpuno jasan. Spekulira se da je razlog tome omogućavanje širenja zaraze prije nego se detektira prisutnost crva na sustavima pomoću ispisa poruke o hakiranju.
Nakon dvosatnog spavanja, crv mijenja kod u memoriji. Ta se tehnika naziva 'hooking'. Modificira se w3svc.dll da omogućuje crvu promjenu podataka koji se šalju klijentima.
Crv tada spava 10 sati nakon. Nakon spavanja 10 sati, w3svc.dll se vraća u početno stanje.
Ponovo se izvodi korak 6.

2.3.2.2 DoS Napad


Svaka dretva napada www.whitehouse.gov na portu 80 stvarajući konekciju te slanjem 100 kilobajta podataka. Ako je konekcija bila uspješna, crv stvara petlju koja traje 18 000 sati i šalje po jedan bajt podataka na www.whitehouse.gov.
Nakon toga, crv spava četiri sata.

2.4. Identifikacija Napada i Zaštita

3. Zaključak

4. Literatura

racfor_wiki/crvi.1609206370.txt.gz · Zadnja izmjena: 2024/12/05 12:23 (vanjsko uređivanje)
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0