SlideShare une entreprise Scribd logo
1  sur  71
SELinux
Security Enhancement Linux
Cos’è SELinux
Cos’è SELinux
• Un progetto della National Security Agency
Cos’è SELinux
• Un progetto della National Security Agency
• Un modulo del framework Linux Security
Module
Cos’è SELinux
• Un progetto della National Security Agency
• Un modulo del framework Linux Security
Module
• L’implementazione di un Flexible Mandatory
Access Control
Cos’è SELinux
• Un progetto della National Security Agency
Cos’è SELinux
• Un progetto della National Security Agency
• Il cui scopo era quello di dimostrare
l’efficienza di un sistema a controllo
d’accesso vincolato
Cos’è SELinux
• Un progetto della National Security Agency
• Il cui scopo era quello di dimostrare
l’efficienza di un sistema a controllo
d’accesso vincolato
• Ha poi lasciato ai vari contributori il
compito di continuare a supportarlo
Cos’è SELinux
• Un progetto della National Security Agency
• Un modulo del framework Linux Security
Module
Cos’è SELinux
• Un progetto della National Security Agency
• Un modulo del framework Linux Security
Module
• È un framework che consente di inserire a
livello kernel dei moduli per il controllo
degli accessi
Cos’è SELinux
• Un progetto della National Security Agency
• Un modulo del framework Linux Security
Module
• L’implementazione di un Flexible Mandatory
Access Control
Cos’è SELinux
• Un progetto della National Security Agency
• Un modulo del framework Linux Security
Module
• L’implementazione di un Flexible Mandatory
Access Control
• Per comprendere meglio cos’è partiamo
prima dal Discretionary Access Control
Discretionary Access
Control
Discretionary Access
Control
• È il sistema del controllo degli accessi
classico di Linux
-rwxr-x--x utente gruppo
Discretionary Access
Control
• È il sistema del controllo degli accessi
classico di Linux
-rwxr-x--x utente gruppo
• Perché non va bene?
Discretionary Access
Control
• È il sistema del controllo degli accessi
classico di Linux
-rwxr-x--x utente gruppo
• Perché non va bene?
• Perché è Discretionary
Discretionary Access
Control
• È il sistema del controllo degli accessi
classico di Linux
-rwxr-x--x utente gruppo
• Perché non va bene?
• Perché è Discretionary
• Come fare allora?
Discretionary Access
Control
• È il sistema del controllo degli accessi
classico di Linux
-rwxr-x--x utente gruppo
• Perché non va bene?
• Perché è Discretionary
• Come fare allora?
• Ci viene in aiuto il concetto di Reference
Monitor
Reference Monitor
Reference Monitor
• Concetto di una macchina astratta che si
interpone agli oggetti controllandone gli
accessi in base ai soggetti
Reference Monitor
• Concetto di una macchina astratta che si
interpone agli oggetti controllandone gli
accessi in base ai soggetti
• ReferenceValidation Mechanism
Reference Monitor
• Concetto di una macchina astratta che si
interpone agli oggetti controllandone gli
accessi in base ai soggetti
• ReferenceValidation Mechanism
• Modello di implementazione hardware e
software del concetto di Reference
Monitor con le seguenti caratteristiche:
Reference Monitor
• Concetto di una macchina astratta che si
interpone agli oggetti controllandone gli
accessi in base ai soggetti
• ReferenceValidation Mechanism
• Modello di implementazione hardware e
software del concetto di Reference
Monitor con le seguenti caratteristiche:
- a prova di manomissione
Reference Monitor
• Concetto di una macchina astratta che si
interpone agli oggetti controllandone gli
accessi in base ai soggetti
• ReferenceValidation Mechanism
• Modello di implementazione hardware e
software del concetto di Reference
Monitor con le seguenti caratteristiche:
- a prova di manomissione
- sempre interrogato
Reference Monitor
• Concetto di una macchina astratta che si
interpone agli oggetti controllandone gli
accessi in base ai soggetti
• ReferenceValidation Mechanism
• Modello di implementazione hardware e
software del concetto di Reference
Monitor con le seguenti caratteristiche:
- a prova di manomissione
- sempre interrogato
- verificabile
Mandatory Access
Control
Mandatory Access
Control
• Implementazione del ReferenceValidator
Mechanism interamente a livello software
Mandatory Access
Control
• Implementazione del ReferenceValidator
Mechanism interamente a livello software
• Basa la sua politica di controllo degli accessi
su un mandato predefinito
Mandatory Access
Control
• Implementazione del ReferenceValidator
Mechanism interamente a livello software
• Basa la sua politica di controllo degli accessi
su un mandato predefinito
offrendo così una maggiore solidità
Mandatory Access
Control
• Implementazione del ReferenceValidator
Mechanism interamente a livello software
• Basa la sua politica di controllo degli accessi
su un mandato predefinito
offrendo così una maggiore solidità
a discapito della flessibilità
Flexible Mandatory
Access Control
Flexible Mandatory
Access Control
• È quindi un controllo degli accessi che
anch’esso si basa su un mandato, ma questo
mandato è flessibile ed adattabile
Flexible Mandatory
Access Control
• È quindi un controllo degli accessi che
anch’esso si basa su un mandato, ma questo
mandato è flessibile ed adattabile
• Come lo realizza SELinux?
I moduli di SELinux
I moduli di SELinux
• Tra i moduli che compongono SELinux il più
importante è il Type Enforcement
I moduli di SELinux
• Tra i moduli che compongono SELinux il più
importante è il Type Enforcement
• Seguito dal Role-Based Access Control
I moduli di SELinux
• Tra i moduli che compongono SELinux il più
importante è il Type Enforcement
• Seguito dal Role-Based Access Control
• Questi due moduli consento di assegnare un
contesto di sicurezza a soggetti (processi) e
oggetti (risorse)
Security Context
Security Context
E’ costituito da tre campi principali:
utente:ruolo:tipo
Security Context
• utente: definisce l’utente SELinux
E’ costituito da tre campi principali:
utente:ruolo:tipo
Security Context
• utente: definisce l’utente SELinux
• ruolo: definisce il ruolo dell’utente
E’ costituito da tre campi principali:
utente:ruolo:tipo
Security Context
• utente: definisce l’utente SELinux
• ruolo: definisce il ruolo dell’utente
• tipo: assume più significati in base a cosa è
assegnato.
E’ costituito da tre campi principali:
utente:ruolo:tipo
Security Context
• utente: definisce l’utente SELinux
• ruolo: definisce il ruolo dell’utente
• tipo: assume più significati in base a cosa è
assegnato.
- soggetto: dominio del soggetto
E’ costituito da tre campi principali:
utente:ruolo:tipo
Security Context
• utente: definisce l’utente SELinux
• ruolo: definisce il ruolo dell’utente
• tipo: assume più significati in base a cosa è
assegnato.
- soggetto: dominio del soggetto
- oggetto: tipo dell’oggetto
E’ costituito da tre campi principali:
utente:ruolo:tipo
Policy
Policy
• Definisce i permessi d’accesso alle risorse
Policy
• Definisce i permessi d’accesso alle risorse
• Ne consente una elevata personalizzazione
grazie anche ad una loro maggiore
granularità
Policy
• Definisce i permessi d’accesso alle risorse
• Ne consente una elevata personalizzazione
grazie anche ad una loro maggiore
granularità
• E’ costituita da regole che associano un
dominio ad un tipo ed indicano quali accessi
sono consentiti
Targeted Policy
Targeted Policy
• E’ la policy attiva di default in Fedora
Targeted Policy
• E’ la policy attiva di default in Fedora
• Vincola i permessi solamente ad alcuni
servizi “targeted”
Targeted Policy
• E’ la policy attiva di default in Fedora
• Vincola i permessi solamente ad alcuni
servizi “targeted”
• Lascia all’utente un accesso completo al
sistema
Domande?
Domande?
Vediamo qualche esempio.
E per gli altri
programmi?
• È possibile integrare le policy di default
E per gli altri
programmi?
• È possibile integrare le policy di default
aggiungendo delle regole che specificano
quali accessi sono permessi a quale risorse
E per gli altri
programmi?
Come specificare le
regole
• Si usa il predicato allow seguito da:
Come specificare le
regole
• Si usa il predicato allow seguito da:
• tipo sorgente
Come specificare le
regole
• Si usa il predicato allow seguito da:
• tipo sorgente
• tipo destinatario
Come specificare le
regole
• Si usa il predicato allow seguito da:
• tipo sorgente
• tipo destinatario
• classe dell’oggetto: definisce i tipi di accessi
consentiti
Come specificare le
regole
• Si usa il predicato allow seguito da:
• tipo sorgente
• tipo destinatario
• classe dell’oggetto: definisce i tipi di accessi
consentiti
• permessi: seleziona gli accessi consentiti
Come specificare le
regole
• Si usa il predicato allow seguito da:
• tipo sorgente
• tipo destinatario
• classe dell’oggetto: definisce i tipi di accessi
consentiti
• permessi: seleziona gli accessi consentiti
allow user_t bin_t : file {read execute getattr}
Come specificare le
regole
Esempio
Conclusioni
SELinux offre una buona protezione contro gli
attacchi “0-day”
Conclusioni
SELinux offre una buona protezione contro gli
attacchi “0-day”
Più cose insolite si vogliono permettere di far
fare ai programmi più permessi si ritroverà
l’attaccante nel momento in cui è riuscito a
ottenere il controllo del flusso d’esecuzione
Conclusioni
SELinux offre una buona protezione contro gli
attacchi “0-day”
Più cose insolite si vogliono permettere di far
fare ai programmi più permessi si ritroverà
l’attaccante nel momento in cui è riuscito a
ottenere il controllo del flusso d’esecuzione
Occorre raggiungere un buon compromesso
tra “usabilità” e sicurezza.
Conclusioni
Domande?

