Cursul VIII. Codul rău intenţionat Marius Joldoş U.T. Cluj...

18
Cursul VIII. Codul rău intenţionat Marius Joldoş U.T. Cluj-Napoca Cod rău intenţionat este orice program care: Modifică sau distruge date Fură date Permite accesul neautorizat Exploatează sau strică un sistem Face ceva ce utilizatorul nu a intenţionat sa facă Tipurile de cod rău intenţionat includ: Viruşi Viermi Bacterii Cai troieni Bombe logice Trape sau uşi din dos SSA cursul 8 - M. Joldoş - T.U. Cluj 2 Virus: program care se ataşează la alte programe şi atacă software şi se replică in decursul procesului. Virusul “infectează” alte programe modificându-le Virusul are nevoie de un program ca gazdă pentru a se răspândi. Se execută secret atunci când se execută programul gazdă Virusul poate executa orice funcţie d.e. ştergerea de fişiere Se ataşează la alt software şi se răspândeşte pe alte sisteme Virusul este ÎNCĂRCĂTURA UTILĂ din atac Viruşii sunt persistenţi Ei pot re-infecta programe care au fost “curăţate” Astfel ei pot supravieţui multor generaţii de modificări şi actualizări ale programelor. SSA cursul 8 - M. Joldoş - T.U. Cluj 3 Vierme [worm]: program independent care se propagă de la un sistem la altul, de obicei folosind reţeaua sau o altă facilitate de comunicaţie, cum este d.e. posta electronică. Nu se ataşează la nici un program; îşi păstrează independenţa. Viermii nu modifică de obicei alte programe şi nu distrug datele. Daunele sunt provocate prin controlul resurselor dintr-o reţea prin legarea acestor resurse şi, în final, prin închiderea reţelei. Au fost totuşi cazuri în care au purtat viruşi. SSA cursul 8 - M. Joldoş - T.U. Cluj 4

Transcript of Cursul VIII. Codul rău intenţionat Marius Joldoş U.T. Cluj...

Page 1: Cursul VIII. Codul rău intenţionat Marius Joldoş U.T. Cluj ...users.utcluj.ro/~jim/SSA/Resources/Lectures/SSA08r.pdf · SSA cursul 8 - M. Joldo ş - T.U. Cluj 10 Povestea uzuala

Cursul VIII. Codul rău intenţionat Marius Joldoş

U.T. Cluj-Napoca

� Cod rău intenţionat este orice program care:� Modifică sau distruge date� Fură date� Permite accesul neautorizat� Exploatează sau strică un sistem� Face ceva ce utilizatorul nu a intenţionat sa facă

� Tipurile de cod rău intenţionat includ:� Viruşi� Viermi� Bacterii� Cai troieni� Bombe logice� Trape sau uşi din dos

SSA cursul 8 - M. Joldoş - T.U. Cluj 2

� Virus: program care se ataşează la alte programe şi atacă software şi se replică in decursul procesului.

� Virusul “infectează” alte programe modificându-le� Virusul are nevoie de un program ca gazdă pentru a se

răspândi.� Se execută secret atunci când se execută programul gazdă� Virusul poate executa orice funcţie d.e. ştergerea de fişiere� Se ataşează la alt software şi se răspândeşte pe alte sisteme� Virusul este ÎNCĂRCĂTURA UTILĂ din atac

� Viruşii sunt persistenţi� Ei pot re-infecta programe care au fost “curăţate”� Astfel ei pot supravieţui multor generaţii de modificări şi

actualizări ale programelor.

SSA cursul 8 - M. Joldoş - T.U. Cluj 3

� Vierme [worm]: program independent care se propagă de la un sistem la altul, de obicei folosind reţeaua sau o altă facilitate de comunicaţie, cum este d.e. posta electronică.� Nu se ataşează la nici un program; îşi păstrează

independenţa.� Viermii nu modifică de obicei alte programe şi nu distrug

datele. � Daunele sunt provocate prin controlul resurselor dintr-o

reţea prin legarea acestor resurse şi, în final, prin închiderea reţelei.

� Au fost totuşi cazuri în care au purtat viruşi.

SSA cursul 8 - M. Joldoş - T.U. Cluj 4

Page 2: Cursul VIII. Codul rău intenţionat Marius Joldoş U.T. Cluj ...users.utcluj.ro/~jim/SSA/Resources/Lectures/SSA08r.pdf · SSA cursul 8 - M. Joldo ş - T.U. Cluj 10 Povestea uzuala

� Bacteriile sunt programe care se execută independent

� Nu deteriorează explicit sistemul/fişierele

� Se replică exponenţial

� Consumă resursele maşinii

� Se replică până când ocupă tot spaţiul de pe

disc sau consumă tot timpul UCP.

SSA cursul 8 - M. Joldoş - T.U. Cluj 5

� "Cal troian": program care se preface a fi un program prietenos, dar care, la activare, face ceva rău

� Caii troieni dintr-un program pot fi folosiţi şi pentru a executa indirect funcţii pe care, în mod normal, utilizatorul nu este autorizat să le execute� Să trimită datele sau parola spre un atacator

peste reţea� Vin ca ataşamente la poşta electronică� Sunt trimişi altor utilizatori cu privilegii mai

elevate (superuser)

SSA cursul 8 - M. Joldoş - T.U. Cluj 6

� Bombă logică: cod rău intenţionat care se activează la apariţia unui eveniment (de obicei o dată anume)

� Software cu “ceas”� Bombele pot fi declanşate de orice număr de

