This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA
sm); se înlocuieşte orice întreg ai din algoritmul simplu cu valoarea hi = w*ai mod n. Exemplu: A = (1, 2, 4, 9) şi w = 15 h1 = 1*15 = 15 mod 17 = 15 h2 = 2*15 = 30 mod 17 = 13 h3 = 4*15 = 60 mod 17 = 9 h4 = 9*15 = 135 mod 17 = 16. Va rezulta vectorul H = (h1, h2, h3, h4) = (15, 13, 9, 16). Exemplificarea criptării şi decriptării folosind algoritmul Merkle-Hellman îmbunătăţit este prezentată în cele ce urmează. Se divide mesajul M în blocuri de m biţi (atâţia biţi câte elemente are vectorul A). Se utilizează algoritmul îmbunătăţit pentru crearea întregilor pozitivi T pentru fiecare grup de m biţi. 71
Exemplu: Criptarea Merkle-Hellman (knapsack) S = ( 1, 2, 4, 9) (cheie privată) H = (15, 13, 9, 16) (cheie publică). Alegem: w = 15 w-1 = 8 n = 17 m = 4. Mesajul de criptat este: P = 0100 1011 1010 0101 [0, 1, 0, 0] * [15, 13, 9, 16] = 13 [1, 0, 1, 1] * [15, 13, 9, 16] = 40 [1, 0, 1, 0] * [15, 13, 9, 16] = 24 [0, 1, 0, 1] * [15, 13, 9, 16] = 29. Mesajul criptat va fi E(P) = 13, 40, 24, 29. Decriptarea Merkle-Hellman (knapsack) S = ( 1, 2, 4, 9) (cheie privată) H = (15, 13, 9, 16) (cheie publică). Mesajul pentru decriptat va fi E(P) = 13, 40, 24, 29. Se apelează H = w * S mod n. Textul cifrat este de forma: C = H * P = w * S * P mod n. Trebuie găsit: w-1 * C = (w -1 * w) * S * P = S * P mod n. 13 * 8 = 104 mod 17 = 2 = [0100] 40 * 8 = 320 mod 17 = 14 = [1011] 24 * 8 = 192 mod 17 = 5 = [1010] 29 * 8 = 232 mod 17 = 11 = [0101]. 72
1.2.4.2 Cifrul Graham-Shamir (GS) Cifrul Graham-Shamir vine cu îmbunătăţiri menite să ascundă aşa-numitele proprietăţi de dominanţă ale cifrului Merkle-Hellman. Cifrul este mai sigur decât Merkle-Hellman, dar are dezavantajul că nu poate fi folosit decât pentru cifrarea datelor, nu şi în autentificare.
1.2.4.3 Cifrul Shamir (SH) Se poate spune că acest tip de cifru este complementar cifrului Graham-Shamir. El realizează doar procesul de autentificare neasigurând şi protecţia prin criptare. Este folosit doar în implementarea semnăturii digitale.
1.2.5 Sisteme de criptare cu chei publice bazate pe ecuaţii în câmp finit Din această categorie fac parte sistemele de criptare Brändstorm cu inele polinomiale, sistemele Pieprzyk cu inele polinomiale şi sistemele cu registre de deplasare. Criptarea Brändstorm este similară cu criptarea RSA, numai că aici, în loc de numerele foarte mari folosite, avem polinoame în câmp finit (cu coeficienţi binari în câmp finit). Criptarea Pieprzyk foloseşte o schemă Merkle-Hellman modificată utilizând inele polinomiale, plecând de la premisa că operaţiile definite în aceste inele sunt mai accesibile decât cele din inelul întregilor. Sistemele cu registre de deplasare au fost propuse de Niederreiter şi utilizează un registru de deplasare cu reacţie 73
(Feedback Shift Register . FSB) care generează o secvenţă întrun câmp finit, ceea ce îl face uşor de implementat.
1.3 Semnătura digitală Semnătura digitală reprezintă un atribut al unui utilizator sau proces, fiind folosită pentru recunoaşterea acestuia. Fie B un receptor de mesaj semnat de A. Semnătura lui A trebuie să satisfacă următoarele proprietăţi: B să fie capabil să valideze semnătura lui A; să fie imposibil pentru oricine, inclusiv B, să falsifice semnătura lui A; în cazul în care A nu recunoaşte semnarea unui mesaj M, trebuie să existe un “judecător” care să poată rezolva disputa dintre A şi B. Semnătura digitală rezolvă atât problema autentificării emiţătorului, cât şi pe cea a autentificării datelor. Sistemele de autentificare cu chei publice permit o implementare simplă a semnăturilor digitale. Deoarece este deţinută doar de A, transformarea DA poate servi ca semnătură digitală pentru A. Receptorul B al mesajului M semnat (transformat prin DA) este sigur atât de autenticitatea emiţătorului, cât şi de aceea a datelor. Deoarece transformarea inversă este publică, receptorul B va putea valida semnătura. Procesele se desfăşoară astfel: A semnează pe M calculând S = DA(M); B validează semnătura lui A, verificând dacă EA(S) = M; Un .judecător. rezolvă eventuala dispută dintre A şi B controlând dacă EA(S) conduce la M, în aceeaşi manieră ca şi B. Pentru crearea şi utilizarea unei semnături digitale se parcurg următorii paşi: 1. Crearea perechii de cheie publică şi cheie privată pentru expeditorul A. 74
2. Trimiterea cheii publice către receptorul B. 3. Expeditorul A creează un mesaj pentru destinatarul B şi foloseşte documentul ca dată de intrare pentru funcţia “hash”. 4. Expeditorul criptează rezultatul prelucrării documentului cu funcţia hash cu cheia proprie. Rezultatul este semnătura digitală. Funcţionarea schematică este exemplificată în figura următoare (figura 17).
Figura 17. Crearea unei semnături digitale Mesajul este trimis la destinaţie însoţit de semnătura digitală. Semnătura digitală trebuie să ateste că acesta este trimis de cel care pretinde. 5. Destinatarul va separa mesajul original de semnătura digitală. 75
6. Semnătura digitală este decriptată cu ajutorul cheii publice a expeditorului. 7. Documentului original i se aplică aceiaşi funcţie hash ca la expediţie. 8. Se compară dacă cele două rezultate, de la decriptarea semnăturii digitale cu cheia publică şi de la aplicarea funcţiei hash mesajului, sunt identice. Dacă se confirmă atunci mesajul este trimis de cel care pretinde. Utilizarea semnăturii digitale este exemplificata în figura următoare (figura 18).
Figura 18. Utilizarea semnăturii digitale. Semnătura digitală nu conferă confidenţialitate conţinutului mesajului. Ea doar autentifică că expeditorul este cel care pretinde că este. Semnătura digitală este diferită de semnătura electronică. Semnătura digitală reprezintă o prelucrare a unui mesaj, în timp ce semnătura electronică este o reprezentare electronică a semnăturii clasice.
76
1.4
Modalităţii criptografiei informatice
de
utilizare a în sistemele
→ Toate noile facilităţi implementate de către Microsoft în sistemele de operare Windows 2000/2003 se bazează pe metode criptografice pentru a asigura de la criptarea fişierelor şi până la securizarea informaţiilor transmise. Sistemele de operare Windows NT foloseau criptografia doar pentru criptarea parolelor. Versiunile ulterioare, începând cu Windows NT4, au adăugat noi facilităţi criptografice la sistemul de operare. Active Directory din Windows 2000/2003 reprezintă ultimele implementări menite să asigure o securitate sporită impusă de aplicarea politicilor de securitate la nivel de firmă. Pe lângă acestea mai există şi programe sau dispozitive hardware care implementează criptarea în sistemele de calcul. → În cadrul sistemelor informatice economice criptografia se face simţită la următoarele niveluri: hardware; aplicaţie; transmisie de date; fişiere şi foldere. → Criptarea hardware este foarte costisitoare, din care cauză este cu precădere folosită de marile firme. Criptarea şi decriptarea datelor de pe suporturile de memorie trebuie să se facă în timp real. Din această cauză, componentele care fac ca preţul acestor dispozitive să fie ridicat sunt create cu ajutorul noilor tehnologii de fabricaţie. Aceste dispozitive speciale, de regulă ataşate suporturilor de memorie, fac criptarea la nivel de sector de pe disc. 77
Dispozitivele de criptare din această categorie folosesc implementări hardware de algoritmi complecşi de criptare, cu chei de criptare care depăşesc 128 de biţi. În ultimul timp se observă un transfer de tehnologie de criptare hardware şi către piaţa medie. Ca exemplu, firma taiwaneză Abit (www.abit.com.tw) livrează pe piaţă, alături de placa de bază Abit IC7-MAX3, şi un dispozitiv hardware de criptare a datelor de pe discul dur. Acesta se interpune pe panglica IDE (Intelligent Drive Electronics sau Integrated Drive Electronics. Standard de conectare a suporturilor de memorie magnetică) între discul dur şi placa de bază. Codarea şi decodificarea datelor la scriere şi la citire este făcută de către a treia generaţie de cipuri de tipul XWall LX-xxx (numărul de biţi folosiţi la criptare; valorile sunt 40, 64, 128 şi 192 de biţi) ASIC (Application Specific Integrated Circuit) produs de eNova Technology (www.enovatech.net). Aceste cipuri criptează şi decriptează în timp real întreaga informaţie de pe discul dur, incluzând sectorul de boot, fişierele temporare, fişierele swap şi fişierele sistem, utilizând algoritmi de criptare DES (Dată Encription Standard) şi TDES (Triple DES) certificaţi de către NIST (National Institute of Standard and Technology). Criptarea poate fi extinsă şi asupra altor suporturi de memorie, firma eNova Technology producând şi dispozitive similare pentru unităţile de disc flexibil. Schema de funcţionare a unui astfel de dispozitiv este următoarea (figura 19):
78
Figura 19. Schema de funcţionare a dispozitivului X-Wall LX-xxx. Cheia de securitate, de tipul unei memorii stick, este folosită doar la pornirea calculatorului, putând apoi fi scoasă până la o nouă pornire, când se cere introducerea acesteia întrun local special de tip USB (Universal Serial Bus). Această cheie conţine codul DES/TDES folosit la criptare. În funcţie de lungimea cheii de criptare, şi evident de arhitectura internă şi viteza de lucru a chipului, se pot distinge cinci tipuri de modele constructive ale acestuia (tabelul 5). Tabelul 5. Tipuri de modele constructive de chip X-Wall LX.
Avantajele folosirii acestor dispozitive sunt: sunt compatibile cu toate sistemele de operare; nu necesită instalare de programe suplimentare; nu încărca microprocesorul sau memoria internă; 79
compatibil cu toate discurile IDE care au capacităţi până la 180GB; permite rate de transfer real de 1,6 Gb/sec. se poate folosi şi pe matrice RAID (Redundant Array of Independent (or Inexpensive) Disks, categorie de interfeţe şi drivere de disc ce permite conectarea a două sau mai multe discuri pentru reducerea erorilor de stocare şi sporirea performanţelor) 0,1 sau 0 + 1. Dezavantajele folosirii unui astfel de dispozitiv sunt: la instalare se cere efectuarea operaţiilor de FDISK şi FORMAT asupra discului dur, datele existente trebuind să fie salvate (backup); se poate cripta doar un singur disc dur; sistemul dispune de backdoors (în caz că se pierde cheia de criptare). Interfeţele de criptare care folosesc algoritmi TDES folosesc chei de criptare complexe, performanţele fiind mult mai ridicate faţă de modelele comerciale.
→ Criptarea la nivel de aplicaţie este folosită în pachetele de programe produse şi livrate de marile firme producătoare de software din domeniu. Criptarea datelor poate fi făcută implicit de către aplicaţia respectivă sau se poate activa această facilitate de către utilizator. Un exemplu este oferit de aplicaţia Ciel Contab, care permite criptarea fişierelor de date specifice programului. Activarea opţiunii de criptare se face de către superutilizator (Superutilizatorul în această accepţiune este persoana care are drept de administrare şi configurare a programului) din meniul de configurare al programului (Configurare → Opţiuni de utilizare → Diverse → Criptare fişiere) pe societatea (firma) respectivă (figura 20). Fişierele de date criptate sunt XECR1.DBF şi XECR2.DBF. Acestea sunt de fapt fişierele care conţin datele senzitive ale firmei. Criptarea rezistă doar la acţiunea cu SGBD-uri mai vechi 80
asupra fişierelor. Pentru SGBD-urile mai noi criptarea este inutilă.
Figura 20. Configurare program Ciel Contab (DOS) pentru opţiunea de criptare fişiere → Criptarea la nivelul transmisiei de date poate fi făcută prin criptarea legăturii sau prin criptarea datelor. Criptarea legăturii este asigurată implicit de protocoalele de comunicare în reţea sau de cele din Internet. Secure Socket Layer (SSL) reprezintă un protocol Web securizat dezvoltat de firma Netscape Communications care asigură criptarea pentru comunicările realizate între oricare două calculatoare din Internet prin intermediul protocolului universal folosit . TCP/IP. SSL se bazează pe criptarea cu cheie publică (PKI) şi funcţionează în două etape: într-o primă etapă se stabileşte o cheie specială de sesiune (transmisă într-o formă criptată folosind cheia publică); această cheie va fi utilizată în cea de a doua fază pentru o criptare rapidă a datelor. SSL asigură: 81
autentificarea serverului pe baza certificatelor digitale (care descurajează impostorii); confidenţialitatea transmisiilor (prin criptare); integritatea datelor transmise (prin coduri de verificare). Un alt protocol de transmitere securizată a datelor este SHTTP - Secured HyperText Transfer Protocol -, care constituie o variantă “sigură” a protocolului nativ de transfer al paginilor web - HTTP. SHTTP a fost dezvoltat de asociaţia CommerceNet şi asigură criptarea documentelor web transmise, utilizarea semnăturilor digitale şi a unui cod de autentificare pentru integritatea mesajelor. În mod evident, transferul protejat al datelor în procesul de navigare pe web este de mare interes în comerţul electronic şi permite realizarea de tranzacţii financiare confidenţiale şi operaţii comerciale pe cale electronică. Implementări similare au fost dezvoltate şi pentru sistemele de poştă electronică: S/MIME sau PGP/MIME . Majoritatea aplicaţiilor de poştă electronică folosesc criptarea pentru asigurarea confidenţialităţii. Un exemplu elocvent este Outlook-Outlook Express, care foloseşte atât criptarea, cât şi semnătura digitală ca modalităţi de securizare şi autentificare a informaţiei (figura 21).
Figura 20. Opţiunile de semnătură digitală şi criptare la Outlook Express. Pentru a folosi însă aceste facilităţi este nevoie de existenţa unei identificări digitale (Digital ID). Aceasta poate fi 82
obţinută de la una din firmele specializate, cum ar fi: VeriSign, GlobalSign, BT sau ThawteCertification → PGP - Pretty Good Privacy este creat de Phil Zimmerman (a fost publicat în 1995) ca un pachet complet de securitate pentru criptare fişiere şi poştă electronică, ce oferă mecanisme de confidenţialitate, autentificare, semnături digitale şi compresie, într-o formă uşor de utilizat. PGP foloseşte ca algoritm de criptare RSA şi este distribuit gratuit prin Internet, sisteme de informare în reţele şi reţele comerciale, fiind utilizabil pe platformele MSDOS/Windows, UNIX şi Macintosh. Versiunile comerciale ale programului asigură pe lângă criptare fişiere şi securizare poştă electronică şi criptarea discurilor. Versiunea gratuită a programului poate fi descărcată de la adresa: http://www.pgp.com/products/freeware.html. În mod intenţionat, PGP se bazează pe algoritmi de criptare existenţi. Sistemul foloseşte amprente locale de timp (preia din sistem anumite caracteristici hardware şi software la un anumit moment pe care le foloseşte ca date de intrare pentru crearea cheilor), iar în procesul de criptare se aplică şi algoritmul de compresie al cunoscutului program ZIP (creat de Ziv şi Lempel, 1977). Pentru asigurarea unei securităţi adecvate, utilizatorul poate alege lungimea cheii de criptare obişnuită (384biţi = 48B), comercială (512 biţi = 64B), militară (1024 biţi = 128B). În abordarea iniţială, o cheie de 2048 biţi = 256B era considerată inexpugnabilă, dar azi se discută şi despre chei de 4096 de biţi şi este foarte probabil ca resursele de calcul ale viitorului să poată “descifra” şi cifruri cu asemenea chei (figura 22).
83
Figura 22. Opţiuni în criptarea PGP PEM - Privacy Enhanced Mail (poştă cu confidenţialitate sporită) este un standard oficial Internet care asigură secretul şi autentificarea sistemelor de mail bazate pe standardul uzual. Există câteva diferenţe între modurile de abordare şi tehnologiile pachetului PGP, respectiv ale lui PEM. În procesul de codificare se foloseşte şi algoritmul DES, ceea ce este considerat “suspect” de specialiştii în codificare, ţinând cont de lungimea mică a cheii DES (56 de biţi). Cheile folosite de PEM sunt certificate de o autoritate de certificare, fiind valabile pentru o anumită perioadă, un utilizator şi o cheie publică. Practic, fiecare utilizator va folosi o asemenea cheie privată, specifică şi confidenţială, acordată şi validată după reguli riguroase de certificare; această cheie va fi folosită în paralel cu cheia publică. Politica autorităţilor de certificare este destul de complexă, existând o organizaţie ierarhică (cu trei niveluri). Astfel, administrarea cheilor este structurată după principii mai complexe decât în PGP. Evident, există şi un mecanism de revocare a cheilor (de exemplu, în cazul compromiterii lor), ceea ce face ca trimiterea unui mesaj să fie în mod necesar precedată de verificarea automată a celei mai recente liste de revocări. 84
În PEM, autentificarea este obligatorie, pe când în PGP este opţională. Paradoxal este însă faptul că PGP, care nu este un standard oficial, are acumulările Internet-ului, corespunzând principiilor nescrise care au dus la expansiunea acestuia, pe când standardul oficial PEM . mai puţin. Programul lui Zimmerman s-a dovedit a fi o soluţie foarte performantă şi, în plus, a fost distribuit gratuit, pe când PEM s-a dezvoltat în etape, folosind mai multe standarde Internet pentru diverse componente şi o structură organizaţională rigidă, pe cele trei niveluri, cu tipuri diferite de autorităţi de certificare şi completată cu reglementări oficiale de certificare. Implementările PEM au apărut mai târziu decât PGP şi s-au dovedit ceva mai puţin inspirate (din punct de vedere calitativ, cantitativ şi al disponibilităţii pe diverse platforme). De aceea, PGP a devenit un pachet tipic pentru Internet, mult mai larg folosit decât PEM. Norton Your Eyes Only este un program performant, care permite criptarea fişierelor şi controlul accesului la fişierele dintr-un calculator individual sau cuplat în reţea. Foloseşte un sistem de criptare cu chei de până la 512 biţi (versiunea pentru Europa) şi 2048 (versiunea pentru Statele Unite). Permite criptarea cu chei private sau chei publice folosind algoritmi de tip DES sau RC4. Programul mai oferă şi blocarea ecranului atunci când utilizatorul nu foloseşte calculatorul, prin opţiunea ScreenLock, precum şi posibilitatea de a se face încărcarea sistemului de operare de pe dischetă sau de pe alt disc, prin opţiunea BootLock. Boca - Data Secure este un program folosit pentru controlul accesului şi criptare. Metodele de criptare folosite sunt: DES, NEP1 (metodă de criptare foarte rapidă), NEP4 şi BlowFish. MailSafe al firmei RSA Data Security facilitează transmisia în siguranţă a datelor între două modemuri incluzând programe şi echipamente integrate. Deoarece la date trebuie să aibă acces mai mult de un utilizator, MailSafe foloseşte un sistem de chei publice şi private. 85
Utilizatorii care vor trimite date folosesc chei publice pentru a verifica semnătura digitală a destinatarului şi pentru cifrarea traficul pentru transmisie. Destinatarul foloseşte o cheie privată pentru a semna fişierele emise şi pentru a descifra mesajele primite. MailSafe foloseşte un sistem de meniuri pentru a selecta fişierele de transmis. Expeditorul creează chei publice şi private folosind utilitarul KeyGen. Acest proces instalează şi parolele utilizatorilor care pot avea până la 80 de caractere lungime. MailSafe nu poate folosi parola pentru a genera o cheie. În schimb, utilitarul KeyGen creează chei noi, în orice moment în care este apelat. MailSafe creează semnăturile digitale. Ca particularitate, MailSafe permite şi folosirea comună a cheilor publice. Dacă doi utilizatori doresc să cifreze fişiere pentru uz comun, ei pot îndeplini aceasta certificând cheile publice unul altuia. În consecinţă, cu toate că nici unul nu ştie parola celuilalt, mesajul poate trece înainte sau înapoi între cei doi utilizatori. MailSafe poate fi utilizat pe maşini folosite în comun de către mai mulţi utilizatori, fără compromiterea datelor utilizatorilor individuali. → Criptarea fişierelor de date (documente-text, baze de date şi spreadsheet-uri) este cea mai simplă modalitate de ascundere a conţinutului real al fişierelor. Nu trebuie făcută însă confuzie între criptarea propriu-zisă a unui fişier şi ascunderea conţinutului acestuia. Dacă conţinutul unui fişier nu poate fi citit atunci când se încearcă deschiderea acestuia nu înseamnă că acest fişier conţine date criptate. Această confuzie este deseori întâlnită la aplicaţiile de birou MS Word şi MS Excel. Să luăm ca exemplu următorul text scris în MS Word: Acesta este un mesaj criptat. Fişierul cu acest conţinut a fost salvat cu opţiunile de restricţionare prin parolă la deschidere şi modificare. Folosind 86
un utilitar pentru vizualizarea conţinutului fişierului vom putea să vedem textul ascuns (figura 23).
Figura 23. Evidenţierea conţinutului fişierului MS Word. Unul dintre cele mai rapide şi ieftine exemple de cifrare a fişierelor este File Encrypt al firmei Wisdom Software. Acesta foloseşte Data Encryption Standard (DES) pentru a cifra fişiere, simplu şi rapid. File Encrypt este un criptosistem convenţional cu o singură cheie, scris în limbaj de asamblare. Secret-Disk-II al firmei Lattice, pe lângă cifrarea datelor selectate, creează şi un disc invizibil unic unde memorează fişierele criptate. Puteţi cripta fişiere folosind ori algoritmul DES ori algoritmul FAST ale firmei Lattice. Avantajul lui FAST este, evident, viteza sa. Discurile logice invizibile ale lui Secret-Disk-II conţin doar datele cifrate în fişierele ascunse. O singură parolă este folosită pentru blocarea şi deblocarea discurilor secrete. Chiar dacă un intrus descoperă existenţa şi zona discurilor secrete cu un utilitar de lucru cu discul, fişierele sunt criptate. Dezactivarea comenzii DELETE face imposibilă ştergerea accidentală a fişierelor. 87
→ Există şi programe de criptare care garantează o securitate prin criptare care rezistă la un atac de decriptare un număr de 1032ani. Este vorba de programul Cypherix ⊗SECUREIT 2000 al firmei Secure Soft (India) Pvt. Ltd (www.cypherix.com). Programul foloseşte pentru criptare 448 de biţi. Interfaţa de lucru cu utilizatorul este foarte prietenoasă (figura 24). Fişierele criptate o vor avea adăugată la extensia iniţială şi pe aceea de .SIT (Secure IT).
Figura 24. Programul de criptare Cypherix (interfaţa). → Unităţile de bandă magnetică folosite pentru operaţiile de salvări periodice de siguranţă oferă posibilitatea utilizatorului de a cripta datele care se vor salva. → O problemă care a apărut în cadrul firmei a fost aceea că angajaţii îşi criptau fişierele de lucru, iar atunci când era nevoie de datele din acestea, iar angajatul nu era la serviciu din diferite motive, era imposibil să se acceseze datele. Situaţia a fost rezolvată prin comunicarea acestora către conducere, care le folosea atunci când era nevoie (lucru destul de rar).
88
Capitolul II. Modalităţi de utilizare a programelor antivirus în cadrul firmei 89
2.1. Detectarea viruşilor Ce mai simplă şi mai la îndemână modalitate de a ne proteja împotriva programelor maliţioase este aceea de a folosi un program antivirus. Un program antivirus este un utilitar care detectează şi anihilează acţiunea programelor maliţioase. Programul antivirus va sesiza existenţa unui cod maliţios (virus) în calculator folosindu-se de amprenta (semnătura) lăsată de fiecare program maliţios (virus). O dată sesizată existenţa unui virus, programul antivirus va lansa în execuţie o subrutină, vaccinul, care va anihila acţiunea virusului. → Un program antivirus nu va putea detecta decât viruşii a căror semnătură sunt în baza lui de semnături. Trebuie ţinut cont de faptul că întâi apare virusul şi apoi antivirusul. → Producătorii de programe antivirus livrează periodic, la interval de câteva zile, noile semnături de viruşi. Actualizarea cu noile semnături este uşor de făcut dacă există o conexiune internet. Sunt şi producători care livrează actualizările folosind suporturi de memorie de tip disc flexibil sau compact disc. Este cazul firmei Kaspersky. → Teama de acţiunea viruşilor este aşa de mare încât, uneori, anumite subrutine de testare a autenticităţii unui program sunt luate drept viruşi. Este cazul procedurii de verificare de la programul Ciel Contab. Ulterior, acest neajuns a fost remediat. → Acţiunea programelor antivirus poate fi configurată de către utilizator de la stadiul de maximă protecţie (real time protection) până la stadiul de inactiv (disable). Evident că ultima stare este cea mai nefericită, aceasta este similară cu inexistenţa programului antivirus. Existenta activităţii sau inactivităţii programului antivirus poate fi evidenţiată prin icon-urile care apar în bara de .tray. la sistemele de operare de tip Windows.
90
2.2. Alegerea şi configurarea programului antivirus pentru firme Alegerea unui program antivirus este uneori dificilă datorită existenţei mai multor programe pe piaţă, dar şi datorită cerinţelor care trebuie îndeplinite de acestea. → Pentru alegerea unui program antivirus trebuie să ţinem cont de următoarele criterii de alegere: platforma de lucru; numărul de viruşi care pot fi detectaţi; timpul de răspuns la un virus; existenţa opţiunilor de scanare în reţea; existenţa opţiunilor de scanare în e-mail; protecţia împotriva scripturilor; scanarea în fişiere comprimate; existenţa suportului tehnic; perioada de timp pentru care se livrează actualizări gratuite; renumele firmei; localizarea firmei producătoare sau a distribuitorului; preţul. Este cunoscut faptul că programele antivirus sunt făcute să funcţioneze pe mai multe sisteme de operare. Unele firme producătoare livrează programe antivirus care funcţionează doar pe anume sisteme de operare, dar sunt şi programe antivirus care funcţionează pe mai multe platforme. Există mai multe reviste de specialitate care efectuează periodic un audit al acestor programe antivirus. Una dintre cele mai cunoscute este Virus Bulletin (www.virusbtn.com). Rezultatele testelor efectuate de către specialiştii acestei reviste pe diferite platforme sunt exemplificate în tabelul următor (tabelul 6): Mai multe date despre compatibilitate şi modul de efectuare a testelor se pot găsi la adresa: http://www.virusbtn.com/vb100/about/100procedure.xml. 91
Numărul de viruşi care pot fi detectaţi de un program antivirus are cea mai mare greutate în alegere. Cu cât acest număr este mai mare, cu atât posibilităţile de detectare şi anihilare cresc. Programele antivirus pot detecta peste 67.000 de viruşi şi variante ale acestora (conform cu Norton Antivirus). Timpul de răspuns necesar pentru crearea unui antidot împotriva unui virus este greu de estimat. Acesta poate fi aflat doar în cazul unor viruşi care au avut efecte majore. Timpul de răspuns depinde în foarte mare măsură de experienţa firmei. Existenţa opţiunilor de scanare în reţea este foarte importantă atât din punct de vedere al siguranţei şi actualizării, cât şi al costului. Vom trata acest aspect puţin mai târziu. Dacă calculatorul sau reţeaua au acces la Internet, posibilitatea de a scana e-mail-uri este foarte importantă, bine cunoscută fiind răspândirea viruşilor cu ajutorul Internetului. Similar şi opţiunea de protecţie împotriva viruşilor de script.
Tabelul 6. Teste comparative de funcţionare programe antivirus pe diferite platforme 92
93
Pentru ca un fişier de dimensiune mare să ajungă cât mai repede la destinaţie se recurge la comprimarea acestuia. Dimensiunea unui fişier comprimat este sensibil mai mică faţă de a celui iniţial (depinde de tipul de fişier. În anumite cazuri, poate să fie chiar mai mare). Dacă fişierul sursă conţine un virus, atunci şi fişierul rezultat va conţine şi el virusul. Din această cauză, existenţa acestei opţiuni este importantă. Existenţa suportului tehnic, telefon sau e-mail, este necesară atunci când se întâmpină probleme la instalare şi configurare. Este importantă atunci când instalarea este făcută de o persoană fără cunoştinţe în domeniu. De regulă, perioada de timp pentru care se livrează actualizări gratuite de către firma producătoare este de un an. Această perioadă poate fi prelungită prin semnarea unui contract de abonament. Renumele firmei trebuie luat serios în considerare atunci când se achiziţionează un program antivirus. Renumele firmei ţine atât de longevitatea acesteia pe piaţă, cât şi de clasamentele întocmite de firmele de specialitate. Localizarea firmei producătoare sau a distribuitorului trebuie luată în considerare dacă se doreşte o colaborare strânsă atunci când pot să apară incidente legate de acţiunea viruşilor şi când singura posibilitate de remediere este contactul direct între cele două părţi. De asemenea, localizarea firmei are un rol important în anumite situaţii particulare. Ca exemplu poate fi dat acela în care un virus este produs local, de angajat sau de către o altă persoană la nivel de judeţ sau de ţară. O firmă locală va putea să descopere şi să anihileze mai rapid virusul decât o firmă aflată la mii de kilometri distanţă. Preţul este foarte important atunci când numărul de calculatoare este mare. Din tabelul următor se observă că preţurile sunt comparabil egale (tabelul 7).
94
Tabelul 7. Principalele programe antivirus (comparaţii).
Sursa: www.antivirusebook.com/antiviruscomparison.htm → Să analizăm acum cheltuielile necesare achiziţionării de programe antivirus. Firma pe care am făcut testele este o firmă de mărime medie care are o reţea cu 22 de calculatoare cuplate în reţea (20 staţii de lucru şi 2 servere - Windows NT şi Linux). Achiziţionarea de programe antivirus pentru toate calculatoarele ar duce la un cost cuprins între 840 USD şi 1.050 USD (21 buc. X 40 USD şi 21 buc. X 50 USD, pe unul dintre servere rulează Linux - server de Internet). Suma este acceptabilă pentru această firmă. Achiziţionarea va fi făcută şi programele vor fi instalate pe cele 21 de calculatoare. În anumite situaţii, la achiziţionarea unui nou sistem de calcul, se livrează gratuit şi programele antivirus pentru nevoile locale. În ultimul timp, tot mai mulţi producători de plăci de bază (sau de calculatoare) livrează şi programe antivirus o dată cu produsul. Este cazul programelor antivirus Norton Antivirus (livrat separat sau integrat în Norton Internet Security) şi PC-cillin. În situaţia în care se folosesc programe antivirus care funcţionează separat pe fiecare calculator, atunci pot să apară disfuncţionalităţi în funcţionarea întregului mecanism de protecţie antivirus, şi anume: actualizarea şi scanarea periodică de viruşi este lăsată la latitudinea angajatului; este greu de urmărit acţiunea fiecărui program antivirus pe staţiile de lucru. 95
Este necesar să existe un program antivirus care să ofere un control centralizat, repararea fişierelor infectate, capacităţi de carantină pentru acestea şi posibilitatea de actualizare din Internet. În această situaţie, achiziţionând un program antivirus care să ofere aceste facilităţi, Norton Antivirus Enterprise/Corporate Edition, preţul total este de 1.050 USD (care include 21 de licenţe şi suportul de program pe compact disc). Suma este comparabilă cu cea anterioară, numai că în acest caz facilităţile sunt multiple: protecţia şi monitorizarea de la o singură consolă; scanează mesajele de e-mail atât la recepţionare, cât şi la transmisie; recunoaşte aplicaţiile nesolicitate ca spyware şi adware; identifică sursa în cazul anumitor atacuri; alertează în cazul în care anumite calculatoare nu sunt conectate la reţea; scanează în memorie şi opreşte procesele suspecte înainte ca acestea să cauzeze daune; permite o detectare centralizată a nodurilor neprotejate din reţea. Achiziţionarea de către firmă a programului antivirus Norton Antivirus Enterprise/Corporate Edition a permis un mai bun control al viruşilor. Anterior acestei achiziţii, când se lucra cu diferite programe antivirus pe diverse calculatoare sau când actualizările nu erau făcute la zi, problemele generate de viruşi erau multiple. La o testare antivirus iniţială făcută cu Norton Antivirus am descoperit 10 calculatoare virusate dintr-un total de 22. Numărul de fişiere virusate era de ordinul sutelor la fiecare calculator. Din această cauză a trebuit să efectuez operaţia în două etape . pe grupuri de calculatoare. După terminarea completă a operaţiei am constatat că situaţia era identică cu cea iniţială. Această situaţie s-a datorat în mare parte strategiei de lucru folosite la devirusare. Existenţa resurselor partajate în reţea făcea ca după devirusare calculatoarele curate să se 96
reinfecteze la accesarea acestor resurse, în mare parte cu acordul utilizatorului. O altă cauză o reprezenta acţiunea utilizatorului neinstruit. Pentru a nu mai avea astfel de probleme am procedat la o scanare în afara orelor de program, la anularea resurselor partajate şi la anularea accesului la Internet. O dată cu instalarea unor sisteme de operare Windows XP care nu mai dădeau utilizatorului drepturi de partajare foldere sau fişiere, a folosirii noului pachet de program antivirus corect configurat şi a anulării conexiunii la Internet problemele datorate viruşilor s-au diminuat. Chiar şi viruşii de pe dischetele mai vechi nu mai constituiau o problemă deoarece programul a fost configurat pe acţiunea automată de devirusare (autorepair).
2.3. Reguli şi restricţii → Pentru a se evita o infecţie cu viruşi este necesar să fie impuse o serie de reguli şi restricţii în utilizarea calculatorului. Ca primă măsură se impune informarea şi instruirea personalului asupra măsurilor care trebuie luate. A doua măsură care se impune este configurarea corectă, hardware şi software, a calculatorului şi a reţelei. Un calculator corect configurat este vulnerabil dacă factorul uman nu este bine instruit şi conştient de consecinţele unei infecţii cu viruşi. De asemenea, personalul bine instruit nu poate să acopere golurile de securitate hardware şi software lăsate. → Principalele reguli şi restricţii care consider că se impun pentru a se evita o infectare cu viruşi sunt: 1) Instalarea şi rularea unui program antivirus foarte bun. Ce înseamnă aceasta? Un program antivirus bun sau foarte bun este acela care satisface cerinţele de securitate impuse. Dacă programul antivirus se instalează local şi dacă pe acel calculator nu se rulează programe de poştă electronică, atunci nu trebuie luată în considerare facilitatea de scanare e-mail. Dacă în 97
schimb calculatorul respectiv este conectat la Internet şi se face browsing, atunci cerinţele sunt foarte mari. Nu este suficient ca un program antivirus să detecteze foarte mulţi viruşi. Este important să detecteze şi să anihileze virusul care încearcă să infecteze acel sistem. 2) Actualizarea periodică a programului antivirus cu noile facilităţi, dar mai ales cu noile semnături de viruşi. Actualizarea poate fi făcută manual, periodic de către utilizator sau poate fi configurată pe opţiunea automată 3) Actualizarea programelor de e-mail şi a web browserelor cu noile “patch”-ur (patch - petic. Îmbunătăţire ulterioară adusă unui program care prezină goluri de securitate în funcţionare) sau .fix.-uri (Fix - reparaţie ) Este bine cunoscută exploatarea golurilor de securitate din aceste programe de către viruşii care se folosesc de Internet pentru a se propaga. Actualizarea acestor programe micşorează posibilitatea de infectare. 4) Configurarea optimă a programelor de e-mail şi a web browserelor. Ca nivel de securitate, acestea sunt configurate implicit pe opţiunea Medium (mediu), dar pot fi configurate pe niveluri mult mai ridicate. De asemenea, se poate configura şi restricţionarea anumitor site-uri. Aceste opţiuni pot fi configurate, la sistemele de operare Windows, din Control Panel → Internet Option → Security, Privacy şi Advanced (figura 25).
98
Figura 25. Configurarea opţiunilor de securitate în Windows. 5) Nu se fac descărcări (download) de programe din surse dubioase. Actualizările de programe trebuie să se facă numai de pe site-ul producătorului şi nu din alte surse. 6) Nu se deschid fişierele ataşate la e-mail dacă acestea nu provin de la o sursă de încredere. Regula de bază este: .nu deschide un attachement care vine de la o persoană pe care nu o cunoşti.. Programele de poştă electronică au posibilitatea de a bloca accesul la e-mail-uri care par “dubioase”. În programul Outlook Express 6 acest lucru poate fi făcut din opţiunile: 99
Tools → Option → Security, unde trebuie bifată opţiunea Do not allow attachements to be saved or opened that could potentially be a virus (Blochează deschiderea sau salvarea fişierelor ataşate care pot fi/conţine viruşi) (figura 26).
Figura 26. Blocarea opţiunilor de deschidere automată a fişierelor ataşate. 7) Atenţie la e-mail-urile şi site-urile de tip păcăleală. Nu se va da curs ferestrelor apărute în timp ce faci browsing şi care-ţi propun un câştig în bani sau bunuri dacă execuţi click pe OK / Yes sau care conţin mesaje alarmiste referitoare la securitatea 100
calculatorului tău. Nu se vor retrimite e-mail-uri primite către cunoscuţi cu urarea că vei avea noroc dacă faci asta. 8) Scanarea de viruşi. Această acţiune poate fi făcută manual sau poate fi făcută automat de către program prin configurarea acestuia ca la pornire sau la o anumită dată, periodic, să facă acest lucru. Orice nou suport de memorie accesat (disc flexibil, CDROM, pendrive etc.) trebuie să fie scanat. La majoritatea programelor antivirus opţiunea este automată. 9) Dezactivarea lui ActiveX din opţiunile browserului de Internet (figura 27).
Figura 27. Dezactivarea lui ActiveX din opţiunile browserului de Internet. 10) Dezactivarea lui Windows Script Host (WSH) pentru a se preîntâmpina infectarea cu viruşi de script (extensia .VBS) 11) Activarea opţiunii de protecţie la viruşi de macro (Macro Virus Protection) în Microsoft Office (figura 28).
101
Figura 28. Activarea opţiunii de protecţie la viruşi de macro. 12) Achiziţionarea unui firewall. 13) Salvarea periodică a datelor (backup). 14) Informarea permanentă asupra acţiunii viruşilor. Acest lucru poate fi făcut din publicaţiile de specialitate sau din atenţionările periodice trimise de firmele din domeniu.
102
Capitolul III. Folosirea dispozitivelor firewall în cadrul firmei 3.1. Principii Implementarea unui sistem firewall reprezintă măsura de securitate cea mai avansată care poate fi implementată. Un firewal este considerat ca fiind prima linie de protejare a informaţiilor private. Termenul de firewall (zid de foc) este folosit pentru prima dată la începutul anilor 1700 de către muncitorii forestieri pentru a proteja pădurile de propagarea incendiilor. Aceştia efectuau o degajare în masa copacilor şi în acest fel focul nu mai putea să se propage. Acelaşi termen este folosit în industrie, în construcţia de locuinţe, hale industriale, depozite şi este folosit şi în industria IT&C. Un firewall este un sistem folosit pentru implementarea politicii de control a accesului într-o organizaţie sau între organizaţii. Acesta va proteja un calculator sau o reţea împotriva accesului neautorizat. Firewall-ul va crea un singur punct de legătură cu o reţea care va putea să fie nesigură. În acest fel se vor concentra toate resursele spre apărarea acelui punct de trecere (gateway). Un firewall este constituit dintr-un calculator sau din mai multe calculatoare, împreună cu programele asociate, care vor asigura politica de control a accesului. Firewall-ul va permite sau va interzice traficul dintr-o parte în alta a sa. Traficul care poate să treacă sau să nu treacă prin firewall poate fi între două sau mai multe reţele sau între două sau mai multe calculatoare. Firewall-ul va putea să separe traficul dintre diferitele compartimente ale firmei sau să separe traficul din interiorul firmei de Internet. Un singur dispozitiv firewall poate fi folosit 103
pentru a se crea partiţii logice la nivelul firmei. În această situaţie se impune ca tot traficul, inclusiv cel de Internet, să treacă printrun singur server. De regulă, acel server este serverul central (figura 29).
Figura 29. Modul de acţiune al unui dispozitiv firewall Politica de securitate poate fi implementată cu ajutorul firewall-ului folosind una dintre cele două metode fundamentale: ce nu este în mod expres specificat ca fiind permis este interzis; ce nu este în mod expres specificat ca fiind interzis este permis. Prima strategie este cea mai sigură, aceasta asigurând doar trecerea pachetelor care sunt specificate. A doua strategie este mai permisivă, dar şi mai nesigură. Protecţiile asigurate de un firewall sunt următoarele: protejarea împotriva serviciilor şi protocoalelor nesigure; 104
protejarea informaţiilor despre utilizatori prin ascunderea adreselor de reţea; creează fişiere jurnal care vor asigura auditarea reţelei; permite avertizarea în cazul unor tentative de intruziune; în cazul în care sunt mai multe dispozitive firewall într-o reţea care are acces la internet, se poate permite o evidenţă centralizată a reţelei faţă de exterior. Nici o reţea de firmă ataşată la Internet nu va putea să fie în totalitate sigură. Întotdeauna vor exista goluri care vor fi exploatate de hackeri. În aceste situaţii, un firewall nu poate să facă faţă următoarelor tipuri de atacuri: o provenite din interiorul firmei. Un angajat din firmă va putea să atace reţeaua locală cunoscând caracteristicile acesteia; o anumite categorii de viruşi, cai Troieni, Backdoors; o dezvăluiri de conturi şi parole prin metoda .social engineering.; o atacuri folosind conexiunile prin modem. O conexiune modem este bidirecţională, lucru care uşurează mult munca unui hacker.
105
3.2. Tipuri de dispozitive firewall Pe piaţă există mai multe variante de dispozitive firewall comerciale. În esenţă acestea se pot clasifica în dispozitive firewall: o de nivel reţea; o de aplicaţie; o hibride. În literatura de specialitate aceste tehnologii mai sunt cunoscute şi sub numele de filtrarea pachetelor (pachet filters), porţi de aplicaţii (applications gateways) şi inspectarea completă a pachetelor (stateful pachet inspection). Dispozitivele firewall de nivel reţea sau cu filtrarea pachetelor folosesc ca componentă hardware router-ele. Regulile referitoare la acces vor fi definite la nivel de router. În funcţie de politica implementată de firewall, unele pachete (numite şi datagrame) vor fi admise, iar altele vor fi respinse în funcţie de setul de reguli codificate de software-ul care rulează pe firewall (figura 30)
Figura 30. Dispozitivele firewall de nivel reţea. 106
Fitrarea se va face ţinând cont de următoarele criterii: adresa IP a sursei; adresa IP a destinaţiei; numărul portului TCP sau UDP (User Datagram Protocol . protocol de comunicaţie similar cu TCP/IP) al sursei; numărul portului TCP sau UDP al destinaţiei; identificatorul de protocol care se găseşte rezident în header-ul IP. Un exemplu de regulă firewall poate fi următorul:
Nu toate router-ele pot să filtreze anumite porturi, deşi majoritatea fac acest lucru. Uneori aceasta filtrare este dependentă de sistemul de operare care rulează pe router. Dispozitivele firewall de nivel aplicaţie folosesc tehnica de substituire sau intermediere a aplicaţiilor sau proxy (application-proxy firewall), denumit uneori şi poartă de aplicaţie (application gateway). Acest tip de firewall are funcţionare diferită faţă de tipul bazat pe router şi filtrarea de pachete. Porţile de aplicaţie sunt bazate pe componente software. Încercarea de conexiune de la distanţă a unui utilizator va fi blocată şi se vor examina diferitele câmpuri ale cererii. Dacă se îndeplinesc un set de reguli predefinite, poarta creează o punte (bridge) între gazdă de la distanţă şi cea internă. Într-o schemă care foloseşte o aplicaţie gateway, pachetele IP nu sunt transferate mai departe în reţeaua internă, ci sunt translatate având poarta ca interpretor. Această configuraţie mai este denumită şi configuraţie cu intermediar (man-in-the-middle configuration) (figura 21).
107
Figura 21. Dispozitivele firewall de nivel aplicaţie. Avantajul modelului proxy, cu poarta de aplicaţie, este lipsa transferului de pachete IP (forwarding). Avantajul important este acela că pe conexiunea astfel intermediată se pot folosi mai multe tipuri de controale. Un alt avantaj este acela că astfel de instrumente oferă opţiuni şi posibilităţi de înregistrare foarte avansate ale traficului. Dezavantajul modelului proxy se reflectă în viteza reţelei. Deoarece fiecare conexiune şi tot traficul de pachete sunt acceptate, negociate, translatate şi transmise mai departe, această implementare poate fi mai lentă decât filtrarea de pachete bazată pe router. Un transfer de IP (IP forwarding) poate fi periculos deoarece permite unui cracker experimentat să aibă acces la staţiile de lucru din reţeaua internă a firmei. Un alt dezavantaj al acestei scheme este acela că pentru aplicarea tuturor regulilor de filtrare pe un singur firewall va putea să genereze o încetinire a traficului şi va presupune o muncă laborioasă pentru implementare. Din această cauză, trebuie creat un proxy (intermediar) pentru fiecare serviciu de reţea. Aceasta presupune existenţa unui proxy pentru FTP, pentru Telnet, pentru HTTP etc. De aceea se preferă ca uneori să fie mai 108
mult de un firewall care să împartă şi să preia o parte din sarcinile primului. Dispozitivele firewall hibride combină funcţiile de la dispozitivele firewall de nivel reţea cu cele de la dispozitivele firewall de nivel aplicaţie. Acestea funcţionează ca un firewall care va monitoriza sesiunea şi informaţiile despre aceasta, va filtra pachetele, dar nu este un proxy. Informaţiile despre sesiune vor include IP-ul sursei şi al destinaţiei, informaţii despre porturi şi un jurnal al autentificărilor. Firewall-urile hibride asigură o securitate foarte bună. Sunt mai rapide ca firewall-urile de aplicaţie, dar mai lente decât firewall-urile bazate pe filtrarea pachetelor. O comparaţie între modul de funcţionare al celor trei modele de firewall-uri folosind modelul de reţea OSI este exemplificată în tabelul următor (tabelul 8) Tabelul 8. Acţiunea tipurilor de firewall asupra nivelurilor de reţea OSI.
Ca metodă de securizare a reţelei interne împotriva atacurilor din exterior majoritatea dispozitivelor firewall se folosesc translarea adreselor de reţea (NAT - Network Address Translation - translarea adreselor de reţea). Aceasta presupune ascunderea identităţii (IP locale) a calculatoarelor locale pentru reţeaua publică. Sistemele de operare Windows 2000/2003 Server, XP, Linux şi majoritatea sistemelor de operare UNIX moderne dispun 109
de aceasta facilitate. Windows NT nu beneficiază de această facilitate. NAT ascunde adresele IP locale prin convertirea lor la adresele firewall. În Internet tot traficul care provine de la calculatoarele reţelei locale va fi văzut că provine de la un singur calculator/server al cărui IP va fi singurul cunoscut. Un atacator nu va putea vedea decât IP-ul dispozitivului NAT şi nu pe cele interne. Translarea adreselor permite de asemenea folosirea oricărui IP în reţeaua locală, chiar dacă acestea sunt folosite oriunde altundeva în Internet. Singurele probleme pot să apară atunci când se accesează din Internet o locaţie care are acelaşi IP cu cel al calculatorului local. Din această cauză, este de preferat să se folosească pentru calculatoarele din reţeaua locală IP-urile rezervate 192.168.0.0 sau 10.0.0.0. Aceste clase nu se regăsesc în adresele de host-uri din Internet. NAT permite şi multiplexarea unei singure adrese IP publice către toată reţeaua locală. Acest lucru este benefic pentru firmele mici deoarece fără această multiplexare posibilităţile de adresare sunt relativ reduse. Translarea adreselor are şi dezavantaje. Unul dintre ele este acela în care un administrator al reţelei interne vrea să se conecteze din afară la un calculator local în vederea depanării. Sau situaţia în care se doreşte aflarea IP-ului unui calculator local de la care s-a trimis un mesaj senzitiv către exterior. NAT ţine la distanţă atacatorii, dar la fel de bine limitează accesul din afară al utilizatorilor legitimi (administratori) la resursele reţelei interne în vederea depanării. Dispozitivele NAT moderne au implementată opţiunea de port-forwarding care permite accesul utilizatorilor legitimi la reţeaua internă. Modul de funcţionare al unui proces NAT este exemplificat în figura 32 .
110
Figura 32. Funcţionarea unui proces NAT.
111
3.3. firewall
Alegerea,
instalarea
şi
configurarea
→ Prima decizie în achiziţionarea unui dispozitiv firewall este dacă alegem unul hardware, software sau o combinaţie a celor două. O dată ales dispozitivul firewall, acesta va trebui să facă invizibilă reţeaua firmei pentru un neautorizat şi să o protejeze împotriva atacurilor. → Pentru alegerea unui firewall trebuie să se ţină cont de următoarele criterii: gradul de securitate; sistemul de operare; administrarea. Gradul de securitate asigurat de un dispozitiv firewall este uneori greu de cuantificat. Este bine ştiut că un firewall hardware produs de firma Cisco reprezintă topul vânzărilor. Dar tot la fel de bine se ştie şi că acele firewall-uri sunt şi cele mai scumpe. PIX (PIX - Private Internet Exchange.) Firewall produs de firma Cisco este considerat ca fiind unul dintre cele mai bune dispozitive de acest fel, asigurând o securitate ridicată şi un nivel crescut de performanţă. Sistemul de operare va atârna în decizia de alegere a unui firewall în două moduri. Unul ar fi acela că producătorii de firewall sunt de părere că firewall-urile bazate pe sisteme de operare care au mai puţine bug-uri sunt mai sigure. Al doilea motiv ar fi acela că bug-urile apărute în folosirea unui firewall care rulează pe un sistem de operare larg răspândit vor putea fi raportate de un număr mai mare de utilizatori. Există însă şi reversul la folosirea unui sistem de operare larg răspândit. Sistemul de operare Windows, care este cel mai răspândit, e cel mai atacat deoarece este un sistem de operare comun, are suficiente goluri de securitate şi pentru că mulţi hackeri urăsc firma Microsoft datorită politicii sale. 112
Atunci când se alege un firewall software este obligatoriu ca acesta să fie suportat de sistemul de operare. Administrarea unui firewall trebuie să fie familiară. Este bine cunoscut că firewall-urile Windows sunt mai uşor de administrat decât cele UNIX (sau Linux). Existenţa unei interfeţe greoaie va face ca firewall-ul să nu fie configurat optim, mai ales dacă persoana care-l configurează nu are experienţă. Dispozitivele firewall comerciale sunt disponibile în două categorii: Single gateway, care are suport pentru un număr specific de utilizatori şi consola de management instalată pe un singur calculator. Se pretează foarte bine la firmele mici. Firewall Enterprise, care permit protejarea unui număr specificat de calculatoare din reţeaua internă. Adăugarea de module suplimentare măreşte numărul acestora. Achiziţionarea unui dispozitiv firewall de firmă, ca exemplu PIX Firewall, produs de Cisco, pentru protejarea la atacuri din exterior, este de preferat în locul achiziţionării unui produs software. Preţul de achiziţie şi cheltuielile de implementare fac ca această soluţie să nu fie aleasă decât de firmele mari, care-şi pot permite preţul. Firewall-ul produs de firma Checkpoint costă pentru un modul cu 5 utilizatori 300 USD, iar pentru un modul de 250 de utilizatori costă 6.000 USD. Asistenţa tehnică este asigurată telefonic pentru suma de 400 USD pentru incident. Symantec Enterprise Firewall (care este un proxy) costă (cu suport de VPN) 4.000 USD pentru un număr de până la 100 de utilizatori şi 12.500 USD pentru un număr nelimitat de utilizatori. Suportul tehnic este asigurat pentru sume cuprinse între 400 USD (până în 100 utilizatori) şi 1.875 USD (pentru un număr nelimitat de utilizatori). Symantec Enterprise Firewall rulează pe platforme Windows NT 4 SP 6a, Windows 2000/2003, precum şi pe platforme Sun Solaris (SPARC), şi este multithread (Multithread . capacitatea mai multor microprocesoare de a 113
funcţiona ca şi cum ar fi unul singur) pentru a putea să folosească facilităţile sistemelor multiprocesor. Firmele mici vor opta pentru soluţii firewall înglobate, lucru întâlnit la serverele Internet bazate pe sistemele de operare Linux. În cazul în care serverul respectiv are ca sistem de operare Windows, se indică folosirea pachetului Norton Internet Security 2004 (Professional) la preţul de 70 (100) USD. Dacă se doreşte şi protejarea staţiilor de lucru din interiorul firmei împotriva atacurilor din interior, se poate opta între produsele existente pe piaţă: Norton Firewall (Norton Internet Security), Zone Alarm Pro, CheckPoint Firewall. Preţurile la aceste produse variază în jurul valorii de 50 USD. Unele dintre aceste produse se livrează gratuit la achiziţionarea unui sistem de calcul. Este cazul produselor Norton Internet Security şi Norton Antivirus (uneori sunt integrate într-un singur program . Norton Internet Security ., dar opţional se poate instala şi Norton Antivirus). Suportul tehnic pentru actualizări gratuite este de un an. Instalarea şi configurarea vor fi făcute în următorii paşi: instalare şi configurare platformă sistem de operare; instalare şi configurare module firewall; instalare şi configurare server management; instalare şi configurare console de administrare; instalare servicii suplimentare (antivirus, antispam); configurare politici de securitate; configurare translatare adrese (NAT); implementare metode de autentificare. → Conform celor expuse, în cadrul firmei, am optat pentru o soluţie de compromis financiar. Cerinţele au fost ca să fie protejate calculatoarele care au acces la Internet şi de asemenea să fie protejate şi cele neconectate. Pentru prima categorie am ales varianta de externalizare a serviciului de securitate. Serverul de Internet, pe care rula Linux, să fie dat în administrarea distribuitorului local RDS/RCS (RDS/RCS . Grup de firme 114
(consorţiu) specializate în distribuţia de televiziune prin cablu şi distribuţie Internet. ). Acesta, de comun acord cu conducerea firmei, a instalat şi configurat firewall-ul Linux cu restricţiile impuse, urmând ca periodic să trimită la sediul firmei liste cu atacurile asupra serverului. Totodată, firma RDS/RCS se obliga să monitorizeze permanent activitatea de pe acest server. Pentru calculatoarele neconectate la Internet varianta aleasă a fost aceea a programelor firewall Norton Personal Firewall/Norton Internet Security. S-a ales această soluţie deoarece o parte din calculatoarele nou-achiziţionate aveau preinstalat acest program. Administrarea calculatoarelor din reţeaua neconectată va fi făcută de către un angajat al firmei care va actualiza permanent programele şi va monitoriza rezultatele statistice generate de firewall.
3.4. Administrarea firewall Administrarea unui firewall poate fi o activitate care poate să ocupe foarte mult timp. Aceasta depinde şi de mărimea firmei, în cazul firmelor mari administrarea putând fi o operaţie permanentă. În esenţă, administrarea unui firewall presupune: monitorizarea performantei firewall-ului; monitorizarea log-urilor de securitate; mentenanţa securităţii prin aplicarea de patch-uri şi hotfixuri şi actualizări; intervenţia în caz de nevoie. La nivelul firmei un firewall este acel produs care împarte o singură politică centralizată peste multiple firewall-uri. Firewall-urile la nivel de firmă permit un control centralizat al politicii de securitate. Politica de securitate, definită la nivel de staţie de lucru, este apoi replicată peste celelalte puncte de lucru. 115
→ La firma studiată o mare parte dintre probleme se datorau conexiunii la Internet. Nu am contorizat pierderile de productivitate datorate conexiunii la Internet, dar mai toţi angajaţii firmei pierdeau în fiecare dimineaţă, uneori zeci de minute, ca să citească presa prin Internet sau pentru alte activităţi care nu aveau nici o legătură cu activitatea firmei. O mare parte dintre virusările calculatoarelor se datorau conexiunii la Internet. Am decis că cea mai sigură cale de a limita atacurile din Internet şi de a nu mai avea pierderi de productivitate este aceea de a separa reţeaua. Aceasta va presupune o conexiune la Internet numai a staţiilor care au întradevăr nevoie de asta. Accesul publicului la serverele de web, FTP, email se va face doar pe o porţiune mică din reţea. Staţiile de lucru de aici vor conţine toate datele necesare publicului, dar nu date senzitive. În acest fel, se asigură următoarele beneficii: porţiunea de reţea neconectată la Internet este absolut sigură. Transferul de date din reţeaua conectată la Intenet în cea neconectată se va face folosind suporturi de memorie de capacitate mare care şi acestea vor fi scanate de viruşi. Dar acest transfer se face doar atunci când este absolut necesar; soluţia este foarte simplă şi nu necesită echipamente speciale; reduce riscurile de atac şi infectare cu viruşi; reduce timpul pe care angajaţii îl pierd navigând pe web sau descărcând programe care nu au nici o legătură cu activitatea firmei; reducerea traficului în cele două reţele a crescut performanţele în ambele. → După realizarea separării reţelei problemele generate de viruşi aproape că au dispărut în reţeaua neconectată. Periodic, şi în afara orelor de program, se conectau cele două reţele pentru a se face actualizările de semnături de viruşi, actualizările de programe firewall şi alte (hot)fix-uri de programe. Au rămas 116
conectate la Internet numai calculatoarele la care acest lucru era absolut necesar (5 la număr). Făcând un calcul aproximativ, au rezultat câştiguri de productivitate de 17.250.000 lei (15 calculatoare neconectate x 1 oră câştigată în fiecare zi x 50.000 lei media tarifară orară x 23 de zile). Această nouă configurare nu a fost pe placul angajaţilor. Aceştia au fost nemulţumiţi de acest lucru în primele zile, situaţia intrând apoi în normalitate.
117
Capitolul IV. Scanere de vulnerabilitate 4.1. Tipuri de scanere Un scaner este o componentă software care va analiza o reţea şi va detecta eventualele slăbiciuni ale acesteia, precum şi golurile de securitate. Un scaner va lansa atacuri secvenţiale asupra calculatoarelor din reţea. De această dată, atacul nu este unul maliţios. Dacă un atac a fost însoţit de succes, atunci scanerul va crea o notă într-un raport şi apoi va continua procesul. La sfârşitul procesului de scanare se va afişa un raport referitor la acţiunile scanerului şi la calculatoarele vulnerabile. Acest raport va putea fi folosit pentru a înţelege care calculator din reţea are nevoie de o mare atenţie pentru a îmbunătăţi securitatea a lui şi a întregii reţele. Deşi acţiunea unui scaner este însoţită de termeni ca gol de securitate etc., succes (al atacului), vulnerabilitate, de această dată aceşti termeni au o cu totul altă conotaţie. Să nu uităm că această scanare este folosită nu pentru iniţierea unui atac, ci tocmai pentru ca atacurile maliţioase să nu poată fi încununate de succes. Un gol de securitate nu va fi exploatat, cum fac hackerii, ci va fi umplut cu ajutorul patch-urilor, al fix-urilor sau prin modificarea configuraţiei. Atacul va fi executat doar pentru a se determina vulnerabilităţile şi nu pentru a le exploata. Succesul unui atac nu va fi o victorie ca în cazul unui atac real, ci va fi un motiv de îngrijorare şi un obiectiv. Vulnerabilitatea zero sau redusă va reprezenta de această dată un lucru bun. O vulnerabilitate ridicată va reprezenta un motiv de îngrijorare care va necesita măsuri urgente. Majoritatea scanerelor testează calculatorul-gazdă şi informează asupra 118
serviciilor de reţea care funcţionează pe acel calculator. În plus, un scaner va spune şi unde acele servicii sunt susceptibile de o vulnerabilitate cunoscută sau sunt greşit configurate. De exemplu, pentru o arhitectură Windows, testele care se vor efectua sunt următoarele: scanarea porturilor de reţea care utilizează UDP; scanarea porturilor de reţea care utilizează pachete TCP SYN, ACK, FIN; scanarea lui Network Neighborhood; testarea vulnerabilităţilor DNS şi SNMP; scanarea pentru detectarea cailor troieni şi a backdoorsurilor cunoscute; Server Message Block Querying; testarea Active Services; verificarea protocoalelor de transport şi sesiune; posibilitatea de a stabili sesiunile NULL IPC$ locale; verificarea Service pack şi Hotfix; verificarea opţiunilor share (Admin(S)); verificarea abilitaţilor de querry registry; verificarea vulnerabilităţilor cunoscute URL şi CGI; verificarea vulnerabilităţilor cunoscute la atacuri DoS; verificarea vulnerabilităţilor MS SQL Server; testarea vulnerabilităţilor SMTP, FTP, POP3.
Tipurile cele mai cunoscute de scanere sunt: scanere de reţea (network-based scanners) scanere de staţie (host-based scanners) scanere de porturi (port scanners).
Scanerele de reţea sunt unelte software care lansează dintr-o locaţie centrală “atacuri” asupra reţelei în vederea testării vulnerabilităţilor. O consolă centrală va fi folosită pentru maparea întregii reţele şi pentru trimiterea de pachete către calculatoarele care vor fi scanate pentru a culege informaţii. De la această 119
consolă se vor direcţiona diferitele .atacuri. care vor scana un anume calculator din reţea. Scanerele de reţea sunt uşor de implementat şi de utilizat. Programul de scanare va fi încărcat pe un calculator din reţea şi de aici se va testa reţeaua (figura 33).
Figura 33. Interfaţă scaner de reţea. Scanerele de reţea au şi neajunsuri. Printre acestea se pot enumera: încetinesc traficul în reţea. Un scaner de reţea va putea să folosească pentru lansarea “atacurilor” foarte multă bandă; pot duce la blocarea unor calculatoare. Anumite teste pot să blocheze calculatoarele supuse procesului de scanare; durata de timp pentru efectuarea unei operaţii de scanare poate să fie considerabilă şi poate folosi resurse mari din reţea; acţiunea de scanare va putea să fie folosită de alte persoane (hackeri sau angajaţi răuvoitori) pentru descoperirea vulnerabilităţilor reţelei. 120
Scanerele de staţie diferă de scanerele de reţea în primul rând prin arhitectură. Pachetele de testare de la consolă vor fi trimise către un calculator din reţea şi nu către toată reţeaua (figura 34). Tot traficul se desfăşoară între aceste două puncte. A două diferenţă este aceea că acţiunea de testare se face pentru testarea unei configurări locale defectuoase fără să se încerce exploatarea unor goluri de securitate. Scanerele de staţie au câteva avantaje în faţă scanerelor de reţea. Unul dintre avantaje este acela că traficul din reţea e sensibil diminuat, ţintă nefiind reţeaua, ci numai un calculator din reţea. Din această cauză, un scaner de staţie este de preferat în locul unuia de reţea deoarece nu foloseşte resurse mari de reţea în care ar avea repercusiuni asupra traficului prin scăderea acestuia. Calculatoarele testate nu mai sunt în pericol de a cădea, ca la un atac cu scaner de reţea, deoarece se testează doar vulnerabilitatea şi nu posibilitatea de exploatare a acesteia. Scanerul de staţie nu va mai putea fi folosit de o altă persoană pentru scanarea reţelei deoarece scanarea de la consolă la calculatorul supus testului se face pe un canal securizat care nu poate fi folosit decât de o singură persoană.
Figura 34. Scaner de staţie. Scanerele de porturi reprezintă o categorie aparte de scanere folosite pentru maparea calculatoarelor din reţea şi 121
testarea porturilor pe care acestea le folosesc. Un port este o adresă a calculatorului folosită pentru comunicare. Oricare din cele peste 10.000 de posibile porturi pot fi folosite, dacă sunt deschise, pentru iniţierea unui atac (figura 35).
Figura 35. Scaner de porturi. Multitudinea de scanere existente ca programe gratuite în Internet face ca acestea să constituie un pericol la adresa calculatoarelor din reţeaua firmei. Chiar dacă nu au succes în descoperirea golurilor de securitate, un scaner îngreunează traficul în reţea atunci când este în lucru. Acesta poate să fie unul din semnalele că se face o scanare a reţelei locale.
122
4.2. Scanere comerciale Majoritatea scanerelor au abilitatea de scanare de porturi pentru găsirea unui calculator în reţea. Există însă unelte specializate în scanarea de porturi. NMAP (NetworkMAPer) şi NMAPFE sunt unele dintre cele mai folosite unelte în acest scop. NMAP este un utilitar care explorează arhitectura reţelei foarte rapid. Acesta foloseşte pachete IP pe care le trimite în reţea pentru a determina care calculator este disponibil, serviciile (asigurate de porturi) care sunt deschise, sistemele de operare şi versiunile acestora care rulează pe acel calculator, precum şi firewall-urile active. Mai multe date, documentaţii, precum şi programul în format comprimat sau codul sursa vor putea fi găsite la adresa http://www.insecure.org/nmap/ . GNIT este un scaner pentru platforme Windows NT şi Windows 2000. Acesta va face o verificare amănunţită a reţelei, va furniza detalii despre fiecare cont, precum şi o listă cu conexiunile şi serviciile care rulează. Mai multe detalii se pot găsi la adresa http://security.ellicit.org/. Winfingerprint scanează calculatoarele şi culege informaţii referitoare la NetBIOS, utilizatori, grupuri, protocoale de transport, servicii etc. Programul va scana calculatoarele existente în Network Neighborhood oferind un raport în format HTML - http://winfingerprint.sourceforge.net/ Security Administrator’s Integrated Network Tools (SAINT) este folosit pentru a testa şi evalua reţele. Versiunea gratuită poate fi descărcată de la adresa ftp://ciac.llnl.gov/pub/ciac/sectools/unix/satan/ Cerberus Information Scanner (CIS) scanează reţeaua pentru a determina serviciile care rulează. Programul funcţionează pe platforme Windows NT şi 2000 şi determină dacă conturile 123
utilizatorilor, informaţiile partajate, grupurile şi anumite servicii pot fi accesate de către intruderi. În plus, se mai poate face o scanare pentru a se determina vulnerabilităţile SQL Server. Versiunea gratuită poate fi descărcată de la adresa www.cerberusinfosec.co.uk/cis.shtml. Pe lângă aceste site-uri mai există în Internet foarte multe alte site-uri care pot da informaţii despre securitate şi cum poate fi aceasta îmbunătăţită. Informaţiile de aici includ descrieri despre vulnerabilităţi, platformele care sunt afectate, precum şi măsurile care trebuie luate pentru remedierea acestor vulnerabilităţi. Cele mai importante biblioteci cu baze de date despre vulnerabilitate se pot găsi la următoarele adrese: BugTraq (www.securityfocus.com/bid). Este cea mai mare şi mai importantă bază de date care cuprinde informaţii legate de vulnerabilităţi, descrierea acestora, detalii despre exploatarea acestora şi procedurile de eliminare. CERT (www.cert.org). Computer Emergency Response Team (CERT) este un centru federal de cercetare şi dezvoltare în domeniu localizat la Carnegie Mellon University. X-Force (xforce.iss.net). Internet Security Systems (ISS) este un scaner de firmă care are posibilitatea de a asigura securitatea asupra unor grupuri. CIAC (www.ciac.org). Computer Incident Advisory Center (CIAC) este sponsorizat de U.S. Department of Energy şi include ştiri, avertizări despre viruşi, precum şi o bază de date extinsă referitoare la vulnerabilităţi. NtBugTraq (www.ntbugtraq.com). Această bază de date aparţine unei persoane private, Russ Cooper, şi conţine informaţii referitoare la vulnerabilităţile Microsoft.
124
4.3. Procedurile de scanare la nivel de firmă Scanerele trebuie folosite în strânsă legătură cu procesele şi procedurile aplicate pentru asigurarea politicii de securitate impuse la nivel de firmă. Procedurile de scanare în vederea detectării vulnerabilităţilor sunt mari consumatoare de timp. Din acesta cauză, operaţiile incluse în procesul de scanare trebuie să se facă în afara orelor de program. → Consider că operaţiile de scanare la nivelul firmei, în vederea testării vulnerabilităţilor, trebuie să se facă ţinând cont de mărimea firmei. De asemenea, această operaţie trebuie să se facă obligatoriu de oricâte ori se modifică arhitectura reţelei din firmă. → La nivelul firmelor mici, procedura de scanare se va efectua de cel puţin două ori pe an, în condiţiile în care nu se face nici o modificare în arhitectura reţelei. Dacă se fac modificări în arhitectura reţelei, atunci după fiecare modificare se va face o nouă verificare a vulnerabilităţilor folosind scanarea. În funcţie de numărul de calculatoare existente în firmă, operaţia de scanare poate să dureze de la câteva ore până la câteva zile. Dacă numărul de calculatoare este mic, atunci operaţia va putea fi făcută în afara orelor de program, în zilele lucrătoare. Dacă numărul de calculatoare este relativ mare, până la 100, atunci procesul de scanare se va face în zilele nelucrătoare. → La nivelul firmelor medii, operaţia de scanare se va efectua în mod regulat. În acest caz, operaţia este mult mai laborioasă, deoarece poate exista un număr de servere mult mai mare ca la firmele mici, acestea necesitând un timp mai îndelungat de scanare. Din această cauză, procesul de scanare poate fi făcut pe 125
secţiuni ale reţelei. De asemenea, în funcţie de anumite criterii de politică sau de arhitectură, anumite porţiuni de reţea pot fi scanate mai des, în timp ce altele mai rar. → La nivelul firmelor mari, operaţia de scanare reprezintă o prioritate. Operaţia este extrem de laborioasă şi de aceea trebuie să existe personal extrem de bine pregătit şi responsabil. Operaţia de scanare poate să nu rezolve în totalitate anumite probleme legate de securitate, dar poate atenţiona asupra punctelor vulnerabile în care trebuie concentrată atenţia. → În situaţia în care firma, indiferent de mărime, nu are personal calificat pentru această operaţie, se poate apela la firme specializate care să preia această sarcină.
126
Capitolul V. Controlul accesului şi detectoare de intruziune 5.1. Modalităţi de control al accesului Un proces de asigurare complet a securităţii presupune protecţia, detectarea şi răspunsul la atacuri. Detectarea intruşilor reprezintă miezul problemei pentru a monitoriza calculatorul sau reţeaua de calculatoare în vederea detectării golurilor de securitate, a hackerilor şi a abuzurilor angajaţilor. Majoritatea detectoarelor de intruziune au în componenţă şi mecanisme de limitare a pierderilor. Mecanismele folosite pentru interzicerea accesului persoanelor neautorizate la datele stocate în calculator poarta denumirea de funcţii de control al accesului. Până unde trebuie mers însă cu limitarea şi controlul accesului? Limitarea excesivă de acces a clientului la anumite informaţii poate să nu fie benefică în afaceri. Măsurile de securitate excesive impuse partenerilor de afaceri s-ar putea să fie supărătoare pentru aceştia. Accesul la anumite date, restricţionat de o mulţime de parole de acces, va putea să fie enervant pentru partenerul de afaceri care poate în final să renunţe. Paradoxul securităţii este acela că poţi avea o securitate excesivă în detrimentul afacerilor sau o securitate rezonabilă şi afacerile să fie prospere. Adică .Cine nu riscă nu câştigă.. Trebuie găsită o cale de mijloc între circulaţia liberă a informaţiilor şi nevoia de securitate. Accesul la informaţiile stocate într-un calculator reprezintă un risc de luat în seamă, dar dezvăluirea informaţiilor către un competitor în afaceri poate avea efecte dezastruoase asupra firmei. În funcţie de cât de multe şi de caracterul datelor intrate în posesia competitorului, se poate ajunge chiar în situaţii de blocare a activităţilor pentru o perioadă de timp sau chiar 127
faliment. Acesta este principalul motiv pentru care firmele trebuie să se preocupe de securitatea datelor din propriile calculatoare. Atunci când se pune problema asigurării securităţii, oricine se gândeşte că prima măsură este asigurarea unui control al accesului. Şi pe bună dreptate. Controlul accesului reprezintă o serie de măsuri menite să interzică accesul persoanelor neautorizate la date. Controlul accesului la date se va face prin luarea de măsuri administrative şi măsuri hardware. Măsurile administrative vor constitui prima linie de apărare împotriva persoanelor neautorizate. Existenţa acestor măsuri vizează angajaţii firmei, persoanele care au contact fizic cu firma, clienţii direcţi, precum şi intruderii care vor să pătrundă fizic în firmă pentru a avea acces la date. Aceste măsuri nu se aplică şi nici nu au cum să se aplice împotriva unor atacuri de la distanţă. Măsurile administrative vor presupune montarea unor serii de dispozitive fizice menite să limiteze şi să supravegheze accesul într-o anumită zonă. Aceste dispozitive pot fi: perimetre de protecţie; chei de acces în anumite zone; carduri pentru acces la anumite zone; alte modalităţi de restricţionare; modalităţi de supraveghere. Perimetrele de protecţie sunt constituite de gruparea calculatoarelor în anumite zone unde accesul să poată fi supravegheat. Aceste perimetre pot fi anumite clădiri sau, într-o anumită clădire, anumite birouri. În anumite situaţii, când o anumită încăpere are o suprafaţă foarte mare, se folosesc pereţi despărţitori. Accesul în anumite încăperi se va putea face doar dacă persoana respectivă are cheia sau cardul care să-i permită accesul în acea zonă. 128
La categoria alte modalităţi de restricţionare pot fi incluse modalităţile biometrice de control. Cele mai folosite modalităţi de identificare a unei persoane sunt: o semnătura; o amprenta digitală; o amprenta palmară; o scanarea retinei; o timbrul vocal; o modul de tastare. Ca modalitate de supraveghere destul de folosită în ultimul timp este utilizarea camerelor video de supraveghere. Camerele video de supraveghere nu au un rol preventiv în ceea ce priveşte accesul persoanelor într-o anumită zonă, dar pot fi folosite în procesul de identificare a intruderilor, de localizare a calculatoarelor şi echipamentelor supuse atacului, precum şi ca probă în eventualitatea că se iau măsuri judiciare împotriva unei anumite persoane. Un mecanism complex de control al accesului, în care se regăsesc şi camere video de supraveghere este exemplificat în figura următoare (figura 36).
129
Figura 36. Mecanisme de control al accesului. O dată trecută cu bine prima linie de securitate se ajunge la cea de-a doua care, o dată trecută, presupune accesul direct la date. Aici se vor implementa o serie de mecanisme care să interzică accesul persoanelor neautorizate. Controlul accesul la datele din calculatoare trebuie să se facă numai după ce se parcurg următoarele etape, cunoscute şi sub denumirea de AAA (Autentificare, Autorizare, Acces) (figura 37): identificare; autentificare; autorizare.
130
Figura 37. Controlul accesului. O dată ajuns în faţa calculatorului, utilizatorul trebuie să se identifice. Aceasta va presupune tastarea unui cont de identificare şi a unei parole. Pe baza unui mecanism de autentificare existent pe calculator se va confirma sau se va infirma veridicitatea celor tastate anterior. Dacă această etapă este trecută cu bine, atunci se primeşte o autorizare care-i va permite utilizatorului să acceseze resursele calculatorului sau ale reţelei. Acesta este de fapt un mecanism de control al accesului. Termenii de autentificare şi identificare sunt strâns folosiţi în literatura de specialitate. Identificarea şi autentificarea unui utilizator nu trebuie lăsată numai pe seama unui cont şi a unei parole. Firmele trebuie să se concentreze foarte atent asupra metodelor de identificare şi autentificare. Există două cazuri care impun ca acest lucru să fie făcut temeinic: senzitivitatea crescută a anumitor date; lucrul din afară. Unele date din calculator pot fi de o foarte mare importanţă pentru firmă, dar de o şi mai mare importanţă pentru concurenţă. Simpla identificare şi autentificare nu sunt suficiente. Unele firme folosesc ca modalitate de lucru cu angajaţii lucrul de acasă. Pentru acesta folosesc Internetul. Ori, un simplu cont şi o parolă trimise în Internet devin vulnerabile. Acesta este doar un exemplu care impune folosirea unor tehnologii performante de autentificare. Se folosesc cu precădere patru tipuri de tehnologii: • Kerberos; 131
• • • •
token-uri; biometrică; certificate; smart carduri.
Tehnologia Kerberos se foloseşte atunci când contul şi parola sunt trimise în reţea şi în acest fel pot deveni vulnerabile, putând să fie folosite de o altă persoană care să se substituie posesorului legal. De asemenea, tehnologia rezolvă situaţia în care un utilizator poate avea acces la mai multe calculatoare şi să nu fie nevoit de fiecare dată când reaccesează un calculator să introducă contul şi parola. Această tehnologie a fost dezvoltată de către Massachusetts Institute of Technology (MIT), care foloseşte algoritmi de criptare şi autentificare Data Encryption Standard (DES). Versiunea 5 a tehnologiei Kerberos reprezintă un standard Internet specificat în RFC 1510 (RFC - Request for Comments, o serie de notaţii referitoare la Internet, începând cu anul 1969 (când Internetul era ARPANET). Un document Internet (Internet Document) poate fi trimis către IETF de către orice persoană, dar IETF decide care document devine RFC. În eventualitatea în care acel document prezintă suficient de mult interes, acesta poate să devină un standard Internet). Tehnologia Kerberos se bazează pe conceptul de a treia parte de încredere care permite o verificare sigură a utilizatorului şi serviciilor. Această a treia parte poartă denumirea de Server de Autentificare (Authentfication Server) sau Centru de Distribuţie a Cheilor (Key Distribution Center . KDC). Prima operaţie efectuată de Kerberos este de a verifica dacă utilizatorii şi serviciile pe care aceştia le folosesc sunt cei care pretind a fi. Pentru a realiza aceasta KDC trimite către utilizator un “ticket” care va fi folosit de către utilizator. Iniţial se creează o cheie de legătură între client şi KDC, numita Kclient, şi o altă cheie între KDC şi serverul de aplicaţii, numită Kserver (figura 38). 132
Figura 38. Grupul de chei Kerberos. Când un client vrea să creeze o asociere pe un server de aplicaţii, clientul foloseşte o cerere de autentificare şi răspuns pentru a obţine un ticket şi o cheie de sesiune de la KDC (figura 39).
Figura 39. Autentificarea Kerberos.
Paşii sunt următorii: Pasul 1. Clientul trimite o cerere de autentificare către KDC. Această cerere conţine următoarele informaţii: declararea identităţii; numele serverului de aplicaţii; 133
cerere de validitate în timp pentru ticket; un număr aleator folosit pentru autentificare. Pasul 2. KDC verifică drepturile de acces ale clientului şi creează o autentificare de răspuns. Pasul 3. KDC trimite răspunsul de autentificare către client. Acesta conţine următoarele informaţii: cheia de sesiune, K session; timpul de expirare al cheii; un număr aleatoriu folosit pentru autentificare; numele serverului de aplicaţie; alte informaţii. Pasul 4. Când clientul primeşte răspunsul de autentificare, Clientul introduce numele de utilizator pentru a obţine parola, Kclient, folosită pentru a decripta cheia de sesiune de lucru Ksession. O dată obţinute acestea, clientul este abilitat să comunice cu serverul de aplicaţii. Acest lucru se va face conform figurii următoare (figura 40).
134
Figura 40. Cererea şi răspunsul la aplicaţie. Paşii sunt următorii: Pasul 1. Clientul va trimite către server două informaţii importante: Kerberos ticket; Un Autentificator, care conţine: ♦ timpul curent; ♦ sumă de control; ♦ cheie de criptare opţională. Acestea sunt criptate cu cheia de sesiune, K session, cu ajutorul ticket-ului. Pasul 2. La primirea cererii de aplicaţie, serverul decriptează ticket-ul cu ajutorul cheii de server, Kserver, extrage cheia de sesiune, Ksession, şi foloseşte cheia de sesiune pentru a decripta Autentificatorul. 135
Dacă aceeaşi cheie este folosită atât pentru criptarea, cât şi pentru decriptarea Autentificatorului, suma de control este corectă şi se concluzionează că Autentificatorul este cel generat de către clientul respectiv căruia îi aparţine cheia de sesiune. Pentru ca un atacator să nu poată să intercepteze Autentificatorul şi să-l folosească mai târziu, se verifică şi timpul. Pasul 3. Identitatea clientului este, în majoritatea cazurilor, verificată de către server. Sunt însă situaţii în care clientul vrea să fie sigur de autenticitatea serverului. În acest caz, serverul generează un răspuns prin extragerea timpului clientului din Autentificator şi returnarea acestuia către client împreună cu alte informaţii, toate criptate cu cheia de sesiune, Ksession. Tehnologia Kerberos a fost adoptată de către Microsoft atunci când a creat Single Sign On (SSO). Token-urile vor să rezolve problema furtului de parole şi este de fapt un complement al acestora. Deţinerea unui cont şi a unei parole a unui utilizator nu înseamnă că eşti acel utilizator. Majoritatea token-urilor arată ca o carte de credit şi au pe una dintre feţe un dispozitiv de afişare cu LCD (Liquid Crystal Display - Ecran cu cristale lichide). Folosire token-ului poate fi făcută în următoarele moduri: după introducerea contului şi a parolei se cere şi introducerea unui număr afişat pe ecran. Dacă toate trei sunt valide, accesul este garantat. Numerele de pe ecranul token-ului se schimbă la fiecare minut. după introducerea contului şi a parolei, calculatorul va răspunde cu un număr care va trebui să fie introdus în token-ul special de la o mică tastatură încorporată în acesta. După introducerea numărului se va genera de către token un altul care va fi introdus în calculator. Dacă acesta este un număr valid, accesul este garantat. Token-ul este introdus într-un cititor special ataşat la calculator. Se introduc contul şi parola, iar calculatorul va 136
prelua din token informaţia necesară pentru identificare şi autentificare. Tehnologia biometrică, deşi folosită şi în alte domenii sau niveluri de securitate, este folosită şi aici. Aceasta presupune identificarea şi autentificarea utilizatorului după caracteristicile individuale ale fiecărui utilizator. Acestea au fost enumerate anterior. Tehnologia biometrică este implementată centralizat în majoritatea firmelor care o folosesc. Unele firme nu acceptă însă această tehnologie din cauza imaturităţii controlului centralizat. Certificatele sunt folosite în autentificarea Public Key Infrastructure (PKI). Tehnologia PKI este folosită în Secure Sockets Layer şi Virtual Private Network (VPN). Un certificat reprezintă de fapt un set de înregistrări stocate pe calculator. Acest set de înregistrări formează cheia privată care va fi folosită în comunicarea cu un server. Stocarea certificatului pe disc creează două dezavantaje. Unul ar fi acela că acesta poate fi sustras. Al doilea dezavantaj este acela că folosirea certificatului este posibilă doar de la acel calculator. Acest ultim dezavantaj a fost remediat prin folosirea smart cardurilor. Smart cardurile arată ca o carte de credit, numai că au încorporate un mic calculator care stochează cheia privată. Calculatorul care se doreşte să fie accesat sau de la care se doreşte accesarea reţelei va trebui să aibă un cititor de smart carduri ataşat. Se vor introduce contul şi parola şi se va citi de pe smart card cheia privată. Contul şi parola nu vor fi trimise către calculator, ci către smart card. Acestea, împreună cu cheia privată, nu vor părăsi niciodată smart cardul. Autorizarea, după ce se trece de autentificare şi identificare, va da drepturi de acces la anumite resurse locale sau din reţea. Pentru a autoriza un utilizator se folosesc două metode. Prima, şi cea mai comună, este de a păstra căile de autentificare pentru fiecare utilizator într-un director şi apoi de a lista în directorul lui fiecare intrare (calculator sau program) la 137
care are acces. Soluţia este eficientă pentru grupuri reduse de calculatoare şi programe. La grupuri mari este greu de gestionat. A doua soluţie se numeşte regulă de bază a autorizării (RBA Role-Based Authorization) sau regulă de bază a controlului accesului (RBCA - Role-Based Acces Control). Construirea unei liste cu reguli standard pentru firmă şi asignarea autorizaţiilor la aceste reguli vor simplifica foarte mult procedeele de autorizare. Autorizarea este o problemă complicată la nivelul oricărei firme deoarece trebuie gestionat un foarte mare număr de reguli şi sarcini. Majoritatea sistemelor de operare au încorporate ca funcţie controlul accesului. Funcţiile de control al accesului sunt unele dintre cele mai complexe funcţii pe care un sistem de operare trebuie să le implementeze. Se estimează că aceste funcţii au nevoie de foarte mulţi ani pentru a fi .mature.. O îmbunătăţire sau mai multe aduse unui sistem de operare la care sau descoperit goluri de securitate va avea ca efect apariţia pe piaţă a aceluiaşi sistem de operare, cu golurile de securitate acoperite, dar cu alt nume. Cazurile cele mai elocvente sunt cele ale firmei Microsoft cu sistemele de operare Windows 9x. În unele cazuri, dacă sistemul de operare este nesigur sau se doreşte o îmbunătăţire a securităţii, se poate apela la alte produse care să completeze sau să sporească facilităţile sistemului de operare. În alte cazuri, la sistemele de operare mai noi, producătorul oferă opţiuni de configurare sporite care vor ridica gradul de control al accesului. Ca exemplu putem da sistemul de operare Windows XP (Pro), destul de des folosit în firmele mici şi medii. Opţiunile de configurare sunt exemplificate în figura următoare (figura 41).
138
Figura 41. Opţiuni de configurare Windows XP (Pro) Radicalizarea peste un anume prag a măsurilor de control al accesului va putea să ducă la stopări ale folosirii anumitor programe. Un puternic control al accesului va reduce riscul unei folosiri neautorizate a calculatorului, dar va face ca folosirea acestuia să fie foarte dificilă. Dacă se foloseşte un sistem de operare .matur. şi se configurează bine opţiunile de control al accesului, atunci nu vor fi probleme de exploatare. Sarcina de control a accesului poate fi împărţită sau atribuită unui Sistem de Gestiune a Bazelor de Date (SGBD). Acesta va conţine propriile funcţii de control al accesului. → Nu este însă suficient să se ştie cine are acces şi cine nu. Uneori este necesar ca să fie monitorizate şi acţiunile şi operaţiile pe care le execută un utilizator cu drept de acces la înregistrările dintr-un fişier bază de date. Este ştiut faptul că este mai simplu de implementat un program care să monitorizeze 139
accesul la fişiere decât unul care să monitorizeze accesul la înregistrările dintr-un fişier. Situaţia este cu atât mai complicată cu cât fiecare SGBD are drivere şi funcţii specifice care monitorizează aceste operaţii. Cu toate acestea, un astfel de program poate fi realizat. Se poate concepet un astfel de program care-şi propune să realizeze următoarele operaţii de monitorizare: indicarea locaţiei de unde se face accesul; fişierul accesat; tipul de operaţiile efectuate pe acesta; afişarea instrucţiunii tastate de utilizator; data şi ora la care au fost efectuate; afişarea de jurnale de log pentru fiecare utilizator; afişarea pe diverse criterii a jurnalelor de acces (nume utilizator, data şi ora, fişiere).
5.2. Stabilirea lungimii parolelor de acces Alegerea unei parole care să reziste un timp predefinit la atacuri de ghicire trebuie să fie principala directivă atunci când se aleg şi se distribuie parolele pentru angajaţii firmei. Este lesne de înţeles că o parolă cu cât este mai lungă şi este compusă dintr-un număr mai mare de caractere cu atât va fi mai greu de ghicit. Cât de lungă trebuie să fie însă parola? O parolă lungă şi greu de reţinut îl va determina pe proprietar să o scrie undeva la îndemână sau să o tasteze aşa de încet încât să poată fi citită de o persoană care se uită la tastatură. Stabilirea lungimii parolei se face ţinând cont de următoarele date de intrare: T - timpul în care o parolă va fi utilizată în sistem 140
P - probabilitatea ca o parolă să poată fi ghicită în perioada ei de funcţionare I - numărul de încercări de descoperire a parolei în unitatea de timp S - spaţiul parolelor (numărul total de parole unice care pot fi generate) S = AL, unde A - numărul simbolurilor din alfabet L - lungimea parolei Exemplu: Dacă numărul de simboluri este format din cifre (0 - 9), iar lungimea parolei este de cinci (5) caractere, atunci S = 105 = 100.000 parole. Exemplu: Dacă numărul de simboluri este format din caracterele alfabetului (26), iar lungimea parolei este de şapte (7) caractere, atunci S = 267 = 8.031.810.176 parole. Cât de repede se poate ghici o parolă? P - probabilitatea ca o parolă să poată fi ghicită în perioada ei de funcţionare va fi:
Numărul total de cazuri/încercări de ghicire G a unei parole din spaţiul S este:
Numărul de cazuri/încercari favorabile G de ghicire a unei parole este: 141
Ţinând cont de faptul că: Va rezulta în final:
Deci probabilitatea (P) de a ghici o parolă în perioada ei de funcţionare este dată de formula:
P=
G S
Şi ţinând cont de faptul că numărul total de ghiciri (G) care pot fi făcute pe perioada când o parolă este activă e G = T x I, va rezulta în final că probabilitatea (P) de a ghici o parolă pe parcursul funcţionarii acesteia este:
P=
T ∗I S
Exemplu: Să se găsească lungimea unei parole (L) care să reziste la încercări de ghicire cu o probabilitate (P) de unu la un milion pentru o perioadă (T) de 6 luni şi respectiv 12 luni. Cazul 1. Să consideram că: I = 500, numărul de încercări de ghicire este de 500 pe minut A = 26, numărul de caractere folosite (A-Z) I = 500 ⇒ 500 x 60 x 24 = 720.000 de încercări pe zi 142
Pentru 6 luni vom avea: T = 30, 5 zile x 6 luni = 183 zile
Ţinând cont de faptul ca S = AL, vom avea:
Se aleg 10 caractere pentru parolă. Pentru 12 luni vom avea: T = 365 zile
Se aleg 11 caractere pentru parolă. Cazul 2 Să consideram că: I = 500, numărul de încercări de ghicire este de 500 pe minut A = 36, numărul de caractere folosite (A-Z, 0-9). Pentru 6 luni vom avea:
143
Se aleg 9 caractere pentru parolă. Pentru 12 luni vom avea:
Se aleg 10 caractere pentru parolă. Dacă se ţine cont că se pot folosi, în afara de literele alfabetului (A la Z), şi cifrele (0 la 9), şi simbolurile suplimentare (~, ‘, !, @, #, $, %, ^, &, *, (, ), _, + , -, = , [, ], \, {, }, |, ;, ‘, :, ., , , ., /, <, >, ?), se ajunge ca numărul de simboluri folosite să fie de 68 (A = 68). Numărul total de parole, formate din şapte caractere, care va putea să fie generat cu acestea va fi S = AL= 687 = 6, 7222*1012. În acest caz, pentru a rezista 6 luni, cu o probabilitate de ghicire de unu la un milion şi 500 de încercări de ghicire pe minut, o parolă va trebui să aibă minimum
iar pentru 12 luni va trebui să aibă minimum
Dacă aplicaţia permite diferenţierea între caractere mari şi mici ale alfabetului (case sensitive), atunci se ajunge la un număr de 94 de simboluri care pot fi folosite în alcătuirea parolei.
144
5.3. Detectoare de intruziune Un detector de intruziune este un proces de detectare şi răspuns la folosirea abuzivă a calculatorului. Folosirea unui detector de intruziune va crea beneficii pentru firmă în ce priveşte detectarea, stoparea, răspunsul la atacuri, suport în evaluarea pagubelor produse, precum şi ca dovadă care poate fi folosită în justiţie împotriva persoanelor bănuite de folosirea abuziva a calculatorului. În funcţie de specificul şi mărimea firmei, se poate opta pentru un anume tip de detector de intruziune. La nivelul firmelor mici aceste detectoare de intruziune se găsesc încorporate în dispozitivele firewall existente. Analiza jurnalelor de firewall sau router va putea să evidenţieze încercări de intruziune. De asemenea, sistemele de operare au ca facilitate detectarea intruziunilor. Tipurile de detectoare de intruziune se pot clasifica în: locale (host-based) sau de staţie; reţea (network-based); hibride. Principiile sunt asemănătoare la aceste tipuri numai ca acţiunea acestora este diferită. Principul de bază în funcţionarea unui detector de intruziune îl constituie analizarea pe o anume perioadă de timp a unui set discret de evenimente pentru a se descoperi eventualele folosiri abuzive. Înregistrările secvenţiale din diferitele puncte ale reţelei vor fi analizate şi se va determina comportamentul unui potenţial intruder. Detectoarele de intruziune de tip local (host-based) vor examina toate acţiunile care au fost efectuate pe acel calculator (staţie de lucru). Aceasta presupune analiza fişierelor care şi de unde au fost accesate, precum şi a aplicaţiilor care au fost executate din acel punct. 145
Detectoarele de intruziune de reţea (network-based) vor analiza traficul de reţea între punctele acesteia. Aceste detectoare folosesc două tipuri de tehnologii. Una presupune folosirea modului promiscuos al reţelei. În acest mod este suficient să se monteze un singur senzor pentru a se analiza tot traficul din reţea. A doua tehnologie se foloseşte de modul nonpromiscuous al reţelei şi presupune montarea unui senzor pentru fiecare conexiune care se doreşte analizată. Aceşti senzori vor fi montaţi în punctele strategice ale reţelei. Evident că dacă se doreşte analiza mai multor conexiuni aceasta poate fi făcută cu mai mulţi senzori sau pe o perioadă de timp mai îndelungată prin aplicarea senzorilor în punctele necesare. Senzorii sunt programe care rulează în punctele critice ale reţelei - calculatoare, servere, router-e, firewall-uri. Detectoarele de intruziune hibride combină avantajele celor două, dar sunt şi mai costisitoare. Cu toate acestea, ele sunt folosite deoarece asigură date complete atât asupra reţelei, cât şi asupra calculatoarelor în sine. Detectoarele de intruziune comerciale oferă, pe lângă capabilităţile standard de a detecta şi răspunde la atacuri, şi alte capabilităţi suplimentare. Printre acestea se pot enumera: analiza evenimentelor pentru a se detecta atacurile din interior; analiza traficului din reţea pentru a se detecta atacurile într-o anumită zonă a reţelei; management al configuraţiei pentru asigurarea securităţii; verificarea integrităţii fişierelor. Majoritatea detectoarelor de intruziune de tip hibrid oferă o parte dintre aceste capabilităţi. Arhitectura unui sistem hibrid de detectare a intruziunilor este prezentată în figura următoare (figura 42).
146
Figura 42. Arhitectura unui sistem hibrid de detectare a intruziunilor. 147
Într-un sistem de detectare a intruziunilor, consola reprezintă elementul central. Aceasta reprezintă un calculator dedicat care dispune de un set de dispozitive necesare pentru configurarea politicii de securitate şi procesarea mesajelor de avertizare. Pentru ca să nu existe posibilitatea de scurgere de informaţii pe traseul consola şi obiectiv, legătura între acestea este criptată. Firme consacrate în domeniu livrează atât calculatorul dedicat, cât şi restul de echipamente necesare testării şi criptării comunicaţiilor între consolă şi punctele testate. Aceste echipamente sunt însă scumpe şi de aceea se optează pentru produse software mai ieftine sau gratis. Unul dintre aceste produse este SNORT. Sursa poate fi descărcată gratuit de la adresa: http://www.snort.org/dl/, iar manualul de utilizare de la adresa http://www.snort.org/docs/snort_manual/. Chiar dacă nu se compară ca performanţe cu unul comercial, rezultatele pot fi comparabile. Consola efectuează anumite funcţii de bază, şi anume: management evaluare, management obiectiv şi management alerte. Funcţia de management evaluare colectează informaţiile statice referitoare la configurarea calculatorului obiectiv. Funcţia de management obiectiv va ţine o legătură permanentă între consolă şi obiectiv, iar funcţia de management alerte va colecta şi va administra alertele. Consola dispune, de asemenea, de un serviciu de detectare intruşi, arhivare şi generare rapoarte. La nivelul obiectivului testat se vor lansa procese care fac parte din procedurile de testare, cum ar fi sniffer-ele de pachete TCP/IP, procesarea jurnalelor de evenimente, centralizarea datelor, verificarea integrităţii fişierelor, verificarea configuraţiei, executarea răspunsurilor. Aceste procese rulează de regulă în fundal (background), cum ar fi daemon-ii din UNIX sau serviciile din Windows 2000/XP Pro. Funcţionarea acestor procese nu trebuie să aibă efecte negative asupra performanţelor calculatorului sau a reţelei. 148
La apariţia unei încercări de intruziune detectorul va genera mesaje de avertizare către operatorul de consolă (responsabil cu asigurarea securităţii). Mesajele de alertă pot căpăta diferite forme, de la alerte vizuale şi sonore pe ecran şi până la avertizare pe e-mail sau telefon. Încercarea de intruziune, evidenţiată de alerte, va putea fi contracarată automat sau se va face manual de către operator. În majoritatea cazurilor, aceste răspunsuri sunt o reconfigurare a router-ului sau firewall-ului, izolarea şi întreruperea conexiunii de unde se execută atacul. Centralizarea tuturor evenimentelor şi a încercărilor de intruziune în baza de date va fi benefică pentru a efectua o statistică a încercărilor de intruziune şi a dezvolta măsurile necesare de stopare. De asemenea, pot fi făcute calcule statistice privind incidenţa acestor evenimente. Dispozitivele de supraveghere sunt menite să preia informaţia din reţea şi să o analizeze pentru a se preîntâmpina pierderea de date.
5.4. Procesul de detectare a intruziunii la nivelul firmei Pentru majoritatea firmelor, asigurarea securităţii se limitează la programele antivirus. Folosirea de dispozitive firewall reprezintă pentru acestea un obiectiv prea greu de realizat. Despre detectoare de vulnerabilitate şi intruziune nici nu poate fi vorba. Sunt însă şi firme, chiar de mărime medie, care au implementate toate aceste măsuri. Implementarea unor măsuri de securitate minime este de preferat faţă de absenţa acestora. Măsurile de securitate trebuie însă să implementeze politica de securitate a firmei. În absenţa acesteia, măsurile de securitate vor fi haotice.
149
Prima măsură ar fi una administrativă care va presupune asigurarea unui perimetru de securitate pentru tehnica de calcul şi restricţii de acces la aceasta. Apoi se vor implementa măsurile de acces care presupun controlul accesului propriu-zis la date. Se vor alege conturile şi parolele pentru fiecare utilizator, precum şi regulile de autorizare. → Alegerea şi folosirea parolelor trebuie să fie făcută ţinând cont de următoarele reguli: nu vor exista conturi fără parole; nu se vor lăsa conturile şi parolele cu care vin o parte din calculatoare sau programe. De exemplu, contul SUPER şi parola VALID la programele de contabilitate şi gestiune CIEL, cele mai frecvent folosite; contul şi parola sunt individuale şi vor fi folosite ca atare; nu se scriu conturile şi parolele la vedere. Este de preferat ca acestea să se scrie în agenda personală, să fie memorate şi apoi să fie şterse din agendă; nu se vor introduce contul şi parola de la tastatură atunci când cineva se uită; nu se va trimite parola în reţea sau prin e-mail; nu se vor folosi sub nici o formă ca parolă numele, prenumele, diminutivul, data de naştere a utilizatorului sau numele şi prenumele persoanelor din familia acestuia; nu se va folosi o parolă mai mică de şase caractere; nu se va folosi o parolă care conţine cuvinte dintr-un dicţionar din limba respectivă sau din orice altă limbă; se vor folosi parole prin mixarea caracterelor mari şi mici. Anumite programe sunt case sensitive., făcând diferenţiere între caracterele mici şi mari ale alfabetului; schimbarea parolei când se suspectează compromiterea acesteia; schimbarea acesteia regulat. 150
→ În acest punct se poate spune că firma are asigurată o minimă securitate. Majoritatea firmelor fac aceste operaţii şi se opresc. Nu merg cu asigurarea securităţii până la capăt. În cazul firmelor medii sau mari, operaţia este continuată şi se vor introduce dispozitive firewall şi de detectare a intruziunilor. Ce se face însă în cazul unei încercări de intruziune? Toate intruziunile sunt atât de periculoase încât să blocheze o parte a reţelei sau un calculator? De exemplu, o comandă ping www.firma.ro .t, executată de un utilizator căruia nu-i merge bine conexiunea de internet şi vrea să aibă acces la datele publice din site-ul firmei, nu trebuie să fie urmată de măsuri dramatice. Sau acelaşi lucru dacă unui angajat nu-i funcţionează la parametri conexiunea cu serverul şi foloseşte o comandă ping în aşteptarea personalului de depanare. → Detectoarele de intruziune sunt configurate, în majoritatea cazurilor, să dea ele replica la o încercare de intruziune. Acest lucru este benefic dacă încercarea este una cunoscută. Experţii recomandă ca acest lucru să se facă totuşi manual, deoarece un răspuns automat poate fi folosit de un mecanism de interzicere a serviciului (DoS). Dar acest lucru presupune existenţa unui personal extracalificat în firma care să monitorizeze traficul. Şi unele firme, cele mici, nu şi-l permit. → În cazul unor încercări de intruziune din partea angajaţilor firmei, ţinerea unor jurnale de activităţi la nivel de reţea este obligatorie şi benefică pentru a se dovedi intenţia. Aceste jurnale pot fi folosite ca probe în acţionarea în justiţie a vinovaţilor. În anumite situaţii, angajaţii folosesc serviciul de e-mail pentru diferite farse adresate colegilor de serviciu. O configurare statică a adreselor IP va permite extragerea cu uşurinţă din header-ul de e-mail a adresei calculatorului-sursă şi pedepsirea vinovatului. Dacă spre exemplu mesajul primit are următoarea identitate (se afişează din opţiunile .Properties., .Detail. la Outlook sau Outlook Express sau din .Header Detail. la Yahoo): 151
Message-ID: 002201c47593$a4f7c4c0$1e0ba8c0@x, putem determina din ultimul grup de cifre, cuprins între ultimul . $.şi .@., IP-ul calculatorului de la care a fost trimis mesajul. Gruparea 1e0ba8c0 în hexazecimal citită invers în grupuri de câte două cifre este 192.168.11.30 în zecimal. Aflarea făptaşului este uneori dificilă atunci când acesta foloseşte tehnici de ascundere a identităţii sau programe de anonimizare.
152
Capitolul VI. Securizarea bazelor de date 6.1. Tehnici de securizare Sarcina de a se asigura securitatea bazelor de date este împărţită între sistemul de gestiune al bazelor de date şi sistemul de operare. Acestea pot să asigure fiecare în totalitate o parte din funcţiile de asigurare a securităţii sau pot să fie complementare în realizarea acestora. Atribuţiile în asigurarea securităţii bazelor de date sunt exemplificate în tabelul următor (tabelul 8): Tabelul 9. Atribuţii în asigurarea securităţii bazelor de date.
Controlul asupra atacurilor Anterior am văzut că, din date nesenzitive, prin diverse interogări ale bazei de date au rezultat date senzitive. Pentru a se preîntâmpina acest lucru se pot aplica următoarele metode: suprimarea cererilor cu rezultate senzitive; aproximarea rezultatelor; limitarea rezultatelor unei cereri care dezvăluie date senzitive; 153
combinarea rezultatelor.
Cererile de acces la elementele bazei de date care au ca rezultat afişarea unor rezultate senzitive sunt rejectate fără nici un răspuns. Datele senzitive nu vor fi afişate. Rezultatul unei astfel de interogări va fi corect, dar nu va fi afişat către utilizator. În cazul unei astfel de cereri sistemul va putea să afişeze rezultate apropiate de cele reale. Acurateţea rezultatului la o interogare care poate dezvălui date senzitive trebuie să fie mică. Limitarea rezultatului unei cereri, care dezvăluie date senzitive se poate face în cazul în care acesta este 1 (unu). Dacă vom aplica pe rând atacuri (figura 43) cu funcţii de forma exemplificată în figura 44 şi vom centraliza rezultatele sub formă de tabel (tabelul 9), vom vedea că avem rezultate dominante care trebuie suprimate.
Figura 43. Tabela supusă atacului.
154
Figura 44. Atacul indirect folosind funcţia COUNT condiţionat. Tabelul 9. Centralizarea rezultatelor
În această situaţie trebuie să suprimăm cererile care au ca rezultat valori dominante (1) sau să nu permitem afişarea rezultatelor chiar dacă cererea se execută în aşa fel încât rezultatele să fie afişate sub forma următoare (tabelul 10): Tabelul 10. Afişarea cu suprimare a rezultatelor
Se observă că situaţia nu este rezolvată, trebuind să modificăm şi sumele pe linii şi pe coloane pentru a se crea confuzie şi a nu se mai putea extrage date senzitive. Combinarea rezultatelor se face prin afişarea acestora întro plajă de valori care să nu permită extragerea datelor exacte. Făcând o contorizare pe tip de sancţiuni şi gruparea acestora pe sexe, vom avea situaţii dominante (tabelul 11): Tabelul 11. Rezultate contorizări
Soluţia ar fi combinarea coloanelor pentru a nu se putea extrage date exacte. 155
Combinăm coloanele cu “0”cu “1” şi “2” cu “3”. Rezultatul este următorul (tabelul 12): Tabelul 12. Combinarea rezultatelor
Pentru a se preîntâmpina atacurile este necesar să se ţină o evidenţă amănunţită pentru fiecare utilizator, chiar dacă acest lucru presupune o activitate complexă şi implică timp. De asemenea, trebuie făcută o analiză a cererilor care pot fi rău intenţionate. → Pentru a preîntâmpina extragerea datelor senzitive din bazele de date am realizat un program care monitorizează toate operaţiile efectuate de utilizatori pe bazele de date. Operaţiile de monitorizare efectuate de acest program au fost prezentate în acest capitol, paragraful 5.1. La acest punct suntem interesaţi doar de fişierul bază de date accesat de utilizator, tipul de operaţii efectuate şi listarea acestora. În acest mod, toate operaţiile efectuate de utilizatori pot fi analizate şi se pot trage concluzii privind securitatea bazelor de date ale firmei.
Securitatea bazelor de date multinivel Se disting trei caracteristici de bază ale securităţii bazelor de date: 1. Securitatea unui singur element poate fi diferită de securitatea altui element din aceeaşi înregistrare sau de valoarea aceluiaşi atribut. Aceasta implică implementarea securităţii pentru fiecare element în parte. 156
2.
Sunt necesare câteva perimetre se securitate care vor reprezenta arii de acces la anumite date care uneori se pot suprapune. 3. Securitatea unui întreg poate fi diferită de securitatea unui element individual. Aceasta poate fi mai mare sau mai mică. Pentru a se asigura securitatea bazelor de date se pot aplica următoarele metode: • partiţionarea bazei de date; • criptarea; • blocarea integrităţii; • blocarea senzitivităţii; • securitatea “front-end”; • filtru comutativ; • vederi ale bazei de date. Partiţionarea bazei de date Baza de date este împărţită în baze de date separate, fiecare dintre acestea cu propriul ei nivel de securitate. Operaţia mai poartă numele de atomizarea bazei de date. Ca efect secundar, această operaţie va distruge avantajul principal al bazei de date dar îmbunătăţeşte precizia. Criptarea Dacă datele senzitive sunt criptate, un utilizator care ajunge din întâmplare în posesia unor date senzitive nu va putea să le interpreteze şi să se folosească. Aceasta criptare este însă vulnerabilă la atacuri cu text clar sau când atacatorul substituie forma de criptare cu o alta. Pentru a se preîntâmpina aceasta se pot face următoarele: folosirea de criptări diferite pentru aceeaşi înregistrare şi diferite chei pentru fiecare câmp; 157
criptarea câmpurilor înregistrării folosind metoda block chaining (CBC, CFB etc.).
Aceste metode de criptare sunt exemplificate în figura următoare (figura 45).
Figura 45. Criptarea înregistrării. 158
Blocarea integrităţii Reprezintă o cale folosită atât pentru blocarea integrităţii, cât şi pentru limitarea accesului la baza de date. Metoda mai poartă şi denumirea de .spray paint. deoarece fiecare element este colorat în funcţie de senzitivitatea acestuia. Culoarea este menţinută cu elementul pe care-l caracterizează şi nu într-o bază de date separată. Fiecare dată va conţine trei elemente:
Datele vor fi stocate în text clar pentru sporirea eficienţei. Referitor la clasificare, aceasta trebuie să fie: nefalsificabilă - un utilizator răuvoitor nu va putea crea o nouă dată senzitivă pentru un element; unică - utilizatorul răuvoitor nu va putea să copieze un nivel de senzitivitate dintr-un alt element; secret - utilizatorul răuvoitor nu va putea să determine senzitivitatea pentru un obiect oarecare.
Suma de control criptografică, pentru a putea să fie unică, trebuie să conţină date despre: înregistrare; câmp; date ale elementului (figura 46). 159
Figura 46. Suma de control criptografică. Blocarea senzitivităţii Blocarea senzitivităţii reprezintă o combinaţie a două elemente: existenţa unui identificator unic (numărul de înregistrare); nivelul de securitate. Trebuie să nu se permită aflarea a două elemente care au acelaşi nivel de securitate doar prin căutarea în porţiunea de securitate a blocării integrităţii. Ca rezultat al criptării, conţinutul blocării, în special nivelul de securitate, este ascuns (figura 47).
160
Figura 47. Blocarea senzitivităţii. Securitatea “front-end” Securitatea front-end (cunoscută şi sub denumirea de gardă) este asigurată de un mecanism de tip monitor. Secvenţa de interacţiuni între utilizator şi mecanismul front-end este următoarea: utilizatorul se identifică front-end; utilizatorul transmite o cerere mecanismului front-end; mecanismul front-end verifică autorizaţia utilizatorului de a acces la date; mecanismul front-end trimite o cerere către sistemul de gestiune al bazei de date (SGBD); sistemul de gestiune al bazei de date (SGBD) efectuează o operaţie de acces de tip I/O; sistemul de gestiune al bazei de date (SGBD) trimite rezultatul interogării către mecanismul front-end; 161
mecanismul front-end verifică validitatea datelor extrase cu ajutorul sumelor de control şi verifică dacă datele pot fi disponibile către utilizator conform nivelului de acces al utilizatorului; mecanismul front-end va formata datele pentru utilizator; se transmit datele către utilizator. Filtru comutativ
Filtrul comutativ interacţionează atât cu utilizatorul, cât şi cu sistemul de gestiune al bazei de date (SGBD). Filtrul comutativ va reformula cererile în felul următor: sistemul de gestiune al bazei de date (SGBD) va efectua cât mai multe sarcini posibile rejectând cât mai multe cereri inacceptabile care dezvăluie date senzitive; selectarea datelor la care utilizatorul poate să aibă acces. Filtrul comutativ poate fi folosit atât asupra înregistrărilor, cât şi asupra atributelor sau elementelor. La nivelul înregistrărilor, filtrul cere datele dorite plus suma de control criptografică; dacă acestea verifică acurateţea şi accesibilitatea datelor, atunci acestea pot fi transmise către utilizator. La nivel de atribut, filtrul verifică dacă toate atributele din cererea utilizatorului sunt accesibile acestuia, şi dacă da, transmite cererea către managerul bazei de date. La revenire va şterge toate cererile la care utilizatorul nu poate să aibă acces. La nivel de element, sistemul va cere datele solicitate şi suma de control criptografică. Când sunt returnate, acestea verifică apartenenţa la niveluri de securitate pentru fiecare element. Vederile
162
Vederile reprezintă un subset al bazei de date la care utilizatorul poate avea acces. Vederile pot reprezenta un subset al bazei de date pentru un singur utilizator, în acest caz cererile celorlalţi utilizatori vor accesa acelaşi tip de date. Datele care sunt accesibile unui utilizator se obţin prin filtrarea conţinutului bazei de date originale. Utilizatorul nu este conştient de existenţa tuplurilor care lipsesc din vederea respectivă. O vedere poate fi definită din mai multe tabele, pentru care utilizatorul deţine privilegiul corespunzător de utilizare, dar nu şi de folosire a tabelelor de bază. Utilizarea, în acest caz a vederilor, este mai restrictivă decât simpla deţinere a privilegiilor acordate utilizatorului asupra tabelelor de bază. SGBD-ul stochează definiţia vederii în baza de date. Când SGBD-ul întâlneşte o referire la o vedere, caută această definiţie şi transformă cererea respectivă într-o cerere echivalentă către tabelele care constituie sursa vederii, după care efectuează cererea. Folosirea vederilor pentru asigurarea securităţii bazelor de date mai este întâlnită în literatura de specialitate şi sub denumirea de securitate discreţionară şi este caracteristică sistemelor bazate pe SQL. Folosirea vederilor bazelor de date are ca efect crearea unor facilităţi în exploatare, dar poate aduce şi dezavantaje (tabelul 12). Tabelul 12. Avantajele şi dezavantajele folosirii vederilor
163
Cu ajutorul instrucţiunilor SQL se pot crea vederi orizontale şi verticale. Sintaxa este următoarea:
Exemplificăm pe tabela următoare (SALA)(tabelul 13). Tabelul 13. Tabela SALA (salariaţi)
Crearea vederii orizontale se face în felul următor: CREATE VIEW SORT_O SELECT * FROM SALA WHERE SALB >6000000 Rezultatul va fi următorul: SORT O
164
Crearea vederii verticale se face în felul următor: CREATE VIEW SORT_V SELECT NUME, SALB, COMP FROM SALA Rezultatul va fi următorul: SORT V
Se pot aplica, de asemenea, şi combinaţii ale acestora; în acest fel se creează vederi mixte. Vom considera următorul scenariu (figura 48):
165
Figura 48. Scenariu de lucru pentru crearea vederilor mixte. Structura bazelor de date pentru acest scenariu este exemplificată în cele ce urmează. Pentru personalul angajat vom avea următoarea structură (tabelul 14): Tabelul 14. Structura personal angajat (SALA).
Pentru obiectivele pe care firma le are de executat vom avea următoarea structura (tabelul 15): Tabelul 15. Structură proiecte firmă (PROI). 166
DENP - denumire proiect, OBIE - obiectiv, CLIE - client/beneficiar, MANA - responsabil proiect.
Tabela de legături are următorul conţinut (tabelul 16): Tabelul 16. Tabela de legături (LEGA).
Aplicăm vederile. CREATE VIEW SALA_PROD AS SELECT CNP, NUME, COMP FROM SALA WHERE COMP = P Cu rezultatul (tabelul 17): Tabelul 17. Vedere SALA_PROD.
167
şi CREATE VIEW COMP_ANTR AS SELECT DENP, OBIE, COMP FROM PROI, LEGA, ANGA WHERE SALA.CNP = LEGA.CNP AND LEGA.DENP = PROI.DNP Cu rezultatul (tabelul 18): Tabelul 18. Vedere COMP_ANTR.
Acest mecanism de securitate este aplicat în SQL. La definirea vederilor prin CREATE VIEW, se poate limita accesul numai la bazele de date al căror proprietar este utilizatorul respectiv, folosind o condiţie selecţie cu cuvântul cheie USER, prin care se dă identificatorul utilizatorului. Orice operaţie din baza de date se face numai pe baza unei autorizări pentru acea operaţie. Iniţial, sistemul acordă toate drepturile de operare pentru administratorul sistemului (SYSADM) şi nu acordă nici un drept celorlalţi utilizatori. Ulterior, drepturile de operare pentru utilizatori sunt stabilite de către administratorul sistemului prin intermediul instrucţiunii GRANT şi revocate prin instrucţiunea 168
REVOKE. Sintaxa acestor comenzi este exemplificată în figura 49.
Figura 49. Sintaxa comenzilor GRANT şi REVOKE.
169
6.2. Arhitecturi pentru asigurarea securităţii bazelor de date La ora actuală există două abordări majore pentru asigurarea securităţii bazelor de date. Acestea au în vedere încrederea care poate fi acordată celor două elemente care vor interacţiona cu bazele de date, şi anume: sistemul de gestiune al bazelor de date (SGBD) şi sistemul de operare (SO - Operating System). Ţinând cont de acestea, vom avea următoarele două abordări: arhitectură cu subiecţi siguri; arhitectură cu subiecţi nesiguri (arhitectura Woods Hole). Arhitectura cu subiecţi siguri porneşte de la presupunerea că atât SGBD-ul, cât şi SO care vor interacţiona cu bazele de date sunt sigure (de încredere). Această abordare se întâlneşte la majoritatea SGBD-urilor (Sybase, Informix, Ingres, Oracle, DEC, Rubix). Arhitectura cu subiecţi nesiguri porneşte de la presupunerea că SO este sigur, dar SGBD-ul este nesigur. Această arhitectură este implementată în trei variante: arhitectură cu blocarea integrităţii; arhitectură integrată; arhitectură replicată/distribuită. Acest tip de arhitectură se implementează la SGBD-urile TRUEDATA şi Oracle, precum şi la altele mai puţin cunoscute, aflate în faza de prototipuri, Mitre şi SeaView. Arhitectura cu subiecţi siguri este prezentată în figura 50.
170
Figura 50. Arhitectură cu subiecţi siguri. Întrucât se pleacă de la presupunerea că atât SDBD-ul, cât şi SO asigură o protecţie suficientă, mecanismele de securitate de tip .front end. nu sunt implementate în versiuni sofisticate. Se observă că atât utilizatorii cu drepturi depline (superutilizatorii), cât şi utilizatorii cu restricţii au acces la date beneficiind de securitatea asigurată de SGBD şi SO. Arhitecturile cu subiecţi nesiguri merg pe presupunerea că SO asigură o protecţie de nivel înalt, iar SGBD-ul o protecţie medie. În acest caz, mecanismele de securitate de tip “front end” trebuie să asigure o securitate ridicată. 171
Arhitectura cu blocarea integrităţii este prezentată în figura 51.
Figura 51. Arhitectură cu blocarea integrităţii
172
Figura 52. Arhitectură integrată. Se observă că mecanismul de securitate “front end” dispune de o puternică unitate de criptare, care asigură accesul la date atât pentru utilizatorul cu drepturi depline, cât şi pentru utilizatorul care are restricţii la accesare. Fiecare, însă, la datele pentru care are drepturi de accesare. 173
Figura 53. Arhitectură replicată/distribuită. În cazul arhitecturii integrate (figura 52), accesul se face prin două tipuri distincte de SGBD-uri. Sistemul de operare, care este considerat sigur, va avea un rol important în asigurarea accesului la datele care sunt dispuse pe disc. Din punct de vedere al accesului la date se observă o asemănare cu arhitectura replicată/distribuită (figura 53). 174
Arhitectura replicată/distribuită (figura 53) foloseşte un mecanism de replicare sigur care va canaliza cererile. Utilizatorul cu drepturi depline (superutilizatorul) va avea acces, prin intermediul acestui mecanism, şi la datele utilizatorului cu restricţii (dacă este specificat aceasta în drepturile de acces).
175
Capitolul VII. Steganografia 7.1. Introducere Steganografia, este ştiinţa ascunderii datelor. Cuvântul steganografie, provine din limba greacă şi înseamnă scris ascuns; acest cuvant, a folosit pentru prima oara de un stareţ care a publicat în 1499 o lucrare intitulată "Steganographia" şi care trata tehnici de scris ascuns. Steganografia, include o varietate mare de metode de comunicare secretă. Printre aceste metode, se numără: scrierea cu cerneală invizibila, microfotografii, aranjarea caracterelor (o alta aranjare decât cea obţinută prin criptografiere), s.a. Steganografia, nu înlocuieşte criptografia, ea oferind încă un strat de protecţie dacă acestea două sunt folosite împreună. Importanţa steganografiei, a fost evidenţiata mai ales în timpul razboaielor, ea fiind folosită de sute de ani, sub diferite forme. Primul document care descrie folosirea steganografiei pentru ascunderea mesajelor transmise, este scris de Herodot. În Grecia antica, se scria pe tabliţe de lemn acoperite cu ceara. Astfel, pentru a transmite mesaje care să nu dea de bănuit, ceara era dată jos de pe tăbliţa de lemn, mesajul era încrustat direct pe lemn, după care era acoperit din nou cu ceară. O altă metodă era raderea în cap a unui mesager, tatuarea pe cap a unui mesaj, după care se aştepta creşterea părului. O altă cale de transmitere a mesajelor, era scrierea cu substanţe invizibile. Asemenea substanţe au fost folosite cu mare succes în al doi-lea război mondial. Astfel, o scrisoare care părea banală, putea conţine diferite mesaje scrise între rânduri. La începuturile celui de-al doi-lea război mondial, tehnicile de steganografie, constau aproape în exclusivitate din scrierea cu 176
substanţe invizibile. Aceste substanţe puteau fi: lapte, oţet, suc de fructe, urina, etc. Cu avansarea tehnologiei, aceste "cerneluri" au fost înlocuite cu substanţe tot mai sofisticate, care reacţionau la diferite substante chimice, iar pentru obţinerea mesajului, hârtia era trecută prin băi cu diferite substanţe. O alta cale de transmitere a mesajelor, era "spargerea" textelor în litere şi punerea lor într-o anumită poziţie în cuvinte care formează un text care nu trezeşte nici o suspiciune. O astfel de tehnică, a fost folosită de un spion german în cel de-al doilea razboi mondial. Unul din textele pe care le-a trimis, era următorul: "Apparently neutral's protest is thoroughly discounted and ignored. Isman hard hit. Blockade issue affects pretext for embargo on by products, ejecting suets and vegetable oils." Astfel, dacă se ia a doua literă din fiecare cuvânt, se obţine mesajul: "Pershing sails from NY June 1". Cu dezvoltarea tehnicilor de detectare a mesajelor, s-au dezvoltat şi tehnicile de steganografie, inventându-se noi metode care puteau să transmită mai multă informaţie într-o formă mai ascunsă. Germanii, au inventat microfotografiile, metodă prin care se putea transmite printr-o fotografie de mărimea unui caracter, pagini de ziar cu o claritate uimitoare. Prima microfotografie, a fost descoperitţ pe un plic, care era dus de un agent german în 1941. Dar, cu fiecare metodă de steganografie care a fost descoperită, o alta a fost inventată. Chiar şi aranjarea în pagină a unui document, poate ascunde un mesaj. De exemplu, dacă se ia textul : "We explore new steganographic and cryptographic algorithms and techniques throughout the world to produce wide variety and security in the electronic 177
web called the Internet." şi se muta cu câteva spaţii unele cuvinte din text, se obţine textul: "We explore new steganographic and cryptographic algorithms and techniques throughout the world to produce wide variety and security in the electronic web called the Internet." Dacă cele două texte se suprapun, se obţine: "We explore new steganographic and cryptographic algorithms and techniques throughout the world to produce wide variety and security in the electronic web called the Internet." Aceasta, este obţinută prin expandarea cu un spaţiu înainte de "explore", "the", "wide" şi "web" în primul text şi condensarea cu un spaţiu după "explore", "the", "wide" şi "web" în al doilea text.
7.2. Software steganografic Software-ul steganografic, este nou şi foarte eficace. Asemenea software, permite ascunderea informaţiilor în fişiere de sunet, imagini şi pe medii care aparent par goale. O imagine, este reprezentată ca un şir de numere, care reprezintă intensităţile luminii în diferite puncte (pixeli). O rezolutie destul de folosită a unei imagini este cea de 640 pe 480 pixeli, având 256 de culori (8 biti pe pixel). O astfel de imagine conţine aproximativ 300K de date. 178
De obicei, sunt două tipuri de fişiere folosite pentru a ascunde date într-o imagine: fişierul imagine iniţial, numit container şi mesajul care se doreşte a se ascunde. Mesajul care se ascunde poate fi simplu text, un text criptat, o altă imagine sau orice altceva ce poate fi ascuns în biţii cel mai puţin semnificativi (ultimul bit al unui byte). De exemplu, o imagine cu rezoluţia de 1024x768 pe 24 de biti (3 bytes sau octeti), poate produce un fişier de peste 2MB (1024x768x24/3). Toate variaţiile de culori, sunt derivate din 3 culori principale: roşu, verde şi albastru. În această imagine, fiecare culoare este reprezentată de 3 octeţi (fiecărei culori principale, îi revine câte un octet). Dacă informaţia este ascunsă în fiecare cel mai puţin semnificativ bit, 3 biţi, pot fi ascunşi în fiecare pixel. Imaginea container, va arăta exact la fel cu imaginea în care au fost ascunse datele (deoarece ochiul uman nu face distincţie între 2 culori atât de apropiate) şi va avea aceaşi mărime (deoarece doar se înlocuieşte ceva cu altceva, neadăugându-se sau ştergându-se nimic). Fişierele imagine care sunt cele mai recomandate, sunt imaginile pe 24 de biţi (alternativa puţin acceptată deoarece ocupă un spaţiu mare) care pot ascunde multă informaţie sau fişierele care conţin imagini alb-negru, deoarece diferenţele de culoare sunt foarte departate. Astfel, imaginea din figura 54 conţine culorile posibile ale unei imagini alb-negru pe 1 octet (2 =256 culori).
179
Figura 54. culorile posibile ale unei imagini alb-negru pe 1 octet Orice culoare dintr-o astfel de imagine, poate fi înlocuită cu o altă culoare pe 4 biţi, iar restul de patru să fie folosiţi pentru ascunderea datelor. Exemplu de paleta de culori pe 4 biţi:
7.3. Exemple Pentru a arăta diferenţa dintre o imagine obişnuită şi o imagine steganografiată, am inclus nişte teste (cam vechi, de prin 1998) făcute cu diferite softuri steganografice. Mesajele care se doresc transmise, sunt un text în limba engleza şi o imagine, astfel: Mesajul 1, notat cu M1: "Steganography is the art and science of communicating in a way which hides the existence of the communication. In contrast to 180
cryptography, where the "enemy" is allowed to detect, intercept and modify messages without being able to violate certain security premises guaranteed by a cryptosystem, the goal of steganography is to hide messages inside other "harmless" messages in a way that does not allow any "enemy" to even detect that there is a second secret message present [Markus Kuhn 1995-07-03].". Mesajul 2, notat cu M2, este o imagine din satelit a unei baze sovietice de bombardiere din Dolon, Kazakstan, făcută pe 20 August 1966 şi esste redat în figura 55.
181
Figura 55. Imaginea M2 din satelit a unei baze sovietice de bombardiere din Dolon, Kazakstan Astfel de fotografii (din anii 1960), pot fi luate de pe siteul http://edcwww.cr.usgs.gov/dclass. Imaginile container care vor fi folosite, sunt o poză a unui Renoir şi un portret al lui William Shakespeare. Primul fişier container, notat cu C1, se poate găsi pe siteul unui muzeu francez la http://www.cnam.fr/wm/paint/auth/renoir.
182
Figura 56. Imagine container C1 repezentând o pictura de Renoir Al doi-lea fişier container, notat cu C2, (portretul lui William Shakespeare) poate fi luată de pe site-ul http://www.cultureware.com/cultureware/shakespeare
183
Figura 57. Imagine container C2 repezentând o portretul lui William Shakespeare Imaginea lui Shakespeare, este prea mică pentru a ascunde mesajul M2, dar se poate ascunde mesajul M1, fără să se observe aproape nici o diferenţă. Din soft-urile testate, doar două au reuşit să ascundă mesajul M2, mesajul M1, fiind ascuns de orice soft, în orice container. În al doi-lea set de teste s-a incercat ascunderea ambelor mesaje (M1 si M2) într-un singur container (s-au folosit tot C1 şi C2, sau alte containere). Soft-urile cu care s-au făcut testele, sunt: Hide and Seek, StegoDos, White Noise Storm si S-Tools. Toate aceste programe sunt shareware. Aproape fiecare autor al acestor soft-uri a recomandat criptarea mesajelor înaintea steganografierii, unele chiar folosindo direct.
184
7.3.1. Hide and Seek Nu a reusit decât să ascundă mesajul M1. Acesta este ascuns în containerul C2. Imaginea din stânga este imaginea originală, iar cea din dreapta, imaginea cu mesajul M1.
7.3.2. StegoDos Este destul de dificil de folosit, atât la "punerea" textului, cât şi la "luarea" lui. La fel, imaginea din stânga reprezintă imaginea originală. Nu s-a reuşit decât includerea mesajului M1.
185
186
7.3.3. White Noise Storm Cu acest soft, s-a reuşit ascunderea şi a mesajului M2. Este destul de usor de folosit şi se obţine o degradare foarte mică a containerului. Imaginea de mai jos, conţine rezultatul înscrierii lui M1 în C2. Acest soft, include şi o rutina de criptare înainte de a ascunde mesajul în container.
Rezulatul includerii bazei aviatice în Renoir, este dat mai jos.
187
7.3.4. S-Tools Este cel mai bun soft testat. Cuprinde mai multe aplicaţii, printre care ascunderea de mesaje în fişiere .bmp, .gif, în fişiere .wav şi chiar pe dischete goale. Şi acest soft, cuprinde posibilitatea de criptare a mesajului, el folosind algoritmii Idea, MPJ2, DES, 3DES si NSEA. Imaginea de mai jos, cuprinde containerul C2, înainte (dreapta) şi după inscripţionarea lui M1.
188
Imaginea de mai jos, cuprinde containerul C1, în care este mesajul M2:
189
Concluzii •
•
Steganografia, nu este facută pentru a înlocui criptarea, ea fiind un element suplimentar care sporeşte posibilitatea transmiterii de mesaje, fără a fi detectate. Astfel, dacă se ştie că o imagine conţine un mesaj, acel mesaj, va trebui întâi scos din container şi apoi decriptat (lucru nu tocmai uşor). Avantajul steganografiei, este că nu trezeşte nici o bănuiala, deoarece este un fişier text, grafic, etc. care la prima vedere pare inofensiv. Dar, dacă un anumit mesaj, criptat şi apoi trimis, este văzut de o a treia persoană, acesta poate atrage suspiciuni.
7.4. Compresia După partea de grafică, partea de compresie, este cea mai grea (datorită lipsei de documentaţii). În această categorie, vom include informaţii despre fractali şi despre unele formate de fişiere. Cu toate că este vorba tot de compresie, aici nu vom include informaţii despre fişierele imagine sau film, lăsându-le pentru partea de grafică. Compresia, este folosirea unor funcţii recursive pentru a crea fişiere de dimensiuni mai mici prin eliminarea redundanţei (a repetiţiilor). Un arhivator, este un program care ia ca argumente unul sau mai multe fişiere, le comprimă şi produce un singur fişier arhivă.
7.4.1. Compresia Huffman Compresia Huffman, este o tehnică de compresie statistică, care dă o reducere a codului folosit pentru reprezenta 190
simbolurilor alfabetului; adica, cu biti mai putini sunt reprezentate caracterele care apar mai des, iar caracterele care apar mai rar, cu biţi mai mulţi. Un cod Huffman, poate fi construit în felul următor: • se orânduiesc toate simbolurile în ordinea probabilităţii de apariţie • succesiv, se combină două simboluri cu probabilitate mică, pentru a crea un simbol compus nou; eventual, se crează arborele binar, unde fiecare nod, este probabilitatea tuturor nodurilor de la nivelele inferioare • se caută un drum la fiecare frunză, observându-se direcţia. Pentru o frecvenţă de distribuţie dată, sunt mai multe coduri posibile Huffman, dar lungimea fiţierului comprimat, va fi aceaşi. O altă tehnică de compresie înrudită cu compresia Huffman, este Shannon-Fano, care funcţioneaza astfel: 1. se împarte mulţimea de simboluri în douî submulţimi egale sau cel puţin egale ca mărime pe baza probabilităţii de apariţie a caracterelor din mulţimea-mama. Primei mulţimi ii este asociat un zero binar, iar celei de-a doua un unu binar. 2. se repetă pasul 1 până când toate submulţimile au un singur element Algoritmul Huffman, acţioneaza de jos în sus, iar algoritmul Shannon-Fano, acţioneaza de sus în jos; cea mai bună compresie o dă algoritmul Huffman, algoritmul Shannon-Fano, dând câteodată câţiva biţi în plus. Cei doi algoritmi, dau o compresie bună dacă probabilitatea apariţiei simolurilor, sunt intregi, puteri ai lui ½ (care, de obicei, nu este aşa).
191
7.4.2. Codarea aritmetica Codarea aritmetică, este folosită când probabilitatea apariţiei simbolurilor nu sunt întregi, puteri ai lui 1/2; această codare, obţine acelaşi efect ca şi codarea Huffman, tratând mesajul ca un tot unitar, şi, teoretic obţine compresia maximă pentru orice sursă. Codarea aritmetică, funcţionează prin reprezentarea unui numar, printr-un interval de numere reale între 0 şi 1. Cu cât mesajul devine mai lung, cu atât intervalul folosit pentru a-l reprezenta devine tot mai mic şi numărul de biţi utilizaţi pentru a reprezenta respectivul interval devine tot mai mare. Simbolurile succesive din mesaj, reduc acest interval, în conformitate cu probabilitatea apariţiei simbolului. Aceasta, este una dintre cele mai bune tehnici de compresie, dar nu este prea folosită deoarece este o mare consumatoare de resurse (atât de memorie, cât şi de procesor), folosindu-se alte alternative, cum ar fi compresia prin substituţie.
7.4.3. Compresia prin substitutie Ideea de bază la această compresie, este înlocuirea apariţiilor repetate a unei fraze sau a unui grup de simboluri (litere, cifre, etc.) cu o referinţă, care să indice prima apariţie a frazei, grupului de simboluri, etc. Această familie de compresoare, are două clase, numite după (iniţialele numelor) Jakob Ziv şi Abraham Lempel, primii care le-au propus, în 1977 şi 1978. Familia LZ78 Această familie funcţioneaza prin introducerea de fraze într-un dicţionar, şi când este găsită o repetiţie a acelei fraze, se înlocuieşte fraza cu indexul din dicţionar. Există mai mulţi 192
algoritmi care se bazează pe această idee, dar diferenţa principală, este modul în care lucrează cu dicţionarele. Cel mai cunoscut algoritm de acest tip, este LZW, creat în 1984 de Terry Welch, care a fost implementat şi în controller-ele de hard disk. LZW începe cu un dicţionar de 4K, din care intrările de la 0 la 255, fac referire la simboluri individuale, şi intrările 2564095 la subşiruri. De fiecare dată când un cod nou este generat, înseamnă că un nou şir a fost analizat. Noi şiruri sunt generate, prin adăugarea caracterului curent K, la sfârşitul unui sir deja existent, w. Algoritmul de compresie LZW, este: repetă{ citeşte caracterul K dacă wK există în dicţionar, w=wK altfel{ adaugă wK la tabela de şiruri w=K} } Un exemplu al algoritmului pe şirul "/WED/WE/WEE/WEB", este dat în tabelul 19:
193
Caracterul de intrare /W E D / WE / WEE /W EB SFARSIT
Tabelul 19. Exemplu de algoritm pe şirul "/WED/WE/WEE/WEB" Codul de ieşire Noile valori şi asocierile de şiruri / 256=/W W 257=WE E 258=ED D 259=D/ 256 260=/WE E 261=E/ 260 262=/WEE 261 263=E/W 257 264 B
Şirul rezultat după aplicarea algoritmului asupra codului de intrare, este "/WED<256>E<260><261><257>B". Decompresia LZW, ia ca intrare codul şi îl foloseşte pentru a crea exact textul original. La fel ca şi algoritmul de compresie, algoritmul de decompresie adaugă un nou şir dicţionarului de fiecare dată când citeste un nou cod. Un exemplu de decompresie a şirului "/WED<256>E<260><261><257>B", este dat în tabelul 20:
194
Caracterul de intrare / W E D 256 E 260 261 257 B
Tabelul 19. Exemplu de decompresie Codul de ieşire Noile valori şi asocierile de şiruri / W 256=/W E 257=WE D 258=ED /W 259=D/ E 260=/WE /WE 261=E/ E/ 262=/WEE WE 263=E/W B 264=WEB
Cea mai remarcabilă caracteristică a acestui tip de compresie este accea că întreg dicţionarul a fost transmis decompresorului fără ca dicţionarul să fie transmis ca un pachet suplimentar lângă datele comprimate; adică, el a putut fi recreat doar datorită datelor primite. Deci, întreg dicţionarul va fi gata doar la terminarea procesului de decompresie. Familia LZ77 Această familie de compresoare, funcţionează astfel: păstrează ultimii n octeţi văzuţi şi când este găsită o frază care a mai fost văzută, înlocuieşte fraza găsită cu poziţia frazei găsite prima oara şi cu lungimea frazei. Deci, compresorul mută o "fereastră" deasupra datelor, "fereastră" care conţine pe lângă frază şi o pereche (poziţie, lungime), care indică locul, respectiv lungimea frazei din fereastră. Cei mai folosiţi algoritmi, sunt cei derivaţi din algoritmul LZSS, descris pentru prima oară în 1982, de James Storer şi Thomas Szymanski. Aceşti algoritmi, ţin o 195
"fereastră" de N octeţi şi un buffer de înaintere, în al cărui conţinut încearcă să găsească o "potrivire" a "ferestrei": Cât timp (buffer-ul de înaintare nu este gol){ obţine o pereche (poziţie, lungime) a celei mai lungi potriviri din "fereastră", în buffer-ul de înaintare; dacă (Lungime>LungimeaMinimăDePotrivire){ scrie perechea (poziţie, lungime); mută fereastra cu Lungime caractere mai în faţă;} altfel{ scrie primul caracter din buffer-ul de înaintare; mută "fereastra" cu un caracter mai în faţă;} } Decompresia, se face astfel: de câte ori este găsită o pereche (poziţie, lungime), du-te la acea poziţie şi copiază “lungime octeţi” în fişierul de ieşire.
7.5. Fractali. Dimensiunea fractala Fractalii sunt forme geometrice, care pot fi împărţite în bucăţi, fiecare dintre ele, fiind o copie la scară redusă a întregului. Fractali pot fi consideraţi norii, muntii, copacii, malurile, etc. Denumirea de "fractal", a fost dată prima oară de Benoit Mandelbrot (un matematician de la IBM) de la adjectivului latin "fractus". Verbul corespunzator, este "frângere", care înseamnă "a sparge". Obiectele geometrice, au o dimensiune topologică; de exemplu, liniile au dimensiunea 1, suprafeţele plane (pătrate, cercuri, etc.) au dimensiunea 2, spatiul, dimensiunea 3. Dar, s-au construit figuri, care nu se puteau caracteriza prin nici una dintre dimensiunile cunoscute; unei linii curbe care uneşte două puncte, nu i se putea determina lungimea, iar dacă se făceau detalieri succesive asupra fiecărui punct de pe dreapta, lungimea liniei 196
creştea (conturul unui munte se detaliază cu cât distanţa de la care este privit este mai mică). Astfel, în 1919, matematicianul Hausdorff, a introdus o noua dimensiune, dimensiunea fractală sau dimensiunea Hausdorff. Această dimensiune, măsoara numărul de mulţimi de diametre mai mici, necesare pentru a acoperi o figură. Dacă acest numar este întreg, atunci dimensiunea este topologică, altfel, dimensiunea este fractală. De exemplu, o linie dreaptă mărită de 2 ori, este de două ori mai mare decat linia iniţială; dimesniunea ei, este log2/log2=1. Un pătrat mărit de 2 ori, este de 4 ori mai mare decât pătratul iniţial (aria sa cuprinde 4 arii a pătratului iniţial), iar dimensiunea lui, este log4/log2=2. Într-un cub, mărit de 2 ori, încap 8 cuburi iniţiale, iar dimensiunea lui este log8/log2=3. Dacă se ia o dreaptă, în care se înlocuieşte repetat __ cu _/\_, unde fiecare 4 linii sunt 1/3 din lungimea vechii linii şi se măreşte de 3 ori, rezultă o linie care este de 4 ori mai mare şi care are dimensiunea log4/log3=1.261..., dimensiune care nu este o valoare întreagă, fiind deci o dimensiune fractală. Fractalii, sunt folosiţi mai ales la compresia imaginilor. Este o tehnica relativ nouă şi care nu dă rezultate destul de bune în comparaţie cu alte tehnici de compresie a imaginilor. De exemplu, dacă se ia un portret alb-negru, cu culori pe 8 biti şi se trece prin programul de compresie, se obţine un fişier de 2500 octeţi (se obţine o compresie de 25:1). Dacă se măreşte părul persoanei din portret de 4-5 ori, se va vedea o textură care seamănă cu părul. Dar, detaliile nu s-au arătat, ci s-au generat; deci, dacă se va mări faţa persoanei, nu se vor vedea porii pielii, ci aceaşi textură, ca şi cum ar fi mărită cu lupa.
197
Bibliografie • IEEE Transactions on Computers, 1986 - 2004 • C. Bacivarov, Securitatea sistemelor informatice - Rubrica permanentă "Societatea informaţională" - Calitatea, 2003 - 2004 • R. Lupan, A.Kobi, C. Robledo, I. Bacivarov, ISO 9000:2000 Quality System Improvement Using the Six Sigma Methology, Proceedings of the 3rd International Conference on the Management of Technological Changes, Chania, Greece, August 2003, pp.131 –137
• Andrew S. Tanenbaum: Retele de calculatoare (editia a treia), Computer Press AGORA (1998) • Victor-Valeriu Patriciu, Monica Pietrosanu-Ene, Ion Bica, Costel Cristea: Securitatea informatica in UNIX si INTERNET , Editura tehnica (1998) • Marshall Wilensky & Candace Leiden , TCP/IP pentru toti, Editura Teora (1996) • Iosif Ignat, Adrian Kacso: Unix - gestionarea proceselor, Editura Albastra (1995) • V. Cristea, A. Paunoiu, E. Kalisz, I. Athanasiu, L. Negreanu, S. Calinoiu, F. Baboescu: UNIX, Editura Teora (1993) • Valer Bocan – Stadiul actual al dezvolt_rii sistemelor de securitate pentru re!ele de calculatoare de înalt_ siguran!_, Referat doctorat nr. 1, Universitatea „Politehnica” Timi4oara, Facultatea de Automatic% 4i Calculatoare, 2001 • Valer Bocan – Developments in DOS Research and Mitigating Technologies, Periodica Politehnica, Transactions on Automatic Control and Computer Science, Vol. 49 (63), CONTI 2004 • Valer Bocan – Threshold Puzzles: The Evolution of DOSresistant Authentication, Periodica Politehnica, Transactions on Automatic Control and Computer Science, Vol. 49 (63), CONTI 2004 198
• Computer Emergency Response Team - CERT advisory CA-2000.01 Denial of service developments, 2000 (http://www.cert.org/advisories/CA-2000-01.html) • Scott A. Crosby, Dan S. Wallach – Denial of Service via Algorithmic Complexity Attacks, Proceedings of the12th USENIX Security Symposium, 2003 • Drew Dean, Adam Stubblefield – Using Client Puzzles to Protect TSL, http://www.csl.sri.com/users/ddean/papers/usenix01b.pdf, Proceedings of the10th USENIX Security Symposium, 2001 • Digital Equipment Corporation – Performance tuning tips for Digital Unix, iunie 1996, http://www.abdn.ac.uk/local/apache/manual_1.3.4/misc/perfdec.h tml • Prashant Dewan, Partha Dasgupta, Vijay Karamcheti – Defending Against Denial of Service Attacks Using Name Secure Resolution, The 23rd International Conference on Distributed Computing, 2003 • The Distributed.net Organization, http://www.distributed.net • Peter Druschel, Gaugrav Banga – Lazy receiver processing (LRP): a network subsystem architecture for server systems, Proceedings of the 2nd USENIX Symposium on OSDI, Seattle, 1996 • Cynthia Dwork, Moni Naor – Pricing via Processing or Combating Junk Mail, Proceedings of CRYPTO ’92, Springer Verlag, 1992 • P. Ferguson, D. Senie – Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing, RFC 2267, 1998 • Alan O. Freier, Philip Karlton, Paul C. Kocher – The SSL Protocol, Version 3.0 (Internet Draft), Transport Layer Security Working Group, 1996 199
• Ari Juels, John Brainard – Client puzzles: A cryptographic defense against connection depletion attacks, Proceedings of the NDSS 1999 • Charlie Kaufman, Radia Perlman, Mike Speciner – Network Security. Private Communication in a Public World, Prentice Hall, 2002 • Catherine Meadows – A formal framework and evaluation method for network denial of service, Proceeding of the 1999 IEEE Computer Security Foundations Workshop, Mordano, Italy, 1999 • R. C. Merkle – Secure Communications Over Insecure Channels, Communications of the ACM, 1978 • Rolf Oppliger – Authentication Systems for Secure Networks, Artech House, Inc., 1996 • Victor-Valeriu Patriciu – Criptografia şi securitatea reţelelor de calculatoare, Editura Tehnică, 1994 • Ping-Herng Denny Lin – Survey of the Denial of Service Countermeasures, California State University, Fullerton, 2000 • Valentin Razmov – Denial of Service Attacks and How to Defend Against Them, University of Washington, 2000 • Ronald R. Rivest, Adi Shamir, David A. Wagner – Timelock Puzzles and Timed-release Cryptography, 1996, http://lcs.mit.edu/~rivest/RivestShamirWagner-timelock.pdf • Stefan Savage, David Wetherall, Anna Karlin, Tom Anderson – Practical network support for IP traceback, technical report UW-CSE-00/02/0, SIGCOMM ‘00, 2000 • Bruce Schneier – Distributed denial of service attacks, Crypto-gram newsletter, 2000 • SETI @home Program, http://setiathome.ssl.berkely.edu • Shon Harris – DOS Defense, Information Security Magazine, 2001
200
• Oliver Spatscheck, Larry Peterson – Defending against denial of service in Scout, Proceedings of 3rd USENIX/ACM Symposium on OSDI, p. 59-72, 1999 • Tuomas Aura, Pekka Nikander, Jussipekka Leiwo – DOSresistant authentication with client-puzzles, Proceeding of the Cambridge Security Protocols Workshop 2000, LNCS, Cambridge, UK, 2000
201