La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Sicurezza dei sistemi informatici

Presentazioni simili


Presentazione sul tema: "Sicurezza dei sistemi informatici"— Transcript della presentazione:

1 Sicurezza dei sistemi informatici
Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione Seconda lezione 27/4/2007

2 Contenuto della lezione
Politiche per l’integrità Politiche ibride Autenticazione

3 Politiche per l’integrità
Requisiti di Lipner Modelli di Biba Matrice di Lipner Cenni al modello di Clark-Wilson

4 I requisiti di integrità di Lipner
Gli utenti non devono scrivere programmi ma usare solo programmi e database di produzione I programmatori sviluppano e testano di programmi non sui sistemi di produzione, se hanno bisogno di usare dati veri, riceveranno dati di produzione filtrati attraverso un processo speciale e useranno solo quelli Un processo speciale deve essere eseguito per installare un programma dal sistema di sviluppo a quello di produzione. Il processo speciale del requisito 3 deve essere controllato e sottoposto ad audit. Gli amministratori devono accedere allo stato del sistema e ai log generati

5 Modelli per l’integrità
I requisiti suggeriscono i seguenti principi Separazione dei compiti. Se due o più passi sono richiesti per compiere una funzione critica, devono essere impiegati almeno due soggetti differenti. Muovere un’applicazione dal sistema di sviluppo a quello della produzione è un esempio di funzione critica. Separazione delle funzioni. Funzioni differenti devono usare dati differenti. Per esempio, gli sviluppatori non devono sviluppare nuovi programmi nell’ambiente di produzione e non possono processare dati di produzione nell’ambiente di sviluppo. Si può dar loro dati “sanitized”. Auditing. E’ il processo di analisi del sistema per determinare quali azioni sono state compiute e da chi

6 Modelli per l’integrità
Modello di Biba insieme di soggetti S insieme di oggetti O insieme di livelli di integrità I relazione di ordine <= su I i(s) rappresenta il livello di integrità di s, per un programma indica quanto è corretta la sua esecuzione i(o) rappresenta il livello di integrità di o, indica quanto è affidabile il contenuto

7 Modello Low-Water-Mark di Biba
s può scrivere o se e solo se i(o)<=i(s): un soggetto non può scrivere qualcosa di più affidabile se s legge o, allora i(s) diventa pari a min{i(s),i(o)}: l’integrità del soggetto si può “contaminare” s può eseguire s’ se e solo se i(s’)<=i(s): non si può eseguire qualcosa di più affidabile

8 Modello di Biba di integrità stretta
s può leggere o se e solo se i(s)<=i(o) s può scrivere o se e solo se i(o)<=i(s) s può eseguire s’ se e solo se i(s’)<=i(s) E’ il duale di Bell-La Padula Vale il seguente teorema: in un trasferimento di informazioni o0 → s1 → o1 → s2 → o2 →....→ sn → on l’integrità dell’oggetto finale è minore o uguale di quello di partenza

9 LOCUS e Biba Scopo: prevenire che un programma non fidati alteri dati o altri programmi Approccio: usare livelli di fiducia un livello di credibilità basato sulla stima di affidabilità del programma (0 non fidato, n altamente fidato) I trusted file systems contengono programmi con un solo livello di credibilità Un programma può essere eseguito solo se ha credibilità maggiore del processo che lo lancia Si deve usare il comando run-untrusted per eseguire un programma con minor livello di credibilità

10 Matrice di integrità di Lipner
Lipner è riuscito a coniugare Bell-La Padula (confidenzialità) e Biba (integrità) Un soggetto s può leggere un oggetto o se s ha un livello di sicurezza maggiore o uguale a quello di o o ha un livello di integrità maggiore o uguale a quello di s In modo inverso per la scrittura

11 Livelli/categorie di integrità
Tre livelli di integrità: ISP(System Program): per programmi di sistema IO (Operazioneal): programmi di produzione, tool di sviluppo ISL (System Low): per tutti gli utenti Due categorie di integrità ID (Development): entità in sviluppo IP (Produczione): entità di produzione

12 Livelli/categorie di sicurezza
Due Livelli di sicurezza AM (Audit Manager): system audit, funzioni di amministrazione SL (System Low): ogni processo può leggere tali dati Tre Categorie di sicurezza SP (Production): codice e dati di produzione SD (Development): programmi per la produzione in sviluppo ma non in uso SSD (System Development): programmi di sistema in sviluppo ma non in uso

13 Livelli di sicurezza degli utenti
Soggetti Livelli di sicurezza Livelli di integrità Ordinary users (SL, { SP }) (ISL, { IP }) Applicaction developers (SL, { SD }) (ISL, { ID }) System programmers (SL, { SSD }) System managers and auditors (AM, { SP, SD, SSD }) (ISL, { IP, ID}) System controllers (SL, { SP, SD }) and downgrade privilege (ISP, { IP, ID}) Repair

14 Livello di sicurezza degli oggetti
Livelli di sicurezza Livelli di integrità Development code/test data (SL, { SD }) (ISL, { IP} ) Production code (SL, { SP }) (IO, { IP }) Production data (ISL, { IP }) Software tools (SL,  ) (IO, { ID }) System programs (ISP, { IP, ID }) System programs in modification (SL, { SSD }) (ISL, { ID }) System and application logs (AM, { appropriate }) (ISL,  ) Repair (SL, {SP})