evenimente cum sunt un timp specific, o dată anume, un număr de accese la un fişier, numărul de porniri ale sistemului sau de login-uri sau de absenţa unor date cum sunt un nume sau un cod

� Bombele sunt dificil de detectat şi cel mai adesea nu sunt descoperite înainte de a fi prea târziu

SSA cursul 8 - M. Joldoş - T.U. Cluj 7

� Trapă: punct de intrare nedocumentat în program� Introdus în scop de depanare� Furnizează un punct de intrare secret pentru

accesul la un sistem� Adeseori folosit de dezvoltatorii de programe în

beneficiul propriu� Adeseori nu este înlăturat la finalizarea

programului

SSA cursul 8 - M. Joldoş - T.U. Cluj 8

Page 3: Cursul VIII. Codul rău intenţionat Marius Joldoş U.T. Cluj ...users.utcluj.ro/~jim/SSA/Resources/Lectures/SSA08r.pdf · SSA cursul 8 - M. Joldo ş - T.U. Cluj 10 Povestea uzuala

� Se pierde mult timp în discuţii despre ce categorie se aplică unui anume cod rău intenţionat

� Există o tendinţă crescătoare spre cod rău intenţionat hibrid, care conţine elemente din mai multe categorii

SSA cursul 8 - M. Joldoş - T.U. Cluj 9

� Publicaţii despre “programe vierme” şi viruşi au apărut în SUA în anii 70 şi începutul anilor 80

� Rezultate experimentale timpurii în domeniul viruşilor au fost raportate în 1983-1984 de către Fred Cohen. El a rulat câteva experimente cu programe virus la USC� În primul său experiment (pe 10 oct 83) a durat 30 minute

ca să obţină toate autorizările sistem� Timpul pentru o infecţie a fost de sub 500 ms, iar infecţia

nu a fost observată de ceilalţi� REZULTATUL: lui Cohen i s-a interzis accesul la sistem

SSA cursul 8 - M. Joldoş - T.U. Cluj 10

� Povestea uzuala este că, în 1986, doi fraţi din Pakistan au analizat sectorul de boot al unui disc flexibil şi au dezvoltat o metodă de a-l infecta cu un virus numit "Brain"� Pentru că acesta s-a răspândit pe popularul sistem

MS-DOS PC, acesta este numit de obicei primul virus pentru calculatoare; chiar dacă a fost precedat de experimentele lui Cohen şi de un virus pe Apple.

� În acelaşi an s-a realizat primul cal troian bazat pe PC în forma popularului program shareware PC-Write.

SSA cursul 8 - M. Joldoş - T.U. Cluj 11

� Primii viruşi de fişier au început să apară în 1987. � Majoritatea s-au concentrat pe fişierele COM; în

special pe COMMAND.COM. � Primul care a infectat COMMAND.COM este

cunoscut de obicei ca fiind virusul Lehigh. � Tot atunci s-a realizat şi primul infector pentru

EXE: Suriv-02 (Suriv = Virus de-a-ndoaselea). � Acest virus a evoluat în virusul Jerusalem.

� Un vierme cu răspândire rapidă (500,000 replicări/oră) a lovit calculatoarele IBM mainframe în 1987: IBM Christmas Worm.

SSA cursul 8 - M. Joldoş - T.U. Cluj 12

Page 4: Cursul VIII. Codul rău intenţionat Marius Joldoş U.T. Cluj ...users.utcluj.ro/~jim/SSA/Resources/Lectures/SSA08r.pdf · SSA cursul 8 - M. Joldo ş - T.U. Cluj 10 Povestea uzuala

� În 1988 Mac-urile au devenit ţintă majoră� MacMag, un virus de stivă Hypercard pe

Macintosh, este în general cunoscut ca fiind primul virus de Macintosh

� Virusul Scores a fost cauza primei epidemii majore pe Macintosh

� În acelaşi an, Internet Worm cauzează prima criză a Internet şi închide multe calculatoare.

� Este creat CERT pentru a răspunde unor astfel de atacuri.

SSA cursul 8 - M. Joldoş - T.U. Cluj 13

� Primul (ViruseXchange) BBS pentru info despre viruşi a apărut în Bulgaria în 1990.� Acolo autorii de cod de virus au putut schimba cod

şi idei.

� De asemenea, în 1990, a fost publicată cartea lui Mark Ludwig despre scrierea viruşilor (The Little Black Book of Computer Viruses).

SSA cursul 8 - M. Joldoş - T.U. Cluj 14

� Numărul de viruşi “liberi” a crescut la peste 10,000 în 2002

SSA cursul 8 - M. Joldoş - T.U. Cluj 15

Virus Encounters per 1000 PCs per Month

0102030405060708090

100

1996 1997 1998 1999

SSA cursul 8 - M. Joldoş - T.U. Cluj 16

Viruşi descoperiţi la 1000 de PC-uri

Page 5: Cursul VIII. Codul rău intenţionat Marius Joldoş U.T. Cluj ...users.utcluj.ro/~jim/SSA/Resources/Lectures/SSA08r.pdf · SSA cursul 8 - M. Joldo ş - T.U. Cluj 10 Povestea uzuala

� Accesul sporit la computere

� Uşurinţa programării

� Schimbul de informaţii între hackeri

� Generatoarele de viruşi

SSA cursul 8 - M. Joldoş - T.U. Cluj 17

� Comportamentul anormal este de obicei cauzat de altceva

� “Pseudo-simptomele” viruşilor pot fi cauzate de� Erori software� Software incompatibil� Mediu defect� Discuri pline aproape la capacitate

SSA cursul 8 - M. Joldoş - T.U. Cluj 18

� Au fost construiţi viruşi care au făcut cele ce urmează:� Au distrus toate sau o parte din datele de pe discul

rigid� Au crescut volumul de trafic pe reţea până când

aceasta a devenit inutilizabilă� Au provocat refuzul servirii� Au încetinit răspunsul sistemului� Au distrus abilitatea de a porni de pe discul rigid� Au deteriorat fizic hardware� Au afişat mesaje care creau confuzie sau speriau

SSA cursul 8 - M. Joldoş - T.U. Cluj 19

� Viruşi ucigaşi� Distrug hardware cum este discul sau imprimanta

� Viruşi care simulează erori� Dau mesaje de eroare a.î. utilizatorul crede că există

o problemă cu sistemul

� Viruşi "apelează-mă"� Când ceasul ajunge la o anumită oră, d.e. 3

dimineaţa, virusul se activează şi îl sună pe programatorul său pentru a-i da acces la sistem

SSA cursul 8 - M. Joldoş - T.U. Cluj 20

Page 6: Cursul VIII. Codul rău intenţionat Marius Joldoş U.T. Cluj ...users.utcluj.ro/~jim/SSA/Resources/Lectures/SSA08r.pdf · SSA cursul 8 - M. Joldo ş - T.U. Cluj 10 Povestea uzuala

� Viruşi care deteriorează bazele de date� Schimbă aleatoriu una sau două cifre pe zi într-

o bază de date pentru a o corupă încet, în timp

� Virusul “ştiu că este pe aici pe undeva” � Şterge la întâmplare un fişier care nu a mai fost

folosit o vreme

� Virusul de corupere a producţiei� Modifică un program de control al unui proces

într-o manieră foarte subtilă a.î. să reducă calitatea bunurilor produse, în timp

SSA cursul 8 - M. Joldoş - T.U. Cluj 21

� Virusul "reporter la Hollywood"� Schimba atributele pe fişierele confidenţiale

spre a le face disponibile în lectură public� Virusul care blochează reţeaua

� În cel mai critic moment al lunii, inundă reţeaua cu transmisii inutile

� Virusul "incompetenţa executivului"� Produce rezultate incorecte atunci când

directorul foloseşte programul – la utilizarea sa de către altcineva lucrează corect

� Virusul cu mesaje erotice� Caută cuvinte care sunt probabil să apară într-

un şablon de scrisoare şi le schimba în obscenităţi

SSA cursul 8 - M. Joldoş - T.U. Cluj 22

� Există un număr mare de viruşi “falşi” care apar sub forma unui avertisment� Pot face ca cineva să şteargă fişiere� Pot deranja lucrul prin provocarea

fricii� Se bazează pe poveşti s.f. plauzibile

tehnic (technobabble) pentru nespecialişti sau pe surse cu autoritate

SSA cursul 8 - M. Joldoş - T.U. Cluj 23 SSA cursul 8 - M. Joldoş - T.U. Cluj 24

FCC [Federal Comission for Communications] a lansat , miercurea trecut ă, un avertisment referitor la o chestiune de mare i mportan ţă pentru orice utilizator obi şnuit al Internet. Aparent, un utilizator al AOL a creat un virus nou, cu capabilit ăţi distructive nemaiîntâlnite. Al ţi viru şi binecunoscu ţi, cum sunt Stoned, Airwolf şi Michaelangelo pălesc în compara ţie cu perspectivele acestei crea ţii ale unei min ţi diabolice. Ceea ce face acest virus atât de terifia nt, a spus FCC, este faptul c ă nu e nevoie s ă se instaleze nici un program pentru a infecta o nou ă maşină. Virusul se poate r ăspândi prin sistemele de po ştă electronic ă existente pe Internet. O dat ă infectat un calculator, se poate întâmpla unul dintre urm ătoarele lucruri. Dac ă calculatorul are disc rigid, acesta va fi cel mai probabil distrus. Dac ă programul nu este oprit, procesorul ma şinii va fi pus într-o bucl ă infinit ă de a n-a complexitate – care poate deteriora procesorul dac ă este l ăsat să ruleze prea mult. Din nefericire, majoritatea utili zatorilor novici nu î şi vor da seama înainte de a fi prea târziu.

Page 7: Cursul VIII. Codul rău intenţionat Marius Joldoş U.T. Cluj ...users.utcluj.ro/~jim/SSA/Resources/Lectures/SSA08r.pdf · SSA cursul 8 - M. Joldo ş - T.U. Cluj 10 Povestea uzuala

� Code Red – unul dintre cele mai semnificative atacuri de la viermele Sendmail din 1988

� Mecanismul şi impactul – ambele noi� Nimda a urmat lui CodeRed imediat� Unul dintre primii care au combinat

mecanismele de propagare client & server� Noua intrare evidenţiată pointează spre

reţeaua corporaţiei – utilizatorii mobili

SSA cursul 8 - M. Joldoş - T.U. Cluj 25

� Code Red: un vierme care exploatează o vulnerabilitate cunoscută, de tip depăşire de tampon, din IIS 4.0/5.0� Scanează portul TCP 80 pe adrese IP aleatoare pentru a

găsi sisteme cu vulnerabilitate exploatabilă� Sistemele infectate caută alte 100� GET malformat poate afecta şi software non-IIS� Rezidă doar în RAM; rebootarea şterge viermele

