Sunteți pe pagina 1din 22

VULNERABILITATILE

BAZELOR DE DATE
Definitii

■ Ce este o baza de date?


O bază de date este o colecție organizată de informații sau de date structurate, stocate
electronic într-un computer. O bază de date este controlată, de regulă, de un sistem de
management al bazelor de date (DBSM).
■ Ce este o vulnerabilitate?
Vulnerabilitatile sunt defecte/slabiciuni care pot aparea intr-un sistem informational si
care slabesc securitatea acestuia. Acestea pot fi hardware sau software.
Daca ne raportam la bazele de date, aceste vulnerabilitati sunt erori de proiectare sau
slabiciuni ale unei baze de date prin care un atacator poate accesa, copia sau modifica
informatii stocate.
Cuprins
■ Ce este SQL?
■ De ce exista vulnerabilitati?
■ SQL Injection
■ Erori umane
■ Atacuri de tip DoS
■ Cum sa evaluezi o
problema?
■ Concluzii
https://venturebeat.com/dev/google-introduces-cloud-bigtable-managed-nosql-
database-to-process-data-at-scale/

Centru Google
■ Bibliografie
Ce este SQL?

■ SQL - Structured Query Language.


■ SQL a fost inițial dezvoltat la compania IBM, in anul
1974.
■ Are la baza modelul relational: colectii de relatii sau
tabele.

Deoarece este folosit de foarte multe


companii, instiutii si organizatii, fie ele private
sau publice, acest limbaj de programare destinat
https://learn.microsoft.com/en-us/sql/ssms/f1-help/database-engine-query-editor-sql-server- manipularii bazelor de date a atras repede atentia
atacatorilor de sisteme informatice si nu numai.
management-studio?view=sql-server-ver16

Interfata SQL
https://stackoverflow.com/questions/21363075/writing-sql-script-base-on-conceptual-s
chema

Schema conceptuala SQL

https://www.engadget.com/2015-08-20-google-reveals-server-
info

Servere Google
De ce exista vulnerabilitati?
Cu toate ca, in general, SQL este o platforma destul de sigura, anumiti factori pot reduce gradul de
securitate:

• Lipsa testarii securitatii


• Parole default, slabe, “goale” sau repetitive
• Extensive user privileges, insider threats
• Lipsa update-urilor
• Audit Trail Tracking
• Database backups
• Criptare slaba (Hashing versus Encryption)
• Atacuri DoS https://www.sqlshack.com/the-hashbytes-function-in-t-sql/

• Erori umane
SQL Hashing
• SQL Injection
SQL Injection

■ SQLi este o tehnica prin care atacatorul


obtine acces neautorizat la o baza de date
prin adaugarea unui string rau intentionat in
interogare (query).
■ Aceasta tehnica manipuleaza BD si poate
extrage, adauga sau chiar sterge informatii.

https://www.avast.com/c-sql-injection
Deobicei, aceste atacuri apar atunci cand atacatorul, in loc sa introduca un user si o
parola, introduce comenzi care vor rula in baza de date.
Aceasta vulnerabilitate exista deoarece limbajul SQL este standard. El va accepta
aceste comenzi indiferent de locul unde sunt scrise.

Exemplul eStore
SELECT ItemName, ItemDescription
FROM Items
WHERE ItemNumber = 999 OR 1=1
https://www.imperva.com/learn/application-security/sql-injection-sqli/

1=1 are ca efect returnarea tuturor produselor


unui magazin, chiar si celor nelistate.
SELECT ItemName, ItemDescription
FROM Items
WHERE ItemID = '999' UNION SELECT Username, Password FROM
Users;
O interogare care cere numele produsului cu id-ul 999, dar si numele si parola
pentru fiecare utilizator al BD.
Tipuri de SQLi
■ In-band SQLi: atacatorul utilizeaza un canal comun de comunicatii atat
pentru a lansa atacul, cat si pentru a culege datele. Se imparte in:
– Error-based SQLi
– Union-based SQLi
■ Inferential SQLi: atacatorul trimite date catre server si observa
raspunsul, astfel obtinand o imagine de ansamblu asupra sistemului.
– Boolean
– Time-based
■ Out-of-band SQLi: alternativa la tehnica In-band.
https://carefulsecurity.com/sql-injection/
Erori umane

■ Datorita faptului ca BD
sunt, in general, create si
operate de oameni,
https://raresql.com/2013/02/10/sql-server-the-batch-could-not-be-analyzed-because-of-compile-errors/
strecurarea unor erori este
inevitabila.
■ In anul 2021 un raport al
companiei Verizon (DBIR)
a scos la iveala faptul ca
eroarea umana este cauza a
peste 85% din totalul
breselor de securitate.

https://www.theregister.com/2022/07/25/azue_sql_post_mortem/
Exemple de erori umane
■ DROP TABLE folosit gresit
■ Comanda UPDATE folosita fara conditia WHERE
■ Comanda DELETE folosita gresit -> stergerea
datelor importante (35% din erori)
■ Parole slabe, repetitive, comune
■ Cunostinte slabe asupra SQL
■ Rulare de scripturi fara a analiza ce fac
■ Date introduse gresit sau deloc (NOT NULL)
■ Erori intentionate
■ Accidente https://www.buckleyhc.com/faqssafety-tips/vector-person-leaning-
back-on-big-red-question-mark/
Study Detail Error Rate
Chan, Lu, & Wei [1993] Percentage of 136 surveyed professional SQL users who say they 82%
usually take more than one try to do a query.

