ìSICUREZZA E PRIVACY
Introduzione alla sicurezza nei DBMS
ì Lasicurezzadellebasididaticoinvolgeì Aspettieticielegaliì Politichedigestionedeidatiì Componentihardwareesoftwaredelsistemaì Definizionedidiversilivellidisicurezza
ì IDBMSmettonoadisposizionemeccanismietecnicheperlasicurezzaeilcontrollodegliaccessiì Discretionary SecurityMechanismsì Mandatory SecurityMechanisms
Giorgio Giacinto 2015
2
Da cosa difendersi?
ì IlDBMSdevegarantireì Integritàì Disponibilitàì Riservatezza
deidati
ì LaprotezionedeidatiinunDBMSsirealizzaattraverso
Giorgio Giacinto 2015
3
Meccanismi di Controllo
ì definizionediutenti epassword
ì utilizzatonellebasididaticheproduconoinformazionistatistiche
ì evitachel’informazionepossaraggiungereutentinonautorizzatiattraversocanalinascosti
ì ades.,datidicartedicreditousatiincomunicazioniinrete
Giorgio Giacinto 2015
4
DBA e Sicurezza
ì L’amministratoredellabasedidati(DBA)èlamassimaautoritàchegestisceilDBMS
ì IlDBAèresponsabilediì concedere leautorizzazioniagliutentiì classificareutentiedatiinaccordoconlepolitiche
aziendali
ì IlDBAèresponsabileperlasicurezzadell’interoDBMS
Giorgio Giacinto 2015
5
L’utente DBA nei DBMS
ì L’utenteamministratoreinunDBMSspessochiamatosuperuser
halapossibilitàdi:1. Crearenuoviutenti2. Concedereprivilegiagliutenti3. Revocareiprivilegiagliutenti4. Assegnareilivellidisicurezza
ì L’attività1 realizzailcontrollodegliaccessiì Leattività2 e3 sonoditipodiscretionaryì L’attività4 controllaleautorizzazioniditipomandatory
Initalia disciplinatoda“Misureeaccorgimentiprescrittiaititolarideitrattamentieffettuaticonstrumentielettronicirelativamentealleattribuzionidellefunzionidiamministratoredisistema”- 27novembre2008(G.U.n.300del24dicembre2008)
Giorgio Giacinto 2015
6
Protezione e Controllo degli Accessi
ì IlDBMSregistratutteleattivitàsvoltedaciascunutenteduranteunasessionedilavoroì Registrazionenelfiledilogdituttelemodifichealla
basedidati
ì Incasodisospettamanomissionedeidatiì Attivitàdidatabaseaudit
ì verificadelfiledilog
Giorgio Giacinto 2015
7
Information Security e Information Privacy
ì Sicurezzaì Protezionedelleinformazionidausinonautorizzati
attraversoautenticazionedegliutenti,crittografia,controllodegliaccessi,firewall,eintrusiondetection.
ì Privacy(riservatezza)ì Memorizzazionedidatiriservatiì Usoappropriatodidatiriservati
ì Isistemidevonoconsentireaciascunindividuoilcontrollosucosaèmemorizzatoeperqualifinièusato
Giorgio Giacinto 2015
8
ìDISCRETIONARY ACCESS CONTROL
Giorgio Giacinto 2015
9
Privilegi
ì Alivellodiì IlDBAspecificaiprivilegidiciascunaccountutente
indipendentementedallerelazioninellabasididati
ì Alivellodelle ( )ì IlDBAspecificaiprivilegidiaccessoperciascuna
relazione ovista nellabasedidati.
Giorgio Giacinto 2015
10
Privilegi a livello di account utente
ì Esempidiprivilegialivellodiaccountutenteì CREATESCHEMA eCREATETABLEì CREATEVIEWì ALTER
ì consenteall’utentedimodificareglischemi,aggiungendoorimuovendoattributi
ì DROP checonsentedicancellarerelazionievisteì MODIFY
ì UPDATE,DELETE,INSERTIì SELECT
ì Consenteaccessoaidatiattraversounaquery
Giorgio Giacinto 2015
11
Privilegi a livello di relazione
ì Usodelmodellobasatosullamatriced’accessoì Le rappresentanoi
ì utenti,programmi
ì Le rappresentanogliì relazioni,record,colonne,viste,operazioni
ì CiascunacellaM(i,j)dellamatricerappresentailtipodiprivilegio(read,write,update)chel’i-simosoggettohasulj-esimooggetto.
Giorgio Giacinto 2015
12
Concessione e Revoca di Privilegi
ì Aciascunarelazioneinunoschemaèassociatol’utenteproprietarioì L’accountconilqualeèstatacreatalarelazione
ì Ilproprietariodiunarelazionepossiedetuttiiprivilegisuquellarelazioneì InSQL2,ilDBApuòassegnareunproprietarioadun
interoschema
ì Ilproprietariopuòpassareiprivilegiadaltriutentiattraversoilmeccanismodiconcessione
ì IprivilegipossonoessererevocaticonREVOKEGiorgio Giacinto 2015
13
Utenti e Privilegi sulle Relazioni
ì SQLpermettedigestireiseguentiprivilegisuciascunarelazioneRì SELECT
ì L’utentepuòusarelarelazioneR inunainterrogazione
ì MODIFYì InSQLquestoprivilegioèsuddivisoin
ì UPDATE,DELETE,INSERT
ì NelcasodiINSERTeUPDATEsispecificaseilprivilegioèlimitatoadalcuniattributi
ì REFERENCESì Consentediusare(alcuni)attributidiR inunvincolodi
integritàreferenzialeGiorgio Giacinto 2015
14
Uso delle Viste per Concedere Privilegi
ì Sel’utenteA èproprietariodiunarelazioneR evuolelimitarel’accessodell’utenteB adalcuniattributidiRì A creaunavistaV checontienesologliattributiutilizzabili
daBì A concedeaB ilprivilegioSELECTsuV
ì Sel’utenteA èproprietariodiunarelazioneR evuolelimitarel’accessodell’utenteB adalcunetuple diRì A creaunavistaV’ checontienesololetuple utilizzabili
daBì A concedeaB ilprivilegioSELECTsuV’.
Giorgio Giacinto 2015
15
Propagazione dei Privilegi GRANT OPTION
ì QuandoilproprietarioA diunarelazioneR concedeunprivilegioaunutenteB,ilprivilegiopuòesseredatoWITHGRANTOPTIONì B puòconcederequelprivilegioadaltriutentiì AncheB puòusareWITHGRANTOPTION
ì IlproprietarioperdetracciadegliutenticuivieneconcessoilprivilegioconcessoinizialmenteaB
ì Sel’utenteA revoca ilprivilegioconcessoaB,automaticamenteilprivilegiovienerevocatoatuttigliutentiacuiB loavevapropagato
Giorgio Giacinto 2015
16
Esempio (1)
ì IpotizziamocheilDBAcrei4utentiì A1,A2,A3,A4
esoloA1possacrearerelazionidibase.
ì IlDBAdeveusareilseguentecomandoGRANTinSQLGRANT CREATETAB TO A1;
ì InSQL2siottienelostessorisultatoconilseguentecomando
CREATE SCHEMA EXAMPLE AUTHORIZATION A1;
nelloschemaEXAMPLEl’utenteA1puòcrearetabelle
Giorgio Giacinto 2015
17
Esempio (2)
ì IpotizziamocheA1 crei duerelazionidibaseEMPLOYEEeDEPARTMENTì A1 èproprietariodellerelazioni,diconseguenzahatuttii
privilegi.
ì SeA1 vuoleconcedere aA2 ilprivilegio diinserire ecancellare tuple inentrambelerelazioniMAseA1 nonvuolecheA2 possapropagareilprivilegioadaltriutenti
GRANT INSERT, DELETE ONEMPLOYEE, DEPARTMENT TO A2;
Giorgio Giacinto 2015
18
Esempio (3)
Giorgio Giacinto 2015
19
Esempio (4)
ì IpotizziamocheA1 vogliaconcedereaA3 lapossibilitàdiinterrogareleduerelazioniecheA3 possapropagareilprivilegioSELECTadaltriutentiGRANT SELECT ON EMPLOYEE, DEPARTMENT
TO A3 WITH GRANT OPTION;
ì A3 puòconcedereadA4 ilprivilegioSELECT sullarelazioneEMPLOYEEGRANT SELECT ON EMPLOYEE TO A4;ì Nota:A4 nonpuòpropagareilprivilegio
Giorgio Giacinto 2015
20
Esempio (5)
ì SesuccessivamenteA1 decidedirevocareadA3 ilprivilegioSELECTsullarelazioneEMPLOYEEREVOKE SELECT ON EMPLOYEE FROM A3;
ì Questocomandoautomaticamenterevocaancheall’utenteA4 ilprivilegioSELECTsullarelazioneEMPLOYEEì A4 avevaricevutoilprivilegiodaA3,maoraA3non
hapiùquelprivilegio
Giorgio Giacinto 2015
21
Esempio (6)
ì SeA1 vuolerestituireaA3 lacapacitàdiinterrogarelarelazioneEMPLOYEElimitatamenteagliattributiNAME,BDATE,eADDRESS,neicasiincuiDNO=5,equestoprivilegiopuòesserepropagato
ì A1 crealavistaCREATE VIEW A3EMPLOYEE AS
SELECT NAME, BDATE, ADDRESSFROM EMPLOYEEWHERE DNO = 5;
ì A1 puòconcedereaA3 ilprivilegioSELECT sullavistaA3EMPLOYEEGRANT SELECT ON A3EMPLOYEE TO A3
WITH GRANT OPTION;
Giorgio Giacinto 2015
22
Esempio (7)
ì SeA1vuoleconsentireaA4lapossibilitàdiaggiornarel’attributoSALARYsullarelazioneEMPLOYEE
GRANT UPDATE ON EMPLOYEE (SALARY) TO A4;
ì PeriprivilegiUPDATE eINSERT possonoesserespecificatigliattributi
ì Altriprivilegicome(SELECT,DELETE)nonconsentonodispecificareattributi.
Giorgio Giacinto 2015
23
Specifica di Limitazioni nella Propagazione di Privilegi
ì AlcuniDBMShannomeccanismiperlalimitazionedellapropagazionedeiprivilegiì NonfannopartediSQL.
ì Meccanismirealizzatiì Limitiorizzontaliallapropagazione
ì Unutentepuòpropagareilprivilegioalmassimoadaltrii utenti.
ì Limitiverticaliallapropagazioneì Limitalaprofonditàdellapropagazione
ì Realizzazionecomplessa
Giorgio Giacinto 2015
24
ìMANDATORY ACCESS CONTROL
Giorgio Giacinto 2015
25
Mandatory Access Control
ì Utentiedatisonoclassificatisecondounagerarchiadiì topsecret(TS)ì secret(S)ì confidential(C)ì unclassified(U),TS≥S≥C≥U
Giorgio Giacinto 2015
26
Sicurezza Multilivello
ì ModelloperlasicurezzamultilivellodiBell-LaPadulaì ciascunsoggetto (utente,account,programma)eciascun
oggetto (relazione,tupla,colonna,vista,operazione)sonoclassificatiinunaclassefraT,S,C,eUì Clearance diunsoggettoS perunaclasse,classe(S)ì Classificazione diunoggettoOinunaclasse,classe(O).
ì Dueproprietàdevonosempreessereverificateì Simplesecurityproperty:UnsoggettoS nonè
autorizzatoallalettura suunoggettoOseclasse(S)<classe(O).
ì Starproperty (*property):UnsoggettoS nonèautorizzatoalascrittura suunoggettoOseclasse(S)>classe(O).
Giorgio Giacinto 2015
27
Basi di Dati e Sicurezza Multilivello
ì Gliattributidiunarelazioneeletuple sonoconsideratioggetti.ì Aogniattributoèassociataunaclassedisicurezzaì Ciascunatupla puòessereassociataaunaclassedi
sicurezzaì maggioredellapiùaltaclassificazionedegliattributi
ì UnoschemadirelazionemultilivelloR(A1,C1,A2,C2,…,An,Cn,TC)
LachiaveapparentediR èlastessacheavrebbeR senonusassimolaclassificazionemultilivello
Giorgio Giacinto 2015
28
Esempio: filtraggio di relazioni multilivello
Giorgio Giacinto 2015
29
Ilrisultatodell’interrogazione
SELECT*FROMEmployee
dipendedallaclearancedelsoggetto
chiaveapparente:Name
Esempio: filtraggio di relazioni multilivello
Giorgio Giacinto 2015
30
Ilrisultatodell’interrogazione
SELECT*FROMEmployee
dipendedallaclearancedelsoggetto
chiaveapparente:Name
Entity Integrity
ì Gliattributichefannopartedellachiaveapparenteì NondevonoaverevaloreNULLì Devonoaverelastessaclassificazionedisicurezza
all’internodiunastessatuplaì Glialtriattributidevonoavereunaclassificazionedi
sicurezzamaggioreougualeaquelladellachiaveapparente.
ì Questovincoloconsenteaunutentedivederelachiavesolosepuòaccedereadattributidiversidallachiave.
Giorgio Giacinto 2015
31
Confronto Discretionary Access Control e Mandatory Access Control
ì Discretionary AccessControl(DAC)ì Maggioreflessibilitàì Vulnerabiliadattacchiinformatici
ì Trojan horses
ì Mandatory AccessControl(MAC)ì Schemamoltorigido
ì utilizzabileinpochicontesti
ì Bloccaflussidiinformazionenonconsentiti
Giorgio Giacinto 2015
32
ìROLE BASED ACCESS CONTROL
Giorgio Giacinto 2015
33
Controllo degli accessi basato su Ruoli
ì Role-based access control(RBAC) siaffermaneglianni‘90perlagestionedellasicurezzainsistemiinformativiaziendaliì Riflettelagerarchiadeiruolinell’organizzazione
aziendale
ì Ipermessinonsonoassociatiautentimaaruoliì Aciascunutentesipuòassociareunoopiùruoli
ì ComandiCREATEROLE eDESTROYROLEì IcomandiGRANT eREVOKE sonousatiper
assegnareerevocareprivilegiairuoli
Giorgio Giacinto 2015
34
Proprietà dei Ruoli
ì Alcuniruolipossonoesseredefiniticomemutuamenteesclusiviì Unutentenonpuòattivarecontemporaneamenteidue
ruoliì Lamutuaesclusionepuòesseredeterminata
staticamente odinamicamente
ì Gestionedelleidentità(IdentityManagement)ì Autenticazioneegestionedell’accessoainformazioni
riservate
ì IlmodelloRBACèutilizzatoperlagestionedellasicurezzanelleweb-applicationì Ruoliassegnatiaciascuntask diunworkflow
Giorgio Giacinto 2015
35
Label-based SecurityRow-Level Access Control
ì MoltiDBMSutilizzanoDACeinoltreconsentonodiassociareunvalorenumerico(label)adognirigadiunatabella
ì Aciascunutenteèassociatounlivellodiautorizzazioneì L’utentepuòaccederesoloainformazioniconlabel
divaloreugualeoinferioreì Ades.,seall’utenteèstatoassegnatounvalore20e
haprivilegiodiSELECTsuunatabella,potràvederesololerigheconlabel ugualeoinferiorea20
Giorgio Giacinto 2015
36
Controllo degli accessi per il Web e il commercio elettronico
ì Nonoccorresoloproteggereidatimaanchelaconoscenzae l’esperienza
ì Tecnichedicontrollodegliaccessiinbasealcontenuto
ì Eterogeneitàdeisoggettiì Concettodicredenziali,cioèlecaratteristichedel
soggettoinbaseallequaliaccordareiprivilegiì Ades.,posizionenell’azienda,anzianitàdiservizio
Giorgio Giacinto 2015
37
ìSQL Injection
Giorgio Giacinto 2015
38
Attacchi alle Basi di Dati
ì Unauthorizedprivilegeescalation
ì PrivilegeAbuse
ì DenialofService(DoS)
ì Weakauthentication
ì SQLInjectionè una delle minacce più comuni
Giorgio Giacinto 2015
39
Metodi per realizzare un attacco SQL Injection
ì SIsfruttanovulnerabilitànellaapplicazioniì SQLManipulation
ì SiaggiungonoulterioricondizioniallaclausolaWHEREì Ades.,seperilloginsiesegue
SELECT*FROMusers WHEREusername=‘jake’ANDpassword=‘jakepassword’unattaccodiSQLinjection potrebbemodificarlainSELECT*FROMusers WHEREusername=‘jake’AND(password=‘jakepassword’OR‘x’=‘x’)
ì SiespandeunainterrogazioneaggiungendoaltrecomponenticonUNION,INTERSECT,MINUS
ì CodeInjectionì Function CallInjection
Giorgio Giacinto 2015
40
SQL Injection…
Giorgio Giacinto 2015
41
SQL Injection…
Giorgio Giacinto 2015
42
Obiettivi di attacchi SQL Injection
ì DatabaseFingerprinting
ì Denial ofService
ì Elusionedellafasediautenticazione
ì Identificazionedeiparametriiniettabili
ì Esecuzionedicomandiremoti
ì Privilege Escalation
Giorgio Giacinto 2015
43
Protezione da attacchi SQL Injection
ì Validazionedituttiidatidiinputalleapplicazioni
ì Usodiistruzioniparametrizzateì Gliinputassegnatiavariabiliinvececheinseriti
automaticamenteall’internodell’istruzione
ì Accessolimitatoallefunzionideldatabase
Giorgio Giacinto 2015
44
ìSICUREZZA BASI DI DATI STATISTICHE
Giorgio Giacinto 2015
45
Basi di Dati Statistiche
ì Lebasididatistatistichesonousateperprodurreinformazionistatistichesuunapopolazioneì Gliutentipossonoaccederesoloainformazioni
statisticheenonasingolivalorinelletuple
ì Valoriprodottiì Medie,somme,conteggi,valorimassimieminimi,
varianze.
ì Labasedidatipuòconteneredatipersonaliilcuiaccessodeveessereregolato
Giorgio Giacinto 2015
46
Popolazione in una base di dati statistica
ì Unapopolazioneèuninsiemedituple inunarelazionechesoddisfacertecondizionidiselezione.
ì Leinterrogazionistatisticheapplicanofunzionistatisticheaunapopolazionedituple.
ì Inunabasedidatistatisticanonsonopermesseinterrogazionicheestraggonovaloridiattributisingoliì Sonopermessesolointerrogazionistatistiche
ì Fareattenzioneallapossibilitàdiinferirevalorisingolidaunasequenzadiinterrogazionistatistiche
Giorgio Giacinto 2015
47
ìCONTROLLO DEL FLUSSO INFORMATIVO
Giorgio Giacinto 2015
48
Flussi informativi
ì SirealizzaunflussoinformativofraunoggettoXeunoggettoYquandounprogrammaleggevaloridaXescrivesuYì Leinformazioninondevonoesseretrasferite
esplicitamenteoimplicitamentedaunoggettoversooggetticonlivelloinferiorediprotezione.
ì Lepolitichesuiflussideterminanoicanaliconsentitiì Ades.,incasodidueclassi
confidential (C)andnonconfidential (N)possonoessereconsentitituttiiflussitrannequellidaC aN
Giorgio Giacinto 2015
49
Covert Channels
ì Canaliilleciticheconsentonoflussiinformativicheviolanolepolitichedisicurezza.ì Sfruttanodebolezzediprogettazionedelsistema
ì Sipossonosuddividereinì Storagechannels
ì Accessodirettoalleinformazioniriservate
ì Timingchannelsì Sfruttanovulnerabilitànellaesecuzioneditransazioni
concorrenti
Giorgio Giacinto 2015
50
ìPRIVACY
Giorgio Giacinto 2015
51
Privacy
ì Pergarantireriservatezzadeidatiì Anonimizzazioneì Introduzionedirumoreneidatiì Distribuzionedeidati
ì Eunsettorediricercamoltoattivo
ì Informazionipersonalipotrebberoessereinferiteattraversounasuccessionesiinterrogazionistatistichesubasididatiidverse
Giorgio Giacinto 2015
52
ìSFIDE FUTURE
Giorgio Giacinto 2015
53
Alcune linee di evoluzione
ì Qualitàdeidatiì Soprattuttodatiacquisitiviaweb
ì Gestionedeidirittidiproprietàintellettuale
ì SopravvivenzadelDBMSadattacchiecatastrofiì Confinamentoì Stimadeldannosubitoì Riconfigurazioneì Riparazioneì Eliminazionedellevulnerabilità
Giorgio Giacinto 2015
54