Aplicatii Soft Pentru Integritatea Fisierelor
=== l ===
APLICAȚII SOFT PENTRU INTEGRITATEA FIȘIERELOR
Introducere …………………………………………………………8
Contextul actual și importanța integrității fișierelor……….10
Scopul și obiectivele………………………………………..10
Descrierea lucrării…………………………………………..12
Securitatea rețelei și a fișierelor…………………………………….12
Riscurile de securitate la care sistemul este expus………. 12
Securitatea informațională………………………………….14
Despre integritatea fișierelor……………………………………….19
3.1.Verificarea integrității fișierelor………………………………..19
3.2. Funcțiile hash…………………………………………………20
Algoritmul MD5………………………………………. 25
3.2.1.1. Descrierea algoritmului………………………..25
3.2.1.2. Calcularea unui mesaj cu algoritmului MD5..26
Algoritmul SHA-1…………………………………….30
3.2.2.1. Descrierea algoritmului……………………….30
3.2.2.1. Calcularea cu ajutorul algoritmului MD5 ……30
Algoritmul CRC……………………………………….31
3.2.3.1. Calculul unui mesaj cu algoritmului CRC……31
3.3. Integritatea datelor…………………………………………..33
4. Sisteme de securizare……………………………………………….34
4.1. Sisteme de detectare a intruziunilor (IDS)……………………35
4.1.1.Definirea sistemului de detectare a intruziunilor………..35
4.1.2. Mecanisme tipice de detectare a intruziunilor………….42
4.1.3. Mecanisme tipice de detecție a anomaliilor…………….44
4.1.4. Clasificarea sistemelor de detectare a intruziunilor……..46
4.1.4.1. Sisteme de detectare a intruziunilor bazate pe rețea (NIDS)…………………………………………………………46
4.1.4.2. Sisteme de detectare a intruziunilor bazată pe aplicație…………………………………………………………….47
4.1.4.3. Sisteme de detectare a intruziunilor bazată pe gazduire ……………………………………………………………………..48
5. Solutii pentru asigurarea integritatii fisierelor…………………………..60
5.1. Tripwire……………………………………………………….64
5.1.1. Definirea utilitarului Tripwire…………………………..64
5.1.2. Instalarea și utilizarea sistemului tripwire…………………..65
5.1.3. Comenzi utile in tripwire……………………………….69
5.2. AIDE…………………………………………………………70
5.2.1. Definirea utilitarului AIDE………………………………71
5.2.2. Sistemul de funcționare a sistemului AIDE………………..71
5.3. OSSEC………………………………………………………………………..72
5.3.1. Definirea utilitarului OSSEC……………………………72
5.3.2.Monitorizarea jurnalelor de fișier………………………..73
5.3.3. Sistemele suportate de OSSEC………………………………….75
5.3.4. Instalarea programului OSSEC………………………….76
5.4. YAFIC (Yet Another File Integrity Checker)……………………..77
5.4.1. Definirea utilitarului YAFIC……………………………………77
5.4.2. Trăsături ale utilitarului YAFIC……………………………….77
6. Aplicație. Sistem de monitorizare a integrității fișierelor ………………78
7. Concluzii………………………………………………………………..82
8. Bibliografie……………………………………………………………..83
Introducere
Securitatea informației reprezintă un lucru extrem de important pentru fiecare computer conectat la Internet, sau aflat într-o rețea de tip intranet, extranet si chiar o rețea locală. Mai mult, chiar si pentru un PC stand-alone securitatea informației poate fi o problemă serioasă, atunci când acesta conține informații personale, secrete, cu anumite grade de confidențialitate. Importanța securității a crescut odată cu extinderea prelucrărilor electronice de date și a transmiterii acestora prin intermediul rețelelor. În cazul operării asupra unor informații confidențiale, este important ca avantajele de partajare și comunicare aduse de rețelele de calculatoare să fie susținute de facilități de securitate substanțiale.
Securitatea informației este amenințată atât din interior cât și din exterior. Pot fi persoane bine intenționate care fac diferite erori de operare sau persoane rau intențonate, care sacrifică timp și bani pentru penetrarea sistemelor informatice. Dintre factorii tehnici care permit fisuri de securitate pot fi anumite erori ale software-ului de prelucrare sau de comunicare sau anumite defecte ale echipamentelor de calcul sau de comunicație. De asemenea, lipsa unei pregatiri adecvate a administratorului, operatorilor si utilizatorilor de sisteme amplifică probabilitatea unor breșe de securitate. Folosirea abuzivă a unor sisteme (piraterie informatică) reprezintă, de asemenea, unul din factorii de risc major privind securitatea sistemelor informatice.
În urma implementării unor mecanisme de securitate într-o rețea de calculatoare, informațiile nu vor putea fi accesate sau interceptate de persoane neautorizate (curioase sau, eventual, chiar rau intenționate) și se va împiedica falsificarea informațiilor transmise sau utilizarea clandestină a anumitor servicii destinate unor categorii specifice de utilizatori ai rețelelor.
Producătorii de aplicații au integrat si suport pentru manipularea de la distanță a informației. Alături de funcțiile complexe de generare și rulare a unor scripturi, posibilitatea de a rula programul prin rețea crește flexibilitatea aplicației. Acolo unde este vorba despre rețea, este și normal să apară conceptul de securitate a informațiilor, fapt care a fost luat in seamă de către producători, și implementat sub forma unei parole de rulare a programului sau de conectare spre altă stație, prin remote control. Dar programele care ascund sau restricționează anumite drepturi în Windows 95/98, Windows 95/98 nu a fost creat pentru securitatea datelor. Și asta se vede tocmai la baza sistemului de operare, adică la sistemul de fișiere. Asigurarea compatibilității programelor scrise pentru Win 31, nucleul lui Win 9x se bazează pe apeluri de funcții și servicii ale vechiului DOS, care nu întelege ce înseamnă mai mulți utilizatori sau mai multe task-uri. Unica soluție pentru o adevarată securitate este folosirea/ implementarea unui sistem criptografic, care să fie independent de sistemul de operare și care să preia sarcina de pe seama sistemului de operare. Prin Internet se gasesc o mulțime de implementări ale celor mai buni algoritmi de criptare. Foarte multe dintre aceștea sunt gratuite si poti să obținem codul sursă pe care să-l modifici dupa bunul plac. Astfel, chiar dacă nu ești un foarte bun cunoscător în domeniu, poți să-ți faci o securitate destul de mărită a fișierelor si a datelor.
Securitatea informatică a devenit una din compenentele majore ale internetului. Analistii acestui concept au sesizat o contradicție între nevoia de comunicații și conectivitate, pe de o parte, si necesitatea asigurării confidențialității, integrității și autenticității informațiilor, pe de altă parte. Domeniul relativ nou al securității informatice caută soluții tehnice pentru rezolvarea acestei contradicții aparente. Viteza și eficiența comunicațiilor “instantanee” de documente si mesaje conferă numeroase atuuri actului decizional intr-o societate moderna, bazată pe economie concurențială. Însă, utilizarea serviciilor de poștă electronică, web, transfer de fonduri etc. se bazează pe un sentiment, adeseori fals de securitate a comunicațiilor, care poate transforma potentialele câștiguri generate de accesul rapid la informații, în pierderi majore, cauzate de furtul de date sau de inserarea de date false ori denaturate.
Internetul este o structură complexă de rețele de calculatoare, la care se pot conecta un număr mare și uneori necontrolat de calculatoare. Complexitatea arhitecturală și distribuția topologică a rețelelor conduc la o mărire necontrolată a mulțimii utilizatorilor cu acces nemijlocit la resursele rețelei – fișiere, baze de date, rutere etc. De aceea putem vorbi de o vulnerabilitate a rețelelor ce se manifestă pe diverse planuri. Un aspect crucial al rețelelor de calculatoare, în special al comunicațiilor pe Internet, îl constituie securitatea informațiilor. Apare deci necesitatea identificării utilizatorilor situați la mari distanțe și de asemenea nevoia de securitate și de autenticitate, la toate nivelele arhitecturale ale rețelelor.
În tranzacțiile de afaceri este foarte important ca odată recepționată o comandă, aceasta să fie nu numai autentică, cu conținut nemodificat, dar să nu existe posibilitatea ca expeditorul să nu o mai recunoască, adică să se respecte proprietatea de nerepudiere.
De aceea, integritatea documentelor nu este întodeauna garantată, și trebuie să formăm siguranță documentelor prin diverse sisteme de securizare.
Contextul actual si importanța integrității fișierelor
Dezvoltările tehnologice au mărit mult securitatea sistemelor informatice, dar, în același timp, au dat potențialilor atacatori șansa unor penetrări mult mai rapide și adânci în sistemele informatice (fie ele personale, guvernamentale sau ale firmelor), aceasta cu efecte, în unele cazuri, foarte serioase. Conectivitatea permite acces la o mulțime de resurse, rapid și eficient, dar ea permite și o cale de acces în care atacatorii pot surpasa sistemele de autentificare desemnate să protejeze sistemele.
Integritatea fișierelor ocupă un rol important în cadrul sistemelor informatice pentru a ne asigura că un fișier trimis va ajunge nemodificat la destinatar.
Integritatea unui fișier sau a unui document are ca obiectiv asigurarea că informațiile ajung la persoanele autorizate nealterate, în formă identică cu informațiile de la sursă, iar modificările asupra datelor se fac doar de către persoanele care au autorizație.
Integritatea informațiilor poate fi compromisă de către persoane în mod accidental sau în mod voit. De asemenea alterarea datelor în mod accidental se poate întâmpla și din cauza disfuncționalității sistemelor informatice.
Integritatea reprezintă protecția informațiilor împotriva modificărilor intenționate sau accidentale neautorizate; condiția ca informația produsă într-un mediu informatic reflectă sursa sau procesele pe care le reprezintă. Este vorba despre nevoia de a asigura că informatia si programele sunt modificate numi in maniera specificată și autorizată si că datele prezente sunt originale, nealterate sau șterse în tranzit. Identificarea si autentificarea utilizatorilor sunt elemente cheie ale unei politici de integritate a informațiilor.
Integritatea asigură faptul că datele nu sunt modificate sau distruse decât de către persoane autorizate în acest sens.
De aceea putem spune ca integritatea fișierelor ( sau a datelor în general) ocupa un loc important în viata de zi cu zi deoarece intervine nevoia de a asigura că informația și programele sunt modificate numai în maniera specificată și autorizată și că datele prezente sunt originale, nealterate sau șterse în tranzit.
Scopul și obiectivele
Scopul acestei lucrari îl reprezintă protejarea integrității fișierelor prin diferite sisteme de securizare. Se vor descrie, de asemenea utilitare pentru detectarea intruziunilor sistemelor. Această lucrare poate reprezenta însă și un ghid pentru instalarea unor metode de protejare a fișierelor. În esență, această temă are ca scop protejarea informațiilor prin diferite metode de integritate a fișierelor.
Motivul principal pentru instalarea unui sistem de detectare a intruziunilor îl reprezintă identificarea potențialelor vulnerabilități și ulterior repararea lor. Numarul vulnerabilităților creste zilnic. Numărul calculatoarelor raportat la numarul de persoane continuă să creasca în multe organizații, crescand cererea de administratori competenți și experimentați. În consecință, este imperativ ca organizațiile să-și testeze sistemele în mod curent cu un sistem de detectare a intruziunilor necesar pentru a pastra integritatea fișierelor, precum și pentru a-și descoperii vulnerabilitățile și configurațiile gresite și pentru a reduce probabilitatea compromiterii sistemului.
Descrierea lucrării
Lucrarea de față are ca scop protejarea integrității fișierelor prin diferite sisteme de detectare a intruziunilor bazate pe utilitare precum: Tripwire, Aide, Ossec, Yafic, File Verifier etc, pe baza unui sistem de detectare a intruziunilor.
Această lucrare încearcă să trateze problemele ce țin de integritatea fișierelor, siguranța prin diferite metode, informațiile ajung la persoanele autorizate nealterate, în formă identică cu informațiile de la sursă, iar modificările sunt făcute doar de catre persoanele care au autorizație.
La nivel înalt, utilizatorii vor să se asigure că poșta electronică, de exemplu, sosește chiar de la persoana care pretinde a fi expeditorul. De asemenea, mesajul trimis trebuie să nu fie modificat sau șters atunci cand ajunge la destinație. Uneori utilizatorii, mai ales când acționează în numele unor firme, doresc asigurarea caracterului confidențial al mesajelor transmise. În majoritatea domeniilor, alături de autenticitate si confidențialitate, un loc de mare importanță îl are și integritatea mesajelor, (sau a datelor) ceea ce înseamnă că mesajul recepționat nu a fost modificat în timpul tranziției prin rețea.
2. Securitatea rețelei și a fișierelor
O rețea informatică securizată nu este rodul unui accident. Rețelele securizate nu sunt produsele modificărilor, adăugărilor întâmplătoare ale funcționalităților acestora. Rețelele securizate sunt fundamentate pe o solidă cunoaștere a modului în care o rețea funcționează: cum traversează rețeaua un pachet de date de la un client la un server, ce se întâmplă la server ca să returneze un alt pachet clientului, cum știe acest pachet să se întoarcă înapoi la clientul respectiv etc. Un drum de „aprovizionare” la un magazin cu echipamente de rețea de ultimă generație nu va face rețeaua mai sigura în mod necesar. Nu ne putem baza întru totul pe tehnologie.
Securitatea unei rețele informatice este o țintă în continuă mișcare. Întotdeauna mai poate fi făcut ceva în plus, în fiecare zi se descoperă noi breșe de securitate, în fiecare zi se acoperă alte breșe. Putem spune că securitatea unei rețele este o stare a minții – credem că suntem securizați, însă daca crezi acest lucru exista riscul să nu iei în calcul noi descoperiri și îmbunătățiri în acest domeniu.
2.1. Riscurile de securitate la care sistemul este expus
Odată cu extinderea rețelelor de calculatoare, riscurile de securitate nu pot fi neglijate datorita mai multor factori:
– Dependența tehnică de calcul și a rețelelor de calculatoare a agențiilor guvernamentale, băncilor, firmelor etc. , care nu mai pot lucra fără de a dispune de programele și datele partajate în rețelele lor de calculatoare;
– Vulnerabilitatea programelor software, echipamentelor și tehnologiilor informatice care face ca firmele și organizațiile să nu poată avea încredere totală în sistemele informatice folosite și în măsurile de protecție efectivă. Sistemele sunt vulnerabile la penetrări neautorizate, la distrugeri sau modificări accidentale sau voite. Aceste sisteme pot deservi elemente vitale pentru societate cum ar fi: sisteme militare, bănci, spitale, burse de valori, sisteme de transport, oferind în același timp un cadru de comportament antisocial sau de terorism.
Tendința actuală privind extinderea conectivității, în special în INTERNET amplifică aceste vulnerabilități: este din ce în ce mai greu să se localizeze un acces neautorizat în rețea, un utilizator cu comportament neadecvat, sau pur și simplu un defect. Se consideră că internetul-ul este unul din cele mai complexe sisteme create de tehnologia umană care, alături de sistemul financiar mondial, nu poate fi controlat în totalitate. Vulnerabilitatea sistemelor informatice actuale poate antrena pierderi imense de ordin financiar, direct sau indirect, cum ar fi scurgerea de informații confidențiale cu caracter personal, militar sau economic, sau blocarea dau dezactivarea unor resurse de rețea importante.
Figura1. Riscurile la care este expus sistemul
În figura de mai sus sunt prezentate amenințările și pagubele posibile la care este expus calculatorul, în cazul în care acesta nu are instalat nici un sistem de detectare a intruziunilor.
Probleme care apar în cazul în care nu avem un sistem de securitate sunt urmatoarele :
Fișiere sistem alterate;
Directoare in locuri neobișnuite;
Sockets care ascultă la porturi neobișnuite;
Executabile modificate.
Sistemele informatice sunt amenințate atât din interior cat și din exterior. Pot fi persoane bine intenționate, care fac erori de operare sau persoane rău intenționate, care își pun în valoare cunoștințele și resursele într-un mod negativ, pentru penetrarea sistemelor informatice. Orice rețea poate fi însă penetrata având la dispoziție suficient timp și resurse. Secretul prevenirii unei asemenea breșe de securitate este de a avea suficiente straturi de securitate încât atacatorului să-i fie foarte greu să-și îndeplinească acțiunea și astfel să renunțe.
Ameliorarea securității sistemelor informatice trebuie să fie un obiectiv important al oricărei organizații. Trebuie însă avuta în vedere asigurarea unui bun echilibru intre costurile aferente și avantajele concrete obținute. De asemenea trebuie păstrat un raport corect dintre securitate și disponibilitatea/accesibilitatea resurselor unei rețele informatice, pentru o securitate prea riguroasa poate duce la blocarea sau îngreunarea utilizării unor servicii de rețea. Măsurile de securitate trebuie să descurajeze tentativele de penetrare neautorizata, să le facă mai costisitoare decât obținerea legală a accesului la aceste programe și date.
2.2. Securitatea informațională
Prin securitatea informațională înțelegem protejarea atât a informației cât și a sistemelor informatice care asigură depozitarea informațiilor, accesul și transportul lor. Sistemele informaționale sunt descompuse în trei porțiuni principale, hardware, software și comunicații, cu scopul de a identifica și a aplica industriei informației standardele de securitate, ca mecanisme de protecție și prevenire , la trei niveluri sau straturi: fizică , personal și de organizare.În esență, procedurile sau politicile sunt implementate pentru a spune oamenilor (administratori, utilizatori și operatori) modul de utilizare a produselor pentru a asigura securitatea informațiilor în cadrul organizațiilor.
Figura2. Securitatea informațiilor
Scopul esențial în protecția informațională constă în asigurarea a trei elemente esențiale: confidențialitate, integritate și disponibilitate. Interpretarea acestor trei aspecte poate varia, în funcție de contextele în care apar. Interpretarea unui aspect într-un anumit context este dictat de necesitățile indivizilor, obiceiuri și reguli ale unei anumite organizații.
A.Confidențialitatea
Reprezintă interzicerea accesului neautorizat al persoanelor la informația care nu le este destinată, sau la care nu au drept de acces.
Confidențialitatea înseamnă ascunderea/tăinuirea informațiilor sau resurselor. Nevoia de a ține informațiile secrete apare din utilizarea computerelor în domenii sensibile precum instituții guvernamentale și industrie. De exemplu, instituțiile guvernamentale militare sau civile deseori restricționează accesul la informații la acele persoane care au nevoie de acele informații. Primii pași în securitatea computerelor a fost inițiată de instituțiile militare care încercau să impună principiul de a lăsa să se cunoască doar strictul necesar. Acest principiu se aplica de asemenea în sectorul firmelor din industrie, care au păstrat în siguranța tehnicile proprietare de teama ca competitorii să nu le fure. Un alt exemplu mai răspândit – toate instituțiile își păstrează informațiile despre personal în siguranța.
Mecanismele de control al accesului susțin confidențialitatea. Un astfel de mecanism de control care întărește și sprijină confidențialitatea este criptografia, care modifica datele ca să nu poată fi înțelese. O cheie criptografica controlează accesul la datele originale, dar în acest caz, însăși cheia criptografica devine subiectul protecției. Confidențialitatea se aplica chiar și la cunoașterea existentei datelor, care uneori poate fi mai relevanta decât datele. Numărul exact de oameni care nu au încredere intru-un politician poate fi mai puțin important decât faptul ca un astfel de sondaj a fost făcut chiar de oamenii politicianului. Modul în care o agenție guvernamentala își spionează cetățenii poate fi mai puțin important decât faptul ca exista o spionare. Mecanismele de control uneori ascund chiar existenta datelor, pentru ca doar divulgarea existentei datelor este o informație care trebuie protejata. Ascunderea existentei resurselor de rețea este un alt aspect important al confidențialității. Companiile vor deseori să păstreze în secret configurația rețelei proprii, precum și ce software rulează calculatoarele din rețea, pentru a asigura o mai buna protecție.
B.Integritatea
Datele stocate în calculator să nu poată fi alterate sau să nu poată fi modificate decât de persoane cu drept de modificare asupra datelor respective.
Integritatea se refera la încrederea în datele sau resursele de rețea – în sensul ca acestea nu au fost modificate accidental sau intenționat. Integritatea include integritatea datelor ( conținutul informației) și integritatea originii acesteia ( sursa datelor ). Aspectul cel mai important al integrității este credibilitatea sau încrederea, și joacă un rol cheie în funcționarea sistemului de securitate. Spre exemplu, un ziar poate publica informații provenite dintr-o sursa de la Casa Alba, dar atribuie informațiile unei alte surse. Informațiile sunt publicate așa cum au fost primite ( se păstrează integritatea datelor ) dar sursa este incorecta – astfel datele își modifica valoarea originala.
Mecanismele de integritate se împart în doua categorii: mecanisme de prevenire și mecanisme de detecție. Mecanismele de prevenire caută să păstreze integritatea datelor prin blocarea oricăror încercări neautorizate de a schimba datele, sau încercări de a schimba datele intr-un mod neautorizat. Distincția intre cele doua moduri este importanta. Prima apare atunci când un utilizator încearcă să schimba datele asupra cărora nu are nici o autoritate să le modifice. Ultima, apare atunci când un utilizator autorizat să schimbe datele în anumite moduri, încearcă să schimbe datele în alte feluri decât cele permise. Metodele de prevenire în cele doua cazuri sunt foarte diferite.
Mecanismele de detecție nu încearcă să prevină violarea integrității datelor; ele pur și simplu raportează ca integritatea datelor nu mai este de încredere. Mecanismele de detecție pot analiza evenimentele de sistem ( ale sistemului sau ale utilizatorilor) pentru a detecta problemele, sau pot analiza chiar datele pentru a le compara cu anumite amprente luate inițial la configurarea sistemului de detecție. Mecanismele de detecție pot raporta un caz de violare a integrității ( o anumita parte a unui fișier a fost modificata ) sau pot raporta pur și simplu ca fișierul este corupt.
Lucrul cu integritatea datelor este foarte diferit de lucrul cu confidențialitatea. În lucrul cu confidențialitatea, datele sunt fie compromise sau nu, dar integritatea include și corectitudinea și încrederea acordata datelor. Originea datelor ( cum și de unde au fost obținute ), cat de bine datele au fost protejate înainte de a fi primite pe mașina curenta, și cat de bine datele sunt protejate pe mașina curenta – toate acestea își spun cuvântul asupra integrității datelor. De aceea, evaluarea integrității datelor este deseori foarte dificila deoarece se bazează pe presupuneri despre sursa datelor și despre încrederea în securitatea acesteia.
C.Disponibilitatea
Disponibilitatea se refera la putința de a folosi informația sau resursele după necesitați. Disponibilitatea este un aspect important al siguranței de exploatare a unei rețele sau sistem, pentru ca un sistem indisponibil este cel puțin la fel de nefolositor ca neexistenta unui sistem. Aspectul disponibilității care este relevant pentru securitate este acela că cineva poate provoca în mod conștient blocarea accesului la date sau la un serviciu de rețea făcându-l indisponibil.
Încercările de blocare a disponibilității, denumite „denial-on-service” – refuzare a serviciilor – pot fi cel mai greu de detectat, pentru că un analist trebuie să determine dacă tiparele de acces cu probleme pot fi atribuite unor manipulări intenționate a resurselor sau mediului de lucru. Complicarea acestor investigații sau determinări stă în natura modelelor statistice care încearcă să clasifice modurile normale de lucru. Chiar daca modelul descrie cu acuratețe mediul de lucru, evenimentele atipice pur și simplu intra în alcătuirea statisticilor. O încercare de a face resursele indisponibile poate părea sau poate fi un eveniment atipic. În anumite medii, poate chiar să nu para un eveniment atipic de comportare a sistemului sau a resurselor.
Amenințările de securitate. Amenințarea de securitate este o potențiala violare a securității. Acest eveniment poate să nu se finalizase sau să nu se întâmple deloc – pentru a deveni o amenințare. Faptul ca intruziunea poate să se producă înseamnă ca acele premise și acțiuni care ii creează posibilitatea de a se produce trebuiesc eliminate. Aceste acțiuni se numesc atacuri. Aceia care executa aceste acțiuni, sau cauzează executarea lor, sun numiți atacatori. Cei trei factori ai securității, confidențialitatea, integritatea și disponibilitatea au ca scop oprirea și eliminarea amenințărilor pentru a păstra securitatea. Amenințările de securitate pot fi împărțite în patru categorii: descoperirea resurselor sau datelor ( disclosure ) – sau accesul neautorizat la informații; înșelăciunea (deception) – sau furnizarea de date false; distrugerea (disruption) – sau întreruperea sau blocarea modului normal de operare; și preluarea controlului ( uzurpation ) – sau controlul neautorizat al sistemului.
Interceptarea neautorizată a informației – snooping – este o forma de descoperire a resurselor. Este o formă pasivă, greu de detectat, care înseamnă că o anumită entitate ascultă sau citește comunicațiile, sau poate accesa fișierele sau informațiile de sistem. Factorul confidențialității este direct afectat de această amenințare.
Activitati posibile ale intrusilor:
se conectează la un server, dandu-se drept altcineva;
ascultă comunicația între două entități;
conectarea falsă la serverul in momentul conectării clientului (clientul are impresia că se conectează la serverul adevarat, cand de fapt s-a conectat la intrus; serverul adevarat nu stie nimic).
interceptează o comunicatie deschisă și poate modifica mesajele schimbate între cele doua entități (capturează un mesaj, îl face să nu ajungă la destinație sau îl trimite modificat la destinație, sau inserează mesaje noi).
3. Despre integritatea fișierelor
3.1. Verificarea integrității fișierelor
Un verificator de integritate a fișierelor calculeaza și stochează o sumă de control pentru fiecare fișier păzit și stabileste o bază de date a acestor sume de control. Furnizează o uneltă pentru administratorul de sistem pentru a recunoaște fișierele schimbate, în particular schimbarile neautorizate. Stocarea acestor sume va fi recalculată regulat pentru a testa valoarea curentă din nou și a identifica schimbările. Un verificator de integritate este în mod uzual inclus într-un sistem de detectare a intruziunilor. Acesta este o unealtă folositoare care nu necesită o mare intervenție umană, dar este necesar să fie folosit cu grijă pentru a fi eficient. Pentru a crea o bază de date inițială, sistemul ar trebui să fie sigur, altfel hash-urile criptografice ale sistemului compromis trebuie create. Baza de date de referință poate fi stocată offline așa încât atacurile sa nu o compromită. Totuși se poate genera și alarme false pozitive. Fiecare update de fișiere sau patch schimbă fișierele și astfel baza de date trebuie actualizată. Această actualizare poate deveni complicată. Totuși chiar dacă verificatorul de integritate rulează doar odată la instalarea sistemului, poate fi totuși utilă pentru determinarea aflării fișierelor care au fost modificate în caz de suspectare a unei compromiteri. Este recomandată utilizarea unor puternice sume de control, precum SHA-1(Secure Hash Algorithm), pentru a asigura o integritate a datelor în baza de date.
Acest verificator trebuie să ruleze zilnic pe sistemele suspecte de compromitere. Se poate folosi un verificator de integritate și când o compromitere este suspectată pentru determinarea unor altor distrugeri, Dacă un verificator de integritate descoperă o modificare neautorizată a fișierelor de sistem, trebuie considerat un incident de securitate și trebuie investigat și raportat la politica și procedurile de securitate.
Verificarea integrității se realizeaza prin următorul sistem :
Facem rost de un sistem de referință
Se poate face prin calcularea unei sume de control pentru fiecare fișier monitorizat ;
Sistemul de referință se pune pe un mediu de stocare Read-Only;
De exemplu pe un floppy sau CDROM.
Se compară periodic sistemul de referință cu sistemul curent ;
Se compară suma de control curentă cu referința
Orice modificare neașteptată declanșează mecanismul de alarmă .
3.2. Funcțiile hash
Un rol important în cadrul integritații unui fișier îl cosnstituie funcțiile hash. Funcțiile hash preiau un mesaj ca date de intrare (input) și produc un rezultat (output) referit ca și cod hash, resultat hash sau valoare hash.
O funcție hash este o funcție care mapează un șir binar de o lungime arbitrară finită la un șir binar de o lungime fixată l :
H : {0,1}* → {0,1}l.
Funcția hash trebuie să fie greu de inversat și să fie ușor de calculat.
Ideea de bază a funcțiilor criptografice hash este că o valoare hash servește ca
o imagine compactă reprezentativă (denumită si „message digest“) a unui string
de intrare si poate fi folosită ca si cum s-ar identifica in mod unic cu acel string.
Spre deosebire de criptare, funcțiile hash sunt operații cu un singur drum iar
valorile hash obținute nu corespund ca lungime cu valorile datelor de intrare.
Funcțiile hash sunt imparțite in doua clase:
funcții hash fară chei (unkeyed) care au ca parametru de intrare doare mesajul ;
și funcții hash cu chei care au doi parametrii de intrare: mesajul si o cheie secreta. O funcție hash este o funcție h care are cel puțin urmatoarele doua proprietați:
Comprimarea – funcția h mapează o intrare x de lungime finită de o iesire h(x) de lungime fixă n.
Ușor de calculat – dată funcția h si o intrare x, h(x) este ușor de calulat.
O utilizare tipică a funcțiilor hash pentru integritatea datelor este următoarea: Valorea hash corespunzătoare unui mesaj particular x este calculată la timpul T1. Integritatea acestei valori hash (dar nu a mesajului insuși) este protejată într-o anumită manieră. La o secvență de timp T2, următorul test este efectuat, pentru a determina dacă mesajul a fost alterat, daca un mesaj x’ este același cu mesajul original. Valoarea hash a lui x’ este calculată și comparată cu valoarea hash protejată. Dacă sunt egale, intrarile sunt de asemenea egale și că mesajul nu a fost alterat.
Proprietăți ale funcțiilor hash:
1. Doua mesaje diferite genereaza doua hash-uri diferite, adica fiecare mesaj genereaza un hash unic sau nu exista 2 mesaje diferite avand acelasi hash;
2. Dimensiunea hash-ului este intotdeauna aceeasi indiferent de marimea datelor care genereaza hash-ul;
root@CMA:~# md5sum httpd-2.2.11.tar.bz2
3e98bcb14a7122c274d62419566431bb httpd-2.2.11.tar.bz2
root@CMA:~#
root@CMA:~#
root@CMA:~# md5sum /etc/passwd
0c9a5eae2179def1c9d526e9a8ab95 /etc/passwd
root@CMA:~#
În acest exemplu se observă că cele 2 fișiere au hash-uri diferite, dar de aceiași lungime.
3. Aceste funcții se numesc one-way functions deoarece nu există posibilitatea practică ca din hash să se recreeze mesajul initial;
4. Functiile de hash sunt extrem de sensibile la orice modificare oricât de mică (efect de avalanșă);
În acest exemplu se observă că o singură literă diferentă în mesajul al cărui hash se calculeaza generează cu totul alt Diggest (mesaj).
root@CMA:~# echo “Linux” | md5sum
1b61f2a016f7478478fcb13130fcec7b
root@CMA:~#
root@CMA:~# echo “linux: | md5sum
5bb062356cddb5d2c0ef41eb2660cb06
root@CMA:~#
5. Hash-ul unui mesaj este mereu acelasi.
root@CMA:~# echo “Linux” | md5sum
1b61f2a016f7478478fcb13130fcec7b
root@CMA:~#
root@CMA:~# echo “linux”: | md5sum
5bb062356cddb5d2c0ef41eb2660cb06
root@CMA:~#
În acest exemplu se observă calcularea în mod repetat de 3 ori a hash-ului pentru fișierul httpd-2.2.11.tar.bz2. De fiecare dată se obține același hash.
Aplicații ale funcțiilor hash:
a) Sistemele de parole.
De cele mai multe ori parola nu este salvată pe hard-disk în clar ci se salvează un hash al acesteia. Astfel în momentul în care userul introduce parola, se calculează hash-ul acesteia care este comparat apoi cu hash-ul salvat in momentul setarii initiale a parolei din fișierul de pe hard disk. Dacă cele doua hash-uri sunt egale atunci parola este corectă. Dacă parola ar fi fost introdusa gresit, hash-ul ei ar fi fost diferit de cel salvat pe hard disk fiindcă fiecare mesaj are propriul hash, nu exista 2 mesaje (2 parole cu același hash). Avantajul acestui mod de salvare a parolelor este ca nimeni (nici root pe Linux sau Administrator pe Windows) nu poate afla parolele utilizatorilor. În plus dacă un cracker compromite sistemul și are astfel acces la fișierul cu parole, acesta poate observa hash-ul parolelor si nu parolele. Iar din hash nu se poate obtine parola (proprietatea 3).
Deoarece valorile hash nu sunt reversibile, nu este nici un mod de a afla ce parolă a produs un hash
Figura 3. Pastrarea unui hash în loc de parola
Am pus parola intr-un loc sigur, dar cum este o functie « one way », cum vom stii daca un viitor utilizator, la opertia de login va introduce acceasi parola ?
Raspunsul este urmatorul: luam parola propusa – in forma originala, o introducem in aceeasi functie hash si vedem daca rezutatul este acelasi cu valoarea hash salvata. Daca se potrivesc, inseamna ca utilizatorul introdus parola corecta, iar daca nu se potrivesc, accesul este interzis.
Este adaugata o cifra binara aleatoare, la parola – sub forma de cleartext, inainte de trecerea prin functia hash, iar in exemplul de mai sus, aceasta este introdusa intre semnele « $ ». Prin adaugarea cifrei binare, se mareste securitatea valorii hash stocate.
Fig 4. Testarea unei parole comparată cu valoare hash stocată
b) Garantarea integrității unui fișier, program executabil etc.
Toți producatorii de software includ pe langă fișierul binar care reprezintă programul si hash-ul acestuia. Astfel după ce se downloadează fișierul, se calculează hash-ul acestuia apoi se compară cu cel afișat pe site-ul producatorului. Dacă hashurile nu sunt identice atunci fișierul a fost modificat (poate fi un virus, cal troian sau pur si simplu a fost copiat cu erori). Un singur bit modificat în informația a carui hash îl calculăm generează un Diggest complet diferit (proprietatea 4 și 5).
c) Semnarea digitală a unui mesaj.
Hash-ul mesajului se criptează cu cheia privată, iar rezultatul se numește semnatură digitală.
Există un numar de algoritmi care sunt utilizați astăzi pentru crearea valorilor hash. Cei mai populari algoritmi sunt: MD5, SHA-1, CRC etc .
3.2.1. Algoritmul MD5
3.2.1.1. Descrierea algoritmului
MD5 (Message Digest Algorithm 5) este o funcție criptografică de tip hash unidirecțional, care livrează ca rezultat o valoare fixă ca lungime de 128 biți. Funcția MD5 a fost dezvoltată în1991 de Ronald L. Este utilizată drept componentă în unele scheme de semnătură electronică, deși tinde să fie înlocuită în acest scop de SHA-1sau RIPEMD-160, funcții mai puțin sensibile la coliziuni. Valuarea calculată cu ajutorul funcției MD5 (pe scurt md5sum), este folosită însă pe scară largă drept sumă de control, la verificarea integrității fișierelor.
MD5 este reprezentanta unei serii de funcții de hash, care a fost dezvoltată de către Ronald L. Rivest la MIT. După ce serii de analize au arătat că funcția precedentă de hash MD4 este probabil nesigură, a fost dezvoltată ca înlocuitor în 1991 funcția de hash mult mai sigură MD5. Într-adevăr, au fost descoperite mai tîrziu vulnerabilități de securitate de către Hans Dobbertin.
În 1996 Dobbertin face cunoscută existența unei coliziuni în funcția de compresie din MD5. Aceasta nu este un atac propriu-zis îndreptat împotriva funcției MD5, dar face ca toți criptologii să propună înlocuirea folosirii funției MD5 cu funcții mai sigure cum ar fi SHA-1 sau RIPEMD-160. În august 2004 au fost descoperite de către cercetătorii chinezi coliziuni în funcția propriu-zisă MD5. Aceste atacuri demonstrează însă numai existența coliziunilor în algoritm. Atacuri de tip Preimage cu această nouă metoda de atac nu au produs rezultate într-un interval de timp realist. Deci un certificat digital creat cu ajutorul funcției MD5 încă nu poate să fie falsificat.
Algortimul MD5 este de fapt o extensie a algoritmului de criptare MD4. MD5 este putin mai încet decât MD4, dar este mai "conservativ" în proiectare. MD5 a fost proiectat pentru că specialiștii au considerat că MD4 a fost adptat mai repede decat era justificat si pentru că MD4 fiind foarte rapid, este "în topul" riscului de atac criptanalitic. MD5 se întoarce un pic, renunțând puțin la viteza în favoarea unei mai mari securități. Încorporează sugestii facute de diverși specialiști și conține optimizări aditionale. Algoritmul MD5 a fost facut public pentru posibile revizuiri și pentru o posibilă adoptare a sa ca și standard.
MD5 completează 4 treceri asupa blocului de date folosind o constantă numerică diferită pentru fiecare cuvant din mesaj la fiecare trecere. Numarul pe 32 biți folosit de-a lungul calculelor cu MD5 produce la ieșire o valoare hash pe 128-biți folosită pentru verificarea integrității.
Se poate întampla să existe doua mesaje a caror criptare să fie identică, sau să cripteze orice mesaj avand un mesaj criptat de ieșire predefinit. Acest algoritm este facut în special pentru aplicații ale samnaturii digitale, unde un fișier mare trebuie "comprimat" într-o manieră sigură înainte de a fi criptat cu o cheie privată (secretă) printr-un sistem de criptare cu cheie publica cum ar fi RSA. Algoritmul MD5 este proiectat pentru a fi destul de rapid pe mașini de 32 de biți. În plus, algoritmul MD5 nu cere o mare substituție de tabele, el poate fi codat destul de compact.
3.2.1.2. Calcularea unui mesaj cu ajutorul algoritmului MD5
Se începe prin a presupune că avem ca intrare un mesaj de b biți si apoi vrem să îi găsim mesajul criptat. Aici b este un întreg arbitrar nenegativ; poate sa fie 0; e nevoie să fie multiplu de 8 si poate fi oricât de mare.
Urmatorii cinci pași sunt meniți să calculeze mesajul cripatat al unui mesaj dat.
Pasul 1. Adaugarea biților extinși/de extindere (Append Padding Bits);
Mesajul este extins așa încât lungimea sa (în biți) să fie egală cu 448 modulo 512. Deci, mesajul este extins astfel încât sunt doar 64 de biți ce încearcă să fie multipli de 512. Extensia este întotdeauna realizată, chiar dacă lungimea mesajului este deja egală cu 448, modulo 512. Extinderea este realizată după cum urmează: un singur bit "1" este adăugat la mesaj, apoi este adăugat un bit "0" astfel încât lungimea în biți a mesajului extins să fie congruentă cu 448, modulo 512. Oricum, cel putin un bit și cel mult 512 biți sunt adăugați.
Pasul 2. Adăugarea lungimii (Append Lenght);
O reprezentare pe 64 biți a lui b (lungimea mesajului înainte ca biții de extindere să fie adaugați) este adaugată rezultatului de la pasul precedent. În cazul în care b este mai mare decat 264 atunci cei mai puțini semnificativi 64 de biți ai lui b sunt folosiți. (Acești biți sunt adaugați ca două cuvinte de 32 de biți, cuvântul cel mai puțin semnificativ primul, în concordanță cu convenția precedentă.)
În acest punct (dupa extinderea cu biți si cu b) mesajul rezultat are lungimea exact de 512 biti. Echivalent, acest mesaj are lungimea exact multiplu de 16 cuvinte (32 biți) . M[0 … N-1] reprezintă cuvintele mesajului rezultat, unde n este un multiplu de 16.
Pasul 3. Initializarea Buffer-ului MD;
Un buffer de 4 cuvinte (A,B,C,D) este folosit pentru calcularea mesajului criptat. Aici fiecare dintre A,B,C,D este o înregistrare de 32 de biți. Aceste înregistrări sunt initializate cu urmatoarele valori în hexazecimal, biții cei mai puțin semnificativi primii:
cuvantul A: 01 23 45 67
cuvantul B: 89 ab cd ef
cuvantul C: fe dc ba 98
cuvantul D: 76 54 32 10
Pasul 4. Procesarea mesajului în blocuri de 16 Cuvinte (Process Message in 16-Word Blocks). Pe poziția fiecarui bit, F se comportă ca o condiție: dacă X atunci Y altfel Z. Functia F putea sa fi fost definită folosind "+" în loc de v deoarece XY și not(X)Z nu va avea niciodată biți de 1 pe aceeași poziție). Este interesant de observat faptul că dacă biții lui X, Y si Z sunt independenți și imparțiali, fiecare bit al lui F(X,Y,Z) va fi independent si imparțial. Funcțiile G, H si I sunt similare funcției F, în sensul că se comportă în "mod paralel" (bitwise parallel) pentru a produce rezultatul de ieșire din biții lui X, Y si Z, în sensul că dacă biții corespondenți ai lui Z, Y și Z sunt independenți și imparțiali, atunci fiecare din biții lui G(X,Y,Z), H(X,Y,Z) și I(X,Y,Z) vor fi independenți și imparțiali.
De observat că funcția H are cumportarea pe biți a funcțiilor "xor" sau "paritate" pentru intrare. Acest pas folosește un tabel de 64 de elemente T[1 … 64] construit din funcția inițială. Să consideram că T[i] reprezintă al i-lea element al tabelului, care este egal cu partea întreagă a abs(sin(i)) de 4294967296 ori unde i este în radiani. Se execută urmatoarele:
/* Se prelucreaza fiecare bloc de 16 cuvinte. */
For i = 0 to N/16-1 do
/* Se copiaza blocul i in X. */
For j = 0 to 15 do
Set X[j] to M[i*16+j].
end /*al buclei cu j*/
/* Se salveaza A ca AA, B ca BB, C ca CC si D ca DD. */
AA = A CC = C
BB = B DD = D
/*Runda1.*/ /* Fie [abcd k s i] reprezentand operatia
a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s). */
/* Se execută urmatoarele 16 operații. */
[ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 3 22 4]
[ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 7 22 8]
[ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12]
[ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16]
/* Runda 2. */
/* Fie [abcd k s i] reprezentand operația
a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s). */
/* Se execută urmatoarele 16 operații. */
[ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20]
[ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24]
[ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28]
[ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]
/* Runda 3. Fie [abcd k s t] reprezentand operația
a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s). */
/* Se execută urmatoarele 16 operații. */
[ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36]
[ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40]
[ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44]
[ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48]
/* Runda 4. */
/* Fie [abcd k s t] reprezentand operația
a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */
/* Se execută urmatoarele 16 operații. */
[ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52]
[ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56]
[ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60]
[ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64]
/* Apoi se execută urmatoarele adunări. (Care incrementează fiecare din cele 4 înregistrări cu valoarea pe care au avut-o înainte de începerea acestui bloc)*/
A = A + AA
B = B + BB
C = C + CC
D = D + DD
end /* al buclei cu i */
Pasul 5. Rezultat de ieșire (Output) – Mesajul criptat rezultat ca și ieșire este A, B, C, D. Se începe cu bitul cel mai putin semnificativ al lui A, și se termină cu bitul cel mai semnificativ al lui D. Aceasta completeaza descrierea algoritmului MD5.
În concluzie, algoritmul de criptare MD5 este ușor de implementat, și furnizează o "amprentă" sau un mesaj criptat avand ca mesaj de intrare un mesaj de lungime variabilă. Probabilitatea ca avand doua mesaje de intrare diferite mesajul criptat rezultat să fie identic este de 264, deci pentru obținerea unui mesaj criptat dorit dându-se un mesaj de intrare se presupune efectuarea a 2128 operații. Algoritmul MD5 a fost cercetat cu grija de slăbiciuni. Este, oricum, un algoritm relativ nou și analiză securitățile sale mai îndeaproape.
3.2.2.Algoritmul SHA-1
3.2.2.1. Descrierea algoritmului
Alt algoritm este SHA1 – Secure Hash Algorithm, care a fost dezvoltat de Institutul National de Standarde și Tehnologie. Procesul SHA1 este modelat după MD5. Algoritmul procesează un mesaj de lungime maximă 264 biți și produce un rezumat de 160 de biți. Deoarce valorile hash de lungime mai mare furnizează o securitate mai mare, acest algoritm este mai puternic decat MD5.
3.2.2.2. Calcularea cu ajutorul algoritmului MD5
Mai întâi mesajul este completat la multiplu de 512 biți, adică se adaugă 1 și atâția de 0 până la 448 biți, iar ultimii 64 de biți memorează lungimea mesajului înainte de completare. Rezumatul MD de 160 de biți, văzut ca 5 regiștri A, B, C, D, E de 32 de biți, se inițializează cu următoarea constantă MD0:
A = 67452301
B = EFCDAB89
C = 98BADCFE
D = 10325476
E = C3D2E1F0
• Apoi se prelucrează fiecare bloc Mj de 512 biți al mesajului.
• Fiecare prelucrare are 4 runde de câte 20 de operații fiecare.
• Funcția neliniară F, care se modifică la fiecare rundă, este definită astfel:
Runda 1: Ft(B,C,D) = (BΛC)٧(B’ΛD), pentru t= 0,…,19
Runda 2: Ft(B,C,D) = B ⊕ C ⊕ D, pentru t=20,…,39
Runda 3: Ft(B,C,D) = (BΛC)٧(BΛD)٧(CΛD), pentru t=40,…,59
Runda 4: Ft(B,C,D) = (B ⊕ C ⊕ D), pentru t=60,…,79
• Se notează cu t numărul operației (t=0,…,79).
• Fiecare bloc Mj, j=0,…,15, de 16 cuvinte de 32 de biți este transformat în 80 de sub-blocuri Wj, j=0,…,79, folosind următorul algoritm:
Wt = Mt , t = 0,…,15
Wt = ( Mt-3 ⊕ Mt-8 ⊕ Mt-14 ⊕ Mt-16) <<< 1 , t = 16,…,79
• Unde <<< K semnifică deplasarea circulară la stânga a cuvântului cu K poziții.
• S-a notat cu A’ complementul de 1 al lui A, cu ∧ funcția AND, cu ∨ funcția SAU
• S-a notat cu ⊕ suma modulo 2 (XOR).
• În fiecare rundă se execută următoarele operații ( t=0,…,79):
TEMP = (A<<<5) +Ft(B,C,D)+E+Wt+Kt
E = D
C = B<<<30
B = A
A = TEMP
• Unde Kt este o constantă unică aditivă.
• În final avem: MDj = MDj + MDj-1.
3.2.3. Algoritmul CRC
3.2.3.1.Calculul unui mesaj cu ajutorul algoritmului CRC
O altă metodă este calculul CRC. Procedura de calculare a valorii CRC a unui mesaj este următoarea:
Fie o succesiune de biți:
care constituie un mesaj ce trebuie trimis pe linia de transmisie date sau înregistrat pe suport magnetic. Acest mesaj poate fi reprezentat sub forma unui polinom de grad n-1:
Considerăm mesajul completat în partea dreaptă cu 16 zerouri
căruia îi corespunde polinomul x16M(x).
Fie un polinom P(x) de gradul 16, numit polinom generator, și care are una dintre următoarele forme standard:
Împărțind polinomul x16 M(x) prin polinomul generator P(x) obținem câtul Q(x) și restul R(x). Polinomul rest R(x) are gradul 15:
Polinomului T(x):
îi corespunde următorul mesaj de n+16 biți:
Acest mesaj se va trimite pe linia de transmisie date. Divizibilitatea lui T(x) cu P(x) în cazul recepției corecte este evidentă.
Într-adevăr, deoarece sumele sunt considerate modulo 2 ( Q(x) este polinomul cât).
3.3. Integritatea datelor
Integritatea este definită ca proprietatea care ne asigură că datele nu a fost modificate sau distruse într-o manieră neautorizată. Integritatea anunță că prin atac valoarea sau existența informației poate fi modificată de un utilizator neautorizat. Mecanismul de integritate a datelor are rolul de a asigura integritatea unităților de date (în întregime sau parțial – numai un câmp), împiedicând modificarea, ștergerea sau amestecarea datelor pe durata transmisiei (fie accidental fie intenționat).
Acest mecanism presupune două proceduri:
una pentru emisie. Expeditorul adaugă la unitatea de date o informație adițională care depinde numai de datele transmise(“checkvalue” – o sumă de control criptată sau nu)
una pentru recepție: partea receptoare generează aceeași sumă de control care se compară cu cea primită. Dacă un mecanism de integritate nu poate preveni modificările informației, trebuie ca cel puțin să fie în măsură să detecteze atacul.
Autentificarea și controlul accesului oferă un anumit nivel de integritate prin permiterea numai acelor utilizatori care sunt identificați, autentificați și autorizati să aibă acces la informație. Componenta de integritate oferă mecanisme adiționale de detecție și pe cât posibil de corecție a informației corupte sau modificate.
Sunt două categorii de protecție prin integritate:
prevenirea accesului la informație prin mecanisme cum ar fi canal securizat sau controlul căilor;
detectarea coruperii sau modificării neautorizate a informației (printr-un mecanism de integritate a datelor)
Protejarea informației este adesea o funcție a mediilor fizice. Anumite medii sunt, în mod inerent, greu de protejat; telefonia celulară este un exemplu în care aplicarea securizării fizice asupra rețelei nu este fezabilă. În acele cazuri, detectarea pierderii integrității este importantă.
Exemple de mecanisme de integritate sunt sigiliile criptografice, semnătura digitală și codurile detectoare/corectoare de erori. Aceste mecanisme se bazează pe calcularea unei valori relativ la conținutul datelor și cifrarea rezultatului. Modificarea datelor se detectează prin recalcularea valorii și compararea ei cu cea originală. O nepotrivire indică faptul că datele au fost modificate. Pentru calculul acestor valori, o metodă foarte răspândită este utilizarea funcțiilor hash criptografice. Copierea datelor în locuri diferite poate fi folosită la comparare pentru a oferi o verificare de integritate.
Detectarea coruperii sau modificării neautorizate a datelor se poate realiza de asemenea printr-un mecanism de criptare. Orice modificare adusă textului criptat se traduce prin modificarea textului obținut prin decriptare. În cazul folosirii unor moduri de criptare cu reacție (CFB), orice modificare în textul cifrat duce la o avalanșă de modificări la decriptare.
Scopul metodelor de detectare a erorilor este acela de a permite celui care primeste un mesaj transmis printr-un mediu cu zgomot, să recunoască dacă mesajul a fost sau nu corupt.
4. Sisteme de securizare
Securitatea sistemelor informatice și de comunicații a devenit, în prezent, o problemă extrem de importantă, de care trebuie să țină cont atât producătorii de echipamente, cât și dezvoltatorii de aplicații și integratorii de sistem, precum și administratorii de rețea. Desigur, integritatea sistemelor informatice și de comunicații, precum și cerințele de protejare a confidențialității datelor, pot fi abordate printr-o multitudine de tehnici și metode. În prezent, metodele de autentificare bazate de tehnologii biometrice devin din ce în ce mai folosite.
Soluțiile actuale de securitate se bazează pe utilizarea de componente hardware și pe dezvoltarea de soluții software capabile să detecteze elemente suspecte de a fi considerate intriziuni, acțiuni nepermise și consecințe ale acestora. Foarte des, însă, detecția evenimentelor cu caracter intruziv în cadrul unui sistem informatic conectat în rețea nu este suficientă În principiu, detecția intruziunilor se bazează pe tipuri de comportament sau pe pattern-uri („semnături” ale enitităților malițioase) care s-au manifestat după ce hackerii au început deja să interacționeze cu sistemele atacate. Foarte importantă s-ar dovedi și capabilitatea de prevenire a intruziunilor. Aceasta ar asigura un nivel de securitate mai ridicat, deoarece ar bloca orice interacțiune dintre o entitate malițioasă și sistemul informatic care se dorește a fi protejat. Desigur, în cazul sistemelor IDS (Intrusion Detection Systems) care implementează și funcții de prevenire a intruziunilor, problema care se pune este în ce măsură o astfel de capabilitate nu poate conduce la o blocare a funcționării serviciilor utile ale sistemului, afectând aplicațiile practice ale utilizatorilor finali. De aceea, problema implementării unor mecanisme eficiente de detecție/prevenire a intruziunilor este foarte importantă. Pentru abordarea eficientă a acesteia, se impune cunoașterea potențialului pe care soluțiile tipice de detecție și prevenire a intruziunilor îl prezintă.
4.1. Sistemele de detectare a intruziunilor (IDS)
4.1.1. Definirea sistemului de detectare a intruziunilor
Un sistem de detecție a intruziunilor (IDS) reprezintă, în esență, o soluție de securitate ad-hoc care urmărește protejarea sistemelor de calcul vulnerabile. Sarcinile majore ale unui sistem de detecție a intruziunilor (IDS) sunt acelea de a colecta date de la un sistem, de a analiza aceste date pentru a descoperi evenimente relevante de securitate și de a prezenta rezultatele analizei către administratorul de sistem. Mecanismele de răspuns mai mult sau mai puțin automatizate pot fi construite, de asemenea, în cadrul unui astfel de sistem.
Definit ca un sistem de identificare, inventariere si raportare a traficului de rețea neautorizat, un sistem de detectare a intruziunilor reprezintă o soluție alternativă ce permite administratorilor de rețea și de securitate să identifice in timp optim incercarile de atac asupra unui sistem informatic. Comparativ cu un sistem firewall, care, pe baza politicilor de tip „allow” si a celor de tip „deny” controleaza traficul la perimetrul unei retele, sistemele IDS analizează traficul de date permis de catre un firewall sau router pentru identificarea tentativelor de atac. Tehnicile de detecție a intruziunilor sunt bazate pe identificarea semnaturilor de atac la nivel de aplicație si a anomaliilor de trafic. Alertarea in cazul unui potential atac este un serviciu extrem de util pentru administratori, care pot astfel interveni in timp optim pentru protejarea retelei. Sistemele IDS au crescut astfel in utilizare si prezența pe piată.
Pentru o rețea informatică, al doilea nivel de securitate, furnizat din spatele firewall-ului este făcut prin sisteme de detecție a atacurilor (IDS – intrusion detection system). Aceste sisteme detectează atacurile și declașeanză răspunsuri la aceste atacuri și totodată alertează pe diverse căi administratorul de rețea. Intrusion Detection Systems sau IDS- Sistemele de detectare a intruziunilor – sunt un instrument valoros în securitatea sistemelor și / sau rețelelor.
Sistemele de Detectarea Intruziunilor, sunt echipamente ce înregistreaza încercările de intruziune în sisteme informatice sau în rețele de calculatoare. Aceste sisteme nu blochează doar atacul dar și îl inregistrează pentru o monitorizare ulterioară. Acest tip de sisteme sunt considerate pasive.
Un astfel de sistem are rolul de a monitoriza și detecta potențialele amenințări, iar în momentul în care sesizează un posibil pericol alertează persoana responsabilă cu securitatea informatică.
Serviciile de detectare a intruziunilor execută la nivel de dispozitiv de rețea următoarele funcții:
inspectează fluxul de date care trece prin rețea, identifică semnăturile activităților neautorizate și activează procedurile de apărare;
generează alarme în cazul detectării evenimentelor, notificând personalul de securitate;
activează un răspuns automat în cazul anumitor probleme.
Conform analizelor și prognozelor IDC se vede acum un interes crescut în detectarea și prevenirea intruziunilor ca și în tehnologii de autentificare, autorizare și control al accesului.
Rolul sistemelor de detectare a intruziunilor este acela de a semnala orice încalcare a unui set de reguli (politici de securitate) impuse și chiar de a opri un atac înainte ca acesta să ajungă la resurse sau să producă vreo deteriorare a acestora. Detectarea intruziunilor poate fi definită ca procesul de detectare a utilizării neautorizate a resurselor unui sistem informatic, sau de identificare si recunoastere a unui atac asupra unui computer sau rețele.
Sistemele de detectare a intruziunilor (IDS- Intrusion Detection Systems) analizează traficul și pot controla o gama largă de tipuri de atacuri, inclusiv DoS (Denial of Service) sau DDoS (Distributed Denial of Service), care de obicei tind sa blocheze activitatea oragnizației sau acesul clienților, partenerilor și angajaților la resursele necesare.
Astazi exista sisteme IDS dedicate monitorizarii si protectiei atat la nivel de rețea, cât si local, la nivel de server și chiar de desktop.
Soluțiile dedicate protecției la nivel de rețea se îpart la randul lor in doua categorii:
OnLine IDS- sisteme ce analizează traficul într-un nod de rețea, în mod promiscuu, de la distanță, fără ca traficul să treacă efectiv prin punctul în care sunt instalate;
InLine IDS- sau IPS (Intrusion Prevention Systems) care monitorizează o anumită conexiune si analizează traficul în mod direct, reprezentand un filtru așezat în spatele unui firewall și în fața serverelor și sistemelor critice din rețea. Principalele diferențe între OnLine și InLine IDS:
OnLine IDS poate monitoriza tot traficul dintr-o rețea, atât extern, cât și intern, el fiind conectat pe portul de monitorizare al switch-ului respectiv, punct în care poate fi colectat întreg traficul. Acest tip de IDS reușește să analizeze traficul în întregime și să alerteze asupra activitaților neconforme politicii de securitate stabilite la nivel de rețea, chiar să ia masuri de blocare a conexiunilor sau sesiunilor respective, sau să administreze și să modifice reguli (politici) pentru firewall;
InLine IDS monitorizează doar traficul din punctul de conexiune, traficul trecand chiar prin el, rolul său fiind acela de a recunoaște atacurile și acțiunile neconforme politicii impuse și de a filtra orice trafic neutorizat in acel punct.
Sistemele de detectare a intruziunilor pentru server (HIDS- Host-based Intrusion Detecion Systems), monitorizeaza aplicatii și fișiere specifice, inclusiv setarile regiștrilor, alertând în cazul accesării neautorizate , modificării, ștergerii, sau copierii datelor rezidente pe sistemul monitorizat. Rolul lor este de a menține politicile (seturi de reguli) impuse respectivului server, de a semnala orice incercare de accesare neautorizată și pot chiar înlocui automat fișierele deteriorate, pentru a asigura integritatea datelor. O derivatie a HIDS sunt sistemele centralizate de detectare a intruziunilor în sisteme (CHIDS- Centralized Host-based Intrusion Detection Systems) care servesc aceluiași scop, dar realizează o analiză centralizată prin trimiterea tuturor datelor într-un nod central de analiză.
Principalele diferențe între HIDS și CHIDS sunt:
CHIDS este mai sigur, deoarece extrage toată informația din PC-ul respectiv și chiar dacă acesta e apoi compromis, analiza poate fi facută. Dezavantajul este acela ca stațiile de analiză centralizată au nevoie de o latime de banda mult mai mare pentru a transfera pachetele de date.
HIDS ajută la luarea unor decizii de compatibilitate la nivel local între politica de securitate si restul sistemului și doar alertează consola centrală atunci când este cazul. Utilizează o lățime de bandă mult mai mică. Dezavantajos este faptul că în cazul în care pc-ul “gazdă” este compromis nu se pastrează informații care să poata fi analizate ulterior.
La nivel de Desktop, soluțiile pentru detectarea intruziunilor au rolul de a proteja sistemul respectiv in special împotriva accesului neautorizat din propriul LAN / WAN și de a asigura integritatea datelor și aplicațiilor rezidente atât pe stațiile de lucru, cât și pe sistemele ce se conectează în rețea de la distanță (remote). Aceste soluții excelează prin utilizarea unor metode avasate de recunoaștere a posibileleor atacuri și mai ales printr-un excelent control la nivel de aplicație (application control), blocând orice aplicație ce nu este inclusă în regulă (politică) stabilită pentru sistemul respectiv și alertând de fiecare dată în cazul tentativei de rulare a unei aplicații neconforme cu politica impusă.
Primul Desktop IDS de succes a fost BlackIce Defender, încorporat astăzi în modulul de protecție ISS Desktop Protector, cel mai avansat sistem de acest tip la nivel mondial.
Sistemele IDS utilizează astazi doua tehnologii:
1. Compararea semnaturilor (foarte similar tehnologiei euristice antivirus), caz în care motorul respectiv caută semnaturi specifice atașate pachetelor de date care circulă prin rețea și le compara cu o listă de semnaturi de amenințări cunoscute.
2. Analiza pachetelor de date reprezintă analiza conținutului fiecărui pachet de date si compararea printr-un algoritm matematic, în scopul de a determina dacă este vorba despre un atac, sau despre un transfer obișnuit de date.
Important de reținut este faptul că această tehnologie este foarte complexă și sensibilă și se recomandă pregatirea pentru instalare. Instalarea propriu-zisă să fie realizată de către specialisti foarte bine pregatiți și familiarizați cu metodele de configurare. În funcție de această configurare si de politica stabilită, un IDS poate raporta orice activitate neautorizată în rețea, sau poate alerta și aplica măsuri numai la apariția unor atacuri reale. Un IDS care nu este optim configurat va emite un numar impresionant de alerte, ce pot deveni la un moment dat imposibil de administrat. Unele dintre acestea pot fi alarme false, asa numitele “false positives”.
Detecția intruziunilor este procesul de monitorizare a evenimentelor apărute la nivelul unui sistem de calcul sau al unei rețele, precum și de analizare a acestora pentru a căuta semne de intruziuni, definite ca încercări de realizare a unor acțiuni neautorizate de penetrare, prin ocolirea mecanismelor de securitate ale unui sistem de calcul și/sau rețele. Intruziunile sunt cauzate de oricare dintre următoarele situații: atacatori care accesează sistemul din Internet, utilizatori autorizați ai sistemului care încearcă să obțină privilegii suplimentare pentru care nu au permisiuni, sau utilizatori autorizați care folosesc în mod inadecvat privilegiile care le sunt alocate. Sistemele de detecție a intruziunilor (IDS, Intrusion Detection Systems) sunt produse software sau hardware care asigură procesul de monitorizare și analiză a intruziunilor.
Protecția contra intruziunilor presupune oferirea următoarelor mecanisme de securitate:
Detecția – Presupune identificarea atacurilor răuvoitoare asupra rețelei și a resurselor acesteia;
Prevenirea – Presupune stoparea atacurilor detectate.
Capacitatea de a alerta numai în cazul unor atacuri reale și cu adevarat periculoase pentru sistemul informatic respectiv face diferența între un sistem IDS bun și restul. De aceea, pentru a obține o soluție competitivă, un IDS bun trebuie dublat de o configurare specializată, de o intreținere și un fine tuning realizate de profesioniști.
Figura 5. Schema-bloc de principiu a unui sistem de detecție a intruziunilor.
Figura de mai sus ilustrează schema de principiu a unui sistem IDS (sistem de detecție a intruziunilor generic). Sunt evidențiate componentele generice ale unui sistem de detecție a intruziunilor. Cele 3 blocuri generice, cel de colectare de date, blocul de detecție și cel de răspuns includ, la rândul lor, module funcționale care asigură realizarea acțiunilor specifice ale unui sistem de detecție a intruziunilor. De notat ar fi și lanțul de interacțiuni dintre respectivele module funcționale, și care susține îndeplinirea activităților pe care trebuie să le realizeze sistemul de detecție a intruziunilor, indiferent de tipul de politică de detecție care este implementat, de tipul de politică de răspuns. Sistemul țintă are mecanisme pentru a colecta variate tipuri de date, cum ar fi cele referitoare la traficul de rețea, evenimente la nivelul sistemului de operare sau la nivelul aplicației.
Blocul funcțional GENERATOR DE EVENIMENTE ține evidența informațiilor colectate și poate achiziționa date el însuși. Unele activități de pre-procesare pot fi efectuate de această componentă (cum ar fi aceea de a transforma datele într-un format comun și de a realiza o anumită filtrare a datelor). Adesea, componenta STOCARE DATE DE MONITORIZARE este utilizată pentru a arhiva date înainte ca acestea să fie trimise la „motorul de analiză”. Acest modul de stocare mai poate fi utilizat și pentru investigarea alarmelor.
Blocul funcțional MOTOR DE ANALIZĂ implementează algoritmul de detecție. O metodă simplă de detecție este aceea de a utiliza scripturi de potrivire a șirurilor de text care sunt unice pentru diferite tipuri de intruziuni (care au „semnături” specifice). Alte tipuri de tehnici de recunoaștere de pattern-uri pot fi, de asemenea, utilizate. Această eveniment sau pentru o secvență de evenimente. Mai pot fi utilizate sisteme expert pentru implementarea unor forme avansate de detecție a semnăturilor. Toate aceste metode au în comun faptul că ele sunt pre-programate să detecteze evenimente considerate implicit intruzive.
Un alt mod de a efectua detecția este acela care se bazează pe sesizarea distincției între comportament „normal” și, respectiv, „anormal” în cadrul sistemului țintă. Metoda constă în crearea de profile de comportament pentru programe sau utilizatori ai sistemului și clasificarea ca posibil intruzive a acelora care deviază de la profilele stabilite. Acest lucru se poate realiza folosind statistici simple sau metode „inteligente”, cum ar fi cele bazate pe rețele neurale, tehnici de modelare și simulare, tehnici de extragere de date relevante. În orice caz, motorul de analiză poate combina mai multe metode de detecție pentru a realiza o determinare mai completă a intruziunilor.
Componenta POLITICĂ DE DETECȚIE conține informații pre-programate despre modul de detectare a intruziunilor. Practic, aici sunt stocate semnăturile intruziunilor și pragurile de alarmă. Informațiile de configurare pentru detectarea anomaliilor, ca și regulile referitoare la informațiile care trebuie transmise la unitatea de răspuns, sunt, de asemenea, stocate la acest nivel. Baza de date cu informații de stare (state information) conține informații dinamice folosite pentru detecție. Acestea pot fi informații de stare despre semnăturile intruziunilor parțial completate și despre comportamentul curent al sistemului.
Informațiile despre evenimente care sunt categorisite drept intruzive sau anormale de către motorul de analiză sunt trimise la UNITATEA DE RĂSPUNS. În baza regulilor pre-programate din baza de date POLITICĂ DE RĂSPUNS, se decide modul de răspuns la diferite evenimente. Decizia poate fi afectată de parametri și caracteristici cum ar fi probabilitatea de confirmare a evenimentului sau potențialul impact al acestuia. Într-un sistem distribuit, unitatea de răspuns poate primi intrări de la mai multe motoare de analiză și, de asemenea, poate corela alarmele. Posibilele acțiuni de răspuns sunt acelea de notificare a administratorului, de reconfigurare automată a sistemului țintă pentru blocarea acțiunilor autorului intruziunii, sau de implementare a unor mecanisme specifice care să susțină răspuns manual (al utilizatorului). O altă opțiune de răspuns ar fi aceea de a permite sistemului IDS să modifice configurația pentru colectarea datelor sau politica de detecție pentru a permite colectarea mai multor informații despre un eveniment în desfășurare.
Mecanisme tipice de detectare a intruziunilor
Majoritatea sistemelor IDS încearcă să detecteze evenimente suspecte de a fi considerate intruziuni neautorizate, pe care apoi să le semnaleze prin alerte către administratorii de sistem.
De asemenea, tehnologiile de răspuns automat la evenimente de tip intruziune sunt în plină evoluție. Primele sisteme de detecție a intruziunilor vizau sisteme de calcul de sine stătătoare și cu un singur procesor; detecția consta în procesarea post-facto a înregistrărilor de evidență a evenimentelor consemnate în sistem. Sistemele de calcul actuale constau adesea în noduri de procesare multiple care rulează sisteme de operare diferite, adesea interconectate în rețea sau ca sisteme distribuite.
Detecția intruziunilor implică determinarea faptului că o anumită entitate (denumită intrus) a încercat să obțină, sau, mai rău chiar, a reușit un acces neautorizat la sistem. Nici una dintre metodele actuale de detecție automată nu identifică un intrus înainte ca acesta să inițieze interacțiunea cu sistemul. Administratorii de sistem pot aplica măsuri de rutină pentru prevenirea intruziunilor. Acestea pot include solicitarea de a se furniza parole înainte ca utilizatorii să poată obține orice fel de acces la sistem, remedierea vulnerabilităților cunoscute pe care un potențial intrus ar putea încerca să le exploateze în scopul obținerii de acces neautorizat, blocarea anumitor tipuri de acces la rețea sau limitarea accesului fizic.
În ceea ce privește abordările pentru mecanismele de detecție a intruziunilor, trebuie notat faptul că în prezent metodele de detecție se încadrează în două categorii de bază: detectarea anomaliilor și detectarea utilizării inadecvate („misuse”). Prima abordare (detecția anomaliilor) se bazează pe definirea și caracterizarea comportamentului dinamic și a stării corecte a sistemului, precum și pe detectarea schimbărilor (abaterilor) de la acestea. A doua abordare (misuse detection) impune caracterizarea modurilor cunoscute de penetrare a unui sistem. Noua generație de sisteme de detecție a intruziunilor ia în considerare aspectele majore de rețea.
În acest caz, provocările sunt următoarele:
– gestionarea unor volume considerabile de date, care se transmit și se procesează în rețele extinse;
– creșterea acoperirii (sistemul IDS trebuie să fie capabil să recunoască cât mai multe tipuri de comportament sugestiv pentru intruziuni);
– reducerea frecvenței alarmelor false (comportamente benigne raportate în mod eronat ca intruziuni);
– detectarea intruziunilor în desfășurare, și
– reacția în timp real pentru a alerta în legătură cu o intruziune sau pentru a limita daunele potențiale.
Mecanisme tipice de detecție a anomaliilor
Mecanismul de detecție a anomaliilor trebuie să fie capabil să distingă între comportament normal și anomalie. Detecția anomaliilor se poate realiza static sau dinamic. Un detector static de anomalii se bazează pe presupunerea că există o parte a sistemului monitorizat care rămâne constantă. Detectoarele statice vizează, de regulă, componentele software ale sistemului, bazându-se pe presupunerea implicită că aspectele hardware nu necesită verificare. Despre detectoarele statice de anomalii se spune că verifică pentru integritatea datelor.
Detectoarele statice de anomalii definesc unul sau mai multe șiruri binare statice pentru a specifica starea dorită a sistemului. Se arhivează o reprezentare a acestei stări, uneori comprimată. Periodic, detectorul static de anomalii compară reprezentarea arhivată a stării cu o reprezentare similară calculată pe baza stării curente. Orice diferență semnalează o eroare cauzată de probleme hardware sau de o intruziune.
Detectoarele dinamice de anomalii necesită realizarea distincției între activitatea normală și cea anormală. De obicei, se creează un profil de bază pentru a caracteriza comportamentul normal, acceptabil. După inițializarea profilului de bază, detecția intruziunilor poate începe.
Detecția utilizării inadecvate (necorespunzătoare) prin analiza pattern-urilor sau a „semnăturilor” intruziunilor („misuse detection”).
Este o tehnică care vizează detectarea intrușilor care încearcă să penetreze un sistem folosind anumite tehnici cunoscute. Principiul de bază al acestei metode este acela că se caută tipuri cunoscute de intruziuni indiferent de comportamentul normal al utilizatorului. În acest context, se folosește termenul de scenariu de intruziune pentru o descriere a unui tip bine cunoscut de intruziune; acesta poate fi specificat ca o secvență (parțială) de acțiuni care conduc la realizarea unei intruziuni, cu excepția situației în care o intervenție externă oprește completarea respectivei secvențe de acțiuni. În acest context, se folosește termenul de scenariu de intruziune pentru o descriere a unui tip bine cunoscut de intruziune; acesta poate fi specificat ca o secvență (parțială) de acțiuni care conduc la realizarea unei intruziuni, cu excepția situației în care o intervenție externă oprește
completarea respectivei secvențe de acțiuni. Două categorii (generații) de sisteme de detecție a intruziunilor se bazează pe această metodă. Diferența dintre ele provine din modul în care acestea descriu sau modelează comportamentul inadecvat care este semnificativ pentru o intruziune. Prima generație de sisteme de detecție a intruziunilor bazate pe metoda „misuse detection” folosește reguli pentru a descrie aspectele care trebuie căutate în sistem în cursul procesului de detecție.
Starea sistemului este reprezentată într-o bază de cunoștințe constând într-o bază de fapte și o bază de reguli. O bază de fapte este o colecție de aserțiuni care pot fi făcute pe baza datelor acumulate din înregistrări de evaluare sau direct din monitorizarea activității sistemului. Baza de reguli conține acele reguli care descriu scenarii de intruziuni cunoscute sau tehnici generice de atac.
Reprezentări ale scenariului de intruziune bazate pe stare. În reprezentările bazate pe stare, perechi atribut-valoare caracterizează stările sistemelor de interes. Acțiunile care contribuie la scenariile de intruziune sunt definite ca tranziții între stări. Fiecare acțiune schimbă valoarea atributului sau atributelor de interes. Scenariile de intruziune sunt definite în forma unor diagrame de tranziții de stare. Nodurile acestor diagrame reprezintă stările sistemului, iar arcele reprezintă acțiuni relevante pentru intruziune. Acțiunea reprezentată de un arc cauzează o tranziție între stări și determină modul în care valorile atributelor stării precedente se modifică ca rezultat al tranziției.
Fig. 6. Diagramă generică de tranziție de stare pentru un sistem afectat de intruziune.
O diagramă de tranziție de stare care definește un scenariu de intruziune constă într-o stare inițială (starea anterioară declanșării intruziunii) și o stare compromisă (care este starea sistemului după ce intruziunea s-a realizat efectiv), așa cum este ilustrat, de exemplu, în figura 2. Între cele 2 stări există un număr de stări intermediare (tranzitorii). Acțiunile de interes sunt cele pe care le-ar efectua un intrus (atacator) pentru a aduce sistemul în starea compromisă. Acțiunile care nu implică un arc etichetat pornind de la o stare curentă (care poate fi starea inițială sau o stare intermediară) sunt ignorate în raport cu obiectivele scenariului specific de intruziune. Dacă s-a atins o stare finală (compromisă), înseamnă că a apărut o intruziune. O acțiune care cauzează tranziția la starea finală în diagramă indică o intruziune. În aceste condiții, un motor separat de decizie determină ce acțiune trebuie efectuată.
4.1.4.Clasificarea sistemelor de detectare a intruziunilor
Sistemele de detectare a intruziunilor bazate pe gazduire se pot împărți în trei categorii principale, fiecare tip de produs poate oferi, opțional,capabilități de prevenire a intruziunilor :
IDS de retea(Network IDS – NIDS)Network Intrusion Detection System;
IDS bazat pe aplicație;
IDS de rețea(Host IDS – HIDS)Host-based Intrusion Detection System.
N.I.D.S – Network Intrusion Detection System
Aceste sisteme IDS detectează atacuri prin capturarea și analizarea pachetelor de date care circulă prin rețea. Interceptând datele dintr-un segment de rețea sau cele care trec printrun switch, un IDS bazat pe rețea poate monitoriza traficul de rețea care ajunge la multiple hosturi conectate la respectivul segment de rețea.
Un sistem NIDS presupune dezvoltarea de echipamente de probă (senzori) în interiorul rețelei ce au rolul de a captura și analiza traficul ce traversează rețeaua. Acești senzori detectează activitățile neautorizate și suspecte în timp real și iau măsurile necesare atunci când este cazul. Senzorii pot fi amplasați în puncte bine stabilite ale rețelei ce permit administratorilor de securitate să monitorizeze activitatea rețelei în timp ce aceasta este în lucru, fără să se țină seama de locația țintei supusă atacului. Senzorii NIDS sunt, de regulă, reglați pentru analiza detecției intruziunilor. Sistemul de operare respectiv este curățat de serviciile de rețea care nu sunt necesare în timp ce serviciile esențiale sunt securizate.
Figura 7. Sisteme de detectare a intruziunilor bazate pe rețea
Asemenea unui sistem HIDS, un sistem NIDS se poate baza pe detecție activă sau pasivă. Într-o implementare clasică, senzorii sunt localizați la punctele de intrare în rețea ce protejează segmentele de rețea critice. Segmentele de rețea au resurse atât interne cât și externe. Senzorii raportează unui server central (denumit Director) localizat în interiorul firewall-ului companiei.
Sisteme de detectare a intruziunilor bazată pe aplicație
IDS bazate pe aplicație. Sistemele IDS bazate pe aplicație constituie un subset special de sisteme. IDS bazate pe host care analizează evenimentele apărute în cadrul execuției unei aplicații software. Cele mai comune surse de informații utilizate de astfel de sisteme de detecție a intruziunilor sunt fișierele de evidență (log) a evenimentelor create implicit de aplicația respectivă.
În cazul sistemelor suport pentru aplicații practice cu cerințe ridicate privind protecția datelor și a altor tipuri de resurse implicate, o soluție IDS eficientă trebuie să prezinte următoarele caracteristici:
• să fie ușor de operat;
• să fie adaptabile prin setarea adecvată a diverșilor parametri specifici proceselor de detecție/ prevenire a intruziunilor, pentru a nu stânjeni funcționarea normală a aplicației;
• să ruleze continuu;
• să fie tolerantă la defecte;
• să determine o încărcare minimală a sistemului;
• să determine precis devieri de la comportamentul normal;
• să fie bine adaptată pentru cerințele specifice ale sistemului protejat;
• să fie ușor de întreținut;
• să se bazeze pe implementări pentru care se asigură actualizări periodice ale semnăturilor;
• să fie capabilă să țină evidența evenimentelor, și să stocheze datele respective într-o locație securizată, de asemenea să asigure trimiterea de mesaje de alertă către administratorii de securitate.
Host-based Intrusion Detection System (HIDS)
Un sistem de detecție a intruziunilor bazat pe gazdă (H.I.D.S ) asigură un audit pentru fișierele log, fișierele de sistem și resursele de pe calculatoarele gazdă. Un avantaj al unui sistem HIDS este acela că poate monitoriza procesele sistemului de operare și poate proteja resursele critice ale sistemului, inclusiv fișierele ce pot exista doar pe un anumit host. Acest lucru presupune că poate anunța administratorii de rețea atunci când procesele externe încearcă să modifice un fișier de sistem într-o manieră de program de tip “back door”.
Sistemele HIDS sunt utilizate în detecția modificărilor fișierele de configurare generale ale sistemului și a binarelor, în general prin crearea unei semnături criptografice unice pentru fișiere și stocarea acestora într-o locație sigură. În mod regulat (cum ar fi, zilnic), semnătura stocată știută a fi corectă este comparată cu cea generată din copia curentă a fiecărui fișier, pentru a determina dacă fișierul a fost modificat. Sistemele HIDS sunt o modalitate bună de a detecta modificările nepermise sistemului, dar necesită mai multă muncă pentru a le implementa și utiliza corect.
O modalitate simplă de detecție a intruziunilor pe gazdă este aceea de activare a fișierelor de log pe gazda respectivă. Acest procedeu poartă numele de detecție pasivă. În acest caz se va necesita o mare cantitate de analiză manuală a acestor fișiere de tip log. Mecanismele software de detecție a intruziunilor necesită un agent software instalat pe fiecare gazdă pentru monitorizarea activității executate pe/către gazdă. Software-ul agent rulează o analiză de detecție a intruziunilor și protejează gazda.
Într-o implementare tipică HIDS, agenții sunt instalați pe servere accesibile public, cum ar fi serverele de mail și cele de aplicații. Agenții raportează evenimentele unei console server central situată în interiorul firewall-ului companiei sau poate trimite un e-mail administratorului de rețea. În acest caz software-ul agent are rolul de protecție a serverului consolă.
Mecanismele HIDS pot oferi suport atât pentru detecția pasivă cât și pentru cea activă. Detecția activă poate fi setată să închidă conexiunea de rețea sau să stopeze serviciile implicate. Acest lucru are avantajul că poate să analizeze rapid un eveniment și să ia măsuri de corecție în acest sens. Alți producători de sisteme HIDS: Symantec, Internet Security Systems (ISS) și Enterasys. Programul StormWatch de la Okena (formă achiziționată de Cisco în 2003) este un program de “prevenire a intruziunilor" ce folosește agenți inteligenți ce rulează pe desktopul utilizatorilor pentru monitorizare; ei interceptează, aprobă sau resping o cerere venită din partea unei aplicații către sistemul de operare pe baza unei politici de securitate a clientului.
Un alt produs bun HIDS este Primary Response 2.2 de la Sana Security, valabil pentru Microsoft Windows și Sun Solaris.
Host-based Intrusion Detection Systems (HIDS) poate fi folosit pentru a determina dacă un sistem a fost compromis și administratorii pot avertiza în cazul în care acest lucru se întâmplă.
Sistemelor de detectare a intruziunilor bazate pe gazduire au și unele dezavantaje, cum ar fi:
Un HIDS poate detecta anomaliile nedetectate de NIDS, dar un HIDS nu poate detecta atacurile de rețea sau atacurile altor rețele;
Un HIDS consumă resure de la calculator pentru a monitoriza, reducand astfel din performanțele sistemului;
HIDS impine câte o instalare pentru fiecare server, care trebuie monitorizat și necesită o atenție administrativă la fiecare punct de instalare, în timp ce NIDS necesită doar un punct unic de instalare.
Sistemele de detectare a intruziunilor bazate pe gază se pot instala pe orice calculator, laptop sau mașină virtuală, ca în Figura7 atașată mai jos.
Figura 8. Instalarea HIDS pe orice sistem
Sunt patru caracteristici ale sistemelor de detectare a intruziunilor bazate pe host:
– monitorizarea sistemului de fisiere;
– analiza fișierelor de logarea;
– analiza conexiunii;
– kernel-ul pe bază de detectare a intruziunilor.
Implementari de sisteme de detectie a intruziunilor utilizează în general una din aceste patru metode pentru a detecta intruziunile. Am studiat mai multe implementări determinand caracteristicile lor, modul de a eluda restricțiile și modalități de prevenire a daunelor. Ne-au dat, de asemenea, introspecție în motivele pentru care anumite sisteme ar trebui sau nu ar trebui să fie folosite și în ce măsură, bazată pe eficiența acestora și ușurința de configurare si intretinere.
Monitorizarea sistemelor de fisiere
Implementările care utilizează sistemul de fișiere pentru monitorizare compara fișierele de pe o mașină cu informațiile culese anterior cu privire la fișier, cum ar fi dimensiunea, proprietarul, și data ultimei modificări. În acest fel, în cazul în care un atacator obține acces la sistem, si modifică fișierul, modificarile vor fi detectate. De aceea, putem spune că, o caracteristică de bază a sistemelor de detectare a intruziunilor este monitorizarea fișierelor, de aici rezultând si ușurința instalării și întreținerea sistemului.
Principalele riscuri în cadrul monitorizării sistemelor de fișiere sunt:
Modificări în cadrul permisiunilor unui fișier sau director, și adaugarea sau îndepartarea de suid/sgid/sticky bits sunt detectați.
Dimensiunea – dacă un fișier își schimbă dimensiunea (prin diminuare sau prin creștere), aceasta modificare este raportată.
Proprietarul/grupul – în cazul în care proprietarul sau grupul unui fișier sau diector este schimbat, acest lucru este detectat.
Lista cu dimensiunea – adăugarea sau ștergerea de fișiere într-un director este detectată.
Tipul de document – dacă de exemplu, un fișier este înlocuit cu un director sau dispozitiv cu același nume, acest lucru este detectat.
Configurarea si menținerea sistemelor de monitorizare
Pentru a configura o monitorizare a sistemelor de fișiere, trebuie efectuate o serie de masuri. În primul rând fișierele și directoarele care vor fi verificate trebuie să fie specificate, împreună cu controalele care sunt efectuate pe fiecare element. După aceea va fi creată o bază de date, care va fi folosită pentru a compara fisierul aflat în baza de date cu fisierul existent. Aceasta baza de date trebuie sa existe pentru a verifica cat mai ds fișierele (poate zilnic).
Configurarea fișierelor. AIDE și Mtree utiliza o abordare diferită atunci când vine vorba de configurare. AIDE utilizează un fișier de configurare în care toate fișierele și directoarele care trebuie verificate sunt specificate, împreună cu controale care trebuie efectuate. Mtree folosește o abordare diferită. Nu folosește un fișier de configurare pentru a specifica care controale sunt efectuate asupra fișierelor și directoarelor. În schimb, acesta cere utilizatorului să specifice un director care va fi verificat recursiv, și un număr de controale care trebuie efectuate pe acest director.
Controlul. Monitorizarea sistemele de fișiere, în general, nu folosesc o abordare în timp real. Ei verifică fisierele in mod regulat. Ambele implementări testate au o comandă pentru a compara sistemul de fișiere cu o comandă de baze de date file.
Există multe lucruri pe care un atacator le poate face pentru a evita monitorizarea sistemelor de fișiere. Lista de mai jos arată acele tehnici care nu necesită existența unui bug pentru punere în aplicare, sau achiziționarea de drepturi de root pe sistemul țintă. Aceste tehnici sunt posibile mai ales din cauza faptului ca monitorizării sistemelor de fișiere nu face verificarea lor în timp real, dar de obicei o dată pe zi.
– Utilizarea directoarelor – Conținutul de directoare, cum ar fi /tmp au tendința de a schimba o mulțime. Din acest motiv ele nu pot fi încorporate într-un control sistem de fișiere. Aceasta oferă unui atacator un loc bun pentru a stoca fișiere, acesta fiind considerat un dezavantaj;
– Ascunde între alarme false – Instalarea aplicațiilor pot crea o mulțime de alarme false. Acesta este un dezavantaj, activitatea celui care doreste sa altereze fisierul ar putea să nu fi observat între toate alarmele false;
– Eliminarea urmei de fișiere de jurnal – sistemele de fișier monitorizate sunt limitate la cel puțin un subiect, care poate ajuta un atacator. Acest subiect este de monitorizare de fișiere de jurnal. Din moment ce fișierele de jurnal tind să crească în dimensiuni mari, verificându-le pentru o schimbare în mărimea sau hash-ul acestora este inutil;
– Folosirea hashului – Lucrurile devin mult mai dificile pentru un atacator dacă sistemul de fișier monitorizat utilizează hash (un rezumat) pentru a verifica fișierele. Acest tip de control nu poate fi eludat dacă atacatorul este capabil de a schimba conținutul fișierului, păstrând în același timp hash la fel.
Un sistem de detectare a intruziunilo bazată pe gazdă oferă siguranța împotriva atacurilor.
Figura 9. Functionare unui H.I.D.S.
În exemplul de funcționare a unui sistem Host-based Intrusion Detection este prezentat mai sus. În exemplul de mai sus avem urmatorii pași:
1. Un atac se produce de catre o persoană rău intenționată (hacker) la serverele care sunt vulnerabile prin trimiterea unui pachet;
2. În cazul în care atacul reușește, acesta va genera și un program de virusare a fișierelor. Agentul sistemului de detectare a intruziunilor bazat pe gazdă ar putea bloca acest program prin limitarea aplicațiilor care sunt permise pentru a rula pe sistem;
3. Dacă programul care generează viruși se execută cu succes, aceasta va copia un virus Trojan în directorul de sistem local. Un agent de sistem de detectare a intruziunior bazat pe gazdă ar putea bloca virusul Trojan de pe Disk prin monitorizarea tuturor fișierelor și activitaților și blocarea accesului la directorul de sistem.
4. În cazul în care virusul Trojan este copiat în fișier, acesta poate crea numeroase modificari în cadrul documentelor. Un sistem HID poate opri acest proces prin monitorizarea tuturor activităților pe care le poate face acest virus.
5. Virusul Trojan este activat la pornire, un agent care folosește HIDS poate bloca acest virus înca de la faza incipientă, înca de la Pasul2;
6. Dacă virusul Trojan îi este permis să acționeze, acesta se va conecta la tot sistemul și întreaga rețea, atacând mașini noi, în acelaș mod ca la Pasul1.
Prevenirea modificării fișierelor. Pentru o securitate cat mai sigura a fișierelor este nevoie de urmatoarele :
Configurarea atenta a sistemului de monitorizare – Un administrator trebuie să analizeze cu atenție care fișiere și directoare sunt incluse (sau să excluse) la configurare, și efectuarea controalelor pe fiecare fișier sau director, aceasta operatiune poate avea și un dezavantaj, și anume: timpul;
Utilizarea unui nivel de securitate BSD – pentru a împiedica un atacator de la schimbarea sistemului de operare de timp sau date, din cadrul fișierului, putem folosi acest nivel de securitate;
Utilizarea hash-ului (rezumatului) pentru verificare – Deoarece un număr de atribute (de exemplu atime, mtime și dimensiunea) poate fi restaurat de un atacator dupa schimbarea conținutul unui fișier, verificarea hash trebuie să se facă atunci când este posibil;
Compilarea cu biblioteci statice – În cazul în care un atacator modifică bibliotecile dintr-un sistem, acest lucru nu ar trebui să afecteze IDS-ul. Pentru a realiza acest IDS ar trebui să fie compilate cu biblioteci statice, pe un sistem care nu a avut nici o legătură cu lumea din afara, adica sa nu fi avut acces la internet;
Prevenirea modificarilor în cadrul IDS-ului – Pentru a preveni si mai mult modificarea IDS de catre un atacator, atât baza de date cat și alte date, ar trebui să fie stocate pe suport numai pentru permisiuni de citire a datelor, nu și pentru permisiuni de scriere (moificare) a materialelor.
Îmbunătațiri ale sistemelor de detectarea a intruziunilor cu ajutorul monitorizării sistemelor de fișiere sunt urmatoarele:
Detectarea imediată a alterării datelor – acest tip de detectare a modificarilor elimină posiblitatea ca atacatorul să restabilească fișierul sau dirctorul. Detectarie în timp real pot fi posibile cu ajutorul funcțiilor kqueue(2) și kevent(2);
Detectarea anomaliilor – detectarea anomaliilor pot ajuta la detectarea intruziunilor dintr-un fișier. De exemplu daca avem un fișier care contine date de un anumit domeniu și descoperim ca în cadrul aceluiaș fișier sunt și anomalii, ne putem da seama că documentul a fost modificat;
Testarea securizarii datelor – datele trebuie sa fie atent testate cu privire la modul în care informațiile reacționeaza la evaziune și la alte atacuri înainte de a fi puse la dispoziția utilizatorilor.
Se poate observa ca monitorizarea fișierelor este necesară pentru a evita modificarea documentelor de catre persoanele care nu au permisiuni de modificare a fișierului.
Logarea la fișier, prin analiza fișierelor de jurnal și prin verificarea fișierelor (daca au apartut intruziuni), un sistem de detectare a intruziunilor poate avertiza administratorul de sistem cu privire la posibilele intruziuni. Pentru detectia intruziunilor exista doua implementări de referinta: Swatch si Sec.
Swatch – poate emite avertismente folosind mesaje multiple, fiind o implementare open-source si usor utilizabilă de către program. Sec poate fi vazuta ca o evolutie de catre Swatch, dar adaugă unele complexități de la acest principiu simplu. Sec a fost ales ca o implementare de referință a unui complex instrument suficient pentru a fi destul de diferit de Swatch.
Prin evaluarea atât a lui Swatch cât și a lui Sec, am putut vedea avantajele și dezavantajele ambelor cereri mai clar mai ales dacă am avea doar un singur program pentru a testa, acestea fiind create pentru a corela între evenimente.
Logarea la fișier are în vedere:
Potrivirea datelor din fișierul de vizualizare cu fișierul din baza de date;
Potrivirea fișierelor și corespondența între evenimente, în cazul în care apar modificari;
Detectarea anomaliilor.
Swatch are următoarele trăsături:
-aplicarea (extinsă) expresiilor regulate pentru fișierele de jurnal;
-avertizarea unui utilizator logat care are drepturi de scriere;
-executarea unei comenzi prestabilite în linie de comandă;
Sec oferă aproape aceleași caracteristici ca și Swatch, dar adaugă următoarele caracteristici:
Adaugă un produs pentru un context.
Acelaș fișier sau altul folosind un alt nume, pot fi folosite folosind un alt nume;
Sec este folosit numai când există un fișier sau o informație;
Atribuirea de valori unor variabile pentru a fi folosite mai târziu;
Crearea de evenimente în funcție de ora și data curente;
Din caracteristicile de mai sus rezulta că Sec este un instrument mult mai puternic decât Swatch.
Instalarea și configurarea
Swatch si Sec sunt scrise in limbajul de programare Perl și constau dintr-un singur script și un fișier de configurare. De exemplu Swatch poate monitoriza un fișier de intrare în timp ce Sec poate monitoriza mai multe fișiere. Acest lucru limitează utilizarea severul Swatch în medii mari, unde mai multe fișiere trebuie să fie supravegheate. Sec accepta un model pentru fișierul de intrare ca argument și poate fi folosit pentru a modifica mai multe fișiere simultan.
Fișiere de configurare pentru ambele cereri sunt destul de simplu de configurat. Ambele au o sintaxa simplă. Un exemplu ar fi cel de jos:
watchfor /error/
mail [anonimizat],subject=Error
Sec: type=Single
desc=Match ’error’ and mail the admin
ptype=RegExp
pattern=error
action=pipe ’%t: $0’ /usr/bin/mail -s "Error" [anonimizat]
Chiar și cu Sec, există un set limitat de comenzi, un set limitat de tipuri de reguli, și un set limitat de acțiuni. În mod concret, acest lucru înseamnă că configurarea Sec și Swatch nu este foarte dificilă în sine. Cu toate acestea , aceste reguli vor trebui să fie respectate, dar pot duce la erori de configurare sau la un rezultat neașteptat din cauza presupunerii incorecte.
Funcțiile Sec și Swatch au acea dependență de fișiere de configurare, pentru compararea fișierului initial cu fișierul expus pentru vizualizare.
Când Sec sau Swatch sunt folosite pentru a monitoriza fișiere de jurnal mai dinamice, cum ar fi Apache, întreținerea devine mult mai dificilă. Un exemplu poate fi cazul în care un administrator de lucru pentru o gazduire vrea să monitorizeze jurnalele Apache pentru tentative de intruziuni este o gazduire partajată.
Sistemele de detectare a intruzilor bazate pe gazduire sunt programe care au un cod scris într-un limbaj de programare de genul : Perl, Visual C, ASP, PHP și care eventual ruleaza pe Apache.
Atunci când funcțiile Sec și Swatch sunt utilizate pentru șiruri de caractere de potrivire într-un context mai mult sau mai puțin statice, cum ar fi, de exemplu, producția de daemon SSH, întreținerea lor este realizabilă. Cu toate acestea, funcțiile Sec și Swatch sunt analizate pentru o mai buna folosire a acestora în domeniul detectării de anomalii intenținate sau mai putin intenționate.
O opțiune periculoasă existentă în cele două Swatch și Sec este stabilirea unui prag de potrivirea liniilor de intrare. Aceasta înseamnă că Swatch și Sec va efectua doar o acțiune în cazul în care un număr definit de mecanisme/actiuni au avut loc. Când utilizați Sec sau Swatch pe fișierele de jurnal dinamice, există un risc de a nu detecta anumite evenimente. Un atacator poate folosi tot felul de tehnici de codificare pentru a contracara normele și parolele administratorului.
– Analiza conexiunii – acesta este cea de a treia caracteristică a sistemului de detctare bazat pe gazduire, reprezentând conexiunile care se fac pentru monitorizarile la un sistem. Analiza conexiunii are în vedere configurarea și întreținerea sistemului de monitorizare, dar și tactici de a atenua încercarile de fraudă. Pentru acestea sunt necesare implementări ca Scanlogd și PortSentry, acestea fiind simple și eficiente instrumente de detectare a intruziunilor.
Aceasta permite să detecteze conexiuni neautorizate.
Caracteristici ale monitorizarii bazate pe Scanlogd:
Conexiuni neautorizate TCP – Scanlogd este capabil să detecteze legaturi neautorizate cu porturile TCP și să raporteze acest lucru în cadrul sistemului;
Detectare neobservabilă – Scanlogd monitorizează discret reteaua;
Detecția unui numar mare de intruziuni – Scanlogd poate anunta în cazul în care vor aparea mai multe intruziuni în acelaș timp;
PortSentry este o implementare mai avansată, cu următoarele caracteristici :
Conexiunile UDP și TCP neautorizate – PortSentry este capabil să detecteze pe ambele porturi UDP și TCP;
Blocarea gazdei – cea mai mare diferenta între Scanlogd și PortSentry este că acesta din urmă permite blocarea gazdei care încearcă să aducă disfuncționalități fișierului sau retelei; Scopul acestei conexiuni este de a preveni modificari sau scanari în cadrul sistemului;
Afișarea unui mesaj – o opțiune PortSentry avantajos este acela de a afișa un mesaj informațional în cazul în care apar intruziuni, mult mai avantajos decât dacă fișierul s-ar bloca.
Analiza conexiunilor monitorizate este necesară în cadrul sistemului de detcectare a intruziunilor bazata pe gazduire. Pentru un administrator, timpul este suficient atunci când afla ca informațiile au fost alterate, iar cu ajutorul Scanlogd și PortSentry sistemul nu este blocat.
-Detectarea intruziunilor bazate pe Kernel- este cea de a patra caracteristică a sistemului de detectare a intruziunilor.
Exista multe modalități de a detecta intruziunile bazate pe Kernel, cateva dintre ele sunt :
– detectarea anomaliilor bazată pe metoda utilizată pentru detectare anomaliilor (de exemplu: tripwire, aide, yafic, osec etc)
– scanarea porturilor logate;
– modificari aduse fișierelor binar de sistem;
– detectarea anomaliilor în cel mai scurt timp.
Există doua nucleuri în cadrul sistemului: LIDS și IDSpbr. LIDS este mult mai bogat datorită domeniului mai larg de aplicabilitate. Cu toate acestea ambele îndeplinesc acelaș scop: detectarea intruziunilor în funcționalitatea Kernel-ului.
Trasaturi LIDS :
-protecția fișierului și directorului și prevenirea modificarilor chiar de root;
-prevenirea I/O care au loc în cadrul fișierului
-protejarea proceselor prin blocarea semnalelor dacă este posibilă utilizarea neautorizată a informațiilor;
-blocarea retelelor de manipulare, cum ar fi schimbarea setărilor firewall;
-trimiterea de alerte de securitate folosind SMTP.
Un proces poate avea mai multe capacități care îi sunt încredințate, care suprascriu setările la nivel de LIDS. Acestea sunt avantaje deoarece se pot utiliza anumite caracteristici ale Kernel-ului.
Atât LIDS cât și IDSpbr au baza propriilor merite. Funcțiile LIDS pot fi efectiv folosite ca o modalitate de a proteja sistemul împotriva modificărilor și poate fi folosit pentru a avertiza un administrator atunci când cineva încearcă să manipuleze sistemul. IDSpbr este capabil de a detecta multe dintre exploatarile de astazi, dar mai este nevoie de cercetare pentru a se face mai util pentru a rula mai eficient.
Problemele de securitate care afectează sistemele informatice și rețelele conectate la Internet impun utilizarea unor soluții care să aibă în vedere diferitele tipuri de incidente și amenințări care pot afecta resursele de date necesare aplicațiilor, precum și sistemele suport.
Sistemele de detecție/prevenire a intruziunilor asigură mecanisme pentru detectarea activităților suspecte de a fi considerate ca având caracter intruziv, și care pot afecta integritatea datelor și a aplicațiilor implementate. Detecția intruziunilor, ca atare, nu este însă suficientă pentru a limita consecințele intruziunilor diverșilor atacatori, din interiorul sau din exteriorul unei rețele organizaționale. Acest lucru se explică prin faptul că metodele actuale de detecție a intruziunilor sunt operaționale din momentul în care au fost deja inițiate interacțiuni între intruși externi și sistemele pe care aceștia le accesează în scopul obținerii neautorizate de informații confidențiale sau în scopul perturbării funcționării normale a serviciilor acestora. De aceea, soluțiile inovatoare de implementare a sistemelor de detecție a intruziunilor trebuie să includă și componenta funcțională de prevenire a activităților cu caracter intruziv. Provocarea majoră, în acest caz, se referă la faptul că implementarea unui mecanism eficient de prevenire a intruziunilor poate afecta funcționalitatea normală a sistemului care trebuie protejat. Prin urmare, necesitatea implementării de soluții eficiente pentru detecția/prevenirea intruziunilor implică asigurarea unor metode de detecție și prevenire care să nu afecteze serviciile furnizate de sistem, dar și să prevină consecințele actțiunilor frauduloase lansate de către intruși din exteriorul rețelei organizaționale.
5.Soluții pentru asigurarea integrității fișierelor
Importanța aspectelor de securitate în retelele de calculatoare a crescut odată cu extinderea prelucrărilor electronice de date și a transmiterii acestora prin intermediul rețelelor. În cazul operării asupra unor informații confidentiale, este important ca avantajele de partajare și comunicare aduse de rețelele de calculatoare să fie sustinute de facilități de securitate substanțiale. Acest aspect este esential în condițiile în care retelele de calculatoare au ajuns să fie folosite inclusiv pentru realizarea de operatiuni bancare, cumpărături sau plata unor taxe. În urma implementării unor mecanisme de securitate într-o rețea de calculatoare, informațiile nu vor putea fi accesate sau interceptate de persoane neautorizate (curioase sau, eventual, chiar rău intenționate) si se va împiedica falsificarea informațiilor transmise sau utilizarea clandestină a anumitor servicii destinate unor categorii specifice de utilizatori ai rețelelor. Persoanele care atentează la securitatea retelelor pot apartine unor categorii diverse, comitând delicte mai mult sau mai putin grave: "hacker"-i care testează securitatea sistemelor sau urmăresc să obtină în mod clandestin anumite informatii, angajați care pretind că au atribuții mai largi decât în realitate, accesând servicii care în mod normal le-ar fi interzise, sau foști angajați care urmăresc să distrugă informații ca o formă de răzbunare, oameni de afaceri care încearcă să descopere strategiile adversarilor, persoane care realizează fraude financiare (furtul numerelor de identificare a cărtilor de credit, transferuri bancare ilegale etc.), spioni militari sau industriali care încearcă să descopere secretele / strategiile adversarilor, sau chiar teroristi care fură secrete strategice.
Soluțiile bune de securitate permit administratorilor de rețea să ofere servicii îmnubătățite clienților. În acest sens se pot oferi următoarele beneficii:
Se permite utilizarea de noi aplicații și servicii de rețea;
Se reduc costurile de implementare și operare a rețelei ;
Internetul devine un mediu de comunicație global, cu costuri scăzute
Dintr-un punct de vedere mai pragmatic, implementarea unor mecanisme de securitate în retelele de calculatoare de arie largă, în particular – Internet-ul, priveste următoarele aspecte:
1. bombardarea cu mesaje – asa numitul spam – trimiterea de mesaje nedorite, de obicei cu un continut comercial;
2. rularea unui cod (program) dăunător, adesea de tip virus – acesta poate fi un program Java sau ActiveX, respectiv un script JavaScript, VBScript etc. ;
3. infectarea cu viruși specifici anumitor aplicații – se previne prin instalarea unor programe antivirus care detectează virușii, devirusează fisierele infectate si pot bloca accesul la fisierele care nu pot fi "dezinfectate". În acest sens, este importantă devirusarea fisierelor transferate de pe rețea sau atașate mesajelor de mail, mai ales dacă conțin cod sursă sau executabil, înainte de a le deschide / executa.
4. accesarea prin rețea a calculatorului unui anumit utilizator si "atacul" asupra acestuia; La nivelul protocoalelor de retea, protejarea accesului la un calculator sau la o retea de calculatoare se realizează prin mecanisme de tip fire-wall, prin comenzi specifice; acestea pot fi utilizate și în sens invers, pentru a bloca accesul unui calculator sau a unei rețele de calculatoare la anumite facilități din Internet.
5. interceptarea datelor în tranzit si eventual modificarea acestora – snooping. Datele se consideră interceptate atunci când altcineva decât destinatarul lor le primeste;
6. expedierea de mesaje cu o identitate falsă, expeditorul impersonând pe altcineva (pretinde că mesajul a fost trimis de la o altă adresă de postă electronică) spoofing. Această problemă se revolvă prin implementarea unor mecanisme de autentificare a expeditorului.
Se poate remarca faptul că problemele ridicate la punctele 3 si 4 sunt riscuri generice, specifice pentru utilizatorii care fac schimb de fișiere si respectiv pentru toți cei care sunt conectați la o retea de calculatoare – locală sau de arie largă. Problemele de interceptare si autentificare, cele mai importante din punctul de vedere al utilizatorilor obișnuiți, sunt rezolvate prin aplicarea unor tehnici de codificare.
Pentru asigurarea securității rețelei este importantă implementarea unor mecanisme specifice pornind de la nivelul fizic (protectia fizică a liniilor de transmisie), continuând cu proceduri de blocare a accesului la nivelul rețelei (fire-wall), până la aplicarea unor tehnici de codificare a datelor (criptare), metodă specifică pentru protectia comunicării între procesele de tip aplicație care rulează pe diverse calculatoare din rețea.
Pentru asigurarea securității rețelei este importantă implementarea unor mecanisme specifice pornind de la nivelul fizic (protectia fizică a liniilor de transmisie), continuând cu proceduri de blocare a accesului la nivelul rețelei (fire-wall), până la aplicarea unor tehnici de codificare a datelor (criptare), metodă specifică pentru protecția comunicării între procesele de tip aplicație care rulează pe diverse calculatoare din rețea.
În urma implementării unor mecanisme de securitate într-o rețea de calculatoare, informațiile nu vor putea fi accesate sau interceptate de persoane neautorizate (curioase sau, eventual, chiar rău intenționate) și se va împiedica falsificarea informațiilor transmise sau utilizarea clandestină a anumitor servicii destinate unor categorii specifice de utilizatori ai rețelelor.
Informațiile și datele unei organizații trebuie protejate atât intern cât și extern. Utilizarea unui puternic sistem de securitate este una dintre principalele facilități implementate în cadrul internetului.
Utilizarea acestui puternic mecanism de securitate determină o serie de avantaje:
controlul accesului la nivel de fisier / folder / domeniu / proprietate specifica;
integrarea cu mecanismul de auditare pentru urmarirea evoluției oricărei entități eligibile pentru mecanismul de securitate;
implementarea principiilor de securitate pe bază de roluri;
management eficient al drepturilor unui anumit utilizator (vizualizează toate drepturile de acces si administrarea globala și / sau particulară a acestora);
Previne editarea concurentă a unui document;
Previne ștergerea accidentală a documentului sau părți din document;
Asigură editarea versiunii curente de către un singur utilizator la un anumit moment dat.
În urma implementării unor mecanisme de securitate într-o rețea de calculatoare, informațiile nu vor putea fi accesate sau interceptate de persoane neautorizate (curioase sau, eventual, chiar rău intenționate) și se va împiedica falsificarea informațiilor transmise sau utilizarea clandestină a anumitor servicii destinate unor categorii specifice de utilizatori ai rețelelor.
Informațiile și datele unei organizații trebuie protejate atât intern cât și extern. Utilizarea unui puternic sistem de securitate este una dintre principalele facilități implementate în cadrul internetului.
Utilizarea acestui puternic mecanism de securitate are o serie de avantaje:
controlul accesului la nivel de fișier / folder / domeniu / proprietate specifică;
integrarea cu mecanismul de auditare pentru urmarirea evoluției oricărei entități eligibile pentru mecanismul de securitate;
implementarea principiilor de securitate pe bază de roluri;
management eficient al drepturilor unui anumit utilizator (vizualizează toate drepturile de acces si administrarea globala și / sau particulară a acestora);
Previne editarea concurentă a unui document;
Previne ștergerea accidentală a documentului sau parți din document;
Asigură editarea versiunii curente de catre un singur utilizator la un anumit moment dat.
5.1.Tripwire
5.1.1. Definirea utilitarului Tripwire
Tripwire este un utilitar pentru monitorizarea integrității sistemelor de fișiere care poate atenționa administratorul printr-un mesaj în cazul în care detectează faptul că un fișier monitorizat a fost modificat, adăugat sau chiar înlăturat.
Tripwire, asigură integritatea fisierelor, prin monitorizarea fișierelor și directoarelor, identificand modificarile aduse acestora. Acesta realizează acest lucru printr-un regim de verificare care rulează manual la un anumit interval de timp.
Tripwire este un utilitar pentru monitorizarea integrității sistemului de fișiere de pe servere sau stații de lucru. În cazul în care modificările sunt legitime, puteți actualiza baza de date Tripwire pentru a accepta aceste schimbări.
Daca Tripwire detectează faptul că un fișier monitorizat a fost schimbat, acesta notifică administratorului printr-un mesaj. Deoarece Tripwire poate identifica cu usurință dacă fișierele au fost adaugate, modificate sau șterse, viteza de recuperare a datelor este foarte mare, deoarece proprietarul datelor este anunțat in cel mai scurt timp. Aceste abilități face Tripwire un instrument excelent pentru administratorii de sistem care doresc atât detectarea intruziunilor cât si evaluarea daunelor pentru serverele lor.
Tripwire lucrează prin compararea celor doua fișiere : fișierul modificat cu cel nemodificat. Exista fișierul inițial în baza de date, fiind cel nemodificat care se compară cu fișierul care se află la dispoziția utilizatorilor. Dacă datele din fișierul aflat la dispoziția utilizatorilor este modificat se va raporta un mesaj de eroare prin intermediul mail-ului.
Această bază de date conține liniile de bază – care sunt snapshots de fișiere și directoare specificate, la un anumit moment în timp. Conținutului bazei de date de referință ar trebui să fie generate înainte ca sistemul să fie expus riscului de intruziune, ceea ce înseamnă înainte de a fi conectat la rețea.
5.1.2. Instalarea și utilizarea sistemului tripwire
Diagrama următoare arată cum tripwire este instalat precum și modul în care acesta lucreaza cu fișierele:
Figura10. Utilizarea și funcționarea Tripwire
Abordarea schemei :
1. Instalarea tripwire și personalizarea fișierului de politici;
Instalați tripwire RPM. Apoi, personalizați exemplul de configurare și politicile de fișier ( / Etc / Tripwire / twcfg.txtși / Etc / Tripwire / twpol.txt, respectiv), și să ruleze scriptul de configurare, / Etc / Tripwire / twinstall.sh.
2. Inițializarea baza de date Tripwire. Construiește o bază de date a fișierelor de sistem pentru monitorizarea bazei conținutului.
Inițializarea bazei de date construiește o colecție de obiecte de sistem al fișierului. Aceasta baza de date este foarte utilă deoarece servește ca bază pentru controalele de integritate. Pentru inițializarea bazei de date utilizați urmatoarea comanda :
/ Usr / sbin / Tripwire – init.
Aceasta comandă poate dura cateva minute pana va rula. Odata ce s-au realizat cu succes acești pași, tripwire are o baza de date necesară pentru a verifica modificarile care se fac în fișierele critice. Dupa inițializarea bazei de date tripwire, trebuie executată o verificare inițială a integrității. Această verificare ar trebui să se facă înainte de conectarea calculatorului la rețea.
3. Rularea unui control de integritate. În mod implicit, tripwire RPM adaugă un script shell numit tripwire de verificare la / Etc / cron.daily/ . Acest script verifică automat integritatea fișierului odata pe zi.
4. Examinarea fișierului de rapor – putem rula o verificare de integritate tripwire în orice moment, tastând următoarea comandă : / usr / sbin / tripwire
În timpul unui control de integritate, tripwire compară situația actuală a sistemului de fișiere cu proprietățile înregistrate în baza de date. Încalcările sunt înregistrate și o copie a raportului este creată în / Var / lib / Tripwire / report /.
Comanda de afișare a mesajului este : / Usr / sbin / twprint –m r– twrfile / var / lib / tripwire / report / <name>.twr.
De asemenea, puteți utiliza Tripwire pentru a vizualiza întraga baza de date sau informații despre fișierele selectate în baza de date Tripwire.
Pentru a vedea informații despre un fișier special, cum ar fi / Etc / hosts , utilizați urmatoarea comanda :
/ Usr / sbin / twprint-MD – print-dbfile / etc / hosts.
5. Dacă integritatea fișierelor este incalcată, se vor lua masuri de securitate adecvată. Dacă fișierele monitorizate au fost modificate în mod necorespunzător, puteți înlocui fișierul original de la copia de rezervă.
6. Daca modificările sunt valabile și sunt facute de catre adiministrator, se verifică și se actualizează baza de date din dosaru Tripwire.
7. Daca fișierul eșuează politica de verificare, atunci updatează politica fisierul Tripwire. Pentru a modifica lista de fișiere Tripwire, sau modul în care tratează încalcari de integritate, actualizați fișierul pentu a genera o coie a acestuia. / Etc / Tripwire / tw.pol
Mai jos vor fi prezentați pașii de instalare ai programului tripwire pe o masina virtuala, instalarea se face în linie de comandă.
Download Tripwire
Descărcați cea mai recentă versiune Tripwire open source pe site-ul programului Tripwire. Dupa ce programul a fost desărcat, dezarhivați aplicația cu ajutorul comenzii de mai jos, sau pur și simplu dați clik dreapta și apoi “extract here” ca în windows.
#cd/usr/src
#wget http://internap.d1.sourceforget.net/sourceforget/tripwire-2.4.1.2-src.tar.bz2
#bzip2 –d tripwire-2.4.1.2-src.tar.bz2
#tar xvf tripwire-2.4.1.2-src.tar
Instalarea programului tripwire
Instalarea programului într-un fișier, de exemplu /opt/tripwire.Programul se instalează in linie de comandă. Ajungeți cu directorul, unde se află fișierul. În acest exemplu, am instalat tripwire în /opt/tripwire.
# cd tripwire-2.4.1.2-src
#./configure –rrefix=/opt/tripwire
#make
#make install
Crearea bazei de date
Pentru a instala baza de date trebuie să tastăm în linie de comandă următoarele comenzi:
# cd /opt/tripwire/sbin
# ./tripwire –init
Modificarea fișierului de politici tripwire
De exemplu, modificați politica fișierului tripwire /opt/tripwire/etc/twpol.txt. Dacă sistemul dvs. nu are acest fișiere, editați fișierul de politica și comentați aceste rubrici.
(
rulename = ”OS Boot Files and Mount Points”,
)
{
/boot – > $(ReadOnly) ;
# /cdrom – >$(Dynamic) ;
# /floppy – >$(Dynamic) ;
/mnt – > $(Dynamic);
}
Folosind politica fișierelor tripwire putem defini directoarele si fișierele ce necesită sa fie monitorizate pentru schimbări.De asemenea poti fi specifica atributele fișierului ce ar trebui să fie monitorizat sau ignorat.
Mai jos sunt proprietățile sistemului Unix ce sunt monitorizate de tripwire.
Adaugarea fișierelor ,ștergerea si modificarea ;
Permisiunile fișierului și proprietățile acestuia;
Tipul și marimea fișierului;
Verificarea hash-CRC-32, POSIX 1003.2 compliant 32-biți verificarea redundantei ciclice, MD5, Algoritmul de securitate al mesajului cu amprenta RSA; SHA, parte al algoritmului SHS/SHA,HAVAL,un puternic algoritm pe 128 de biți.
Politica fișierului tripwire de updatare
Odată ce politica fișierului a fost modificată, trebuie updatată cum este aratat cu ajutorul comenzii de mai jos:
# ./tripwire –update-policy –secure-mode low ../etc/twpol.txt
Verificarea oricăror schimbări aduse fișierului si updatarea bazei de date tripwire
După ce setupul tripwire este definitivat, ar trebui desfasurate regulat verificari pentru a afla ce fișiere au fost adăugate sau modificate de la ultima updatare a bazei de date tripwire. Putem realiza această verificare din linia de comanda :
# ./tripwire –check –interactive
Aceasta va deschide automat urmatorul fișier raport in vi, unde putem revizui toate fișierele ce au fost adaugate sau modificate sistemului. Așa cum este arătat in continuare, fișrele de adăugare sau modificare vor avea un semn de verificare, astfel indicand că acceptăm modificarile să fie updatate bazei de date tripwire.
Cum să vedem fișierul raport fwr?
Toate fișierele raport cu extensia *.twr sunt stocate in directorul opt/tripwire/lib/tripwire/report. Fișierul raport tripwire nu este un fisier text ce poate fi văzut direct.Pentru a putea fi vazut acest raport trebuie sa folosim twprint pentru convertirea fișierului *.twr într-un fișier ce poate fi citit.
# ./twprint –print-report –twrfile \
/opt/tripwire/lib/tripwire/report//prod-db-srv-20081204-11433.twr > \
/tmp/readable-output.txt
Monitorizarea integrității sistemului linux
De exemplu, adăugăm urmatoarea linie pentru a se executa verificarea tripwire zilnic la ora 4.00 pm.
# Tripwire Monitor process
00 4 * * * /opt/tripwire/sbin/tripwire – – check
Configurarea Tripwire si locațiile politicii fișierului
Utilizăm twadmin pentru a vizualiza politica curentă a fișierului
#./twadmin –print-polfile
Doar o iesire partială este aratată în continuare:
# ./twadmin –print – cfgfile
5.1.3. Comenzi utile in tripwire
Cele mai utile comenzi pentru utilitarul tripwire sunt :
Instalarea bazei de date
Tripwire –init
Verificarea integrității fișierelor în cadrul sistemului
Tripwire –check
Examinează raportul verificării integrității
twprint -m r –twrfile /var/lib/tripwire/report/<name>.twr | less
Vizualizarea informațiilor din baza de date Tripwire pe sistemul nostru
twprint -m d –print-dbfile /etc/hosts
Vizualizați informațiile din baza de date tripwire într-un fișier specificat
twprint -m d –print-dbfile /etc/hosts
Actualizarea bazei de date Tripwire
tripwire –update –twrfile /var/lib/tripwire/report/<name>.twr
Updatarea politicii de fișier tripwire și crearea unei versiuni de text a politicii de fișier dacă nu aveți deja unul
twadmin –print-polfile > /etc/tripwire/twpol.txt
Este nevoie de re-inițializarea bazei de date. În primul rând este nevoie de a elimina baza de date veche:
rm /var/lib/tripwire/bob.domain.com.twd
rescrierea bazei de date
tripwire –init
Pentru a configura tripwire la rapoarul emailului pentru încălcări în conturile specificate, adăugați parametrul emailto la directivele
(
rulename = "Networking Programs",
severity = $(SIG_HI),
emailto = [anonimizat];[anonimizat]
)
trimite un email de testare
tripwire –test –email [anonimizat]
5.2. AIDE (Advanced Intrusion Detection Environment)
5.2.1. Definirea utilitarului AIDE
AIDE este un sistem Host-Based Intrusion Detection System (HIDS), o altă alternativă gratuită a lui Tripwire. Sistemele HIDS sunt utilizate în detecția modificărilor în fișierele de configurare generale ale sistemului , în general prin crearea unei semnături criptografice unice pentru fișierele și stocarea acestora într-o locație sigură. În mod regulat, semnătura stocată știută a fi corectă este comparată cu cea generată din copia curentă a fiecărui fișier, pentru a determina dacă fișierul a fost modificat. Sistemele HIDS sunt o modalitate bună de a detecta modificările nepermise sistemului, dar necesită mai multă muncă pentru a le implementa și utiliza corect.AIDE este un program disponibil gratuit la http://sourceforge.net/projects/aide;
Rami Lehti, în manualul AIDE, declară că ”din nefericire, AIDE nu poate oferi siguranță absolută referitor la modificările de fișiere. Ca orice alte fișiere sistem, fișierele AIDE pot fi modificate”. Cu ajutorul sistemului de detectare AIDE puteți detecta modificarile care ar putea să apară, acestea putând fi trimise prin e-mail, în care vor fi informații cu privire la fișierele modificate. De asemenea, este susținută și sprijinită în totalitate de catre Trend Micro.
Programul, destinat sistemelor de tip Unix, apărut ca urmare a trecerii în versiune comercială a lui Tripwire, operează prin crearea unei baze de date cu fișiere specificate. Atributele conținute în baza de date sunt: permisiunile, numărul de inod, utilizatorul, grupul, dimensiunea fișierului, momentul modificării (mtime), momentul accesului(atime), dimensiunea de creștere și numărul de legături. Programul are o serie de neajunsuri, dar utilitarul AIDE poate fi caracterizat ca un verificator a integrității fișierelor pentru sistemele de operare in UNIX.
5.2.2. Sistemul de funcționare a utilitarului AIDE
Scopul său principal este de a furniza rapoarte privind integritatea datelor pe sistemul de fișiere acceptat. Prin rularea de mai multe ori pe sistemul de gazduire AIDE puteti determina ce fișiere sunt în schimbare.
1. Gazda țintă;
2. Gazda de încredere (folosește o cheie publică la gazda țintă)
Conceptu sistemului de detectare a intruziunilor bazat pe gazdă AIDE:
1. Adaugați fișierele în servărul de gazduire;
2. Inițializați baza de date AIDE ssh root@hostserver "aide –init";
3. Copie a bazei de date la root-ul scp root@hostserver:/path/repo/repo/db1;
4. Inițializarea bazei de date ssh root@hostserver "aide –init";
5. Copia bazei de date ssh root@hostserver:/path/repo2/repo/db2;
6. Compara baze de date și va rezulta raportul – comară db1 cu db2 | mail –s “report” [anonimizat].
Figura 11. Sistemul de funcționare AIDE
5.3. OSSEC
5.3.1. Definirea utilitarului OSSEC
OSSEC este o platformă completă de monitorizare și control a sistemului. Este un utilitar care se mapează pe sistemul de detectare a intruziunilor bazat pe gazduire (HIDS), fiind susținut și sprijinit în totalitate de catre Trend Micro.
Acest sistem poate fi instalat pe urăoarele sisteme de operare: Linux, Solaris, AIX, HP-UX, BSD, Windows, Mac și Vmware ESX.
OSSEC oferă un server de management simplificat centralizat pentru administrarea politicii sistemelor de operare multiple.
Verificarea integritatii fisierelor
Scopul verificarii integrității fișierelor este de a detecta modificările și de a avertiza atunci când aceste modificari sunt făcute. Aceste modificări poat fi un atac, sau poate fi un abuz făcut de către un angajat sau chiar o greșeală de scriere a unui administrator la un fișier, director, registru sau orice date dintr-un fișier.
5.3.2.Monitorizarea jurnalelor de fișier
OSSEC colectează, analizează și corelează jurnalele pentru a știi dacă ceva rău se întâmplă. Acest utilitar este compus din urmatoarele părți : manager pentru monitorizarea sistemului, agent- pentru primirea de informații și crearea bazei de date.
Managerul: Manager-ul este piesa centrală desfășurării sistemului OSSEC. Se stochiază/ depozitează fișierul de integritate al bazei de date, jurnalele, evenimentele și intrarile de audit de sistem. Decodoarele și obțiunile majore de configurare sunt stocate centralizat în Manager, ceea ce face ușor de administrat chiar și un numar mare de agenti.
Agent : Agentul este un program instalat pe sistemele dorite pentru monitorizare.
Informațiile referitoare la starea fișierelor vor fi trimise în timp real spre Manager pentru analiză și corelare. Aceasta are o memorie destul de mică și memoria CPU fiind mică, dar acest lucru nu va afecta utilizarea sistemului.
Agent de securitate: se rulează un utilizator cu privilegii reduse (create în timpul instalării) dar aceste privilegii sunt create și în interiorul sistemului.
Cele mai multe din caracteristicile agentului sunt create de catre adinistrator în timpul instalării, cu exceptia a câtorva caracteristici care sunt stocate la nivel local pentru agent. În cazul în care aceste opțiuni locale sunt modificate, managerul va primi informații și va genera o alertă.
Agentless : Pentru sistemele care nu se pot instala un agent, OSSEC vă permite să efectuați dosar de monitorizare a integrității fără instalarea unui agent. Ea poate fi foarte utilă pentru a monitoriza firewall-uri, routere și chiar sisteme Unix în cazul în care nu vi se permite să instalați agentul.
OSSEC permite instalarea agentului pe sistemul de operare a clientului sau pe o mașină virtuală. Cu agentul instalat în interiorul VMware ESX puteți obține alerte atunci când un oaspete VM este în curs de instalat, șters sau modificat. Acesta monitorizează, de asemenea, autentificări, logările și erorile în interiorul ESX Server. OSSEC efectuează controale CIS pentru VMware, alertare dacă există vreo opțiune de configurare nesigură activată sau orice alt aspect. OSSEC poate primi si analiza evenimentelor dintr-o varietate mare de firewall-uri, switch-uri și routere. Acesta suportă routere Cisco PIX, Cisco FWSM, Cisco ASA, Juniper Routers, Netscreen firewall, Checkpoint și multe altele.
Această diagramă arată cum managerul central primește evenimentele de la agent și loguri de sistem de la dispozitive la distanță. Când ceva este detectat, răspunsurile active poat fi executate și administratorul este anunțat.
Figura 12. Arhitectura programului OSSEC
5.3.3. Sistemele suportate de OSSEC
Urmatoarele sistemel de operare sunt suportate de către OSSEC:
Sisteme de operare : GNU/Linux (toate distribuțiile, inclusiv RHEL, Ubuntu, Slackware, Debian, etc); Windows XP,2000,2003,Vista,2008; VMWare ESX 3.0,3.5 (inclusiv CIS checks); FreeBSD (toate versiunile); OpenBSD (toate versiunile); NetBSD (toate versiunile); Solaris 2.7,2.8,2.9 și 10; AIX 5.3 și 5.3; HP-UX 10, 11, 11i și MacOSX 10.
Dispozitive de sprijin prin intermediul Syslog;
Aceste sisteme / dispozitive sunt, de asemenea, sprijinite prin syslog la distanță: Cisco PIX, ASA și FWSM (toate versiunile); Cisco IOS routers (toate versiunile); Juniper Netscreen (toate versiunile); SonicWall firewall (toate versiunile); Checkpoint firewall (toate versiunile); Cisco IOS IDS/IPS module (toate versiunile); Sourcefire (Snort) IDS/IPS (toate versiunile); Dragon NIDS (toate versiunile); Checkpoint Smart Defense (toate versiunile); McAfee VirusScan Enterprise (v8 și v8.5); Bluecoat proxy (toate versiunile); Cisco VPN concentrators (toate versiunile);
Utilizarea opțiunilor agentless OSSEC;
Următoarele sisteme sunt, de asemenea, sprijinite (pentru analiza log dosar de verificare și integritate): Cisco PIX, ASA și FWSM (toate versiunile); Cisco IOS routers (toate versiunile); Juniper Netscreen (toate versiunile); SonicWall firewall (toate versiunile); Checkpoint firewall (toate versiunile).
Monitorizarea bazei de date; este disponibilă pentru următoarele sisteme: MySQL (toate versiunile); PostgreSQL (toate versiunile); Oracle, MSSQL ;
Logarea și sprijinirea aplicațiilor:
Doar UNIX: Unix Pam; sshd (OpenSSH); Solaris telnetd; Samba; Su; Sudo; Xinetd
Adduser/deluser/etc; Cron/Crontab; Solaris BSM Auditing; Dpkg (Debian package) logs;Yum logs;
Servere FTP: Proftpd; Pure-ftpd; vsftpd; wu-ftpd; Microsoft FTP server; Solaris ftpd; Mac OS FTP server;
Mail server: Imapd și pop3d; Postfix; Sendmail; vpopmail; Microsoft Exchange; Courier imapd/pop3d/pop3-ssl; vm-pop3d; SMF-SAV (Sendmail Sender Address Validator); Procmail; Mailscanner;
Web servers: Apache web server (access log și error log); IIS 5/6 web server (NSCA și W3C extended); Zeus web server;
Web applications: Horde imp; Modsecurity;
Firewalls: Iptables firewall; Shorewall (iptables-based) firewall; Solaris ipfilter firewall; AIX ipsec/firewall; Netscreen firewall; Windows firewall; Cisco PIX/ASA/FWSM; SonicWall firewall; Checkpoint firewall;
NIDS: Cisco IOS IDS/IPS module; Snort IDS (snort full, snort fast and snort syslog); Dragon NIDS; Checkpoint Smart defense;
Security tools: Symantec Anti Virus; Symantec Web Security; Nmap; Arpwatch; McAfee VirusScan Enterprise (v8 and v8.5);
Altele: Named (bind); Squid proxy; Bluecoat proxy; Cisco VPN Concentrator; Cisco IOS routers; Asterisk; Vmware ESX;
5.3.4. Instalarea programului OSSEC:
Instalarea programului OSSEC este simplă dacă se urmaresc următorii pași de mai jos. Pentru o instalare cât mai ușoară trebie să intelegem ceea ce este acela un manager și un agent. Prima data se instaleaza managerul.
a . Descărcați cea mai recentă versiune a programului OSSEC. Rețineți că pe anumite sisteme, comenzile de genul md5, sha1 nu există , încercați așa: md5sum, sha1sum sau lynx.
b. Dezarhivează fișierul și dați click pe scriptul “./install.sh” (acesta vă va ghida pentru instalare programului). Dezactivați programul cu ajutorul comenzii de mai jos:
[root@ossec ~]# tar –zxvf ossec-hids-*.tar.gz (or gunzip –d; tar -xvf)
[root@ossec ~]# cd ossec-hids
[root@ossec ~] # ./install.sh
..
c. Aminitiți-vă daca există un firewall între server și agent pentru a deschide portul (în cazul în care nu ați ales instalarea locală);
d. In cazul în care există instalat agentul sau serverul nu uitați de instalarea Managerului.
Pagina de Help a manualului din cadrul programului OSSEC.
Această pagină este utilizată pentru a trece peste micile erori în cazul în care acestea apar pe parcursul instalării programului sau în timp ce programul este instalat.
Comunicarea între server și agenți este sigură (criptate și autentificate). Din acest motiv, pentru fiecare agent pe care doriți sa-l instalați, aveti nevoie de o cheie de autentificare pentru a ajunge la server pentru agent.
5.4. YAFIC (Yet Another File Integrity Checker)
Definirea utilitarului YAFIC
YAFIC a fost dezvoltat și testat pe sistemul de operare FreeBSD. De asemenea funcționeaza pe Darwin, OpenBSD, Debian Linux, și Redhat Linux (cu toate acestea testarea extină nu a fost facută pe aceste sisteme de operare).
Este similar cu programul Tripwire si AIDE. YAFIC a fost creat pentru verificarea integritatea fisierelor existente, acesta fiind simplu, rapid si foarte flexibil pentru utilizarea in diferite situații.
Trăsături ale utilitarului YAFIC
Cele mai importante trăsături ale sistemului YAFIC sunt :
– Configurarea aseamanatoare ca la Trepwire;
– Abilitatea de a urmării modificarile în atributele de fișier cum ar fi permisiunile, id-ul de utilizator, id-ul grupului, timpul de acces, modificarea timpului, etc;
– Rezumatul fișierului folosind algoritmul SHA-1, un algoritm de 160 de biti;
– Semnaturi criptografice și verificarea bazei de date;
– Poate compara conținutul a doua baze de date;
– Opțional, afișează rezumatul bazei de date rezultate în raport;
6. Aplicație. Sistem de monitorizare a integrității fișierelor
Deoarece utilitarul tripwire se folosește în line de comandă, o îmbunătățire atât pentru cei familiarizați cu acest program cât și pentru cei începători în folosirea programului Tripwire sau în folosirea unor metode pentru protecția informațiilor din calculator este crearea unei interfețe grafice. Realizarea unei interfețe grafice este utilă deoarece aceasta nu există decat pentru soluția comercială. Interfața grafică ajută la o utilizare mai rapidă a sistemului de detectare a intruziunilor Tripwire, iar construirea comenzilor se fac în funcție de parametrii primiți în interfața grafică.
Pașii necesari pentru realizarea interfeței grafice sunt:
Se instalează Ubuntu cu optiuni default, in masina virtuala VirtualBox;
Pașii necesari pentru instalarea aplicației VirtualBox.
a. Descărcați fișierul de instalare al aplicației VirtualBox. De pe siteul www.virtualbox.org a aplicației veți găsi mai multe legături către fișiere de instalare pentru Microsoft Windows, Mac OS X, Linux etc. Trebuie să alegeți pachetul corespunzător sistemului de operare pe care lucrați în acest moment. Dacă lucrați pe un sistem Microsoft Windows, atunci veți descărca fișierul indicat la punctul„VirtualBox număr_versiune for Windows hosts”.
b. Porniți instalarea VirtualBox, dați dublu click pe acest fișier pentru a deschide prima pagină a ghidului de instalare. În această fereastră dați click pe butonul „Next” pentru a trece la pagina următoare. Vă sunt afișați termenii licenței programului. Selectați opțiunea „I accept the terms in the License Agreement” și apăsați butonul „Next”. Mai departe instalați programul cu ajutoru comenzilor care vor aparea pe parcursul instalării.
Se instaleaza GuestAdditions in masina virtuala; acestea permit full screen la masina virtuala si cursorul mouse-ului poate parasi masina fara a apasa Ctrl.
Se instaleaza JDK pentru a rula aplicatia TripwireGUI.JDK se gaseste la adresa: http://java.sun.com/javase/downloads. Se obtine jdk-6u20-linux-i586.bin Se executa instructiunea:
chmod +x jdk-6u20-linux-i586.bin pentru a da drept de executie si apoi:
Se merge in folderul /usr/lib si se refera executa: cale_fisier/jdk-6u20-linux-i586.bin pentru a instala.
Se instaleaza netbeans. www.netbeans.org. Se downloadeaza netbeans 6.9
chmod +x netbeans-6.9-ml-javase-linux.sh
./netbeans-6.9-ml-javase-linux.sh
Se instaleaza sendmail:
sudo apt-get install sendmail
Date GMail:
Se insteaza Tripwire: http://sourceforge.net/projects/tripwire/
Se dă comanda:
sudo apt-get install build-essential
Se dezarhiveaza tripwire si se intra in folderul sau.
Se dau comenzile:
./configure
make
make install
Configureaza SendMail cu GMail.
http://james-lloyd.com/getting-sendmail-use-gmail-as-a-relay-2/
Dupa rularea aplicație (se apasă click cu mouse-ul pe triunghiul verde sau se apasă de la tastatura butonul F6). Interfața grafică a programului va arăta ca în imaginea de mai jos.
Figura 13. Interfata grafică
Această aplicație are următoarele câmpuri principale: “File”, “Tripwire”, “Admin”, “Print”, “Help”.
Apăsând meniul “File” și apoi ”Exit” se va închie fereastra cu meniul Tripwire. Dacă îi dam comanda Tripwire și apoi Init, va aparea o fereastra în care se va crea baza de date, ca în imaginea de mai jos.
Figura 14. Crearea bazei de date
Din meniul creat apăsăm căsuța Tripwire și apoi căsuța Test, se va deschide o fereastră ca în imaginea de mai jos în care va trebui să scriem adresa noastră de mail pentru a vedea starea fișierului.
Figura 15. Testarea utilitarului Tripwire
Pe această adresă de mail se va primi un mesaj cu referire la modul de funcționare al programului. Dacă din meniul creat îi dăm comanda Help și apoi comanda About ne va aparea fereastra About: TripwireGUI 1.0, ca în imagine de mai jos. Se va închide de la butonul din dreapta jos.
Când îi vom da comanda din interfața grafică: Admin – >Create Cfg, va schimba fișierul de configurare (adica fișierul twcfg.txt).
Figura 18. Informații despre versiunea 1.0. Tripwire
Sistemul de detectare a intruziunilor Tripwire folosește trei algoritmi, necesari pentru
calcularea fișierului. Acești algoritmi sunt: MD5, CRC și SHA1. Acești algoritmi sunt
necesari pentru calcularea integrității fișierelor.
7. Concluzii
Integritatea dateor se referă la faptul că datele nu pot fi modificate fără autorizație, sau fără acordul administratorului, integritatea este încălcată atunci când o persoană care nu are dreptul de modificare asupra fișierului, schimbă accidental sau cu intenție rea fișierul de date, atunci când un virus infectează un calculator, atunci când un utilizator neautorizat modifică un site web, atunci când cineva este capabil de a-și exprima un număr foarte mare de voturi într-un sondaj on-line, și așa mai departe.
Lucrarea de fată a încercat să arate că un sistem de detctare a intruziunilor este necesar oricărui calculator care se conectează la internet, iar pentru ușurința utilizatorilor de utilitare bazate pe sisteme de detectare a intruziunilor am încercat să creez o interfață grafică deoarece aceste utilitare se realizează în linie de comandă. Această interfață grafică este necesară mai ales persoamnelor care nu sunt familiarizate cu utilitare de genul tripwire. Un alt aspect important pe care lucrarea de față îl aduce reprezintă tutorialele realizate la utilitare ca tripwire, ossec, aide etc. Aceste tutoriale ajutând utilizatorii la instalarea programului și la ghidarea în folosirea comenzilor necesare folosirii programului.
Verificarea fișierelor este foarte importantă, de asemenea este necesar un sistem de detectare a intruziunilor, cum este Tripwire, sau oricare altă alterativă a acestui. Uu sistem de detectare a intruziunilor contine algoritmi care calculeaza și stochează o sumă de control pentru fiecare fișier păzit și stabileste o bază de date a acestor sume de control.
Integritatea anunță că prin atac valoarea sau existența informației poate fi modificată de un utilizator neautorizat , de aceea trebuie să avem un sistem de detecatre a intruziunilor. Este foarte important să avem instalat un utilitar de de detectare a intruziunilor, acesta protejând informașiile pe care noi dorim sa le pastrăm.
Consider că realizarea unei interfețe grafice pentru Tripwire este necesară, deoarece aplicația Tripwire nu are o interfață grafică decat în variant comercială a utilitarului Tripwire, nu și în variant open-source a sistemului. Tripwire poate fi considerat un program benefic pentru calculatoarele noastre, asigurând integritatea datelor, prin monitorizarea fișierelor și directoarelor, identificand modificarile aduse acestora.
Bibliografie :
1. The IT Governance Institute, Information Security Governance: Guidance for Boards of Directors and Executive Management, 2001.
2. University of Lapland, Communication (2000) 890, Creating a Safer Information Society by Improving the Security of Information Infrastructures and Combating Computer-related Crime in the context of Information Security, Institute for Law and Informatics, Finland, 20 March 2001.
3. Host-based Intrusion Detection Systems – Pieter de Boer & Martin Pels;
4. Silberschatz, Galvin and Gagne – Operating System Concepts – 7th Edition, Jan 10, 2005
5. “Sisteme de detectare a intruziunilor “, Dr.ing Sorin SOVIANY, Dr.ing SUȘCOCI, Drd.ing. Gheorghiță PESCARU, Drd.ing. Radu DRAGOMIR (Institutul Național de Studii și Cercetări pentru Comunicații – INSCC);
6. “Despre importanța tehnologiilor de securitate a informației”, Lucian Vasiu
7. “Algoritmul de criptare MD5” Iacob Gabriela, Fleser Sorina;
8. “Introducere în criptografie” Prof.univ.dr. Constantin Popescu, Departamentul de Matematică și Informatică;
9. “Securitatea informațională și integritate datelor” Cristian Popa;
10.”Securitatea informatică în Unix și internet”, Victor Patriciu, Monica Pietroșanu- Ene, Ion Bica, Costel Cristea.
11. http://www.unixwiz.net/techtips/iguide-crypto-hashes.html – Cryptographic Hashes
12. http://tripwiresecurity.com – Tripwire
13. http://sourceforge.net/projects/aide – Advanced Intrusion Detection Environment
14. http://www.ionx.co.uk – File Integrity Monitoring System
15. http://www.windowsecurity.com/ – Windows Security
16. http://sourceforge.net/projects/yafic/ – Yet Another File Integrity Checker
17. http://www.ossec.net – Ossec
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Aplicatii Soft Pentru Integritatea Fisierelor (ID: 148907)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
