Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
O baza de date poate fi definita ca o colectie partajata de date, intre care exista relatii logice, precum si o descriere a acestor date, proiectata pentru a satisface necesitatile informationale ale unei organizatii.
Informatiile continute in baza de date vor putea fi accesate de o multime de utilizatori. Accesul necontrolat al utilizatorilor poate crea neajunsuri in functionarea sistemului. Aceste neajunsuri pot fi de la cele mai nesemnificative si pana la blocari ale accesului sau, mai grav, chiar pierderi de date uneori irecuperabile.
Consider ca atacurile asupra bazelor de date prezinta cateva particularitati fata de restul informatiilor din firma, si anume:
bazele de date reprezinta marea masa a informatiilor cu care firma lucreaza;
bazele de date pot dezvalui informatii private prin prelucrarea datelor publice.
Firmele isi stocheaza datele referitoare la activitatile lor economice in fisiere baze de date. Accesul neautorizat la datele din aceste fisiere poate compromite activitatea firmei. Persoanele sau firmele concurente interesate de activitatea firmei vor face tot posibilul sa intre in posesia acestor informatii. Vor merge pana acolo incat actiunile lor pot fi categorisite ca actiuni de spionaj. Pentru a se evita asemenea riscuri, firma trebuie sa ia o serie de masuri.
Asigurarea securitatii bazei de date presupune interzicerea accesului neautorizat la date. Aceasta se realizeaza cu ajutorul unui set de masuri de securitate umane, software si hardware.
Ca prima masura de securitate umana se poate constitui izolarea sistemului de calcul in incaperi in care accesul sa fie permis dupa trecerea de niveluri de securitate cum ar fi legitimarea sau alte forme de identificare.
Securitatea software presupune ca, intr-o prima faza, accesul atat la sistemul de calcul, cat si la bazele de date sa se faca numai pe baza unor parole de identificare si a drepturilor utilizatorului respectiv. Se poate tine un jurnal al accesului la bazele de date, pe baza acestuia detectandu-se incercarile de acces neautorizat.
Accesul la inregistrarile din baza de date se va face sub controlul strict al catorva elemente care sa previna functionarea defectuoasa a sistemului.
Administratorul bazei de date (DBA[1]) are in principal doua sarcini in asigurarea securitatii bazei de date:
defineste regulile de acces la date;
determina accesul la date.
Sistemul de gestiune al bazelor de date (SGBD) reprezinta un program care va interactiona cu baza de date, acesta avand rolul de mentinere a integritatii elementelor bazei de date.
Nerespectarea cerintelor minime de securitate poate reduce la minimum avantajul lucrului cu baze de date, si anume:
partajarea accesului la informatii;
redundanta minima si controlata a datelor in sistem;
consistenta datelor;
controlul accesului.
Dintre cerintele minime de securitate a bazelor de date se pot enumera:
integritatea fizica a bazelor de date;
integritatea logica a bazelor de date;
integritatea fiecarui element care compune baza de date;
controlul accesului;
identificarea utilizatorului;
disponibilitatea.
Integritatea fizica a bazei de date presupune prevenirea distrugerii fizice a intregii baze de date. Integritatea logica a bazei de date impune ca fiecare element al bazei de date sa fie protejat. Dintre formele de protectie cele mai sigure si mai utilizate se numara operatia de salvare periodica a datelor (backup).
Integritatea fiecarui element care formeaza baza de date este asigurata de sistemul de gestiune al bazelor de date in urmatoarele trei moduri [HSST95]:
verificarea campurilor;
controlul accesului;
schimbarea "log"-ului.
Valoarea fiecarui camp va putea fi scrisa sau schimbata numai de utilizatorii autorizati si numai daca sunt valori corecte.
Integritatea fiecarui element este foarte importanta de asigurat mai ales atunci cand sistemul de calcul esueaza la o operatie de modificare a datelor. Atunci pot aparea doua situatii:
numai o portiune din camp a fost modificata, restul ramanand nemodificat;
la actualizarea mai multor campuri cand erorile de actualizare sunt prezente la mai mult de un camp.
Pentru a se preintampina aceasta, modificarea/actualizarea se va face in doua faze:
faza de intentie;
faza de inregistrare.
Faza de intentie presupune ca SGBD-ul sa culeaga informatiile si resursele necesare pentru actualizare. Nu se face nici o modificare in baza de date.
Faza de inregistrare se face modificand mai intai indicatorul (flag) de scriere dupa care SGBD-ul face modificarile permanente.
Daca sistemul esueaza in timpul fazei a doua, baza de date va contine date incomplete, dar acest lucru poate fi remediat prin reluarea fazei a doua.
Controlul accesului se face tinand cont de restrictiile administratorului bazei de date. SGBD-ul va aplica politica se securitate a administratorului bazei de date (ABD). De asemenea, controlul accesului se va face tinand cont de accesul asupra datelor care vine din partea sistemului de operare sau din partea aplicatiei care lucreaza cu baza de date.
Sistemul de operare lucreaza cu fisiere, si nu cu inregistrari din acestea, care la o prima vedere par sa nu aiba nici o legatura intre ele. Din acest punct de vedere, dezvaluirea de date senzitive este mai putin probabila.
Spre deosebire de sistemul de operare, programul care interactioneaza cu inregistrarile din baza de date, cu valorile de campuri din anumite inregistrari poate dezvalui date senzitive.
Este mai usor de implementat o lista de acces pentru un numar foarte mare de fisiere decat o lista de acces la elementele unei baze de date.
Identificarea utilizatorului va permite in orice moment sa se stie cine ce face in sistem. Toate operatiile efectuate de utilizatori vor fi stocate si vor forma un istoric al accesului. Verificarea istoricului tuturor accesarilor este uneori greoaie si necesita un volum de munca considerabil. De asemenea, pot aparea si raportari false ca in cazul in care s-a accesat un camp, dar valoarea acestuia nu a fost afisata.
Regulile de autentificare ale SGBD-ului ruleaza peste cele ale sistemului de operare.
Un principiu de baza al securitatii datelor spune ca trebuie sa fim suspiciosi la orice informatie primita.
Disponibilitatea va permite arbitrarea unei cereri in care doi sau mai multi utilizatori solicita accesarea aceleiasi inregistrari.
Datele care nu pot fi facute publice poarta denumirea de date senzitive. O data senzitiva va fi disponibila numai persoanelor autorizate.
Factorii care fac ca o data sa fie senzitiva sunt [HSST95]:
sunt date inerent senzitive;
provin dintr-o sursa senzitiva;
sunt declarate senzitive;
atribute sau inregistrari senzitive;
sunt senzitive in relatie cu datele anterioare.
Dintre tipurile de afisari ale unor date senzitive avem:
date exacte;
date aproximative;
date negative;
date existente;
date probabile.
Afisarile datelor exacte permit chiar afisarea datelor cerute. Si aceasta in conditiile in care datele respective trebuiau sa fie ascunse unei cereri neautorizate.
O alta situatie este aceea in care se afiseaza o valoare apropiata de valoarea exacta a datei. Afisarea acestor date depinde de context. Datele afisate pot fi benefice sau, in functie de context, raufacatoare.
Rezultatele negative apar in urma unor cereri deghizate in cereri inocente.
Dezvaluirea existentei unei date (a existentei unui camp intr-o tabela) poate fi senzitiva.
In anumite situatii se pot determina rezultate senzitive prin combinarea sau aplicarea de relatii intre datele afisate.
In cadrul firmei supuse testului am incercat sa obtin
date senzitive din baza de date cu salariati. Am avut la dispozitie
date partiale din programul de salarii folosit la firma. De asemenea,
datele nu au fost actuale, motivandu-se faptul ca salariile sunt secrete.
Structura tabelei este urmatoarea (figura
22):
Figura 22. Structura bazei de date de personal supusa testului
Legenda:
Denumire camp |
Explicatie |
|
NUME |
Denumire persoana |
|
SEX |
Sex |
|
STUD |
Studii (L-liceu, P-postliceale, S-superioare) |
|
SALB |
Salariu brut |
|
SANC |
Sanctiuni (0-Nu, 3-Da, multe) |
|
COMP |
Compartiment lucru (C-comercial, F-financiar, P-productie) |
Cele mai putin senzitive date sunt: NUME. Cele mai senzitive date sunt: SALB, SANC. In anumite situatii si campul NUME poate sa fie o data senzitiva daca cineva cauta o anumita persoana.
Popularea tabelei cu inregistrari este
urmatoarea (figura 23):
Figura 23. Popularea cu inregistrari a tabelei SALA.DBF
Vom exemplifica pe tabela anterioara cateva tipuri de atacuri.
Atacul direct
Aplicam un atac direct asupra tabelei de mai sus.
Vom folosi pentru inceput un atac evident de forma si rezultatul acestuia exemplificate in figura urmatoare (figura 24):
Figura 24. Atacul direct si rezultatul
acestuia
Vom folosi acum un atac mai putin evident de forma si rezultatul acestuia exemplificate in figura urmatoare (figura 25):
Figura 25. Atacul mai putin evident si rezultatul acestuia
Se observa ca doar conditia (SEX= M AND SANC=1) este cea reala dupa care se face sortarea, celelalte fiind puse pentru derutare.
Acest tip de atac este posibil datorita faptului ca atacatorul vede toate campurile din baza de date. O modalitate de a preintampina acest tip de atac este ca atacatorul sa nu vada decat portiunile nesenzitive din baza de date. Acest lucru se poate face prin aplicarea de vederi ale bazei de date.
Atacul indirect
Acest tip de atac se executa atunci cand nu se afiseaza decat date sumare despre angajati (in cazul de fata doar numele si compartimentul la care lucreaza). Cautam sa determinam numarul de persoane de la fiecare compartiment si eventual salariile unora dintre acestia.
Aplicam acum un atac indirect cu functii de urmatoarea
forma (figura
26).
Figura 26. Atacul indirect folosind functia SUM conditionat
Rezultatele centralizate sunt urmatoarele:
C (comercial) |
F (financiar) |
P (productie) |
Total |
|
M | ||||
F | ||||
Total |
A iesit in evidenta faptul ca la compartimentul Comercial si la compartimentul Productie sa lucreze o singura persoana de gen masculin care sa aiba salariile respective . De asemenea, la compartimentul Financiar exista o singura persoana de genul feminin care are salariul de 6.400.000 lei. Analizand in continuare, se poate trage concluzia ca la toate cele trei compartimente este posibil sa existe doua situatii, si anume (tabelul 9):
sa existe o singura persoana de gen masculin, respectiv feminin, care sa aiba un salariu mare;
sa existe cel putin doua persoane care sa aiba salariile mici in asa fel incat suma lor sa fie cea indicata.
Tabelul 9. Evidentierea rezultatelor la un atac indirect
NUME |
SEX |
STUD |
SALB |
SANC |
COMP |
Popescu M Valentin |
M |
S |
C |
||
Ionescu A Stelian |
M |
P |
F |
||
Grigore A Marcela |
F |
L |
P |
||
Georgescu P Ion |
M |
P |
F |
||
Simion I Janina |
F |
S |
C |
||
Tanase A Loredana |
F |
S |
P |
||
Alexe A Virgil |
M |
S |
P |
||
Gherase I Mihaela |
F |
P |
C |
||
Constantin I Iulia |
F |
S |
P |
||
Ilie G Ioana |
F |
L |
F |
||
Alexandru A Silviu |
M |
S |
F |
Continuam atacul si incercam sa determinam numarul de persoane de la aceste compartimente. Aplicam functia COUNT conditionat care are ca afect afisarea numarului de persoane de la compartimentele respective (figura 27). Aceleasi date au fost generate si la folosirea functiei SUM care afiseaza atat suma ceruta, cat si numarul de inregistrari din care a fost calculata aceasta.
Figura 27. Atacul indirect folosind
functia COUNT conditionat
Rezultatele centralizate sunt urmatoarele:
C (comercial) |
F (financiar) |
P (productie) |
Total |
|
M | ||||
F | ||||
Total |
Rezultatul afisat este de fapt cel intuit. Aceste atacuri destul de simple nu au facut decat sa evidentieze cat de repede se pot determina anumite date senzitive din interiorul firmei doar pe baza datelor publice. Aceste tipuri de atacuri au mai mari sorti de reusita daca numarul de inregistrari este redus. In cazul tabelelor complexe in care numarul de inregistrari este mare ne putem folosi de mai multe campuri pentru a extrage date senzitive.
In anumite situatii mai complexe se pot folosi interogari cu ajutorul functiilor statistice implementate de SGBD-uri mai performante.
La acest tip de atacuri se poate raspunde cu una dintre metodele de aproximare a rezultatelor sau combinarea rezultatelor. Se poate de asemenea aplica si metoda de suprimare a cererilor care se bazeaza pe situatii cand rezultatul la o cerere senzitiva este 1 (unu) (Capitolul 4).
Atacul prin urmarire
Aplicam un atac asupra unei baze de date care are implementat un mecanism de suprimare a cererilor care au rezultate dominante. Vom interoga baza de date cu un set de cereri si vom studia raspunsul la aceste cereri, urmand ca din acestea sa vedem unde sunt datele senzitive. Acest tip de atac este folosit impotriva bazelor de date care au raspunsuri scurte la interogari. Atacul se bazeaza pe principiul conform caruia daca o interogare directa are ca rezultat un numar mic de raspunsuri, negarea cereri initiale va avea rezultat zero.
Aplicam un atac de acest tip asupra aceleiasi tabele.
Vom interoga tabela cu urmatoarea expresie:
Interogarea va fi refuzata deoarece o inregistrare (a cincea) este dominanta.
Impartim interogarea in doua parti care vor avea doua rezultate la aceste cereri. Apoi vom extrage datele senzitive din cele doua interogari:
Q = count (a and b and c) care este echivalent cu:
Q = count (a) - count (a and not (b and c)), unde:
a → SEX=F
b → STUD=S
c → COMP=C
Interogarea Q va putea fi impartita in doua
interogari q1
si q2 de
urmatoarea forma:
si are ca rezultate:
Q = q1 - q2 = 6 - 5 =1
Concluzia este ca exista o singura persoana de sex feminin cu studii superioare care lucreaza la compartimentul Contabilitate. Deci pe baza datelor nesenzitive am putut determina o data senzitiva (tabelul 10).
Tabelul 10. Raspunsul la atacul prin urmarire
NUME |
SEX |
STUD |
SALB |
SANC |
COMP |
Popescu M Valentin |
M |
S |
|
C |
|
Ionescu A Stelian |
M |
P |
F |
||
Grigore A Marcela |
F |
L |
P |
||
Georgescu P Ion |
M |
P |
F |
||
Simion I Janina |
F |
S |
C |
||
Tanase A Loredana |
F |
S |
P |
||
Alexe A Virgil |
M |
S |
P |
||
Gherase I Mihaela |
F |
P |
C |
||
Constantin I Iulia |
F |
S |
P |
||
Ilie G Ioana |
F |
L |
F |
||
Alexandru A Silviu |
M |
S |
F |
Pe aceasta baza se pot determina sisteme de ecuatii liniare pentru determinarea datelor senzitive.
q1 |
c1 |
c2 |
c3 |
c4 |
c5 |
|||||
q2 |
c1 |
c2 |
c4 | |||||||
q3 |
c3 |
c4 | ||||||||
q4 |
c4 |
c5 |
||||||||
q5 |
c2 |
c5 |
In majoritatea cazurilor de atac studiate am observat dezvaluiri senzitive atunci cand in urma unei cereri se obtin rezultate singulare (o singura inregistrare). Se impune deci restrictionarea cererilor care au ca efect rezultate singulare (Capitolul 4).
Copyright © 2024 - Toate drepturile rezervate