15 Utenti ordinari Un utente ordinario ha i livelli:
sicurezza (SL, { SP }) integrità (ISL, { IP }) Quindi può svolgere le seguenti operazioni Leggere e scrivere dati di produzione :stessi livelli di sicurezza e integrità Leggere codice di produzione: stessa classificazione e (IO, {IP}) dom (ISL, {IP}) System program (SL, {SP}) dom (SL, {}) & (ISP, {IP,ID}) dom {ISL, {IP}) Repair oggetti (stessi livelli) Scrivere (ma non leggere) i log di sistema e di applicazione (AM, {SP}) dom (SL, {SP}) & (ISL, {IP}) dom {ISL, {})

16 I cinque requisiti E’ facile verificare che i cinque requisiti di Lipner sono soddisfatti Ad esempio un utente non può scrivere un programma perchè creerebbe un oggetto con un livello di integrità maggiore del proprio

17 Modello di Integrità di Clark-Wilson
Adatto all’integrità dei database L’integrità definita mediante vincoli che i dati devono rispettare Esempio: in una banca D depositi odierni, W prelievi odierni, YB bilancio di ieri, TB bilancio di oggi Vincolo di integrità: D + YB –W=TB Le transazioni ben formate portano uno stato consistente ad uno stato consistente Chi certifica che i vincoli siano sempre rispettati ?

18 Entità CDI: entità/dati soggetti a vincoli di integrità
UDI: entità/dati non soggetti a vincoli di integrità IVP: procedure che controllano i vincoli di integrità TP: procedure di trasformazione, che portano il sistema da uno stato valido ad un altro stato valido

19 Regole di certificazione
CR1 Se un IVP è eseguito, deve assicurarsi che tutti i CDI siano in uno stato valido CR2 Una TP deve trasformare un insieme di CDI da uno stato valido ad uno stato valido CR2 definisce come certificata una relazione che associa un insieme di CDI ad una TP CR2 implica che una TP può corrompere un CDI se non è certificata per lavorare con quel CDI TP “balance”, CDI conti correnti. Sia C una relazione certificata, allora (balance, account1), (balance, account2),…., (balance, accountn) Î C

20 Regole di rinforzo CR2 implica che una TP può corrompere un CDI se non è certificato a lavorarvi Esempio: La TP che investe denaro nel portafoglio azionario della banca corromperebbe i bilanci anche se la TP fosse certificata a lavorare sul portafoglio, perchè le azioni della TP potrebbero non avere senso sui conti bancari Da ciò nasce la prima regola di rinforzo

21 Regole di rinforzo ER1 Il sistema deve garantire che solo le TP certificate ad operare su determinati CDI svolgano operazioni su di essi. ER2 Il sistema associare a ciascun TP e insieme di CDI un utente. Il TP può accedere a quei CDI per conto dell’utente, ma non può accedere per conto di utenti non autorizzati. Il sistema deve mantenere le relazioni certificate Il sistema deve restringere l’accesso degli utenti alle TP mediante una relazione di permesso A, che specifica quali utenti possono eseguire quali TP su quali CDI

22 Utenti e regole CR3 Le relazioni di permesso devono essere basate sulla separazione dei compiti. ER3 Il sistema deve autenticare ogni utente che vuole utilizzare una TP

23 Uso dei Log CR4 Tutte le TP devono scrivere in CDI di solo accodamento (append) tutte le informazioni sufficienti a ricostruire le operazioni svolte. Questo CDI è il log Gli amministratori devono essere in grado di capire cosa ha fatto una determinata transazione

24 Trattamento di Input non fidato
CR5 Ogni TP che prende in input un UDI può eseguire solo transformazioni valide, oppure nessuna transformazione, per ogni possibile valore dell’UDI. La trasformazione può quindi rifiutare il UDI o trasformarlo in un CDI. In una banca, i numeri inseriti da tastiera sono UDI, che non possono essere dati in input ad una TP. Un’apposita TP deve validare tali numeri (rendendoli un CDI) prima di usarli; se la validazione fallisce, la TP rigetta il UDI

25 Separazione dei compiti
ER4 Solo il certificatore di un TP può cambiare la lista di entità associate al TP. Nessun certificatore di un TP, o di un entità associata al TP, potranno mai farlo.

26 I cinque requisiti Anche in questo caso è relativamente semplice far vedere che i cinque requisiti di Lipner sono soddisfatti

27 Politiche ibride Molte organizzazioni hanno bisogno di politiche di rinforzo sia per la confidenzialità, che per l’integrità Modello della Chinese Wall Cenni al modello della Clinical Information Systems Modello ORGCON Modelli RBAC e TRBAC

28 Conflitto di interessi
E’ un concetto ben noto (...) Un esempio nel mondo finanziario è quello di un analista che lavora come consulente presso l’azienda X Tale analista deve tenere fede ai requisiti di confidentialità delle informazioni che l’azienda X pone su di lui: non può usare tali informazioni con un’azienda rivale di X Comunque l’analista è libero di usare tali informazioni con aziende non in competizione con X

29 Politica della Chinese Wall
Introdotto da Brewer and Nash nel 1989 Il motivo per questo lavoro è stato quello di evitare che informazioni sensibili concernenti una compagnia siano passate a compagnie rivali per mezzo di consulenti finanziari Si stabiliscono dinamicamente i diritti di accesso di utente in base a quello a cui l’utente ha già avuto accesso

