Sunteți pe pagina 1din 21

BAZE DE DATE

Lecția 8 
Protejarea datelor cu criptare și auditare
Securitate la nivel de server și la nivel de bază de
date
BAZE DE DATE
Protejarea datelor cu criptare și auditare

• Opțiuni pentru auditarea accesului la date


• Audituri de implementare
• Gestionarea Auditurilor
• Protejarea datelor cu criptare
BAZE DE DATE
Securitate la nivel de server și la nivel de bază de date

• Autentificarea conexiunilor
• Logins
• Rolurile fixe de server și de baze de date
• Permisiuni la nivel de server
• Autorizarea autentificărilor pentru a se conecta la baze de date
• Crearea rolurilor definite de utilizator
• Autorizarea accesului utilizatorului la obiecte
• Autorizarea utilizatorilor să execute cod
• Configurarea permisiunilor la nivel de schemă
Baze de date

Auditare (Audit)
• Auditarea unei instanțe a motorului de bază de date SQL Server sau a unei baze de date individuale implică urmărirea și
înregistrarea evenimentelor care apar pe motorul bazei de date
• Un audit este combinația mai multor elemente într-un singur pachet pentru un anumit grup de acțiuni pe server sau
acțiuni pe o bază de date

• Auditurile pot avea următoarele categorii de acțiuni:


 La nivel de server - aceste acțiuni includ operațiuni de server, cum ar fi modificări de management și operațiuni de
conectare și deconectare
 La nivel de bază de date - aceste acțiuni includ limbaje de manipulare a datelor (DML) și operațiuni de limbaj de definire a
datelor (DDL)
 La nivel de audit - aceste acțiuni includ acțiuni în procesul de audit

                                  
Baze de date

Auditare (Audit)
• Auditul SQL Server poate fi împărțit în mai multe tehnici:
 SQL Server Audit
 Extended Events
 Triggers
 Transaction logs
 Temporal Tables
 SQL Server Profiler & Trace

 Change tracking
 Change data capture
Baze de date

Metode de autentificare (Authentication methods)


• Autentificare înseamnă un proces de identificare a unui utilizator pe baza numelui de utilizator și a parolei

Windows 
• Modul de autentificare implicit (default) atunci când instalați o instanță SQL Server
• Necesită ca utilizatorul să se autentifice mai întâi la Windows cu datele de conectare 
• Autentificarea Windows este strâns cuplată cu Securitatea Windows și este cunoscută și ca securitate integrată (Integrated
Security)

SQL Server
• Autentificarea SQL nu este la fel de securizată ca și autentificarea Windows
• Pentru ca un utilizator să poată să se conecteze la SQL Server folosind autentificarea SQL, trebuie să furnizeze un user și o
parolă; aceste date sunt stocate în baza de date master și astfel este mai ușor de piratat
• Se recomandă să configurați instanța SQL Server pentru a accepta acest mod de autentificare numai dacă aveți o cerință de
a accepta utilizatori sau aplicații care nu se pot conecta la Windows
Baze de date

Logins to SQL Server


• Pentru a vă conecta la SQL Server, trebuie să aveți acces la SQL Server care este acordat prin logare
• O autentificare/logare este cunoscută și ca principal de securitate (security principal) 

Windows user login


• Oferă acces la server pentru un singur utilizator Windows
• Domeniul Windows stochează parola

SQL login
• Oferă acces la SQL Server pentru un singur utilizator
• Parola pentru autentificarea SQL este stocată în baza de date master

Windows group login


• O modalitate excelentă de a oferi acces la multe autentificări Windows, doar cu definirea unei singure date de conectare în
SQL Server
Baze de date

Database users
• Un user nu este același lucru cu un login
• O logare oferă unui utilizator sau unei aplicații capacitatea de a se conecta la o instanță SQL Server, în timp ce un user
oferă drepturi de conectare pentru a accesa o bază de date
• Această asociere între un login și un database user este cunoscută sub numele de mapare a utilizatorului (user mapping)

                                  

                 
Baze de date

Fixed server roles


• Rolurile de server au un domeniu de aplicare la nivelul întregului server
• Ele vin cu un set de permisiuni predefinite iar acestea nu pot fi modificate sau extinse

sysadmin (administrator de sistem)
- poate efectua orice activitate pe server
- acest rol ocolește complet toate verificările de securitate
- acesta este cel mai puternic rol din SQL Server

securityadmin 
- gestionează conectările (logins) și proprietățiile acestora 
- poate folosi comenzi GRANT, DENY și REVOKE la nivel de server și de bază de date
- în plus, poate reseta parolele pentru autentificarea SQL Server

• Rolul securityadmin ar trebui tratat ca echivalent cu rolul sysadmin


Baze de date

Fixed server roles


serveradmin - poate schimba opțiunile de configurare la nivel de server și poate închide serverul

processadmin - poate încheia procesele care rulează într-o instanță a SQL Server

setupadmin - oferă practic controlul asupra serverelor conectate, poate adăuga și elimina servere conectate 

bulkadmin - acest rol permite importul de date din fișiere externe

diskadmin - este utilizat pentru gestionarea fișierelor de disc

dbcreator - poate crea, modifica, elimina și restaura orice bază de date