Contenu connexe

En vedette

Monitoraggio di mac address in lan
Monitoraggio di mac address in lanMonitoraggio di mac address in lan
Monitoraggio di mac address in lanCe.Se.N.A. Security
 
Intercettazioni: guida alle nuove norme per i provider
Intercettazioni: guida alle nuove norme per i providerIntercettazioni: guida alle nuove norme per i provider
Intercettazioni: guida alle nuove norme per i providerBabel
 
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...Babel
 
Sophos Complete Security: arte e scienza della sicurezza
Sophos Complete Security: arte e scienza della sicurezzaSophos Complete Security: arte e scienza della sicurezza
Sophos Complete Security: arte e scienza della sicurezzaBabel
 
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...Ce.Se.N.A. Security
 

En vedette (10)

Ip sec vulnerability
Ip sec vulnerabilityIp sec vulnerability
Ip sec vulnerability
 
Rainbow tables
Rainbow tablesRainbow tables
Rainbow tables
 
Monitoraggio di mac address in lan
Monitoraggio di mac address in lanMonitoraggio di mac address in lan
Monitoraggio di mac address in lan
 
Insider attack
Insider attackInsider attack
Insider attack
 
Iena
IenaIena
Iena
 
Intercettazioni: guida alle nuove norme per i provider
Intercettazioni: guida alle nuove norme per i providerIntercettazioni: guida alle nuove norme per i provider
Intercettazioni: guida alle nuove norme per i provider
 
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...
L’innovazione a difesa della tradizione: il caso dell’Archivio Storico della ...
 