30 Concetti della Chinese Wall
Soggetti: Entità attive che accedono a oggetti protetti Oggetti: Informazioni legate ad una compagnia Dataset: insieme di informazioni di una data compagnia Classe di Conflict-of-Interest (CoI): compagnie rivali di una data compagnia

31 Definizioni Indicheremo con CD(O) il dataset a cui appartiene l’informazione O Indicheremo con COI(O) la classe di conflitto di interesse a cui appartiene l’informazione O Assumiamo che ciascun oggetto appartenga ad un unico dataset e ad un’unica classe COI

32 Classificazione dei dati
Insieme di tutti gli oggetti CoI 1 CoI 2 CoI 3 Bank A Bank B Gas A Oil A Oil B Info Info

33 Evoluzione dei diritti
Se un consulente legge un oggetto appartenente ad un CD in una data COI, non può più leggere oggetti di altri CD in quella COI E’ possibile che le informazioni apprese prima possano consentirgli di prendere decisioni “migliori” dopo (ovviamente in modo sleale) Indichiamo con PR(S) l’insieme degli oggetti che S ha già letto

34 Condizione di semplice sicurezza delle CW
Un soggetto s può leggere un oggetto o se e solo se: Esiste un oggetto o a cui s ha avuto accesso e CD(o ) = CD(o), oppure Per ogni o  O, o  PR(s)  COI(o) ≠ COI(o) Ignoriamo per ora i dati “sanitized” Inizialmente, PR(s) = , quindi qualunque cosa può essere letta all’inizio

35 X In altri termini Un soggetto può leggere un oggetto se:
l’oggetto è in un dataset di cui il soggetto ha già letto qualcosa oppure l’oggetto appartiene a una COI di cui il soggetto non ha letto ancora niente Consultant X R R Bank B Bank A R R R Gas A Oil B

36 Insieme di tutti gli oggetti
Regola di lettura = John Insieme di tutti gli oggetti CoI 1 COI 1 CoI 2 Info Oil A CoI 3 COI 3 Info Bank B Info Oil B Bank A Bank A Gas A Oil A Info Info Info Info Info Info

37 Confronto con Bell-LaPadula
La politica Chinese Wall è una combinazione di libera scelta e di controllo obbligatorio (mandatory) Inizialmente un soggetto è libero di accedere a ciò che vuole Una volta fatta la scelta, per quell’utente è creata una Muraglia Cinese attorno al dataset a cui l’oggetto appartiene Si noti che la Chinese Wall può essere combinata con le politiche DAC

38 Scrittura Anthony e Susan lavorano per la stessa azienda di consulenza
Anthony può leggere i CD di Bank A e di Gas A Susan può leggere i CD di Bank B e di Gas A Se Anthony potesse scrivere sul CD di Gas A, Susan potrebbe leggerlo Perciò, indirettamente, potrebbe acquisire informazioni su Bank B, un chiaro conflitto di interesse La regola per la lettura non è in grado di prevenire “fughe di notizie”

39 Proprietà * delle CW Un soggetto s può scrivere un oggetto o se e solo se entrambe le condizioni valgono La condizione di sicurezza semplice consente a s di leggere o Per ogni oggetto non “sanitized” o, se s può leggere o, allora CD(o) = CD(o) In pratica s può scrivere un oggetto se tutti gli oggetti (non “sanitized”) che può leggere sono nello stesso dataset

40 X X In altri termini Un soggetto può scrivere un oggetto se
lo può anche leggere E non può leggere dati di altre compagnie Consultant A Bank B X W R Oil B X Consultant B Bank A R W

41 Conclusioni e critiche
Perciò secondo questa regola: Il flusso di informazioni è confinato all’interno della compagnia Però un utente che ha letto da più dataset non può scrivere nessuno oggetto Inoltre, una volta che ha scritto in un dataset, può scrivere solo lì

42 Insieme di tutti gli oggetti
Regola di scrittura = John Insieme di tutti gli oggetti CoI 1 COI 1 CoI 2 CoI 3 COI 3 Bank A Bank A Gas A Oil A Oil A ABC Info ABC Info Info Info Info Info Info

43 Insieme di tutti gli oggetti
Regola di scrittura Insieme di tutti gli oggetti = Jane COI 1 COI 1 COI 2 COI 3 COI 3 Bank B Bank B Gas A Oil A Oil A ABC Info Info Info Info ABC Info Info

44 Informazioni “Sanitized”
Alcune informazioni pubbliche possono appartenere ad un CD Essendo pubbliche, non generano conflitti di interesse Tipicamente, tutti i dati sensibili sono rimossi prima che tale informazione sia resa pubblica (l’informazione è “sanitized”) Una terza opzione per la Condizione di sicurezza semplice è quindi: 3. o è un oggetto “sanitized”

45 Confronto con Bell-LaPadula
Sono fondamentalmente differenti CW non ha etichette di sicurezza, B-LP sì CW si basa sugli accessi passati, B-LP no Bell-LaPadula può simulare CW istante per istante Ogni coppia di (COI, CD) è una categoria Due livelli di sicurezza, S (sanitized) and U (non sanitized) S dom U I livelli di sicurezza dei soggetti comprendono al massimo una sola categoria per ogni classe COI Ma B-LP non è in grado di modellare i cambiamenti nel tempo

46 Confronto con Clark-Wilson
Il modello di Clark-Wilson si occupa dell’integrità Se i “soggetti” e i “processi” sono la stessa cosa, una singola persona potrebbe usare più processi e violare la condizione di semplice sicurezza in CW Ma rispetterebbe il modello di Clark-Wilson Se il “soggetto” è una specifica persona che comprende anche tutti i processi eseguiti, allora CW è consistente con Clark-Wilson Model

47 Clinical Informazione Systems Securità Policy
Pensato per dati medici Il conflitto di interesse non è un problema critico La confidenzialità del paziente, l’autenticazione dei dati e di chi li scrive, e l’integrità lo sono Entità: Paziente: soggetto dei dati medici Informazioni mediche del paziente: dati sullo stato di salute del paziente o sulle cure mediche che possono consentire l’ identificazione del paziente Medici: personale che può entrare in contatto con le informazioni mediche del paziente

48 Accesso Principio 1: Ciascuna cartella clinica ha una lista di controllo degli accessi che determina gli individui o i gruppi che possono leggere e aggiungere dati alla cartella. Il sistema deve restringere l’accesso solo alle persone identificate dalla lista. L’idea è che solo i medici hanno diritto all’accesso, ma nessun altro. Gli auditor possono avere diritto ad una copia, ma non possono fare modifiche

49 Accesso Principio 2: Uno dei medici sulla lista dei controlli di accesso ha il diritto di aggiungere persone a tale lista. E’ chiamato il medico responsabile

50 Accesso Principio 3: Il medico responsabile deve notificare al paziente i nomi sulla lista di controllo quando il record è aperto. Tranne in particolari occasioni, o in casi di emergenza, il medico responsabile deve ottenere il consenso del paziente. Principio 4: Il nome del medico, la data e l’ora di accesso alla cartella clinica deve essere registrato.

51 Creazione Principio: Un medico può aprire una cartella clinica, con il medico e il paziente nella lista di controllo accessi. In caso di un referto medico, anche il medico che ha fatto il referto deve stare nella lista.

52 Cancellazione Principio: Le informazioni mediche non possono essere cancellate prima che sia passato un determinato lasso di tempo.

53 Confinamento Principio: Le informazioni provenienti da una cartella clinica possono essere aggiunte ad un’altra cartella se e solo se la lista di accesso della seconda cartella è un sottoinsieme della lista della prima. In altri termini chi può accedere alla prima può accedere anche alla seconda

54 Aggregazione Principio: Un paziente deve essere messo al corrente se qualcuno è stato aggiunto alla lista di controllo e se questi ha accesso ad un grande numero di cartelle cliniche. Si evita che un investigatore acceda a molte cartelle, le correli e scopra informazioni private informazione sui singoli individui

55 Rinforzo Principio: Tutti i sistemi informatici che trattano dati di cartelle cliniche devono avere un sottosistema che garantisca i precedenti principi. L’effettivo funzionamento di tale sistema deve essere controllato da terze persone.

56 Confronto con Bell-LaPadula
Il principio di confinamento impone una struttura a “reticolo” sulle entità del modello Simile a Bell-LaPadula CISS si concentra sugli oggetti a cui si accede; B-LP sui soggetti che vi accedono

57 ORCON Problema: un’organizzazione vuole controllare la diffusione dei propri documenti Esempio: Il Ministro delle politiche agricole scrive documento da distribuire per i propri impiegati e concede il permesso un’ulteriore ridistribuzione. Ciò si indica con il nome di “originator controlled” (in questo caso, l’ “originator” è una persona).

58 Requisiti Il soggetto s  S marca l’oggetto o  O come ORCON per conto dell’organizzazione X. X permette che o sia diffuso ai soggetti che lavorano per conto dell’organizzazione Y con le seguenti restrizioni: o non può essere rilasciato a soggetti che lavorano per conto di altre organizzazioni senza il permesso di X e Ogni copia di o deve avere le stesse restrizioni.

59 DAC non va bene Il possessore può concedere qualsiasi diritto
La proprietà 2 non sarebbe soddisfatta

60 MAC non va bene Primo problema: esplosione del numero delle categorie
Ogni categoria C contiene o, X, Y. Se un soggetto y  Y vuole leggere o ne fa una copia o. Nota che o ha categoria C. Se y vuole dare a z  Z una copia, z deve essere in Y ma per definizione non vi è. Se x vuole concedere a w  W di vedere il documento, deve creare una nuova categoria C contenente o, X, W. Secondo problema: astrazione In MAC la classificazione e le categorie sono controllate centralmente e l’accesso è controllato da una politica centralizzata ORCON è controllato localmente

61 Combinare DAC e MAC Il possessore dell’oggetto non ne può cambiare i controlli di accesso. Quando l’oggetto è copiato, le restrizioni di accesso sono copiate dalla sorgente e legate alla copia. Ciò è MAC (il possessore non può controllarlo) Il creatore del documento (originator) può alterare le restrizioni di accesso in base al soggetto e all’oggetto. Ciò è DAC (l’originator può controllarlo)

62 RBAC: Motivazioni Un problema importante nell’organizzazione di grandi sistemi è la complessità dell’amministrazione della sicurezza Quando il numero dei soggetti e degli oggetti è alto, il numero di autorizzazioni può diventare molto grande Inoltre, se la popolazione di utenti è molto dinamica, il numero di concessioni e di revoche di permessi diventa eccessivamente elevato

63 RBAC: Motivazioni Gli utenti finali spesso non “possiedono” le informazioni a cui hanno accesso. Le aziende o gli enti sono i reali possessori degli oggetti Il controllo di accesso è quindi basato sulle mansioni delle persone e non sul semplice possesso RBAC è stato quindi proposto come alternativa al DAC e al MAC per semplificare la gestione degli accessi e per supportare direttamente il controllo basato sulle mansioni (ruoli)

64 RBAC I diritti di accesso dipendono dal ruolo, non dall’identità
Esempio: Anna, segreteria del dipartimento, ha accesso ai dati finanziari. Anna cambia impiego e non ha più diritti di accesso. Barbara prende il suo posto e adesso è lei che può accedere a quei dati E’ il ruolo che stabilisce i diritti e non l’identità del singolo individuo.

65 RBAC e ruoli I ruoli rappresentano le mansioni all’interno di un’organizzazione Le autorizzazioni sono concesse ai ruoli anzichè ai singoli utenti Gli utenti sono perciò autorizzati semplicemente ad assumere ruoli appropriati, acquisendo le autorizzazioni assegnate a quei ruoli

66 Vantaggi del RBAC Poichè i ruoli rappresentano le funzioni dell’organizzazione, un modello RBAC può direttamente supportare le politiche di sicurezza proprie dell’organizzazione Concedere e revocare autorizzazioni alle categorie di utenti è grandemente semplificato I modelli RBAC sono perciò “policy-neutral”

67 RBAC I produttori di DBMS hanno visto l’importanza e i vantaggi di RBAC, e oggi molti DBMS commerciali supportano in vario modo RBAC Esiste un certo consenso su un modello standard di RBAC Il modello NIST [Sandhu,Ferraiolo,Kuhn 00] è stato il primo passo verso la definizione di uno standard Una recente definizione è data dall’ ANSI: Role based access control. ANSI INCITS , February 2004

68 Modello NIST Tre livelli con capacità funzionali crescenti
Core RBAC – anche chiamato Flat RBAC RBAC gerarchico RBAC vincolato

69 RBAC- Concetti di base Utente – un essere umano, una macchina, un processo, o un agente intelligente autonomo, ecc. Ruolo – una funzione nel contesto di un’organizzazione con una semantica associata secondo l’autorità e la responsibilità del ruolo

70 RBAC- Concetti di base Permesso – Modo di accesso che può essere esercitato sugli oggetti nel sistema. Sia gli oggetti e i modi di accesso sono dipendenti dal dominio. Per esempio, nel caso dei database, tra gli oggetti si trovano tabelle, colonne e righe e tra i modi di accesso le operazioni di insert, delete e update.

71 RBAC- Concetti di base Sessione – E’ una particolare istanza di una connessione di un utente al sistema e definisce un sottoinsieme di ruoli attivati. Ad ogni istante, possono essere attive più sessioni differenti per ciascun utente. Quando un utente entra nel sistema, stablisce una sessione e durante tale sessione può attivare un sottoinsieme dei ruoli che è autorizzato ad assumere. L’utente ottiene i permessi associati al ruolo che ha attivato nella sessione.

72 Role-Based AC Individui Ruoli Risorse ruolo 1 ruolo 2 ruolo 3 Server 1
Gli utenti cambiano frequentemente, i ruoli no

73 Core RBAC

74 Core RBAC - Permissions
Operazioni Oggetti RA PA Utenti Ruoli Permessi UA RSA Sessioni

75 Core RBAC insiemi, funzioni e relazioni
USERS, ROLES, OPS, OBS UA ÍUSERS ´ ROLES, relazione molti-a-molti tra utenti e ruoli assigned_users: (r: ROLES) ® 2USERS , ad ogni ruolo r l’insieme degli utenti. Formalmente: assigned_users(r) = {u Î USERS | (u, r) Î UA} PRMS = 2(OPS ´ OBS) , tutti i sottoinsiemi di permessi PA ÍPRMS ´ ROLES, relazione molti-a-molti tra ruoli e permessi assigned_permissions: (r: ROLES) ® 2PRMS , ad ogni ruolo l’insieme dei permessi. Formalmente: assigned_permissions(r) = {p Î PRMS | (p, r) Î PA}

76 Core RBAC insiemi, funzioni e relazioni
Op (p : PRMS) ® {op Í OPS}, le operazioni associate ad un insieme di permess p Ob (p : PRMS) ® {op Í OBS}, gli oggetti su cui opera un insieme di permessi p SESSIONS = l’insieme delle sessioni session_users (s : SESSIONS) ® USERS, gli utenti della sessione s session_roles (s : SESSIONS) ® 2ROLES, i ruoli degli utenti di una sessione. Formalmente: session_roles (s) = {r Î ROLES | (session_users (s), r) Î UA} avail_session_perms (s : SESSIONS) ® 2PRMS, i permessi disponibili per gli utenti di una sessiona. Formally: avail_session_perms (s) = È r Î session_roles( r ) assigned_permissions (r)

77 Core RBAC - Sessioni La nozione di sessione è astratta – è definita “a mapping between a user and an activated subset of roles that are assigned to the user” Distinzioni: Attivazione a singolo ruolo (SRA) Solo un ruolo può essere attivo Attivazione a ruoli multipli (MRA) Più ruoli possono essere attivi in una sessione, è possibile vincolare la concorrente presenza di alcuni ruoli

78 RBAC gerarchico - Motivazioni
Le gerarchia tra ruoli sono un modo naturale per strutturare i ruoli in modo da riflettere le linee di autorità e responsibilità di un’organizzazione