� Code Red I cauzează încărcări mari cu trafic pe Internet, desfigurări de Web, atac DDoS pe "whitehouse.gov" şi blocarea sistemelor

� Code Red II cauzează încărcări extraordinar de mari cu trafic, blocarea sistemelor, instalarea de "uşi din dos"

SSA cursul 8 - M. Joldoş - T.U. Cluj 26

� Ţintele primare sunt sisteme sub Windows NT 4.0 şi Windows 2000 care rulează IIS 4.0 sau IIS 5.0� IIS 5.0 se auto-instalează pe Windows 2000 Server� PWS (Peer Web Services) este IIS 5.0 şi rulează sub

W2K Professional (dar nu se auto-instalează)� O sursă a menţionat şi Windows XP beta cu

IIS 6.0 beta...� PWS (Personal Web Server) rulează pe

Windows 9x/ME şi nu este susceptibil la exploatarea Code Red

SSA cursul 8 - M. Joldoş - T.U. Cluj 27

� Alte sisteme care ascultă pe portul TCP 80 şi se blochează la recepţia unui GET malformat� Cisco 600 DSL routers� Unele imprimante care folosesc HP

JetDirect� Altele??

SSA cursul 8 - M. Joldoş - T.U. Cluj 28

Page 8: Cursul VIII. Codul rău intenţionat Marius Joldoş U.T. Cluj ...users.utcluj.ro/~jim/SSA/Resources/Lectures/SSA08r.pdf · SSA cursul 8 - M. Joldo ş - T.U. Cluj 10 Povestea uzuala

� În 18 iunie 2001, Microsoft emite Security Bulletin MS01-33 care avertizează despre existenţa unei posibilităţi de depăşire de tampon în filtrul IIS Indexing Service ISAPI şi furnizează o corecţie� Filtrele din scenariile administrative (.ida) şi interogările

de date peste Internet (.idq) nu fac corect verificarea limitelor

� eEye Digital Security emit şi ei un avertisment (18 iunie)

� CERT/CC emite CA-2001-13 (19 iunie)

� În 13 iulie, eEye raportează că a primit jurnale care indică volume imense de trafic cu ţinte .ida� Se dă numele Code Red viermelui

SSA cursul 8 - M. Joldoş - T.U. Cluj 29

� Rapoartele timpurii au indicat că viermele ar lansa un atac DDoS asupra adreselor de IP ale Casei Albe pe 20 ale lunii� Adresa de IP a www.whitehouse.gov IP a fost

schimbată� Începe analiza de detaliu

� Pe 29-30 iulie apar cantităţi mari de informaţie contradictorie referitoare la un posibil atac pe 1 august� Volumul de trafic pe portul 80/tcp creşte după 1

august şi depăşeşte volumul din iulie în câteva zile.

SSA cursul 8 - M. Joldoş - T.U. Cluj 30

� Faza de propagare (zilele 1-19)� Gazda ţintă scanată pe portul TCP 80

� Maşina atacatoare trimite HTTP special format

� Cerere GET care exploatează vulnerabilitatea de tipul depăşire de tampon IIS (Serviciul de indexare nu e nevoie să ruleze pentru a fi exploatat!)

� Dacă are succes, viermele începe să ruleze din RAM dacă nu se găseşte fişierul c:\notworm

SSA cursul 8 - M. Joldoş - T.U. Cluj 31

� Viermele lansează 99 de fire spre adrese IP aleatoare şi înaintează spre alte sisteme care ascultă pe portul 80/tcp� Alegerea adreselor de IP este de fapt doar quasi-

aleatoare.� Funcţia de alegere se bazează pe adresa

atacatorului:� Stă într-o clasă B echivalentul a 3 din 8 dăţi� Stă într-o clasă A echivalentul a 4 din 8 dăţi� Alege o adresă complet aleatoare 1 din 8 dăţi� Evită 127.0.0.0 şi 224.0.0.0

SSA cursul 8 - M. Joldoş - T.U. Cluj 32

Page 9: Cursul VIII. Codul rău intenţionat Marius Joldoş U.T. Cluj ...users.utcluj.ro/~jim/SSA/Resources/Lectures/SSA08r.pdf · SSA cursul 8 - M. Joldo ş - T.U. Cluj 10 Povestea uzuala

� Dacă limba implicită a gazdei este engleza, cel de al 100-lea fir va desfigura pagina de Web a serverului local; noul mesaj rămâne timp de până la 10 ore şi apoi dispare

Welcome to http://www.worm.com!

Hacked by Chinese!

� Dacă limba implicită a gazdei nu este engleza, cel de al 100-lea fir este doar o altă lansare de fir (la fel ca celelalte 99)

SSA cursul 8 - M. Joldoş - T.U. Cluj 33

� Faza de inundare (zilele 20-27)

� Între 20:00-23:59 UTC, firele de lucru vierme vor trimite 100KB de pachete la portul TCP 80 la adresa 198.137.240.91 (fosta www.whitehouse.gov)

� Faza de terminare (zilele 28-31)

� Viermele adoarme şi rămâne adormit

� Exista un raport eronat din partea ISS că două dintre fire se trezesc pe 1, dar ISS, CERT/CC şi NIPC au concluzionat că o dată adormit, viermele rămâne aşa

SSA cursul 8 - M. Joldoş - T.U. Cluj 34

