SECURITATEA RETELELOR DE CALCULATOARE
Realizarea securitatii datelor prin criptografie este un subiect extrem de actual. Acest laborator urmareste formarea unei imagini practice despre aplicatiile criptografiei, dand posibilitatea studentilor sa realizeze propriile lor servicii de securitate folosind cateva primitive criptografice deja dezvoltate.
La nivel retea exista doua clase de protocoale:
Tinta acestui curs fiind preponderent retelele locale ne vom ocupa in continuare doar de protocoalele rutate.
Folosirea unor protocoale bazate doar pe prelucrarea informatiilor de nume poate fi adecvata in retelele de dimensiuni reduse. Aceste protocoale folosesc doar un singur identificator/nume (de ex. adresa MAC) pentru a identifica un calculator intr-o retea. Odata cu cresterea retelei devine tot mai dificil organizarea schemei de nume astfel incit sa nu existe doua statii cu acelasi nume si cantitatea de informatie ce trebuie prelucrata sa fie cit mai redusa, eventual optimizata la cautare.
Exista doua scheme de adresare:
Orice protocol pentru a putea fi rutat trebuie sa ofere o schema de adresare ierarhica care sa contina minim doua cimpuri: adresa de retea si adresa de statie.
Protocolul IP (Internet Protocol)
Clasa |
Primii biti |
Nr biti retea |
Nr de retele |
Nr biti statie |
Nr statii |
Domeniul de valori |
A | ||||||
B | ||||||
C | ||||||
D |
multicast | |||||
E |
rezervat | |||||
Doua
dintre adresele de statie sunt rezervate: cea ce are reprezentarea binara
descrisa in cimpul de statie numai de 0, aceasta fiind numita si adresa retelei
si cea descrisa numai prin 1, aceasta din urma numindu-se adresa de difuzare
sau brodcast. Mai exact aceasta a doua adresa mai este numita si adresa de
difuzare directa, existind si o adresa de difuzare in reteaua locala, aceasta
fiind 255.255.255.255. Din motive de securitate ruterele nu transmit mai
departe pachetele ce contin adresa de difuzare in reteaua locala in cimpul
destinatie.
In cea ce priveste adresele de retea exista tot doua care nu pot fi folosite.
Este vorba de prima si ultima din fiecare clasa de adrese. De retinut ca in mod
real si aceste retele sunt folosite cu riscul de a se crea unele confuzii. Din
tabelul de mai sus se observa ca se pot folosi pentru statii cu acces direct pe
Internet doar clasele de adrese A, B si C. Clasa D este proiectata pentru a
suporta adrese de trimitere multipla (multicast), iar clasa E este rezervata. Adresele
de retea sunt distribuite de InterNIC, sau de institutii autorizate de acesta.
Odata obtinut un spatiu de adrese distribuirea lui in interiorul retelei locale
ramine la latitudinea administratorului de retea.
Subretele
Cele 3 clase de adrese ofera o flexibilitate redusa, numarul de statii continute intr-o retea putind avea doar 3 valori. Acest inconvenint major poate fi compensat prin definirea in interiorul unei retele de subretele. Desi acestea vor permite un grad mai mare de flexibilitate implementarea lor se va duce la micsorarea spažiului disponibil de adrese. In tabelul de mai jos este facuta evaluarea spatiiului disponibil de adrese dupa crearea de subretele intr-o clasa C.
Nr biti imprumutati |
Nr de subretele |
Nr de statii pe o subretea |
Nr total de statii |
Procent de utilizare | |||||
Masca de retea are rolul de a distinge care este adresa de retea dintr-o adresa IP data. Pentru obtinerea adresei de retea se va face o operatie de sI logic intre masca de retea si adresa IP. Exista doua exprimari folosite:
Exprimarea adreselor de IP
Adrese private
Deoarece spatiul de adrese IPv4 este din ce in ce mai aglomerat o serie de adrese de retea au fost dedicate utilizarii in reteaua locala, aceste adrese nu pot fi accesate direct de pe Internet. Interconectarea unei astfel de retele se va face printr-un sever ce va oferii NAT (Network Address Translation), acesta avind nevoie de o adresa rutabila.
Clasa
A: 10.0.0.0 (aceasta este chiar clasa folosita pentru dezvoltarea proiectului
de interconectare la DARPA, deci este reteaua de la care a pornit Internetul)
Clasa B: 172.16.x.x -
172.31.x.x
Clasa C: 192.16.x.x
Protocolul IPX
Este o dezvoltare a XNS. Adresele IPX sunt de 10 octeti:
NetBEUI (NetBIOS Extended User Interface)
Protocolul NetBEUI desi poate pare o solutie adecvata pentru retelele de mici dimensini aduce doua inconveniente semnificative:
NetBIOS (Network Basic Input/Output System) este un API folosit de aplicatii in retelele IBM pentru a solicita servicii de la procesele de retea de nivel scazut. NetBIOS include 3 servicii de baza:
Serviciul de nume, acest serviciu este in realitate responsabil pentru asigurarea schemei de nume folosita de NetBEUI. Numele sunt difuzate la intrarea in reteasau pot fi interogate explicit prin pachete de difuzare
Serviciul de sesiuni este un serviciu orientat conexiune, asigurind secventierea mesajelor si gestionind confirmarile pentru acestea.
Serviciul de datagrame este bazat pe datagrame si este folosit pentru difuzari si mesaje de informare.
Aplicatie |
|
|
NetBIOS |
|
NetBEUI |
Altele |
Legatura de date |
Placa de retea |
Asigurarea suportului de retea intr-un sistem Windows
La alegerea protocolului de nivel retea trebuie luate in consideratie urmatoarele aspecte:
FISIERELE IN SISTEMUL LINUX
In ziua de astazi, sistemul
Linux capata din ce in ce mai mult teren in fata clasicului Windows. Dar,
exista si foarte multa lume care se fereste de acest sistem de operare, deoarece
s-a informat din diferite surse si a inteles ca este foarte greu de configurat,
de utilizat si de administrat. Intr-adevar, sistemul Linux este mai greu de
operat, dar acest articol incearca sa va ajute, incercand sa va faca sa va
formati o parere asupra fisierelor in acest sistem. Bineinteles ca nu vom spune
totul despre fisiere.
Fisierele in sistemul Linux pot fi de mai multe tipuri: ordinare, directoare, speciale si pipe (FIFO). Indiferent de ce tip sunt., sistemul Linux le priveste prin intermediul tabelei de alocare ca o succesiune liniara de octeti. Inainte de a trece mai departe tin neaparat sa va dau si notiunea de inod, pe care o vom folosi destul de des pe parcursul acestui articol. Numele de inod provine din englezescul "index node". Un inode contine urmatoarele informatii:
Dupa cum probabil ati observat notiunea de inod v-am prezentat-o foarte sumar, doar pentru a nu va pune dupa aceea intrebari ce inseamna acest inod sau la cel il folosesc.
Tipuri de fisiere
Fisierele ordinare -
aceste fisiere pot primi drepturi de acces precum read (pentru citire), write
(pentru scriere, stergere, adaugare) si executie (pentru lansare in executie).
Despre blocurile de date ale acestor fisiere putem spune ca ele nu sunt
continue, acestea fiind regasite prin intermediul tabelei de alocare a
fisierelor. Sfarsitul unui fisier ordinar este dat de CTRL/D (04H).
Fisierele directoare -
aceste fisierele asigura structura ierarhica arborescenta avand ca radacina
directorul root. In sistemul Linux, acest tip de fiser este specificat prin
numele de cale. Radacina este indicata prin /. Pentru a intelege mai bine acest
tip de fisiere putem lua un exemplu: /usr/usrs/user3/cosmin/stuff indica
fisierul stuff din directorul cosmin. Trebuie de mentionat faptul ca un
director nu poate avea decat un singur parinte. Un singur director are intrati
de cate 16 octeti. Acest octeti contin urmatoarele: numarul inodului (2 octeti)
si numele fisierului (14 octeti). Fisierele sterse dintr-un director au inodul
0. Si un director, la fel ca si un fisier poate avea drepturi de acces. Aceste
drepturi sunt: read (pentru a citi directorul), write (folosit pentru a crea o
noua intrare in acel director sau pentru a sterge o intrare existenta in acel
director. Acest lucru se poate realiza prin intermediul mkmod, link si unlink)
si execute (intrebuintat pentru cercetarea directorului pentru gasirea uni nume
de fisier).
Fisierele speciale -
acest tip de fisiere face legatura cu funtiile programului de comanda al
perifericelor carora le-au fost asociate: periferiferice de tip bloc sau de tip
caracter. Inodurile acestor fisierele contin 2 numere: numarul major - care
indica tipul dispozitivului si numarul minor - care indica numarul unitatii.
Fisierele FIFO - aceste fisiere mai poarta numele si de fisiere pipe. In aceste fisiere datele sunt citite in ordinea stricta a scrierii lor, respectandu-se regula de sincronizare producator/consumator.
O scurta privire in securitatea sistemelor Linux
Securitatea sistemelor este cel mai
controversat domeniu in ziua de astazi. Administratorii de retele incearca
sa-si protejeze cat mai mult sistemele pe care le administreaza si sa asigure o
securitate cat mai mare a datelor. Sistemul Unix este foarte bine dezvoltat pe
partea de securitate oferind foarte multe solutii pe care alte sisteme nu le
ofera. In acest articol vom aborda cateva din numeroasele teme de securitate.
Protectia conturilor
Orice persoana care utilizeaza un sistem de operare precum Linux, trebuie sa aiba un cont, identificat printr-un nume de cont. Conturile utilizatorilor unui sistem Linux reprezinta o usa spre exterior si o intrare prin care pot patrunde atat utilizatorii autorizati cat si cei neautorizati. De aceea protectia conturilor reprezinta una dintre cele mai importante sarcini ale unui administrator de sistem Linux.
Conturile sunt de mai multe feluri:
Conturi fara parole - conturile fara parole sunt niste cai foarte facile de penetrare a sistemului. Este suficient sa se cunoasca numele contului pentru ca un utilizator sa patrunda in sistem. Este o situatie asemanatoare cu o usa fara incuietoare. Contul fara parola se poate gasi cu urmatoarea secventa shell:
$cat passwd | awk -F:'lenghth($2) < 1 'Comanda cat va furniza lui awk continutul fisierului passwd. Daca al doilea camp are lungime 0, atunci se va tipari numele contului.
Conturi implicite - sunt conturile cu parile standard sau fara parole, acestea venind o data cu sistemul de operare. De exemplu root nu are parola, iar conturile guest, mail, bin, who, lp au parole standard. Conturile cu parole standard trebuie sa fie dezactivate, fie protejate cu alte parole.
Conturi restrictionate - exista posibilitatea, pe alte sisteme de a restrictiona accesul utilizatorilor, Se poate specifica un interval de timp sau zile cand este permis accesul. Se poate de asemenea restrictiona accesul astfel incat sa existe o anumita linie de terminal de la care accesul este permis.
Conturi utilizate rar - sunt situatii in care utilizatorul unui cont este plecat si nu-l foloseste o perioada de timp mai mare. In aceste situatii este recomandabil sa se adopte una sau mai multe din solutiile de mai jos: a)schimbarea parolei; b)schimbarea shell-ului de login
Programe cu caracter malefic
In continuare am placerea de a
aborda cateva probleme legate de programele scrise cu scopul de a distruge sau
a infecta functionarea unor programe ale sistemului de operare, putand astfel
duce la blocarea functionarii unui sistem de calcul.
Intrarile trapa in sistem -
sunt secvente de cod care permit proiectantilor sa aiba acces la programe fara
a respecta procedura obisnuita. Unele programe au proceduri de autentificare
greoaie, cer utilizatorului sa introduca diferite valori pentru a lansa
aplicatia. La depanare, proiectantii utilizeaza deseori aceste intrari secrete
pentru a evita secventele complicate de autentificare. Intrarile secrete devin
periculoase in momentul in care programatorii, fara scrupule, incearca sa
obtina acces neautorizat. Protectia impotriva intrarilor secrete este destul de
complicata. Caile de protectie cel mai des utilizate sunt:
Bombe logice - sunt secvente de cod care sunt inactive o perioada de timp. Ele se activeaza daca anumite conditii sunt indeplinite. O data activate, vor executa functii care nu corespund cu cele ale programelor in care sunt ascunse. Conditiile care permit activarea unei bombe logice sunt: prezenta sau absenta unor fisiere pe disk, o anumita data curenta sau conectarea unui utilizator care utilizeaza o aplicatie. O data activate, bombele logice pot distruge datele, pot bloca calculatorul sau deteriora sistemul.
Cai troieni - sunt
programe care executa altceva decat ar trebui sa execute programul lansat fara
ca utilizatorul sa-si dea seama. Aceste programe au in general un caracter
malefic. De exemplu, utilizatorul ruleaza un joc in timp ce-i cere date despre
jucatori, despre nivelul de dificultate, programul poate in realitate sa
stearga fisierele, sa formateze discul sau sa execute alte actiuni. Va prezint
in continuare un mic exemplu de cal troian. Un fisiser shar care contine
diferite comenzi de decompactare are si comenzile:
Daca este rulat programul ca root, atunci sunt toate sansele ca sa se stearga fisierele importante ale sistemului de operare. Un atacator poate include comenzi in alte locuri decat programele compilate. Cea mai buna protectie impotriva cailor troieni este citirea cu atentie a surselor programelor care se vor executa.
Viermi - viermii sunt
programe care ruleaza independent si calatoresc in retea de la o masina la
alta. Ei pot avea portiuni de cod care sa ruleze pe diferite masini. Viermii nu
schimba alte programe, desi ei pot transporta programe care pot face acest
lucru. Viermii sunt dificil de scris. Cel mai greu de scris a fost viermele
Internet. Dupa cum se stie, acesta a reusit in scurt timp sa infecteze un mare
numar de calculatoare. Virmele este construit din doua parti: un program
principal si un program vector (bootstrap). Dupa instalare, programul principal
va colecta informatii despre alte masini din retea, cu care calculatorul gazda
poate fi conectat. Apoi va incerca sa instaleze programul sau vector pe fiecare
din aceste calculatoare aflate la distanta.
Programul vector este un program scris in C
care va fi compilat si rulat pe masina de la distanta. Sursa va fi transferata
la "victima". Apoi ea va fi apelata pe masina victima prin
intermediul unei linii de comanda cu trei argumente:
|