79 Modello gerarchico RBAC
RH Í ROLES ´ ROLES è una relazione binaria non riflessiva e aciclica sull’insieme of ruoli nel sistema E’ una relazione di dominanza; se (ri,rj) Î RH diremo che ri domina rj La relazione ³ è la chiusura riflessiva e transitiva di RH. Un sistema RBAC può scegliere se memorizzare ³ o se calcolarlo ogni volta

80 Esempio di RH Director Project Lead 1 Project Lead 2 Produczione
Engineer 1 Qualità Engineer 1 Produczione Engineer 2 Qualità Engineer 2 Engineer 1 Engineer 2 Engineering Dept

81 Semantica del RBAC gerarchico
Ereditarietà di utente (UI): Tutti gli utenti autorizzati ad un ruolo r sono anche autorizzati ad un ruolo r’, ove r ³ r’ Eredità di permessi (PI): Un ruolo r è autorizzato a tutti i permessi per i quali ogni ruolo r’, tale che r ³ r’, è autorizzato Eredità di attivazione (AI): Attivando un ruolo r automaticamente si attivano tutti i ruoli r’, tali che r ³ r’. Da usare solo con sessioni MRA

82 RBAC vincolato Il RBAC vincolato è un modello RBAC con la capacità di supportare le politiche di Separazione dei compiti (Separation of Duty) Evita conflitti di interesse e collisioni tra mansioni Due categorie principali: SoD statici SoD dinamici

83 RBAC –SoD statici SoD statici restringono l’insieme dei ruoli and in particolare la possobilità ad entrare nella relazione RA Nessun utente può assumere più di t ruoli in un insieme di m ruoli Evita che una persona sia autorizzata a usare troppi ruoli

84 RBAC –SoD Dinamici Questi vincoli limitano il numero di ruoli che un utente può attivare in una singola sessione Esempi di vincoli: Nessun utente può attivare più di t ruoli nel corso di una sessione. se l’utente ha usato il ruolo r1 in una sessione, non può usare il ruolo r2 nella stessa sessione E’ necessario mantenere una storia dei ruoli attivati da ciascun utente

85 Constraint RBAC Static SOD Approve/ Disapprove check Dynamic SOD
Prepare check Summarize decisions Approve/ Disapprove check Issue/void check

86 Autenticazione Autenticazione: collegamento soggetto-identità
L’identità si riferisce ad un’entità esterna (Marco Baioletti, ...) Il soggetto è un entità del sistema (utente, processo, ...)

87 Stabilire un’identità
Mediante uno o più tra Un’informazione che l’entità possiede (ad es. password) Un’oggetto fisico che l’entità ha (ad es. badge, smart card) Una caratteristica che l’entità possiede (ad es. impronte digitali, caratteristiche della retina) Una situazione/luogo in cui l’entità si trova (ad es. di fronte ad un determinato terminale)

88 Sistema di autenticazione
(A, C, F, L, S) A informazione riguardante l’identità C informazione memorizzata e usata per validare l’informazione di autenticazione F funzioni complementari; f : A  C L funzioni che comprovano l’identità S funzioni che permettono alle entità di creare e alterare informazioni in A o C

89 (Cattivo) esempio Sistema di password in cui le password sono memorizzate in chiaro A insieme di stringhe (password) C = A F = { identità } L = { uguaglianza } S funzioni tipo passwd

90 Password Una password è un’informazione testuale associata ad un’entità che ne conferma l’identità Sequenze di caratteri Esempi: 10 cifre, una stringa di lettere, ecc. Generata a caso, dall’utente, dal computer su input dell’utente Sequenze di parole Esempi: pass-phrases Algoritmi Esempi: challenge-response, one-time passwords

91 Memorizzazione di password
Memorizzate in chiaro Se il file delle password è compromesso, tutte le password sono rivelate File cifrato Deve essere decifrato, la chiave di cifratura è in memoria Alla fine si riconduce al problema precedente ! Memorizzate con funzioni hash one-way Se il file viene letto, l’attaccante deve comunque indovinare le password o invertire la funzione hash

92 Esempio UNIX usa delle funzioni hash Come sistema di autenticazione:
Comprime le password in una stringa di 11 carattery (88 byte) usando una tra 4096 funzioni hash Come sistema di autenticazione: A = { stringhe di <= 8 caratteri } C = { 2 car. hash id || 11 car. hash } F = { 4096 versioni di DES } L = { login, su, … } S = { passwd, nispasswd, passwd+, … }

93 Anatomia dell’attacco
Scopo: trovare a  A tale che: Per qualche f  F, f(a) = c  C c è associata ad un’entità particolare (o a qualsiasi entità) Due modi per vedere se a soddisfa questi requisiti: Approccio diretto: calcolare f(a) Approccio indiretto: vedere il risultato di l(a) Altro tipo di attacco: mediante il social engineering acquisire informazioni sull’utente e da queste trovare buoni candidati come password

94 Prevenire gli attacchi
Come prevenire questo: Nascondere a, f, o c Previente gli attacchi diretti Esempio: UNIX/Linux shadow password files Nascondono c Bloccare l’accesso a tutte le l  L o al risultato di l(a) L’attaccante non sa se ha indovinato Esempio: disabilitare l’accesso dalla rete, oppure rallentare la risposta

95 Attacchi mediante dizionario
Tentativi mediante una lista D di parole note (dizionario) Off-line: Sapendo f e c, si provano tutti i tentativi g  D finchè la lista non è finita o non si è trovata la password Esempi: crack, john-the-ripper On-line: avere accesso alle funzioni in L e fare i tentativi g fino a che l(g) è vera Esampi: prova a fare login indovinando la password