Gould Cited in Reisner, 1981. Query specification errors in QBW, 39 high 33%
school and college students. Per query.

Greenblatt & Waxman [1978] Query specification errors, paper and pencil exercise. Per query. 25% - 27%

Reisner [1975] Query specification errors on final exam, SEQUEL, programmers. Per 22%
query.

Smelcer [1995] 20 undergraduates with 80 minutes of training in SQL. Only counted 14%
errors in which a required join was not used. Percentage of queries
with such errors. 6% if low memory load, 12% if medium memory
load, 17% with high memory load. Per query.

http://www.panko.com/HumanErr/SQLQueries.html
Atacuri de ■ In atacurile de tip Denial of Service atacatorul “pacaleste”
serverul sau baza de date, supra-incarcand sistemul cu prea

tip DoS multe request-uri, pana cand serverul nu mai poate separa
request-urile legitime de cele intrusive.
■ In final, serverul “pica” (crash) sau devine instabil.
■ Mai exista si DDoS.
■ Se foloseste de HTTP.

https://www.researchgate.net/figure/SQL-Injection-in-order-to-achieve-DDoS-attack_fig3_302893095
https://www.howtogeek.com/97971/htg-explains-how-hackers-take-over-web-sites-with-
sql-injection-ddos/
DoS folosit in combinatie cu SQLi
https://www.mdpi.com/2079-9292/11/22/3817
Atacuri celebre de tip
DoS
■ SQL Slammer, in anul 2003. Acest computer
worm a exploatat o vulnerabilitate de tip buffer
overflow a Microsoft SQL Server.
■ Panix attack, 1996. Unul dintre primii
provideri de internet a fost tinta unui atac de
https://networkdirection.net/articles/network-theory/httpprotocol/
tip DoS. Cisco a trebuit sa dezvolte o strategie
de aparare ca si rezultat.
■ Google Cloud, septembrie 2017, a avut un atac
cu un flow de date de 2.54 Tb/s.
■ Cloudfare, februarie 2023. Nou record de
request-uri: 71 million/requests per second.
Tipuri de ■ Distributed Denial of Service: mai mult de un IP si mai mult
de 3-5 noduri.

atacuri DoS ■ Yo-yo attack: specializat pe aplicatii de tip cloud care


utilizeaza autoscaling; atacatorul genereaza un flux de date
mare, apoi opreste atacul. Cand resursele victimei se
epuizeaza, procesul se repeat.
■ Application layer DDoS attack: atacul supra-incarca o
singura functie sau proces al unui site.

https://www.netscout.com/blog/asert/crossing-10-million-mark-ddos-attacks-2020

Atacurile DoS au crescut datorita pandemiei? De ce?


Cum sa evaluezi o problema?

■ Este foarte important ca administratorii unei BD SQL sa verifice integritatea acesteia si


posibile vulnerabilitati pentru a oferi o protectie cat mai ridicata.
■ Acest lucru a fost greu de facut in trecut: DB trebuiau sa foloseasca scripturi externe, sa
urmareasca manual fiecare problema sau sa lase alti administratori cu grad mai mic de
acces sa se ocupe de bresele de securitate.
■ Totul a devenit mai simplu odata cu introducerea Microsoft SQL vulnerability
assessment tool.
■ De asemenea, exista si programe mai specializate sau chiar companii care pot efectua un
studiu al securitatii bazelor de date.
https://www.red-gate.com/simple-talk/databases/sql-server/security/sql-server-
vulnerabilities-and-assessment/

Microsoft SQL VA
■ Acest instrument ajută la scanarea bazei de date pentru a
descoperi, monitoriza și rezolva problemele de securitate din
mediu.

Tool ■ Folosește o bază de cunoștințe de reguli care avertizează


despre abaterile de la cele mai bune practici recomandate de
Microsoft, cum ar fi date sensibile neprotejate, acordarea de
permisiuni excesive și configurări greșite.
Probleme cu evaluarea
securitatii
■ Poate fi foarte scump.
■ Cel care face evaluarea are acces la toate
informatiile.
■ Raportul final poate fi lung si greu de interpretat -
> costuri in plus.

■ Testarea securitatii se imparte in 2 moduri:


– evaluare ofensiva
– evaluare defensiva
Concluzii

■ Securitatea reprezinta un pas deosebit de important si imposibil de neglijat atunci cand


se proiecteaza o baza de date.
■ O bresa de securitate sau o informatie manipulata gresit poate acea consecinte grave:
– Proprietate intelectuala compromisa
– Reputatia brandului
– Continuitatea afacerii
– Amenzi si penalizari
– Costuri de redresare si notificare a clientilor
Multumesc pentru atentie!

Bibliografie
https://www.oracle.com/ro/database/what-is-database/#WhatIsDBMS
https://en.wikipedia.org/wiki/Vulnerability_(computing)
https://www.ibm.com/topics/database-security
https://www.red-gate.com/simple-talk/databases/sql-server/security/sql-server-vulnerabilities-and-assessment/
https://www.datasunrise.com/potential-db-threats/10-common-vulnerabilities/
https://www.sqlshack.com/the-hashbytes-function-in-t-sql/
https://www.techtarget.com/searchsoftwarequality/definition/SQL-injection
https://www.imperva.com/learn/application-security/sql-injection-sqli/
http://www.panko.com/HumanErr/SQLQueries.html
https://www.krgroup.com/security-assessment-problems/â

S-ar putea să vă placă și