� Chet, un vierme de septembrie 11 care pretinde că ar conţine material care dovedeşte o conspiraţie între Al-Qaeda şi guvernul SUA � Fişierul ataşat september11.exe

SSA cursul 8 - M. Joldoş - T.U. Cluj 35

� Viruşii de boot îşi amplasează codul în sectorul pe care maşina îl execută automat la pornire, a.î. la pornirea maşinii virusul se încarcă şi se rulează. După ce s-au încărcat, viruşii încarcă codul original pe care l-au mutat în prealabil în alt loc.

� Viruşii de fişier se ataşează programelor executabile în aşa fel încât la rularea programului infectat se execută mai întâi codul virusului. După ce virusul s-a încărcat şi s-a executat, el încarcă şi execută programul pe care l-a infectat.

� Viruşii de eMail sunt trimişi ca anexă la mesaj. O dată deschisă anexa, se execută virusul. Virusul foloseşte lista de adrese a utilizatorului pentru a trimite copii ale sale altor utilizatori.

SSA cursul 8 - M. Joldoş - T.U. Cluj 36

Page 10: Cursul VIII. Codul rău intenţionat Marius Joldoş U.T. Cluj ...users.utcluj.ro/~jim/SSA/Resources/Lectures/SSA08r.pdf · SSA cursul 8 - M. Joldo ş - T.U. Cluj 10 Povestea uzuala

� Viruşii de macro se anexează la documente sau şabloane [templates] în aşa fel încât, atunci când aplicaţia încarcă documentul şi execută instrucţiunile din el, primele instrucţiuni sunt cele ale virusului. Viruşii de macro infectează de obicei documente MSOffice.

� Virusul însoţitor se ataşează la sistemul de operare, nu la fişiere sau sectoare. În DOS, la rularea unui fişier numit ABC, regula este că ABC.COM s-ar executa înainte de ABC.EXE. Virusul însoţitor îşi pune codul într-un fişier .COM al cărui nume se potriveşte cu cel al unui .EXE existent. Rulaţi ABC, iar secvenţa este de fapt ABC.COM, ABC.EXE

SSA cursul 8 - M. Joldoş - T.U. Cluj 37

� Sectorul de boot� Este primul sector logic pe un disc. Pe dischetă, acesta este pe

faţa 0 (de sus), cilindrul 0 (în afară), sectorul 1 (primul sector). � Pe discul rigid, el este primul sector al unui dispozitiv logic, cum

este C: sau D:. � Acest sector conţine înregistrarea de boot, creată de FORMAT

(cu sau fără comutatorul /S).� Înregistrarea de boot

� Programul stocat în sectorul de boot. Toate dischetele au înregistrare de boot, indiferent dacă discheta este sau nu boot-abilă.

� Ori de câte ori porniţi sau resetaţi calculatorul cu un disc în A:, DOS citeşte înregistrarea de boot de pe discheta respectivă.

� Dacă o dischetă a fost infectată cu un virus de boot, calculatorul citeşte mai întâi codul virusului (deoarece virusul şi pus codul în sectorul de boot), apoi sare la sectorul pe care i-l indică virusul, unde acesta a stocat înregistrarea originală.

SSA cursul 8 - M. Joldoş - T.U. Cluj 38

� Boot Sector înlocuit de codul virusului

� Sectorul de boot original, stocat altundeva

� Pointerii sunt păstraţi

SSA cursul 8 - M. Joldoş - T.U. Cluj 39

� Viruşii de macro sunt scrişi în limbaj de macro. Limbajul respectiv este de obicei limitat la o anumită aplicaţie sau familie de tipuri de document.

� Limbajele de macro sunt independente de platformă.

� Spre exemplu: viruşii de macro MSWord infectează atât maşini sub Windows cât şi Macintosh.

� Viruşii de macro pot face apeluri sistem.

� Viruşii de macro care fac apeluri sistem specifice pot fi limitaţi la sistemul respectiv. Cu toate acestea, există viruşi care verifică pe ce sistem sunt şi se adaptează corespunzător.

SSA cursul 8 - M. Joldoş - T.U. Cluj 40

Page 11: Cursul VIII. Codul rău intenţionat Marius Joldoş U.T. Cluj ...users.utcluj.ro/~jim/SSA/Resources/Lectures/SSA08r.pdf · SSA cursul 8 - M. Joldo ş - T.U. Cluj 10 Povestea uzuala

� Au fost prezişi în anii 80� Întâlniţi prima dată în 1995� >1000 în aprilie 1997, >2000 în februarie 1998

� Scrişi în limbaje de macro asociate cu documente “mai inteligente”, cum sunt Word şi Excel

� Transmişi prin partajarea documentelor (Word, Excel)� Primul a fost un test: WordMacro/DMV, 1994

SSA cursul 8 - M. Joldoş - T.U. Cluj 41

� Scannerele de virus caută anumite şiruri care apar în codul virusului� Acestea sunt folosite pentru a

identifica şi elimina virusul� Codul viral mai evoluat se

automodifică (virus polimorf)� Invalidează folosirea scannerelor

SSA cursul 8 - M. Joldoş - T.U. Cluj 42

� Exemple de cum îşi pot schimba aspectul viruşii polimorfi:� Folosesc cifrarea cu diferite chei pentru a face

forma stocată să fie diferită – virusul conţine trei părţi:� Cheia de descifrare� Codul obiect cifrat� Codul obiect al rutinei de descifrare, în clar

� Intercalează aleator instrucţiuni fără efect în cod. Exemple:� Adună zero la un număr� Mută date în aceeaşi locaţie