96 Quanto tempo ? Formula di Anderson:
P probabilità di indovinare una password in uno specificato periodo di tempo G numero di tentativi nell’unità di tempo T numero di unità di tempo N numero di password possibili (|A|) Allora P ≥ TG/N

97 Esempio Scopo Soluzione
Password composte da un insieme di 96 caratteri 104 tentativi al secondo Probabilità di successo pari a 0.5 su 365 giorni Qual è la lunghezza minima s della password? Soluzione N ≥ TG/P = (365246060)104/0.5 = 6.311011 Scegliere s tale che sj=0 96j ≥ N Perciò s ≥ 6

98 Modi di selezionare le password
Password generate completamente a caso Vantaggio: ogni password ha la stessa probabilità di essere generata Svantaggio: non sono ricordabili Password “pronunciabili” Password selezionate dall’utente

99 Password Pronunciabili
Generare fonemi a caso Il fonema è un’unità fonetica, per esempio consonante+vocale, v+c, c+v+c, v+c+v Esempi: helgoret, juttelon SI przbqxdfl, zxrptglfn NO Problema: sono troppo poche

100 Selezione da parte dell’utente
Problema: si è portati a scegliere password semplici (da ricordare) Basati sul nomi di account, sul proprio nome e cognome, sul nome del computer, sui luoghi Parole di dizionario (anche al contrario, con maiuscole/minuscole invertite, caratteri di controllo, “elite-speak”, coniugazioni o declinazioni di parole, parolacce, Torah/Bibbia/Corano/… ) Troppo corte, solo cifre, solo lettere Targhe di macchine, acronimi, social security numbers Caratteristiche personali (nomi di animali, soprannomi, caratteristiche di lavoro, ecc.)

101 Buone password “LlMm*2^Ap” “OoHeO/FSK” Non sempre sono buone
Names of members of 2 families “OoHeO/FSK” Second letter of each word of length 4 or more in third line of third verse of Star-Spangled Banner, followed by “/”, followed by author’s initials Non sempre sono buone “DMC/MHmh” non va bene a Dartmouth (“Dartmouth Medical Center/Mary Hitchcock memorial hospital”), in altri posti è OK Adesso sono cattive password ? 

102 Controllo proattivo delle password
Analizza le password Da invocare sempre Può scoprire e rifiutare password cattive Discrimina in base all’utente e al sito Fa pattern matching sulle parole Deve eseguire sottoprogrammi e usare i risultati Spell checker Facile da integrare con i sistemi di modifica password

103 Esempio: OPUS Scopo: controllare le password in modo veloce su un dizionario di grandi dimensioni Calcolare per ogni parola del dizionario k funzioni hash differenti h1, …, hk, ognuna delle quali un valore minore di n calcolare h1, …, hk per tutte le parole del dizionario e da questo generare un vettore di n bit D Per controllare una parola, generare il vettore di bit e vedere se tutti i bit 1 della parola corrispondono ai bit 1 di D in caso positivo, c’è una certa probabilità che la parola appartiene al dizionario in caso negativo, non appartiene al dizionario

104 Esempio: passwd+ Fornisce un linguaggio per descrivere i controlli proattivi test length(“$p”) < 6 se la password ha meno di 6 caratteri, rifiutala test infile(“/usr/dict/words”, “$p”) se la password fa parte del file /usr/dict/words, rifiutala test !inprog(“spell”, “$p”, “$p”) se la password non viene corretta dal correttore ortografico, rifiutala (perché è una parola scritta correttamente)

105 Salting Scopo: rallentare gli attacchi basati sul dizionario
Metodo: perturbare le funzioni hash con un parametro “salt” Il “salt” controlla quale funzione hash è usata Il “salt” è diverso per ogni password Con n possibili password hashes, e quindi n valori di “salt”, l’attaccante deve provare n valori hash per ogni tentativo di password

106 Esempi Metodo di base in UNIX Metodi alternative
Usare DES per cifrare il messaggio nullo con la password come chiave Perturbare la tabella E di DES in uno tra 4096 modi possibili i 12 bit del salt invertono le entrate 1–11 con le entrate 25–36 Metodi alternative Usare il salt come prima parte dell’input della funzione hash

107 Tentativi attraverso L
Non si possono prevenire del tutto Altrimenti nemmeno gli utenti legittimi potrebbero log in Però si possono rallentare Backoff esponenziale Disconnessione dopo n tentativi falliti Disabilitazione dopo n tentativi falliti Attenzione agli account di amministratore! Jailing Farlo entrare, ma in un ambiente ristretto e così magari viene identificato

108 Password Aging Forzare gli utenti a cambiare la password dopo un certo periodo Dopo un certo lasso di tempo la password potrebbe essere stata violata Come si forzano gli utenti a non riutilizzare le password? Memorizzare le password precedenti Bloccare i cambiamenti per un tempo minimo Dare agli utenti tempo sufficiente a trovare buone password Non forzarli a cambiarla prima del login Avvisarli prima della scadenza

109 Challenge-Response L’utente e il sistema condividono una funzione segreta f (in pratica, f è una funzione nota con parametri incogniti come una chiave crittografica) request to authenticate user system random message r (the challenge) user system f(r) (the response) user system