Sophos Complete Security: arte e scienza della sicurezza
Sophos Complete Security: arte e scienza della sicurezzaSophos Complete Security: arte e scienza della sicurezza
Sophos Complete Security: arte e scienza della sicurezza
 
Network monitoring tramite snmp
Network monitoring tramite snmpNetwork monitoring tramite snmp
Network monitoring tramite snmp
 
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
 

Similaire à SELinux - overview

SUE AGILE Framework (Italiano)
SUE AGILE Framework (Italiano)SUE AGILE Framework (Italiano)
SUE AGILE Framework (Italiano)Sabino Labarile
 
BackBox Linux: Simulazione di un Penetration Test
BackBox Linux: Simulazione di un Penetration TestBackBox Linux: Simulazione di un Penetration Test
BackBox Linux: Simulazione di un Penetration TestAndrea Draghetti
 
Linux Day 2018 Roma - Web Application Penetration Test (WAPT) con Linux
Linux Day 2018 Roma - Web Application Penetration Test (WAPT) con LinuxLinux Day 2018 Roma - Web Application Penetration Test (WAPT) con Linux
Linux Day 2018 Roma - Web Application Penetration Test (WAPT) con LinuxSimone Onofri
 
Cuckoo Sandbox: Automated malware analysis
Cuckoo Sandbox: Automated malware analysisCuckoo Sandbox: Automated malware analysis
Cuckoo Sandbox: Automated malware analysisjekil
 