SSA cursul 8 - M. Joldoş - T.U. Cluj 43

� Un virus tipic constă din patru părţi� Încărcătura utilă: defineşte ce face virusul pe

lângă replicare

� Motorul de propagare: software pentru infectare care replică virusul

� Motorul de transformare [mutaţie]: software pentru contracararea metodelor de detecţie

� Motor de incubaţie: software care determină când să se lanseze încărcătura utilă

SSA cursul 8 - M. Joldoş - T.U. Cluj 44

Page 12: Cursul VIII. Codul rău intenţionat Marius Joldoş U.T. Cluj ...users.utcluj.ro/~jim/SSA/Resources/Lectures/SSA08r.pdf · SSA cursul 8 - M. Joldo ş - T.U. Cluj 10 Povestea uzuala

� Cea mai simplă metodă este ca virusul să suprascrie codul victimei� Cum codul original este deteriorat, virusul poate fi

detectat uşor� Pentru a evita deteriorarea victimei, codul

virusului s-ar putea ataşa la gazdă lăsând codul original intact� Dimensiunea fişierului va creşte şi va face virusul

detectabil� Pentru face mai dificilă curăţarea, virusul se

poate intercala în codul victimei

SSA cursul 8 - M. Joldoş - T.U. Cluj 45 SSA cursul 8 - M. Joldoş - T.U. Cluj 46