110 Pass Algorithms Challenge-response con una funzione segreta f Esempio:
La Challenge è una stringa casuale: “abcdefg”, “ageksido” La Response è una funzione della stringa: ad esempio una lettera sì, una no a partire dalla seconda: “bdf”, “gkio” Si possono usare modi diversi a seconda della sicurezza ad esempio in un’area poco sicura la risposta potrebbe aggiungere (in posizioni concordate) caratteri a caso: “xbydmfg”

111 One-Time Password Password che possono essere usate solo una volta
Dopo l’uso sono immediatamente invalidate Meccanismo Challenge-response Challenge è il numero progressivo di autenticazioni; response è la password per quel particolare numero Problemi Sincronizzazione tra l’utente e il sistema Generazione di buone password casuali Distribuzione delle password

112 h(k) = k1, h(k1) = k2, …, h(kn–1) = kn
S/Key Schema di One-time password basato sull’idea di Lamport h funzione hash one-way (ad esempio MD5 o SHA-1) L’utente sceglie un valore iniziale k Il sistema calcola: h(k) = k1, h(k1) = k2, …, h(kn–1) = kn Le password sono in ordine inverso: p1 = kn, p2 = kn–1, …, pn–1 = k2, pn = k1

113 Protocollo S/Key Il sistema si memorizza
il massimo numero di autenticazioni n, il numero della prossima autenticazione i, l’ultima password correttamente fornita pi–1. { name } user system { i } user system { pi } user system Il sistema calcola h(pi) = h(kn–i+1) = kn–i = pi–1. Se corrisponde con quello che è memorizzato, sostituisce pi–1 con pi e incrementa i.

114 Supporto Hardware Basato sui Token Basato sul tempo
Un dispositivo fisico usato per calcolare la risposta al challenge Può cifrare o calcolare una funzione hash della challenge Può richiedere un PIN all’utente Basato sul tempo Ogni tot di tempo mostra un numero diverso Il sistema quale numero sarà mostrato L’utente immette il numero e la password

115 Biometria Misure automatiche di caratteristiche biologiche o di comportamento che identificano una persona Impronte digitali: tecniche ottiche o elettriche L’impronta è tradotta in un grafo, che poi è ricercato in un database Le misure sono imprecise, perciò sono necessari algoritmi di matching approssimati Voce: verifica/riconoscimento del parlante Verifica: si usano tecniche statistiche per verificare se il parlante è veramente lui (dipendono dall’utente) Riconoscimento: riconosce una parola o una frase particolari, tipo password vocale (indipendenti dall’utente)

116 Altre caratteristiche
Si possono usare altre caratteristiche Occhi: pattern unici nell’iride trova il pattern e lo confronta con quelle memorizzate, determinando se le differenze sono casuali un’alternativa è usare test statistici di correlazione Faccia: immagine o caratteristiche specifiche come la distanza dal naso al mento difficoltà possono sorgere dai capelli, luce, posizione, ecc. Dinamica di digitazione (forse è univoca) Intervallo di battitura tasti, pressione, durata del colpo Si usano test statistici

117 Attenzione, però Ci sono molti modi per frodare questi sistemi !
Verificare che gli strumenti biometrici siano accurati nell’ambiente in cui sono usati! Accertarsi che la trasmissione dei dati al sistema sia corretta e a prova di manomissione

118 Luogo/situazione Se si sa dove si dovrebbe trovare un utente, l’identità può essere verificata controllando se la persona è realmente lì E’ richiesto un hardware speciale per localizzare gli utenti Il GPS fornisce una “location signature” della posizione dell’entità Gli host usano gli LSS (location signature sensor) per localizzare il punto di accesso

119 Metodi multipli Esempio: il “dove sei” richiede all’utente di avere un dispositivo GPS, perciò è anche un metodo “cosa hai” Si possono assegnare più modi di autenticazione Se un utente deve compiere un’azione più importante si deve autenticare in modo più stringente

120 PAM Idea: se un programma ha bisogno di far autenticare un utente, chiama la routine pam_authenticate Accede ad un file di configurazione nella cartella /etc/pam_d avente lo stesso nome del programma Il file contiene i moduli di autenticazione che devono essere chiamati e come usare i risultati che restituiscono sufficient: ha successo se il modulo ha esito positivo required: fallisce se il metodo ha esito negativo, ma tutti i metodi precedenti sono comunque chiamati requisite: come required, ma non controlla gli altri moduli optional: invocato solo se tutti gli altri falliscono

121 Esempio di file PAM Quando si lancia ftp:
auth sufficient /usr/lib/pam_ftp.so auth required /usr/lib/pam_unix_auth.so use_first_pass auth required /usr/lib/pam_listfile.so onerr=succeed \ item=user sense=deny file=/etc/ftpusers Quando si lancia ftp: Se l’utente è “anonymous”, è accettate; altrimenti poni PAM_AUTHTOK = password, PAM_RUSER = nome e fallisci Ora controlla che la password in PAM_AUTHTOK appartiene a quella dell’utente in PAM_RUSER; in caso contrario fallisci Infine se l’utente in PAM_RUSER è presente in /etc/ftpusers (utenti che non si possono usare per ftp) fallisci altrimenti accetta

122 Studio sulle password (Stallings, 2003)
Collected nearly 14,000 encrypted passwords Strategia: ● Try user info variants ● Try words from 60,000 entry dictionary ● Try permutations of above (0-O, 1-L, etc.) ● Try various capitalization of above ● Table Next slide

123


Scaricare ppt "Sicurezza dei sistemi informatici"

Presentazioni simili


Annunci Google