Corso di Versioning, Configuration & Document Management
Corso di Versioning, Configuration & Document ManagementCorso di Versioning, Configuration & Document Management
Corso di Versioning, Configuration & Document ManagementSalvatore Cordiano
 
Cert04 70-484 - essentials of developing windows store apps
Cert04   70-484 - essentials of developing windows store appsCert04   70-484 - essentials of developing windows store apps
Cert04 70-484 - essentials of developing windows store appsDotNetCampus
 
Service Fabric: la potenza dei micro servizi
Service Fabric:  la potenza dei micro serviziService Fabric:  la potenza dei micro servizi
Service Fabric: la potenza dei micro serviziMassimo Bonanni
 
Kubernetes e bello, sicuro è meglio!
Kubernetes e bello, sicuro è meglio!Kubernetes e bello, sicuro è meglio!
Kubernetes e bello, sicuro è meglio!Giuliano Latini
 
CMS - Analisi Vulnerabilità
CMS - Analisi VulnerabilitàCMS - Analisi Vulnerabilità
CMS - Analisi Vulnerabilitàraffaele_forte
 
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLDTYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLDDotNetCampus
 
Slide typescript - net campus
Slide typescript - net campusSlide typescript - net campus
Slide typescript - net campusDotNetCampus
 
Applicazione di una metofolgia di analisi e valutazione del rischio informatico
Applicazione di una metofolgia di analisi e valutazione del rischio informaticoApplicazione di una metofolgia di analisi e valutazione del rischio informatico
Applicazione di una metofolgia di analisi e valutazione del rischio informaticoFederico Cergol
 
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#DotNetCampus
 
Web Api – The HTTP Way
Web Api – The HTTP WayWeb Api – The HTTP Way
Web Api – The HTTP WayLuca Milan
 
Slide typescript - xe dotnet - Codemotion Rome 2015
Slide typescript - xe dotnet - Codemotion Rome 2015Slide typescript - xe dotnet - Codemotion Rome 2015
Slide typescript - xe dotnet - Codemotion Rome 2015Codemotion
 
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...Par-Tec S.p.A.
 

Similaire à SELinux - overview (20)

SUE AGILE Framework (Italiano)
SUE AGILE Framework (Italiano)SUE AGILE Framework (Italiano)
SUE AGILE Framework (Italiano)
 
BackBox Linux: Simulazione di un Penetration Test
BackBox Linux: Simulazione di un Penetration TestBackBox Linux: Simulazione di un Penetration Test
BackBox Linux: Simulazione di un Penetration Test
 
Linux Day 2018 Roma - Web Application Penetration Test (WAPT) con Linux
Linux Day 2018 Roma - Web Application Penetration Test (WAPT) con LinuxLinux Day 2018 Roma - Web Application Penetration Test (WAPT) con Linux
Linux Day 2018 Roma - Web Application Penetration Test (WAPT) con Linux
 
Anatomia di un progetto open-source
Anatomia di un progetto open-sourceAnatomia di un progetto open-source
Anatomia di un progetto open-source
 
Cuckoo Sandbox: Automated malware analysis
Cuckoo Sandbox: Automated malware analysisCuckoo Sandbox: Automated malware analysis
Cuckoo Sandbox: Automated malware analysis
 
Corso di Versioning, Configuration & Document Management
Corso di Versioning, Configuration & Document ManagementCorso di Versioning, Configuration & Document Management
Corso di Versioning, Configuration & Document Management
 
Fmdp Total System Monitor
Fmdp Total System MonitorFmdp Total System Monitor
Fmdp Total System Monitor
 
Cert04 70-484 - essentials of developing windows store apps
Cert04   70-484 - essentials of developing windows store appsCert04   70-484 - essentials of developing windows store apps
Cert04 70-484 - essentials of developing windows store apps
 
Automotive Security
Automotive SecurityAutomotive Security
Automotive Security
 
Service Fabric: la potenza dei micro servizi
Service Fabric:  la potenza dei micro serviziService Fabric:  la potenza dei micro servizi
Service Fabric: la potenza dei micro servizi
 
Kubernetes e bello, sicuro è meglio!
Kubernetes e bello, sicuro è meglio!Kubernetes e bello, sicuro è meglio!
Kubernetes e bello, sicuro è meglio!
 
