venerdì, settembre 19, 2008

Basi di dati: Sicurezza di Basi di dati

Divisibile in 3 capitoli:

  1. Segretezza: proteggere da letture non consentite
  2. Integrità: proteggere da scritture non consentite
  3. Disponibilità: garantire il giusto accesso agli utenti legittimamente autorizzati (proteggersi da attacchi DOS: Denied Of Service)

Tecniche di protezione:

  1. Autenticazione: verificare di dare accesso solo a chi consentito
  2. Controllo dell'accesso: validare richieste di accesso (verificare cosa può fare l'utente autenticato)
    1. Crittografia: offuscare i dati per renderli non leggibili a terzi

     
     

    Innanzitutto devono essere definite delle politiche di sicurezza

    Le politiche di sicurezza vengono trasformate in Regole di autorizzazione comprensibili al database

    Il motore del database ha una parte adibita alla gestione delle autorizzazioni, il Reference Monitor che concede, nega o concede parzialmente l'accesso

     
     

    Due famiglie politiche di amministrazione della sicurezza (stabiliscono chi può concedere/revocare i permessi di sicurezza):

  • Centralizzato: un unico amministratore concede tutti i permessi di sicurezza
  • Distribuito: più di un amministratore. Di solito chi è abilitato a creare oggetti sul DB diventa proprietario degli oggetti che crea e ne è amministratore

 
 

 
 

Due famiglie di politiche di controllo d'accesso:

  • Politica del minimo privilegio. Le autorizzazioni di accesso ai dati vengono concesse solo per il minimo dei dati che l'utente userà. L'accesso è di default negato.
  • Politica della massima condivisione. L'accesso è di default consentito (deve essere negato esplicitamente)!

Controllo d'accesso dipendente dal nome: imposto le autorizzazione sui diversi oggetti del DB

Controllo accessi dipendente dal contenuto: creo viste e stored procedure e poi do le autorizzazioni su questi

Controllo accessi dipendente dal contesto (ad esempio dall'orario): mediante stored procedure

Controllo dipendenti dalla storia degli accessi (es: non di n accessi). Mediante stored procedures/triggers

Le politiche di controllo degli accessi si dividono in:

  • Discrezionali: DAC
    Richiedono che vengano specificati i diritti che ogni soggetto possiede sugli oggetti del sistema. Molto flessibili, ma di limitata portata. I DBMS normali sono DAC (ci sono anche i trusted DBMS che sono MAC)
  • Mandatorie: MAC
    Politiche basate su classificazione di dati e utenti (diversi livelli di sicurezza: Top Secret, Secret, Classified, Unclassified). I sistemi mandatori vietano che dati di livelli elevati possano spostarsi in livelli più bassi. No-Read-Up: Un utente con permessi per un livello può leggere quello e i sottostanti, non i superiori. No-Write-Down: non scrivere dati di livello alto in fonti raggiungibili dal basso

Attacco basato su cavallo di Troia

Un utente privo dei diritti su particolari dati riesce a modificare un programma di utilità generale. Il programma viene lanciato da un utente a privilegi alti e copia i dati in una posizione raggiungibile dall'hacker

Contenuti gestiti da Michele Bernardi. Non mi assumo alcuna responsabilità sulla correttezza di questi dati, usateli a vostro rischio e pericolo.

Nessun commento: