Master Teoria Codării și Stocării Informației [620979]
UNIVERSITATEA POLITEHNICĂ din BUCUREȘTI
Facultatea de Științe Aplicate
Master Teoria Codării și Stocării Informației
Aprobat Decan,
Prof. Dr. Emil Petrescu
LUCRARE DE DISERTAȚIE
ASPECTE PRIVIND SECURITATEA BAZELOR DE DATE
Coordonator științific ,
Prof. Univ. Dr. Alina Petrescu -Niță
Masterand: [anonimizat]
2019
2
Cuprins
Introducere ………………………….. ………………………….. ………………………….. ………………………….. .. 3
Capit olul 1. Baze de date și utilizarea acestora ………………………….. ………………………….. ……….. 5
1.1. Operații asupra datelor și avantajele unei baze de date ………………………….. ……………… 5
1.2. Cum poate deve nii o baza de date securizata? ………………………….. ………………………… 7
1.3. Personal Oracle și Securitatea ………………………….. ………………………….. …………………….. 7
Capitolul 2. Securitatea și protecția datelor in bazele d e date ………………………….. ……………….. 13
2.1. Atacuri și metode de control ………………………….. ………………………….. ……………………… 15
Capitolul 3. Atacuri asupra bazelor de date si vulnerabilitățile acestora ………………………….. …. 17
3.1. Amenințări pentru bazele de date ………………………….. ………………………….. ………………. 17
Capitolul 4. Soluții pentru protejarea bazelor de date ………………………….. ………………………….. 27
Capitolul 5. Concluzii ………………………….. ………………………….. ………………………….. …………… 32
Bibliografie ………………………….. ………………………….. ………………………….. …………………………. 33
3
Introducere
Lucrarea de față își propune ca subiect abordarea într -o manieră detaliată a mo dalităților
de securitate pentru bazele de date in același timp accentul fiind pus si pe atacurile ce au loc
asupra unei baze .
Pe parcursul ulti milor ani , dezvoltarea sistemelor de baze de date reprezintă unul dintre
cele mai importante aspecte în domeniul tehnologiei informației, având un impact decisiv asupra
modului de organizare și funcționare a numeroaselor instituții și servicii. Acestea sunt companiile
de comunicație, intreprinderile de comerț, serviciile bancare, serviciile de transport, asigurările ,
universitățile etc.
Acestea sunt dependente de funcționarea corectă și neîntreruptă a sistemelor de baze de
date.
Bazele de date sunt poate cele mai atacate si vulnerabile elemente din mediul online in
ceea ce privește organizațiile . Nu este greu de inteles de ce: bazele de date conțin cele mai
importante informații ale unei organizații si datele confidențiale ale acesteia, alături de cele ale
clienților săi.
Lucrarea de față ilustrează pe parcursul a șase capitole cele mai importante aspecte
privind bazele de date si modalitățile de protecție a datelor .
Modul de înlănțuire a capitolelor a avut în vedere posibilitatea stabilirii unor conexiuni relevante
între acestea. Astfel, lucrarea este structurată în modul următor :
Capitolul 1 abordează într -o manie ra detaliată utilizarea bazelor de date si noțiuni
relevante cu privire la acestea.
Capitolul 2 prezintă atacurile ce pot avea loc asupra unei baze de date, accentul fiind pus
si pe securitate a bazelor de date.
Securitatea a fost și este o preocupare const antă a omului de -a lungul timpului.
4
Așa cum toate bunurile unei firme trebuie protejate, așa și informațiile valoroase stocate
în baza de date a unui sistem informatic trebuie securizate. Măsurile de securitate trebuie să fie
parte integrantă a oricărei b aze de date chiar din faza de proiectare .
Securitatea este adesea un aspect cerut în arhitectura unei baze de date. Majoritatea
profesioniștilor în calculatoare intră în lumea acestora cu câteva cunoștințe de hardware sau de
programare, și tind să se axeze pe aceste arii .
Din fericire, producătorii software pun la dispoziție majoritatea uneltelor necesare pentru
rezolvarea problemei legate de securitate.
Fiecare lansare a unui nou sistem de operare se confruntă cu cerințe de securitate mai stricte decât
predecesorii săi. În plus, majoritatea producătorilor de baze de date construiesc un anumit grad de
securitate pentru produsele lor, care există independent de sistemul de operare sau securitatea
rețelei. Implementarea acestor comportamente de securitate dif eră major de la un produs la altul .
Capitolul 3 pune accentul pe atacuri le ce au loc asupra bazelor de date , detaliind
vulnerabilitățile acestora . Dintre vulnerabilitati, accentul este pus pe SQL Injection si pe
strategiile de apărare împotriva acestui at ac.
Capitolul 4 abordeza soluțiile necesare pentru protejarea bazelor de date
Capitolul 5 este cel in care sunt prezentate concluziile finale ale lucrării de licența.
5
Capitolul 1. Baze de date și utilizarea acestora
Sistemele de baze de date sun t o componentă importantă a vieții de zi cu zi în societatea
modernă. Zilnic, majoritatea persoanelor desfășoară activități care implică interacțiunea cu o bază
de date: depunerea sau extragerea unei sume de bani din bancă, rezervarea biletelor de tren sau de
avion, căutarea unei cărți într -o bibliotecă computerizată, gestiunea angajaților dintr -o firmă,
cumpărarea unor produse etc.
1.1. Operații asupra datelor și avantajele unei baze de date
Utilizatorii unei baze de date au posibilitatea să efectueze mai multe categorii de operații
asupra datelor stocate aici:
Introducerea de noi date (insert)
Ștergerea unor date existente în baza de date (delete)
Actualizarea datelor stocate (update)
Interogarea bazei de date (query) pentru regăsirea anumitor informaț ii, selectate
după un criteriu ales.
6
În sensul larg, o bază de date ( database ) este o colecție de date corelate din punct de
vedere logic, care reflectă un anumit aspect al lumii reale și este destinat unui anumit grup de
utilizatori. În acest sens, bazele de date pot fi create și menținute manual (un exemplu ar fi fișele
de evidență a cărților dintr -o bibliotecă, așa cum erau folosite cu ani în urmă) sau computerizat
așa cum sunt majoritatea bazelor de date în momentul de față.
O definiție într -un sens ma i restrâns a unei baze de date este următoarea:
O bază de date este o colecție de date centralizate, creată și menținută computerizat, în
scopul prelucrării datelor în contextul unui set de aplicații. Prelucrarea datelor se referă la
operațiile de introdu cere, ștergere, actualizare și interogare a datelor.
Față de vechile metode de înregistrare a datelor privind diferite activități pe fișe
(documente scrise) sau chiar în fișiere pe disc, sistemele de baze de date oferă avantaje
considerabile, ceea ce expli că extinsa utilizare a acestora.
Câteva dintre avantajele oferite sunt:
Controlul centralizat al datelor, putând fi desemnată o persoană ca responsabil c u
administrarea bazei de date
Viteză mare de regăsire ș i actualizare a informațiilor
Sunt compacte: volumul ocupat de sistemele de baze de date este mult mai redus
decât documetele scrise
Flexibilitatea ce constă în posibilitatea modificării structurii bazei de date fără a fi
necesară modific area programelor de aplicație
Posibilitatea introducerii sta ndardelor privind modul de stocare a datelor, ceea ce
permite interschimba rea datelor între organizații
Menținerea integrității datelor prin politica de securitate (drepturi de acces
diferențiate în funcție de rolul utilizatorilor), prin gestionarea tranz acțiilor și prin
refacerea datelor în caz de funcționare defectuoasă a diferitelor componente
hardware sau software.
7
1.2. Cum poate devenii o baza de date securizata ?
Până în acest punct nu ne -am preocupat prea mult de “securitatea” bazelor de da te. Vom
examina în detaliu cum un sistem popular de management al bazei de date (Personal Oracle7)
oferă posibilitatea creării unei baze de date securizate.
Pentru a avea o baza de date securizata trebuie sa avem raspuns la urmatoarele intrebari:
– Cine obține rolul de DBA (Administratorul Bazei de Date)?
– Câți utilizatori vor avea nevoie să acceseze baza de date?
– Ce utilizatori vor avea nevoie de ce privilegii și ce roluri?
– Cum vom șterge utilizatorii care nu mai au nevoie de acces la baza de date?
1.3. Personal Oracle și Securitatea
Oracle7 implementează securitatea folosind trei construcții:
– Utilizatori
– Roluri
– Privilegii
Crearea de utilizatori
Utilizatorii sunt reprezentați prin conturi la care sunt atașate nume, și cărora le este perm is
să se conecteze la baza de date Oracle. Sintaxa SQL utilizată pentru a crea un utilizator este
următoarea:
SINTAXĂ:
CREATE USER user
IDENTIFIED {BY password | EX TERNALLY}
Dacă este aleasă opțiunea By password , sistemul atenționează utilizator ca trebui e să
introduce o parolă de fiecare dată cand se conectează.
Dacă este aleasă opțiunea EXTERNALLY , Oracle va folosi username -ul și parola de la
calculator. Când te conectezi la calculatorul tău, automat ești conectat si la baza de date Oracle.
8
Crearea de r oluri
Un rol este un privilegiu sau o colecție de privilegii care permit unui utilizator să execute
anumite funcții în baza de date. Pentru a permite un rol unui utilizator, se folosește următoarea
sintaxă:
SINTAXĂ:
GRANT role TO user [WITH ADMIN OPTION];
Dacă opțiunea WITH ADMIN OPTION este folosită, acel utilizator poate crea roluri altor
utilizatori.
Pentru a elimina un rol, se folosește comanda REVOKE.
SINTAXĂ:
REVOKE role FROM user;
9
Odată ce ne -am conectat la sistem folosind contul creat ante rior, se aplică limitele permise
contului creat.
Oracle ne permite conectarea cu următoarele drepturi de utilizator:
– Conectare
– Resource (cu rol de creare proceduri, tabele, cluster, trigger și altele)
– DBA (administrator de baze de date)
Aceste trei roluri au diferite privilegii.
Rolul CONNECT
Rolul CONNECT poate fi vazut ca un role de început. Unui utilizator care are rolul
Connect i se pot da diferite privilegii ce îi permit acestuia sau acesteia să manipuleze cumva baza
de date.
Rolul Connec t permite utilizatorului următoarele opera ții: select, update, si ștergerea de
înregistrări din tabele ce apar țin altor utilizatori (după ce au fost atribuite permisiunile necesare).
Utilizatorul poate de asemenea crea tabele, view -uri, secven țe, cluster -e și synonyms.
10
Rolul RESOURCE
Rolul Resource oferă utilizatorului mai mult acces la baza de date oracle. În plus fa ță de
permisiunile pe care le oferă rolul Connect, rolul Resource oferă posibilitarea creării de
proceduri, trigger -e și indec și.
Rolu l DBA
Rolul DBA include toate privilegiile. Utilizatorii cu acest rol sunt capabili să facă orice
sistemului de baze de date. Ar trebui să se păstreze cât mai mic numărul de utilizatori cu acest rol
pentru a asigura integritatea sistemului.
11
Urmărind cei trei pași, utilizatorului Operator2 i s -au dat rolurile Connect, Resource și
DBA. Acest lucru este oarecum redundant deoarece rolul DBA le cuprinde pe celelalte două
roluri, deci putem renunța la celelalte două, după cum urmează:
Securitatea este ades ea un subiect supra -estimat care poate cauza multe probleme daca nu
este gândită și administrată corespunzător. Din fericire, SQL oferă mai multe comenzi ajutătoare
pentru a implementa securitatea într -o bază de date.
Conturile de utilizator sunt inițial create folosind comanda CREATE USER, care alocă un
username și o parolă acelui utilizator. După ce contul de utilizator a fost creat, acestui utilizator îi
trebuie alocat un rol pentru a putea să lucreze cu baza de date. Cele trei roluri puse la dispoziție
de produsul Oracle7 sunt Connect, Resource, și DBA. Fiecare rol are diferite nivele de acces la
baza de date, Connect fiind cel mai simplu și DBA oferind acces la orice.
Comanda GRANT oferă utilizatorului o permisiune sau un privilegiu. Comanda
REVOKE po ate lăsa utilizatorul fară această permisiune sau privilegiu. Cele două tipuri de
privilegiu sunt privilegii referitoare la sistem și privilegii referitoare la obiecte. Privilegiile de
sistem ar trebui monitorizate în detaliu și nu ar trebui alocate utiliz atorilor neexperimentați.
12
Oferind acces la aceste comenzi utilizatorilor neexperimentați le oferă acestora
posibilitatea (din neatenție probabil) să distrugă datele sau baza de date pe te -ai chinuit să o
construiești. Privilegiile referitoare la obiecte l e oferă utilizatorilor accesul la obiectele
individuale ce există în baza de date.
Toate aceste tehnici și expresii SQL pun la dispoziție utilizatorului SQL un domeniu larg
de unelte pe care să le folosească atunci când realizează sistemul de securitate. D eși am pus
accentul pe comportamentele de securitate ale produsului Oracle7, poți aplica o mare parte din
aceste informații propriului tău sistem de baze de date. Adu -ți aminte că nu contează ce produs
folosești, ci este important să întărești anumite nive le de securitate ale bazei de date.
13
Capitolul 2 . Securitatea și protecția datelor in bazele de date
Prin protecția și securitatea datelor se înțelege totalitatea mijloacelor, metodelor și a
mecanismelor destinate prevenirii distrug erii, modificării sau folosirii neautorizate a informației
protejate.
Referitor la protecția și securitatea datelor, în literatura de specialitate se definesc
următoarele concepte de bază:
Securitatea datelo r – totalitatea măsurilor de protecție împotriv a distrugerii
accidentale sau intenționate, a modificării neautorizate sau a divulgării acestora
Caracterul secret – este un concept ce se aplică la un individ sau organizație și
constă în dreptul acestora de a decide ce informații se pot folosi în comun și în ce
condiții
Confidențialitatea – se aplică la date și se referă la statutul acordat, acesta
reprezentând nivelul sau gradul de protecție ce trebuie acordat informației
respective
Integritatea – se referă la restricția ca sensul datelor să nu difere față de cel
înscris pe documentul sursă, impunând totodată ca datele să nu fie alterate
accidental sau voit.
Unele informații care există în baza de date sunt strict private și nu pot fi accesate legal de
către persoane neautorizate. Diferite reglementări guvernamentale sau legi existente în
majoritatea țărilor stabilesc ce informații privind activitatea instituțiilor sau a persoanelor pot fi
făcute publice și în ce condiții.
La nivelul sistemelor informatice se pot diferenția aspecte de securitate la nive l fizic
(hardware), la nivelul sistemului de operare și la nivelul sistemului de gestiune al bazei de date.
În principal, de problemele de protecție și securitate este responsabil administratorul bazei
de date, care are un cont privilegiat în sistemul de gestiune (numit în general cont de sistem –
system account) care prevede capabilități foarte puternice, pe care alte conturi sau utilizatori nu le
au.
14
Prin intermediul contului de sistem administratorul bazei de date poate efectua mai multe
operații: crea rea conturilor, acordarea sau retragerea privilegiilor, etc.
Orice persoană care dorește să se conecteze (log in) la o bază de date trebuie să dețină un
cont (account, user) și o parolă (password). Sistemul de gestiune verifică contul și parola și
autenti fică acel utilizator, dacă acestea sunt corecte. Programele de aplicații sunt considerate de
asemenea utilizatori și se conectează pe un anumit cont și trebuie să furnizeze parola acestuia.
O altă tehnică de protecție și securitate a datelor este criptare a datelor (Data Encryption),
prin care datele importante sunt codate folosind diferiți algoritmi de codare, mai ales atunci când
sunt transmise prin intermediul rețelelor de comunicație. Interpretarea datelor criptate este dificilă
dacă nu este cunoscută c heia (cifrul) de codare. În felul acesta numai utilizatorii autorizați care
dețin cheile de decriptare pot interpreta cu ușurință aceste date.
O altă tehnică se securizare a bazei de date pentru aplicațiile web ar fi instalarea unui
firewall, acesta fiind un calculator pe care este instalat un software special care permite accesarea
calculatorului pe care este stocată baza de date numai de către anumite calculatoare.
Deci, prin securitatea bazei de date se înțelege o multitudine de măsuri destinate protecț iei
informațiilor conținute în baza de date împotriva unor alterări, distrugeri sau divulgări
neautorizate.
15
2.1. Atacuri și metode de control
Motivul pentru care baza de date a unei companii poate fi atacată este faptul că aceasta
constituie o mas ă de informații care poate dezvălui date private pentru prelucrare. Atacurile
asupra bazei de date sunt: furtul și frauda, pierderea de confidențialitate, integritate și
disponibilitate.
Pentru a asigura o securitate minimă a bazelor de date trebuie să fie satisfăcute
următoarele cerințe:
integritatea fizică a bazelor de date;
integritatea logică a bazelor de date;
integritatea fiecărui element ce compune baza de date;
controlul accesului;
identificarea de utilizare;
disponibilitate.
Două cazuri de inferenț ă apar adesea în bazele de date: agregare a datelor și asociație de
date.
Problema de agregare a datelor apare ori de câte ori un set de informații este clasificat la
un nivel mai ridicat decât nivelurile individuale de date implicate. În cazul agregării d atelor,
autorul identifică ca și exemplu un câmp militar, ca fiind o locație individuală a navelor care este
clasificată, dar ansamblul de informații despre locația întregii flote este secret. Comerciale – total
rapoarte de vânzări din diferite ramuri ale societății pot fi văzute ca fiind mai puțin confidențiale
decât rapoartele globale ale companiei.
Problema asociației de date apare ori de câte ori două valori luate împreună sunt
clasificate la un nivel mai ridicat decât cel al fiecărei valori. În cazul a socierii datelor, autorul
identifică ca fiind neclasificate o listă care conține numele tuturor angajaților și o listă care
conține salariile, iar o listă combinată cu numele și salariile angajaților este considerată
clasificată.
Un prim pas în combaterea acestor tipuri de atacuri este protejarea datelor sensibile care
nu trebuie să fie făcute publice.
16
Succesul de atacuri asupra bazelor de date se bazează foarte mult pe abilitățile și formarea
atacatorului și mai puțin pe mecanismele de automatizare de ata c.
Ei folosesc cunoștințe și instrumente bazate pe statistică lor, iar acestea sunt de asemenea
numite atacuri statistice sau atacuri de inferență statistică. Un atacator, după ce a trecut de toate
nivelurile de protecție și a ajuns la baza de date, va în cerca progresiv o serie de atacuri: directe,
indirecte și prin urmărire.
O abordare cantitativă a riscului este de preferat în locul unei abordări calitative, deoarece
oferă o valoare mai tangibilă a situației. Chiar și așa se va lucra în continuare cu dat e subiective,
estimate după un proces de evaluare.
Pierderea datelor este o operațiune mai complexă care necesită mai mult timp față decât
pierderea componentei hardware.
Pentru a estima impactul trebuie să ne întrebăm dacă:
datele pot fi reconstruite sau restaurate;
cât timp este nevoie pentru a reconstrui date;
aceasta este din cauza unei acțiuni deliberate sau din cauze accidentale;
datele lsot au caracter special (militar, serviciu secret, confidențial).
În vederea asigurării securității datelor, sunt recomandate următoarele metode de control a
atacului:
suprimarea aplicațiilor care au rezultate sensibile
aproximarea rezultatelor
limitarea rezultatelor unei cereri care relevă date sensibile
combinarea rezultatelor.
Toate acestea pot fi încorporate î ntr-un mecanism de monitorizare care va pune în aplicare
politica de securitate a companiei.
17
Capitolul 3 . Atacuri asupra bazelor de date si vulnerabilitățile acestora
Bazele de date sunt poate cele mai atacate si vulnerabile elemente din mediul online in ceea
ce privește organizațiile . Nu este greu de inteles de ce: bazele de date conțin cele mai importante
informații ale unei organizații si datele confidențiale ale acesteia, alături de cele ale clienților săi.
După ce aceste informații sensibile sunt accesate de hackeri pot apărea o serie de probleme
foarte grave: pot fi furate datele confidențiale , pot fi șterse – producând pierderi majore – sau pot
fi anulate anumite acțiuni , cu urmări dezastruoase.
Pe de alta parte, o astfel de breșa in siguranța datelor influențează negativ si imaginea companiei
respective, ajungându -se chiar la probleme legale. Multe dintre incidentele de acest gen pot fi
eliminate prin respectarea unor pasi simpli, a unor reguli de bune practici si control.
3.1. Amenințări pentru bazele de date
Cele 10 amenintari asupra bazelor de date prezentate mai jos sunt cele mai puternice si mai
intalnite, asa cum le -au identificat cei de la Imperva Application Defense Center .
Top 10 amenințări
1. Privilegii (drepturi) excesive si neutilizate
2. Abuzul de privilegii
3. Input Injection
4. Malware
5. Audit incorect
6. Expunerea mediilor de stocare
7. Exploatarea vulnerabilitatilor si greselilor de configurare a baz elor de date
8. Datele sensibile neadministrate
9. Denial of Service (DoS)
10. Existenta unei expertize si educatii li mitate in materie de securitate
18
1. Privilegii (dr epturi) excesive si neutilizate
In momentul instalării intr-o nou a funcție sau pe un post nou, o persoana primește si
dreptul de a utiliza baza de date sau de a o accesa.
De exemplu, cineva care lucrează in banca si are dreptul de a modifica datele de contact ale
clienților are, din greșeala , si dreptul de a modifica balanța conturilor, poate decide sa adauge
ceva in contul de economii al unei rude. Sau, daca este dat afara de la serviciu, se poate
„razbuna ” prin stergerea unor informații cruciale sau chiar mai rau de atât.
In general, aceasta problema, a acordări i de drepturi mai mari decât este nevoie, apare din
lipsa unui plan foarte bine stabilit al postului si sarcinilor respectivului angajat.
2. Abuzul de privilegii
Problemele pot apărea si in cazul in care drepturile de acționare asupra bazelor de date
sunt bine determinate.
Fara rea intenție , este posibil ca aceste privilegii sa fie utilizate abuziv. Oamenii care au
acces la o anumita baza de date o pot descarca – fara sa aiba teoretic voie sau posibilitatea – in
laptop, pentru a o putea accesa mai usor sau poate pentru a lucra de acasa. Fara sa intenționeze
acest lucru, angajatul creaza o breșa in securitatea bazei de date, de care cei interesati pot profita
imediat.
3. Input Injection
Exista doua tipuri majore de atacuri de acest fel asupra bazelor de da te: SQL Injection
care vizeaza sistemele de baze de date traditionale si NoSQL Injection care vizeaza platformele
Big Data. Atacurile SQL Injection, de obicei, implica introducerea (sau "injectarea") de declaratii
neautorizate sau rau intentionate in campu rile de introducere ale aplicatiilor web. Pe de alta parte,
atacurile de injectare NoSQL implica inserarea elementelor periculoase in componente Big Data.
19
Un astfel de atac poate oferi unui atacator acces nerestrictionat la o intreaga baza de date.
Desi multi sustin ca tehnologiile noi Big Data nu pot fi atacate prin aceste puncte,
adevarul este ca nici acestea nu sunt imune la acest tip de atac.
Aplicatiile Web sunt programe web -based, executate într -un browser web și implementate
folosind te hnologii precum: PHP, ASP, PEARL, PYTHON, HTML, CSS, JAVASCRIPT, etc.
Popularitatea acestora se afla într -un trend ascendent, tot mai multi utilizatori îndreptandu -se
spre acest tip de a plicații datorită avantajelor pe care le ofera comparativ cu programele clasice
(instalate si rulate).
Aplicații de tip client (precum navigatoarele Web) erau folosite pentru accesarea via
adrese (adică URI – Uniform Resource Identifiers) a reprezentării acestor resurse, stocate pe
diverse servere Web. Programe suplimentare (plug -in-uri), incluse în navigatoarele Web, erau
menite să redea tipuri de conținuturi nestandardizate sau proprietare (Word, Flash) etc.
Actualmente, aceste tehnici au fost substi tuite de programe JavaScript, plus diverse API –
uri moderne disponibile în cadrul specificației HTML5, cu concursul unor standarde sau suite de
tehnologii suplimentare.
Pentru a oferi conținut dinamic utilizatorilor, sunt adoptate diverse modalități programatice,
reprezentate pe partea de server de aplicații Web precum ASP.NET sau PHP (PHP: Hypertext
Processor), plus diverse cadre de lucru (framework -uri) specifice.
Se stie că astazi majoritatea aplicațiilor -web îsi păstreaza datele în baza de date, deoarece
acest fapt permite de a genera dinamic pagini. Aplicația -web primește de la utilizatori date,
ulterior aceste date sunt folosite de aplicațe/script p entru generarea unei cereri la baza de date .
Evident că în majoritatea cazurilor pentru a genera cereri la baza de date se utilizează limbajul
SQL.
SQL Injection (injecție cu cod sursă SQL) este o vulnerabilitate ce apare în cazurile când
datele primite de la utilizatori nu se prelucrează corect. Ca consecință raufacatorul potențial poate
schimba cererea la baza de date, asfel fiind posibil furtul datelor private.
20
Acest tip de atac constă în inserarea unui script de tip SQL (Structured Query Language)
într-o anumită aplicație prin intermediul unei căsuțe de input. Mai simplu, dacă un hacker găsește
pe un site un formular de înscriere el va încerca să introducă acolo o comandă SQL care poate citi
informații din baza de date.
Un atac de succ es va putea face orice cu baza de date: inserare, actualizare, ștergere.
Poate să execute operații de administrator și chiar să șteargă întreaga bază de date. În esență,
atacul se realizează prin plasarea unui meta caracter într -o zonă de input pentru ca a poi să apară
în panoul de control o comandă SQL care nu exista acolo.
21
Cauze
SQL Injection poate fi efectuat utilizând mai multe metode. Unele presupun combinarea
cu alte tipuri de atacuri.
SQL Injection de tip clasic apare atunci când inputu l unui utilizator (spre exemplu textul
introdus la username sau parolă) nu este curățat de caractere de tip escape (' ; \ “ &).
Astfel pot fi manipulate comenzile date asupra bazei de date.
Modul de acțiune
Imediat ce un hacker a introdus, spre exemplu, un username care conține caractere escape
(madalina '), baza de date va returna un mesaj de eroare. Mesajul de eroare arată că inputul
utilizatorului a fost integrat în sintaxa SQL.
Asta arată că aplicația nu este capabilă să curețe textul și ca baza de date este vulnerabilă. Un
răspuns corect la introducerea unui astfel de username ar fi că nu sunt permise asemenea
caractere. Și mai bine ar fi fost ca username -ul să fie afișat cu caracterele escape șterse.
După ce hackerul a văzut că site -ul nu are cea mai bună protecție împotriva SQL Injection
va trece la introducerea unor scripturi mai complexe, capabile să manipuleze baza de date. Este
doar o chestiune de încercări până ce toate informațiile vor fi compromise.
22
Exemplu
Acesta este cel ma i simplu exemplu de SQL Injection clasic.
Presupunem că în codul site -ului sau aplicației se află următoarea comandă:
SELECT * FROM Users WHERE Username='$username' AND Password='$password'
Această comandă verifică dacă în baza de date se află o înregistrare cu un anumit user și o
parolă. Este scriptul clasic de autentificare. În cazul în care acel utilizator există, i se va acorda
accesul la sistem, altfel nu.
Să presupunem că se vor introduce următoarele date în câmpurile usename și p arolă:
$username = 1' sau '1' = '1
$password = 1' sau '1' = '1
Atunci interogarea va avea următoarea formă:
SELECT * FROM Users WHERE Username='1' OR '1' = '1' AND Password='1' OR '1' = '1'
Mai departe, dacă datele vor fi trecute către sit e-ul www.exemplu.ro, cererea de logare va
avea următoarea formă:
http://www.examplu.ro/index.php?username=1'%20or%20'1'%20=%20'1&password=1'%20or%2
0'1'%20=%20'1
Această interogare va returna o valoarea sau un set de valori deoarece condiția 1=1 va fi
întodeauna adevărată.
Rezultă că un utilizator se poate loga la site chiar dacă nu a oferit use rul sau parola
corespunzătoare.
23
Strategii de apărare împotriva injecțiilor SQL
a) Utilizarea de variabile bine definite și de definiții ale coloanelor din baza de date
Stocarea și manipularea numerelor (ID -uri de sesiune, coduri etc.) ca și numere întregi sau ca
alte tipuri numerice potrivite. String -urile (varchars) ar trebui să conțină doar caractere
alfanumerice și să respingă semnele de punctuație ș i caracterele specifice sintaxei SQL.
b) Atribuirea rezultatelor interogării unei variabile bine definite
Dacă aplicația caută valori numerice, atunci atribuiți rezultatul unui număr întreg, acest
lucru împiedicându -i pe atacatori să extragă informații din baza de date.
De exemplu nu ar trebui să fie posibilă obținerea și afișarea numelui unei coloane, dacă
variabila ce urmează să fie afișată în browser nu acceptă decât numere întregi. Această tehnică
restricț ionează sever anumite atacuri.
c) Limita rea lungimii datelor
Toate șirurile de caractere ar trebui să se limiteze la o lungime potrivită scopului lor.
Un nume de utilizator, de exemplu, nu este necesar să fie stocat și manipulat într -o variabilă care
utilizează 256 de caractere. Limitarea numărului de caractere, care poate fi introdus într -un câmp,
poate împiedica în mod eficient succesul unei i njecții SQL, reducând lungimea șirului de
caractere pe care atacatorul îl poate introduce în cod.
d) Aplicarea separării datelor și accesul pe baza de rol în interiorul bazei de date
Aplicația ar trebui să folose ască un cont care are privilegii de acces doar pentru tabelele
necesare respectivei funcții. Tabelele interne ale bazei de date, în special cele legate de
managementul conturilor și variabilele sistemului, nu ar trebui să fie accesibile.
24
4. Malware
Software -ul rau intentionat sau Malware (construit din sintagma malicious software ,
„software rauvoitor”) este un tip de software care este creat pentru a se infiltra intr -un calculator
sau o retea de calculatoare si a o ataca, creand pagube in mod voit. T ermenul este utilizat, la
modul general, pentru a desemna toate tipurile de programe sau bucati de cod. Odata istalate pe
un computer, ele se infiltreaza in toate elementele ce intra in contact cu acel dispozitiv.
Astfel, utilizatorii, fara sa stie ca sun t infectati, acceseaza in mod obisnuit baza de date,
deschizand astfel calea pentru aceste softuri sa actioneze.
5. Audit incorect
Inregistrarea automata a tranzactiilor pe bazele de date care implica date sensibile ar trebui
sa fie o condit ie obligatorie in cazul tuturor organizatiilor.
Imposibilitatea de a colecta o evidenta detaliata a activitatii bazei de date reprezinta un mare risc
organizational.
Multe intreprinderi apeleaza la instrumente de audit oferite de vânzatorii de baze de date
sau se bazeaza pe solutii ad -hoc sau solutii implementate si realizate manual de catre
administratorul bazei de date.
Aceste solutii nu inregistreaza detaliile necesare pentru a sprijini un audit, nu detecteaza
atacurile.
Mai mult decât atâ t, mecanismele de audit native sunt cunoscute pentru consumul mare de
resurse CPU si disc fortand multe organizatii sa limiteze auditul sau chiar sa il elimine.
In cele din urma, utilizatorii cu acces administrativ la baza de date, obtinut fie in mod
legitim fie cu rea intenție , pot opri sistemele de audit pe bazele de date pentru a ascunde
activitatile frauduloase.
25
6. Expunerea mediilor de stocare
Toate organizatiile realizeaza backup (copii de siguranta) pentru bazele de date.
De cel e mai multe ori insa aceste copii nu sunt protejate asa cum trebuie, mai ales din
cauza mediilor pe care sunt stocate. Fie ca se face o copie pe calculator, fie ca se fac copii pe
discuri externe, bazele de date pot fi usor furate sau copiate.
7. Explo atarea vulnerabilităților si greșelilor de configurare a bazelor de date
Este un lucru comun in randul organizatiilor sa utilizeze baze de date vulnerabile si
nesecurizate.
Atacatorii stiu cum sa exploateze aceste vulner abilitati si sa lanseze atacuri impotriva
organizatiei respective.
Din pacate, adesea, organizatiile se zbat sa fie stapane pe mentinerea configuratilor bazei
de date chiar si atunci cand sunt disponibile update -uri. In general este nevoie de cateva luni
pentru ca unele companii sa aplice update -urile pe bazele de date, timp in care sunt vulnerabile.
8. Datele sensibile neadministrate
Multe companii incerca sa mentina un inventar precis al bazelor lor de date si al datelor
critice continute in ele. Baze de date uitat e pot contine informatii sensibile, si noi baze de date pot
aparea – de exemplu, in medii de testare de aplicatii – fara a fi vizibile pentru echipa de
securitate.
Date sensibile din aceste baze de date vor fi expuse la amenintari, daca nu sunt puse in
aplicare controalele necesare si permisele.
9. Denial of Service
Denial of Service (DoS) este un atac general in care accesul la aplicatii de retea sau cel
catre bazele de date este refuzat utilizatorilor.
26
Condițiile pentru un astfel de ata c pot fi create prin mai multe tehnici. Cea mai frecventa tehnica
utilizata este cea prin care se supraîncarcă resursele de pe server, cum ar fi memoria si CPU prin
inundarea rețelei cu interogări ale bazei de date care in cele din urma determina serverul sa se
prabuseasca.
Motivațiile din spatele atacurilor DoS sunt adesea legate de escrocherii si extorcare de
fonduri. Astfel, un hacker va ataca de la distanta serverele in mod repetat, aducandu -le in stare de
avarie pentru a determina victima sa indeplineasca conditiile sale.
10. Existenta unei expertize si educatii limitate in materie de securitate
Controale le de securitate interne nu tin pasul cu cresterea de date si multe organizatii sunt
slab echipate pentru a trata o incalc are a securitatii. Adesea, acest lucru este din cauza lipsei de
experienta necesara pentru a pune in aplicare masuri de securitate, politici si formare.
Cele mai multe firme nu au implementat un sistem de informare si training in vederea
educarii persona lului pentru a respecta cel putin notiunile elementare de siguranta a datelor.
27
Capitolul 4 . Soluții pentru protejarea bazelor de date
Soluțiile pot fi organizate in 6 categorii diferite, in funcție de acțiunile intreprinse.
Cele 6 categorii de soluț ii sunt:
1. Descoperirea s i evaluarea – localizarea efectiva a locu lui în care apar vulnerabilitat ile
bazelor de date
2. Managementul privilegiilor utilizatorilor – identificarea drepturilor excesive asupra
datelor sensibile
3. Monitorizarea s i Blocarea – prote jarea bazelor de date impotriva atacurilor, pierderii de
date s i furtului
4. Audit – demonstreaza conformitatea cu reglementarile din industrie
5. Protect ia datelor – asigurarea integritatii si confident ialitatii datelor
6. Securitate non -tehnica – consolidarea une i culturi de informare si pregatire în domeniul
securitat ii.
Aceste categorii cuprind numeroase masuri ce se pot aplica in cazul problemelor de
securitate. Le vom prezenta pe rand, specificand unde se pot aplica.
1. Descoperirea s i evaluarea.
Aceasta categorie cuprinde urmatoarele etape: Scanarea sistemului pentru identificarea
vulnerabilitatilor, Calcularea scorului de risc, Reducerea vulnerabilitatilor, Identificarea
terminalelor com promise, Analizarea riscurilor s i prioritizarea eforturilor de remediere,
Identificarea serverelor cu bazele de date, Analizarea rezultatelor identificare, Identificarea si
clasificarea datelor sensibile .
Este crucial sa se identifice si sa se cunoasca vulnerabilitatile sistemului din punct de
vedere al securitatii datelor. De cele mai multe ori, virusii si celelalate softuri rau intentionate
profita tocmai de aceste vulnerabilitati pentru a se infiltra.
28
Normele de autentificare slabe pot activa un atac DoS prin acordarea accesului la o baza de date
fara a avea nevoie o parola.
De aceea este necesara utilizarea instrumentelor de evaluare a vulnerabilitatilor pentru a
detecta erorile de securitate si configurarile gres ite. Evaluarile ar trebui sa utilizeze cele mai bune
practici din industrie pentru secu ritatea bazelor de date.
Pe baza vulnerabilitatilor identificate se calculeaza un scor al rscului. Cu cat acesta este mai
mare, cu atat problemele sunt mai mari.
În cazul în care o vu lnerabilitate este descoperita s i nu exista un patch original, trebuie aplicat un
patch virtual, care sa minimizeze pericolul pana la momentul rezolvarii problemei in sine.
Urmeaza etapa identificarii gazdelor infectate cu malware, astfel încât sa se poata
preveni accesarea de cat re aceste dispozitive a infor matiilor din bazele de date.
Trebuie sa se foloseasca si rapoarte s i instrumente analitice pentru a întelege riscurile s i a ajuta la
prioritizarea eforturilor de remediere.
Pentru a se putea avea o evidenta clara a bazelor de date, firmele ar trebui sa le ordoneze
corespunzator si sa utilizeze servicii speciale pentru baze de date, (de exemplu, Oracle, Microsoft
SQL, IBM DB2, etc.), rulate in mod regulat.
Dupa ce toate aceste lucruri sunt realizate, se trece la identificarea datelor sensib ile la
nivel de rand sau coloana. Acestea pot fi: adrese de email, CNP, date bancare, etc.
Se aplica in general in cazul: Input Injection, Exploatarea vulne rabilitatilor si greselilor de
configurare a bazelor de date, Datele sensibile neadministrate .
29
2. Managementul privilegiilor utilizatorilor
Aceasta categorie cuprinde urmatoarele etape:
Agregarea drepturilor de acces
Completarea datelor cu informatii de l a utilizatori si despre acestia
Identificarea si eliminarea drepturilor excesi ve si a utilizatorilor inactivi
Revizuirea si aprobarea/el minarea unor drepturi existente
Extragerea identitatii „reale” a utilizatorilor
Scanarea efectiva a bazelor de date pentru a identifica drepturile de utilizare, precum si
stabilirea efectiva a drepturilor pe care acestia le au (de exemplu SELECT, DELETE, COPY),
cine le -a acordat. Agregarea drepturilor utilizatorilor într -un singu r depozit ajut a la eficientizarea
raportarii s i la analiza accesului utilizatorilor la date sensibile. Completarea informatiilor cu date
despre rolul utilizatorilor si comportamentul acestora ajuta la identificarea celor mai bune masuri
de luat.
Dupa ide ntificarea drepturilor excesive, acestea trebuie eliminate, la fel ca si drepturile oferite
unor oameni care nu le utilizeaza.
Urmeaza etapa a treia, aceea a revizuirii tuturor utilizatorilor si a drepturilor lor si
eliminarea drepturilor c e nu fac parte din fisa si specificul pozitiei fiecarui utilizator.
Se aplica in general in cazul: Privilegii (drepturi) excesive si neutilizate, Abuzul de privilegii .
3. Monitorizarea s i Blocarea
Aceasta categorie cuprinde urmatoarele elemente: Alertare si blocare in timp real,
Detectarea unor activitati neobisnuite, Blocarea solicitarilor web rau -intentionate,
Monitorizarea activitati i locale, Impunerea de controale de conectare (pentru a se evita
supraincarcarea), Validarea protocoalelor pe bazele de date, Sincronizarea raspunsului .
30
Monitorizarea oricarei activitati de accesare a bazelor de date s i a modului de utiliz are
trebuie sa se realizeze în timp real, pentru a detecta scurgerile de date, tranzactiile SQL si Big
Data neautorizate, precum si atacurile de protocol s i de sistem. Când apar astfel de incercari
neautorizate, ar trebui sa se genereze alerte sau sa se in chida automat sesiunea de utilizare.
Trebuie utilizate asa -numitele Web Application Firewall (WAF), care recunosc si blocheaza
elementele venite de pe web.
Si activitatea locala trebuie supravegheata, inclusiv a administratorilor de retea si de baze de d ate,
precum si a utilizatorilor cu drepturi foarte mari. Trebuie elaborate protocoale si solutii de
monitorizare a activitatii pe bazele de date pentru a izola comunicatiile aleatorii sau anormale.
Atunci când sunt detectate evenime nte de comunicare atipi ce, solutia ar trebui sa declans eze o
alerta sau sa blocheze tranzactia.
Un element important este si cronometrarea raspunsului oferit de catre baza de date.
Atacurile ce urmaresc blocarea mijloacelor fixe, fizice, determina intarzierea r aspunsului bazei de
date. Acest lucru poate fi utilizat pentru a se programa alarme care sa se declanseze de fiecare
data cand se observa o intarziere sau o supraincarcare.
Se aplica in general in cazul: Denial of Service (DoS), Privilegii (drepturi) excesive si neutilizate,
Abuzul de privilegii, Input Injection .
4. Audit
Implementarea unor solutii de tip DAP este foarte utila si aduce mai multe avantaje, intre
care se numara performanta, scalabilitatea si flexibilitatea. Aceste sisteme automate DAP ofera o
foarte clara separare a drepturilor de administrare asupra bazelor de date si sunt invulnerabile la
atacuri, fie cauzate de factori exte rni, fie din interior, de la administratori ai bazelor de date sau
simpli useri. Sunt foarte performante si suporta diverse tipuri de baze de date, de la mai multi
furnizori.
31
Un sistem de audit inregistreaza informatii si genereaza rapoarte f oarte detaliate. Astfel,
se pot obtine informatii despre useri, log, specificatii tehnice, interogari si raspunsuri pe baze de
date, etc.
Se aplica in cazul: Audit incorect
5. Protectia datelor
Acest proces priveste respectarea unor reguli foarte simple: arhivarea corespunzatoare a
datelor si codarea lor. Arhivarea este o necesitate, si multi o trateaza ca pe ceva secundar, care
trebuie facut. De multe ori se pierde insa din vedere securizarea datelor arhivate. De aceea trebuie
create arhive in mod automat si protejate in acelasi fel ca baza de date activa. Codarea tuturor
informatiilor repezinta o alta cerinta si trebuie realizata atat p e partea activa, cat si pe backup.
Impreuna cu auditul, acest sistem ofera maximul de urmarire a activitatii pe bazele de date.
Se aplica in cazul: Audit inc orect, Expunerea mediilor de stocare
6. Securitate non -tehnica
Regulile de securitate trebuie respectate de toti angajatii, indiferent de gradul de
implicare in actiunile ce implica bazele de date. Softurile de atac, Malware, pot afec ta orice
computer, iar de aici se pot infiltra in retea si in baza de date. Securitatea implica modul de
utilizare a computerelor, a internetului, a emailului si a dispozitivelor portabile.
Se aplica in cazul: Existenta unei expertize si educatii limitate in materie de securitate
32
Capitolul 5. Concluzii
Lucrarea de față abordează securitatea bazelor de date, prezentând in detaliu cele mai
întâlnite atacuri asupra bazelor de date si oferind soluții de protecție împotriva acestora.
Securitatea bazei de date prezintă caracteristici care trebuie să fie luate serios în
considerare. Prima opțiune, pentru o bază de date securizată este reprezentată de o protecție
optimă.
Asigurarea securității bazei de date trebuie să se facă din exter ior în interior, aceasta
implicând asigurarea securității pornind de la nivelul fizic și terminând cu nivelul de date
(fizic,de rețea, gazdă, aplicații și date). Bazele de date sunt o țintă favorită pentru atacatori,
datorită datelor pe care acestea le con țin și, de asemenea, din cauza volumului lor.
Niciodată nu trebuie tratata cu superficialitate siguranța si protecția datelor. Chiar daca pare ca nu
deții informații atât de importante care ar putea fi furate sau care sa prezinte un interes pentru
cineva, ar trebui totuși sa iei masuri.
Clienții , partenerii sau chiar angajații trebuie sa simtă ca se face totul pentru a se proteja
intimitatea si datele lor. Fie ca este vorba de numere de telefon, adrese de email sau dosare
personale, orice fel de informație prezintă un interes, mai mic sau mai mare, pentru un hacker sau
pentru un angajat nemulțumit .
Pentru a evidenția partea teoretică a lucrării, au fost realizate diferite exemple care
evidentiaza atat acordarea drepturilor pentru utilizatorii unei baze de date cat si una dintre cele
mai intalnite met ode de atac a bazelor de date, si anume SQL Injection (injecție cu cod sursă
SQL)
De asemenea, lucrarea de față prezintă o sinteză atât a noțiunilor de aplicație Web,
arhitectură Web de bază, dar și parte se securitate în care s -a descris și exemplificat
vulnerabilitatea aplicațiilor web de tipul SQL injection.
33
Bibliografie
1. Cârstoiu Dorin, Baze de date relaționale, Editura Printech, 1999
2. Rădulescu Florin, Baze de date în Internet, Editura Printech, 2000
3. Ionescu Felicia, Baze de date relaționale și a plicații, Editura Tehnică, 200
4. OWASP (Open Web Application Security Project), 2017: https://www.owasp.org/
5. http://www.elth.pub.ro/~preda/teaching/SPABD/SPABD_5.pdf
6. http://www.cs.ubbcluj.ro/~vcioban/Matematica/Anul3/BD/Bd.pdf
7. http://www.asociatia -profesorilor.ro/securitatea -bazelor -de-date-atacuri -si-
metode -de-control.html
8. http://cursuri.cs.pub.ro/~radulescu/bd/sql7/oracle17.html
9. https://beginner -sql-tutorial.com/sql -grant -revoke -privileges -roles.htm
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Master Teoria Codării și Stocării Informației [620979] (ID: 620979)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