CMS - Analisi Vulnerabilità
CMS - Analisi VulnerabilitàCMS - Analisi Vulnerabilità
CMS - Analisi Vulnerabilità
 
Tesi8
Tesi8Tesi8
Tesi8
 
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLDTYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
 
Slide typescript - net campus
Slide typescript - net campusSlide typescript - net campus
Slide typescript - net campus
 
Applicazione di una metofolgia di analisi e valutazione del rischio informatico
Applicazione di una metofolgia di analisi e valutazione del rischio informaticoApplicazione di una metofolgia di analisi e valutazione del rischio informatico
Applicazione di una metofolgia di analisi e valutazione del rischio informatico
 
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
 
Web Api – The HTTP Way
Web Api – The HTTP WayWeb Api – The HTTP Way
Web Api – The HTTP Way
 
Slide typescript - xe dotnet - Codemotion Rome 2015
Slide typescript - xe dotnet - Codemotion Rome 2015Slide typescript - xe dotnet - Codemotion Rome 2015
Slide typescript - xe dotnet - Codemotion Rome 2015
 
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...
Webinar 23 giugno 2022 - Advanced Cluster Security: come si mette davvero al ...
 

Plus de Ce.Se.N.A. Security (16)

Msfpayload/Msfencoder cheatsheet
Msfpayload/Msfencoder cheatsheetMsfpayload/Msfencoder cheatsheet
Msfpayload/Msfencoder cheatsheet
 
ICTF overview
ICTF overviewICTF overview
ICTF overview
 
Anonymous email
Anonymous emailAnonymous email
Anonymous email
 
Hacking reti wireless
Hacking reti wirelessHacking reti wireless
Hacking reti wireless
 
Analisi sulla sicurezza di una autovettura moderna
Analisi sulla sicurezza di una autovettura modernaAnalisi sulla sicurezza di una autovettura moderna
Analisi sulla sicurezza di una autovettura moderna
 
Sicurezza delle reti 802.11
Sicurezza delle reti 802.11Sicurezza delle reti 802.11
Sicurezza delle reti 802.11
 
Monitoraggio di rete con nagios
Monitoraggio di rete con nagiosMonitoraggio di rete con nagios
Monitoraggio di rete con nagios
 
Inoltro di pacchetti ip in sistemi linux
Inoltro di pacchetti ip in sistemi linuxInoltro di pacchetti ip in sistemi linux
Inoltro di pacchetti ip in sistemi linux
 
Crimini informatici e accesso abusivo
Crimini informatici e accesso abusivoCrimini informatici e accesso abusivo
Crimini informatici e accesso abusivo
 
Clonare mac os x
Clonare mac os xClonare mac os x
Clonare mac os x
 
sicurezza e php
sicurezza e phpsicurezza e php
sicurezza e php
 
Sql injection - intro
Sql injection - introSql injection - intro
Sql injection - intro
 
IENA
IENAIENA
IENA
 
BLUETOOTH SECURITY - part2
BLUETOOTH SECURITY - part2BLUETOOTH SECURITY - part2
BLUETOOTH SECURITY - part2
 
BLUETOOTH SECURITY - part1
BLUETOOTH SECURITY - part1BLUETOOTH SECURITY - part1
BLUETOOTH SECURITY - part1
 
FDCC - SCAP - Overview
FDCC - SCAP - OverviewFDCC - SCAP - Overview
FDCC - SCAP - Overview
 

SELinux - overview

  • 3. Cos’è SELinux • Un progetto della National Security Agency
  • 4. Cos’è SELinux • Un progetto della National Security Agency • Un modulo del framework Linux Security Module
  • 5. Cos’è SELinux • Un progetto della National Security Agency • Un modulo del framework Linux Security Module • L’implementazione di un Flexible Mandatory Access Control
  • 6. Cos’è SELinux • Un progetto della National Security Agency
  • 7. Cos’è SELinux • Un progetto della National Security Agency • Il cui scopo era quello di dimostrare l’efficienza di un sistema a controllo d’accesso vincolato
  • 8. Cos’è SELinux • Un progetto della National Security Agency • Il cui scopo era quello di dimostrare l’efficienza di un sistema a controllo d’accesso vincolato • Ha poi lasciato ai vari contributori il compito di continuare a supportarlo
  • 9. Cos’è SELinux • Un progetto della National Security Agency • Un modulo del framework Linux Security Module
  • 10. Cos’è SELinux • Un progetto della National Security Agency • Un modulo del framework Linux Security Module • È un framework che consente di inserire a livello kernel dei moduli per il controllo degli accessi
  • 11. Cos’è SELinux • Un progetto della National Security Agency • Un modulo del framework Linux Security Module • L’implementazione di un Flexible Mandatory Access Control
  • 12. Cos’è SELinux • Un progetto della National Security Agency • Un modulo del framework Linux Security Module • L’implementazione di un Flexible Mandatory Access Control • Per comprendere meglio cos’è partiamo prima dal Discretionary Access Control
  • 14. Discretionary Access Control • È il sistema del controllo degli accessi classico di Linux -rwxr-x--x utente gruppo
  • 15. Discretionary Access Control • È il sistema del controllo degli accessi classico di Linux -rwxr-x--x utente gruppo • Perché non va bene?
  • 16. Discretionary Access Control • È il sistema del controllo degli accessi classico di Linux -rwxr-x--x utente gruppo • Perché non va bene? • Perché è Discretionary
  • 17. Discretionary Access Control • È il sistema del controllo degli accessi classico di Linux -rwxr-x--x utente gruppo • Perché non va bene? • Perché è Discretionary • Come fare allora?
  • 18. Discretionary Access Control • È il sistema del controllo degli accessi classico di Linux -rwxr-x--x utente gruppo • Perché non va bene? • Perché è Discretionary • Come fare allora? • Ci viene in aiuto il concetto di Reference Monitor
  • 20. Reference Monitor • Concetto di una macchina astratta che si interpone agli oggetti controllandone gli accessi in base ai soggetti
  • 21. Reference Monitor • Concetto di una macchina astratta che si interpone agli oggetti controllandone gli accessi in base ai soggetti • ReferenceValidation Mechanism
  • 22. Reference Monitor • Concetto di una macchina astratta che si interpone agli oggetti controllandone gli accessi in base ai soggetti • ReferenceValidation Mechanism • Modello di implementazione hardware e software del concetto di Reference Monitor con le seguenti caratteristiche:
  • 23. Reference Monitor • Concetto di una macchina astratta che si interpone agli oggetti controllandone gli accessi in base ai soggetti • ReferenceValidation Mechanism • Modello di implementazione hardware e software del concetto di Reference Monitor con le seguenti caratteristiche: - a prova di manomissione
  • 24. Reference Monitor • Concetto di una macchina astratta che si interpone agli oggetti controllandone gli accessi in base ai soggetti • ReferenceValidation Mechanism • Modello di implementazione hardware e software del concetto di Reference Monitor con le seguenti caratteristiche: - a prova di manomissione - sempre interrogato
  • 25. Reference Monitor • Concetto di una macchina astratta che si interpone agli oggetti controllandone gli accessi in base ai soggetti • ReferenceValidation Mechanism • Modello di implementazione hardware e software del concetto di Reference Monitor con le seguenti caratteristiche: - a prova di manomissione - sempre interrogato - verificabile
  • 27. Mandatory Access Control • Implementazione del ReferenceValidator Mechanism interamente a livello software
  • 28. Mandatory Access Control • Implementazione del ReferenceValidator Mechanism interamente a livello software • Basa la sua politica di controllo degli accessi su un mandato predefinito
  • 29. Mandatory Access Control • Implementazione del ReferenceValidator Mechanism interamente a livello software • Basa la sua politica di controllo degli accessi su un mandato predefinito offrendo così una maggiore solidità
  • 30. Mandatory Access Control • Implementazione del ReferenceValidator Mechanism interamente a livello software • Basa la sua politica di controllo degli accessi su un mandato predefinito offrendo così una maggiore solidità a discapito della flessibilità
  • 32. Flexible Mandatory Access Control • È quindi un controllo degli accessi che anch’esso si basa su un mandato, ma questo mandato è flessibile ed adattabile
  • 33. Flexible Mandatory Access Control • È quindi un controllo degli accessi che anch’esso si basa su un mandato, ma questo mandato è flessibile ed adattabile • Come lo realizza SELinux?
  • 34. I moduli di SELinux
  • 35. I moduli di SELinux • Tra i moduli che compongono SELinux il più importante è il Type Enforcement
  • 36. I moduli di SELinux • Tra i moduli che compongono SELinux il più importante è il Type Enforcement • Seguito dal Role-Based Access Control
  • 37. I moduli di SELinux • Tra i moduli che compongono SELinux il più importante è il Type Enforcement • Seguito dal Role-Based Access Control • Questi due moduli consento di assegnare un contesto di sicurezza a soggetti (processi) e oggetti (risorse)
  • 39. Security Context E’ costituito da tre campi principali: utente:ruolo:tipo
  • 40. Security Context • utente: definisce l’utente SELinux E’ costituito da tre campi principali: utente:ruolo:tipo
  • 41. Security Context • utente: definisce l’utente SELinux • ruolo: definisce il ruolo dell’utente E’ costituito da tre campi principali: utente:ruolo:tipo
  • 42. Security Context • utente: definisce l’utente SELinux • ruolo: definisce il ruolo dell’utente • tipo: assume più significati in base a cosa è assegnato. E’ costituito da tre campi principali: utente:ruolo:tipo
  • 43. Security Context • utente: definisce l’utente SELinux • ruolo: definisce il ruolo dell’utente • tipo: assume più significati in base a cosa è assegnato. - soggetto: dominio del soggetto E’ costituito da tre campi principali: utente:ruolo:tipo
  • 44. Security Context • utente: definisce l’utente SELinux • ruolo: definisce il ruolo dell’utente • tipo: assume più significati in base a cosa è assegnato. - soggetto: dominio del soggetto - oggetto: tipo dell’oggetto E’ costituito da tre campi principali: utente:ruolo:tipo
  • 46. Policy • Definisce i permessi d’accesso alle risorse
  • 47. Policy • Definisce i permessi d’accesso alle risorse • Ne consente una elevata personalizzazione grazie anche ad una loro maggiore granularità
  • 48. Policy • Definisce i permessi d’accesso alle risorse • Ne consente una elevata personalizzazione grazie anche ad una loro maggiore granularità • E’ costituita da regole che associano un dominio ad un tipo ed indicano quali accessi sono consentiti
  • 50. Targeted Policy • E’ la policy attiva di default in Fedora
  • 51. Targeted Policy • E’ la policy attiva di default in Fedora • Vincola i permessi solamente ad alcuni servizi “targeted”
  • 52. Targeted Policy • E’ la policy attiva di default in Fedora • Vincola i permessi solamente ad alcuni servizi “targeted” • Lascia all’utente un accesso completo al sistema
  • 53.
  • 56. E per gli altri programmi?
  • 57. • È possibile integrare le policy di default E per gli altri programmi?
  • 58. • È possibile integrare le policy di default aggiungendo delle regole che specificano quali accessi sono permessi a quale risorse E per gli altri programmi?
  • 60. • Si usa il predicato allow seguito da: Come specificare le regole
  • 61. • Si usa il predicato allow seguito da: • tipo sorgente Come specificare le regole
  • 62. • Si usa il predicato allow seguito da: • tipo sorgente • tipo destinatario Come specificare le regole
  • 63. • Si usa il predicato allow seguito da: • tipo sorgente • tipo destinatario • classe dell’oggetto: definisce i tipi di accessi consentiti Come specificare le regole
  • 64. • Si usa il predicato allow seguito da: • tipo sorgente • tipo destinatario • classe dell’oggetto: definisce i tipi di accessi consentiti • permessi: seleziona gli accessi consentiti Come specificare le regole
  • 65. • Si usa il predicato allow seguito da: • tipo sorgente • tipo destinatario • classe dell’oggetto: definisce i tipi di accessi consentiti • permessi: seleziona gli accessi consentiti allow user_t bin_t : file {read execute getattr} Come specificare le regole
  • 68. SELinux offre una buona protezione contro gli attacchi “0-day” Conclusioni
  • 69. SELinux offre una buona protezione contro gli attacchi “0-day” Più cose insolite si vogliono permettere di far fare ai programmi più permessi si ritroverà l’attaccante nel momento in cui è riuscito a ottenere il controllo del flusso d’esecuzione Conclusioni
  • 70. SELinux offre una buona protezione contro gli attacchi “0-day” Più cose insolite si vogliono permettere di far fare ai programmi più permessi si ritroverà l’attaccante nel momento in cui è riuscito a ottenere il controllo del flusso d’esecuzione Occorre raggiungere un buon compromesso tra “usabilità” e sicurezza. Conclusioni