PROGRAM V :={goto main; 1234567;

main: main-program :={infect-executable;if trigger-pulled then do-damage;goto next;

next:}

subroutine infect-executable :={ loop: file := get-random-executable-file;

if (first-line-of-file = 1234567) then goto loopelse prepend V to file:}

subroutine do-damage := {whatever damage is to be done}subroutine trigger-pulled := {return true if some condition holds}

� Folosiţi doar software comercial achiziţionat de la furnizori siguri, cu reputaţie

� Testaţi tot software nou pe un calculator izolat

� Realizaţi o dischetă boot-abilă şi stocaţi-o în siguranţă

� Realizaţi şi reţineţi copii de siguranţă ale fişierelor executabile ale sistemului

� Folosiţi cu regularitate detectori de viruşi

SSA cursul 8 - M. Joldoş - T.U. Cluj 47

� Există un număr de organizaţii care includ persoane şi/sau echipe specializate în gestiunea viruşilor, în special în identificare şi eliminare.� Timpul de răspuns (şi costul) al acestor echipe diferă. � Un articol al CNN s-a referit la acestea cu termenul

“Virus SWAT Teams” (Security elite form SWAT teams to

attack viruses by Matthew Nelson, CNN’s web site, 1/19/99)

� Exemple:� Anti-Virus Emergency Response Team, Network

Associates

� Symantec’s Anti-Virus Research Center, Symantec

SSA cursul 8 - M. Joldoş - T.U. Cluj 48

Page 13: Cursul VIII. Codul rău intenţionat Marius Joldoş U.T. Cluj ...users.utcluj.ro/~jim/SSA/Resources/Lectures/SSA08r.pdf · SSA cursul 8 - M. Joldo ş - T.U. Cluj 10 Povestea uzuala

� Soluţia pe termen scurt: fiţi atenţi!� Altă soluţie: produse anti-virus, care funcţionează

pe baza unor principii comune:� Analiza semnăturii: caută modificări cunoscute pe care le

fac unii viruşi. O varietate mai inteligentă a acestora pot descoperi variante comune şi modificări.

� Analiza codului: examinează codul să vadă dacă ‘arată‘ ca un virus. Similară celei de mai sus, dar de obicei fac o analiză mai detaliată.

� Scut: previn sau observă tentative de modificare a anumitor programe sau de a pune cod/aplicaţii în anumite zone.

� Dezinfecţia: eliminarea codului viral din fişierele EXE şi COM etc.; alternativ, se pot înlocui fişierele infectate cu copii de siguranţă.

SSA cursul 8 - M. Joldoş - T.U. Cluj 49

� Există trei metode de bază pentru a detecta un virus

SSA cursul 8 - M. Joldoş - T.U. Cluj 50

Scannere pentru viruşi

Verificatoare de integritate

Blocatoare de comportamentBlocatoare de comportamentBlocatoare de comportamentBlocatoare de comportament

� Examinează conţinutul fiecărui fişier care ar putea conţine instrucţiuni executabile .exe, .bat, .com, .vbs, . . .

� Caută în fiecare fişier un “şir de identificare” despre care se ştie că este prezent în virus� De exemplu, virusul ar putea conţine şirul:

SSA cursul 8 - M. Joldoş - T.U. Cluj 51

system (“deltree c:/My Documents”)

� Incapabile să trateze viruşii noi� Deoarece se bazează pe o bază de date cu viruşi

cunoscuţi pentru şirurile de identificare

� Variantele minore ale viruşilor cunoscuţi pot fi ratate

� Lente� Timpul necesar pentru a compara conţinutul

fiecărui fişier cu şirurile din baza de date poate fi destul de lung

SSA cursul 8 - M. Joldoş - T.U. Cluj 52

Page 14: Cursul VIII. Codul rău intenţionat Marius Joldoş U.T. Cluj ...users.utcluj.ro/~jim/SSA/Resources/Lectures/SSA08r.pdf · SSA cursul 8 - M. Joldo ş - T.U. Cluj 10 Povestea uzuala

� Creează o sumă de control pentru fiecare fişier executabil dintr-un director şi stochează rezultatele într-un fişier� Funcţie gen dispersie

� La fiecare rulare a unui verificator de integritate, acesta recalculează suma de control pentru fiecare fişier executabil şi o compară cu valoarea stocată anterior� Dacă valorile se potrivesc, fişierul este curat� Daca valorile nu se potrivesc, fişierul a fost

modificat

SSA cursul 8 - M. Joldoş - T.U. Cluj 53

� Virusul poate modifica fişierul cu sume de control� Verificatorul de integritate va compara suma

cu cea stocată şi va ignora fişierul� Virusul poate şterge sau cifra fişierul cu

sume de control� Fără acesta nu este bază de comparare

� Verificarea de integritate ţine numai pentru viruşii care infectează� Viruşii care se copiază pe discul rigid vor fi

ignoraţi

SSA cursul 8 - M. Joldoş - T.U. Cluj 54

� Nu caută pro-activ viruşi cunoscuţi� În schimb, monitorizează sistemul în

căutarea de activităţi suspecte� Programul virus.exe încearcă brusc să şteargă

toate fişierele .mp3 de pe disc

� La observarea activităţilor suspecte se consultă o listă de reguli pentru a determina acţiunea corespunzătoare� Programului i se permite să continue� Programul este terminat� Dacă nu se găseşte o regulă potrivită, atunci se

consultă administratorul

SSA cursul 8 - M. Joldoş - T.U. Cluj 55

� Avantajele blocării comportamentului sunt:� Rezistenţă sporită la viruşi noi sau necunoscuţi� Sistemul nu necesită întreţinere continuă

� Dezavantajele blocării comportamentului sunt:� Monitorizarea continuă a fiecărui aspect din

sistem poate reduce viteza sistemului� Multe evenimente fals pozitive� Sistemul nu este “protejat la gloanţe”

� Viruşii noi pot efectua acţiuni care să nu fie remarcate sau pot emula programe legitime

SSA cursul 8 - M. Joldoş - T.U. Cluj 56

Page 15: Cursul VIII. Codul rău intenţionat Marius Joldoş U.T. Cluj ...users.utcluj.ro/~jim/SSA/Resources/Lectures/SSA08r.pdf · SSA cursul 8 - M. Joldo ş - T.U. Cluj 10 Povestea uzuala

� Blocarea comportamentului este o tehnologie relativ nouă care pare a fi viitorul produselor antivirus� Cercetare continuă

� Software care foloseşte tehnologia de blocare a comportamentului a prevenit cu succes infecţia cu Code Red şi Nimda în timpul primelor zile de epidemie

SSA cursul 8 - M. Joldoş - T.U. Cluj 57

� Altă abordare este o combinaţie de bazare pe comportament şi scanare şi se numeşte analiză bazată pe cod� Analizoare de cod: presupun că viermele/virusul/calul

troian se repetă în cod prin tot sistemul şi caută porţiuni de cod identice. Rata de fals-pozitive foarte mare!

� Analizoare de stil de cod: dificil de făcut aşa cum trebuie. Ideea e să se compare stilul presupusului autor cu codul sursă disponibil.

� Analiza/felierea instrucţiunilor: se examinează acele zone de cod care fac apeluri ale SO “riscante”. De asemenea se caută şabloane care sunt de obicei riscante (ex: cp /bin/csh /tmp. Iarăşi, multă muncă şi multe fals-pozitive.

� Analiza dinamică: se rulează programul într-un mediu controlat şi vede dacă “pare în regulă”. Atacurile croite special se pot “ascunde” în timpul analizei şi pot apărea numai atunci când virusul este intr-adevăr instalat.

SSA cursul 8 - M. Joldoş - T.U. Cluj 58

� Analiza virusului de către un expert uman� Lentă: la momentul când s-a extras semnătura,

pregătită pentru baza de date a AV şi descărcată de utilizatori, virusul poate fi foarte răspândit.� Înainte de 1995: 6 luni — un an pentru răspândirea globală

a unui virus� Mijlocul anilor 90: câteva luni� Azi: zile sau ore

� Consumă mult efort: prea mulţi viruşi noi� Azi: 8-10 viruşi noi pe zi

� NU poate gestiona epidemiile:� Coada de viruşi de analizat depăşeşte capacităţile� Cerere foarte mare asupra serverelor care postează

semnături şi corecţii

� Analiza automată, d.e. “Sistem imun”� Dezvoltată la IBM Research� Licenţiată lui Symantec

SSA cursul 8 - M. Joldoş - T.U. Cluj 59

� Subdomeniu nou al ştiinţei calculatoarelor� Folosim ce ştim despre sistemul imun uman pentru

a construi răspunsuri imune în calculatoare� Sistemele imune naturale protejează

animalele împotriva patogenilor străini şi prezintă o serie de caracteristici utile� Protecţia multi-nivel� Detecţie şi memorie foarte distribuită � Diversitatea abilităţii de detecţie� Strategii de potrivire inexactă� Sensibilitate la majoritatea şabloanelor străine

SSA cursul 8 - M. Joldoş - T.U. Cluj 60

Page 16: Cursul VIII. Codul rău intenţionat Marius Joldoş U.T. Cluj ...users.utcluj.ro/~jim/SSA/Resources/Lectures/SSA08r.pdf · SSA cursul 8 - M. Joldo ş - T.U. Cluj 10 Povestea uzuala

� Corpul uman oferă multiple straturi de protecţie împotriva corpurilor străine, inclusiv� Pielea� Temperatura� Răspunsuri inflamatoare generalizate,� Mecanisme celulare

� Sistemele de calcul sunt monolite în ce priveşte faptul că definesc o zonă internă în care toată activitatea este considerată întotdeauna de încredere� O dată violat un mecanism de protecţie fundamental,

rareori există un altul de siguranţă pentru a detecta violarea

SSA cursul 8 - M. Joldoş - T.U. Cluj 61

� Detecţia în sistemul imun uman este foarte distribuită, la fel ca şi memoria sistemului� Nu există control centralizat care să iniţieze

sau să gestioneze un răspuns� Succesul apare din interacţiunile foarte

localizate dintre detectorii individuali� Măsurile pentru securitatea în calcu-

latoare nu au (încă) această proprietate

SSA cursul 8 - M. Joldoş - T.U. Cluj 62

� Evitaţi viruşii: Folosiţi un pachet antivirus de calitate, care să poată detecta prezenţa majorităţii viruşilor şi să-i elimine din sistem înainte de a putea cauza pagube

� Ţineţi Definiţiile Viruşilor la Zi: Definiţiile viruşilor au nevoie să fie actualizate cel puţin zilnic. Datorită creşterii ratei de apariţie a viruşilor noi şi mutaţiilor celor vechi, actualizarea săptămânală nu mai este suficientă.

SSA cursul 8 - M. Joldoş - T.U. Cluj 63

� Creaţi o echipă de suport antivirus� Cu sarcina de a verifica toate izbucnirile viruşilor� Echipa de suport antivirus să fie sursa oficială

pentru avertismente privind viruşii. Când citiţi mesaje Email noi, mai întâi verificaţi avertismentele oficiale despre viruşi. Nu deschideţi mai întâi mesajele obişnuite.

� Dacă aţi primit avertismente din alte surse, nu le trimiteţi altora. Trimiteţi-le doar echipei de suport antivirus

SSA cursul 8 - M. Joldoş - T.U. Cluj 64

Page 17: Cursul VIII. Codul rău intenţionat Marius Joldoş U.T. Cluj ...users.utcluj.ro/~jim/SSA/Resources/Lectures/SSA08r.pdf · SSA cursul 8 - M. Joldo ş - T.U. Cluj 10 Povestea uzuala

� Fiţi foarte cu grijă la deschiderea mesajelor email� Înainte de a deschide orice anexă, luaţi în

considerare de la CINE este şi CUM este împachetat (mesajul de însoţire) şi CE este.� Dacă e de la necunoscuţi – primul semn� Dacă mesajul nu are sens pentru Dvs. (nu vă puteţi da

seama de ce v-a fost trimis) – al doilea semn

� Cele două elemente ar trebui să fie de ajuns, dar, � Dacă anexa are extensia .EXE (d.e., fungame.exe) atunci

o cereţi dacă deschideţi anexa! Clar al treilea semn!

SSA cursul 8 - M. Joldoş - T.U. Cluj 65

� Realizaţi copii de siguranţă pentru software� Între 10% şi 20% dintre infecţii nu se pot repara. � Nu stocaţi date critice pe discul local. Dacă o faceţi,

TREBUIE să implementaţi un proces de copiere de siguranţă [backup].

� Realizaţi copiile de siguranţă pe serverul de reţea sau bandă sau disc.

� In eventualitatea unei infecţii poate fi necesară o refacere completă pentru recuperarea datelor. Chiar dacă virusul a fost şi el copiat, software antivirus de calitate poate elimina majoritatea viruşilor din copiile de siguranţă.

SSA cursul 8 - M. Joldoş - T.U. Cluj 66

� Nu folosiţi software necunoscut� Nu folosiţi software “public domain,”

“shareware,” “freeware,” or “demo,” DECÂT DACĂ a fost scanat cu un antivirus la zi. Scannerele se pot perima foarte repede

� Scanaţi toate dischetele/discurile şi fişierele aduse. Aceasta include: programele cumpărate, cele descărcate, dischetele CD-urile/discurile de la prieteni şi colegi de serviciu, precum şi mediile care au fost folosite în alte maşini.

SSA cursul 8 - M. Joldoş - T.U. Cluj 67

� Cunoaşteţi simptomele viruşilor� Câteva sugestii pentru detecţia unei infecţii:

� Pare că ia mai mult timp ca să se salveze fişierele mici decât înainte?

� Încărcarea unui program ia mai mult timp decât de obicei?

� Apar în mod regulat mesaje de eroare neobişnuite?� Dispar misterios programe sau alte fişiere?� Se aprinde semnalizarea dischetei/CD-uri fără

mediu inserat?� Maşina are mai puţină memorie decât de obicei?

SSA cursul 8 - M. Joldoş - T.U. Cluj 68

Page 18: Cursul VIII. Codul rău intenţionat Marius Joldoş U.T. Cluj ...users.utcluj.ro/~jim/SSA/Resources/Lectures/SSA08r.pdf · SSA cursul 8 - M. Joldo ş - T.U. Cluj 10 Povestea uzuala

� Codul rău intenţionat� Viermi, viruşi, cai troieni, bombe logice

� Acţiunile viruşilor� Tipologia viruşilor

� Viruşi de boot, de fişiere, de macro� Viruşi polimorfi

� Protecţia antivirus� Detecţia viruşilor

� Scanere, detectoare de integritate, analizoare de comportament

� Sisteme imune

� Recomandări

SSA cursul 8 - M. Joldoş - T.U. Cluj 69