public 
- fiecare autentificare SQL Server aparține rolului de server public
- public este implementat diferit de alte roluri, iar permisiunile pot fi acordate, refuzate sau revocate de la utilizatorii care au
acest rol
Baze de date

Fixed database roles


• Au un set specific de permisiuni asociate cu fiecare rol care nu pot fi modificate
• Rolurile fixe ale bazei de date oferă numai permisiuni pentru resursele dintr-o anumită bază de date

db_owner - pot efectua toate activitățile de configurare și întreținere pe baza de date și pot, de asemenea, să șteargă baza de
date în SQL Server

db_securityadmin - pot modifica apartenența la rol numai pentru roluri personalizate și pot gestiona permisiunile 

db_accessadmin - pot adăuga sau elimina accesul la baza de date pentru autentificări Windows, grupuri Windows și
autentificări SQL Server

db_backupoperator -  pot face copii de rezervă pentru baza de date

db_ddladmin - pot rula orice comandă Data Definition Language (DDL) dintr-o bază de date
Baze de date

Fixed database roles


db_datawriter - pot adăuga, șterge sau modifica date din toate tabelele dintr-o bază de date

db_datareader - pot doar citi toate datele din toate tabelele dintr-o bază de date

db_denydatawriter - nu pot adăuga, modifica sau șterge nicio informație din tabelele utilizator dintr-o bază de date

db_denydatareader - nu pot citi date din tabelele de utilizator dintr-o bază de date

                                  
Baze de date

Criptare (Encryption)
• Criptarea este procesul de ascundere a datelor prin utilizarea unei chei sau a unei parole
•  Acest lucru poate face ca datele să fie inutile fără cheia sau parola de decriptare corespunzătoare
• Criptarea nu rezolvă problemele de control al accesului; cu toate acestea, îmbunătățește securitatea prin limitarea pierderii
de date chiar dacă controalele de acces sunt ocolite

• Mecanisme de criptare
 Funcții Transact-SQL
 Asymmetric keys (Chei asimetrice)
 Symmetric keys (Chei simetrice)
 Certificates
 Transparent Data Encryption
Baze de date

Criptare (Encryption)

                                  

                 
Baze de date

Criptare (Encryption)

                                  

                 
Baze de date

Criptare (Encryption) - Symmetric keys


• O cheie simetrică este o cheie care este utilizată atât pentru criptare, cât și pentru decriptare
• Criptarea și decriptarea prin utilizarea unei chei simetrice sunt rapide și potrivite pentru utilizarea de rutină cu date
sensibile din baza de date

                                  

                 
Baze de date

Criptare (Encryption) - Asymmetric keys


• O cheie asimetrică este formată dintr-o cheie privată și cheia publică corespunzătoare
• Criptarea și decriptarea asimetrice necesită relativ multă resurse, dar oferă un nivel mai ridicat de securitate decât criptarea
simetrică 
• O cheie asimetrică poate fi utilizată pentru a cripta o cheie simetrică pentru stocare într-o bază de date

                                  

                 
Baze de date

Criptare (Encryption)
Certificates
• Un certificat este un obiect de securitate semnat digital care conține o cheie publică (și opțional o cheie privată) pentru SQL
Server
• Certificatele pot fi folosite pentru a ajuta la securizarea conexiunilor, în oglindirea bazei de date, pentru a semna pachete și
alte obiecte sau pentru a cripta date sau conexiuni

Transparent Data Encryption (TDE) 


• Este un caz special de criptare folosind o cheie simetrică
• TDE criptează o întreagă bază de date utilizând acea cheie simetrică numită cheie de criptare a bazei de date 
• Cheia de criptare a bazei de date este protejată de alte chei sau certificate care sunt protejate fie de cheia principală a bazei
de date, fie de o cheie asimetrică stocată într-un modul EKM

                                  

                 
Baze de date

Temă
• Creați 2 logins cu autentificare SQL iar apoi creați un users pe care să îi mapați la logins
• Adaugați un login la un rol fix de server și un user la un rol fix de bază de date
• Încercați diferite comenzi de GRANT, DENY și REVOKE pentru permisiuni

• Creați 2 roluri definite de utilizator (server și bază de date) și adăugați permisiuni acestor roluri
• Apoi adăugați membrii la ambele roluri

                                  

                 
Baze de date 

Extra reading
Audits
https://docs.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-action-groups-and-actions?view=s
ql-server-2017

Autentificare
https://docs.microsoft.com/en-us/sql/relational-databases/security/choose-an-authentication-mode?view=sql-server-ver15

Database user
https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/create-a-database-user?view=sql-serve
r-ver15#:~:text=A%20user%20is%20a%20database,does%20not%20have%20a%20login
.

Logins
https://docs.microsoft.com/en-us/sql/relational-databases/security/password-policy?view=sql-server-ver15
https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/create-a-login?view=sql-server-ver15
Baze de date 

Extra reading
Server roles & database roles
https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/server-level-roles?view=sql-server-ver
15
https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/database-level-roles?view=sql-server-
ver15
https://www.techonthenet.com/sql_server/users/index.php
https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/create-a-database-user?view=sql-serve
r-ver15#:~:text=A%20user%20is%20a%20database,does%20not%20have%20a%20login
.

Encryption
https://www.youtube.com/watch?v=sIwd09jEO3Y

SQL Profiler
https://www.youtube.com/watch?v=5fLsrRAtTJA

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