Rapport

Transcription

Rapport
Rapport du projet SELinux
Prof Gérald Litzistorf – hepia – octobre 2014 – www.tdeig.ch
§1
Chapitre scientifique
§1.1
Modèles de sécurité des systèmes d’information
La majorité des systèmes d’information publics et privés (postes de travail, serveurs DNS – web – base
de données, proxy, firewall, …) reposent sur un composant central qui est le système d’exploitation
(Windows, Linux, …Android). Ce type de logiciels possède une architecture logicielle très ancienne
basée sur un noyau (NT / Linux kernel) qui offre la notion d’entité d’exécution (thread & processus)
indépendante à ses utilisateurs.
Afin d’assurer un cloisonnement entre ces divers processus (applications, services DNS – web, …),
chacun reçoit un jeton d’accès hérité lors de son lancement ; ainsi sur un poste Windows divers services
(DHCP, DNS, …) sont démarrés lors du boot avec le compte Système avant qu’un utilisateur puisse
s’authentifier avec un compte utilisateur.
Le modèle de sécurité de ces systèmes d’exploitation repose sur un Reference Monitor et un accès
discrétionnaire DAC (Discretionary Access Control) : chaque ressource (fichier, …) possède une liste
blanche des utilisateurs (groupes) autorisés à lire – écrire – exécuter ce fichier. L’accès à la ressource
est obtenu si le processus hérite d’un jeton approprié qui indique l’identifiant de l’utilisateur (ou groupe).
Etant donné que ces systèmes basent leur sécurité sur la notion de compte utilisateur, la méthodologie
d’attaque consiste souvent à exploiter une faille du système afin d’obtenir un accès avec les droits
maximum. Dans le cas du ver Blaster, le code malveillant s’attaquait à un système Windows XP SP1,
présentant une faille de type buffer overflow in Microsoft's Remote Procedure Call (RPC) implementation,
afin d’obtenir un remote shell avec les droits Système via le port TCP 4444. Outre la mise à disposition
d’un correctif, la réponse sécuritaire a été d’activer un personnal firewall comme outil de défense
périmétrique dans Windows XP SP2.
L’exemple ci-dessus illustre le principe de défense en profondeur : si le premier rempart (personnal
firewall) tombe ; un autre dispositif (le correctif dans l’exemple) protège le système de cette intrusion.
Pour protéger au mieux un système, il convient d’analyser les risques potentiels ainsi que les besoins
opérationnels. Les figures ci-dessous illustrent la problématique du poste de travail en entreprise (source
SecureWave)
Principaux risques
Protection de type liste noire
(liste d’exclusion)
Protection de type liste blanche
(liste d’inclusion)
Parmi les codes (virus, vers, …) malveillants (malware), distinguons les anciens connus de votre
antivirus et les autres (celui qui a été créé la nuit passée) potentiellement dangereux car inconnus (zero
day exploit) des listes noires.
Seule une politique de sécurité basée sur un modèle de liste blanche permet d’obtenir le résultat
escompté à savoir que l’utilisateur ne peut exécuter que les applications autorisées. On parle aussi de
modèle comportementale.
2014
© www.tdeig.ch
Page 1
§1.2
Contexte et cadre général du projet
SELinux constitue aujourd’hui le nec plus ultra pour sécuriser efficacement des systèmes Linux. Selon
les auteurs du livre SELinux by Example : SELinux represents the culmination of nearly 40 years of
operating system security research.
SELinux implémente divers modèles de sécurité (MAC, RBAC, Bell-LaPadulla) qui doivent être maîtrisés
pour améliorer le niveau de sécurité des serveurs actuels. Trop de personnes estiment que SELinux est
trop complexe par manque de connaissance. Désactiver SELinux aujourd’hui sur un serveur revient à ne
pas être capable de régler la hauteur de son appuie-tête en voiture.
Les premiers travaux d’étudiants réalisés avant ce projet montrent un indéniable gain sécuritaire et des
difficultés à en maîtriser tous les aspects. Chaque paquetage d’une distribution Linux est livré avec des
règles SELinux qui peuvent parfois poser problème.
L’essentiel du travail va donc consister à définir des scénarios précis pour proposer la bonne
méthodologie utilisant les bons outils parmi les très nombreux proposés.
Parmi ces scénarios, nous comptons étudier comment SElinux peut améliorer le cloisonnement entre
machines virtuelles. Nous proposons de mettre en place une défense en profondeur très robuste pour
des architectures virtualisées basées sur Linux-KVM critiques au niveau de la sécurité.
Face à une technologie SELinux complexe et éprouvée, nous estimons que son potentiel de sécurisation
doit être accessible à notre économie ; ce processus (projet) exige les ressources (temps) nécessaires
pour en comprendre les principaux éléments et offrir des formations spécifiques.
Cette forme d’innovation convient parfaitement à une HES.
§1.3
Résultats obtenus avec description des livrables
Ce projet financé par le RCSO-TIC est de type exploratoire ; il a donc pour objectif l’acquisition de
compétences dans le contexte décrit au §1.2
Tous les documents mentionnés se trouvent dans http://www.tdeig.ch/SELinux/
La liste ci-dessous est classée par ordre de complexité croissante
a) Travail de Bachelor Security Enhanced for Linux de Khaled Basbous
Premiers travaux effectués au labo
Le domaine est complexe et justifie un financement
Les divers mécanismes offerts par SELinux peuvent augmenter le niveau de sécurité d’un système sur le
principe de la défense en profondeur
http://www.tdeig.ch/linux/Basbous_RTB.pdf
b) Résumé des fonctionnalités et des outils
Une fois les concepts théoriques acquis, les outils permettent des mises en œuvre spécifiques
La multitude des outils surprend au début
http://www.tdeig.ch/SELinux/b_Fonctionality_admin_tools.pdf
c) Contenu et organisation de la formation Red Hat
Offre de formation d’un leader du monde Open Source ; l’offre est très riche
http://www.tdeig.ch/SELinux/c_Formation_RedHat.pdf
d) Cours Bachelor 3ème hepia
Premier résultat destiné aux étudiants ITI
Quels sont les principaux mécanismes ?
A quoi servent-ils ?
Cohabitation de SELinux avec le modèle de sécurité de base de Linux
http://www.tdeig.ch/SELinux/d_Slides.pdf
e) Labo Bachelor 3ème hepia
Complément pratique au cours précédent
Plusieurs itérations ont été nécessaires pour atteindre la perfection ?
http://www.tdeig.ch/SELinux/e_Labo.pdf
2014
© www.tdeig.ch
Page 2
f)
Travail de Bachelor SELinux de Kevin Carli – écriture d’un policy module
SELinux est le fruit de quelques spécialistes (Walsh, …)
A chaque version de Fedora, il protège encore mieux le système bien qu’il ne puisse pas offrir une sécurité
à 100%
Il se concentre donc sur les risques jugés majeurs tels que la sécurisation d’un serveur (DNS, web, …)
accessible depuis internet.
Ainsi les packages que l’ingénieur choisit puis configure contiennent généralement les règles SELinux.
L’objectif de ce travail de Bachelor est d’écrire un module de sécurité comme devrait le faire un éditeur de
logiciel souhaitant activer les mécanismes SELinux
http://www.tdeig.ch/linux/Carli_RTB.pdf
g) Cheminement d’investigation pour compiler et installer un service selon les bonnes pratiques
Ce document démontre que le procédé de sécurisation d'un service doit être réalisé avec minutie.
Le cloisonnement du service doit être testé avec des scénarios de « pentesting » pour s'assurer que la
configuration réalisée est bien faite.
Ce document présente la méthodologie utilisée qui a conduit à définir les bonnes pratiques.
http://www.tdeig.ch/SELinux/g_Best_Practice_Secure_Software.pdf
h) Labo zero-day (adaptation pour Fedora 18) pour Master
Ce document est certainement le plus intéressant puisqu’il démontre que la mise en œuvre correcte de
SELinux permet de contrer une attaque de type zero-day
Nous nous basons sur une attaque réelle pour montrer la puissance de SELinux tout en rappelant que seul
un modèle inclusif (white-list) peut faire face à ce type fréquent d’attaque.
http://www.tdeig.ch/SELinux/h_Lab_ZeroDay.pdf
i)
Sandboxing KVM/LXC
Les architectures virtualisées avec ESXi (VMware) ou KVM (Linux) ont bonne réputation dans le
cloisonnement des machines virtuelles
Principaux risques
VM Hopping :
VM Hostile tente
d’accéder à l’espace RAM
de la VM Victime
VM Escape :
VM Hostile tente de
prendre le contrôle de
l’hyperviseur
Dans un modèle de défense en profondeur, quels sont les mécanismes SELinux garantissant ce
cloisonnement
http://www.tdeig.ch/SELinux/i_Sandboxing.pdf
j)
Isolation des machines virtuelles avec sVirt
Même problématique que i)
http://www.tdeig.ch/SELinux/j_VMs_Isolation.pdf
k) Evolution et changements entre Fedora 16 et Fedora 19
Chaque version de Fedora devrait être mieux protégée par SELinux
Quelles sont les principaux changements ?
http://www.tdeig.ch/SELinux/k_F16vsF19.pdf
l)
Analyse sécuritaire OpenStack
En complément au TM de Benoît Chalut http://www.tdeig.ch/linux/Chalut_RTM.pdf, nous avons réalisé une
analyse des risques du monde Cloud. Cette étude a guidé et focalisé nos efforts de sécurisation sur les
nœuds hyperviseurs d'OpenStack.
La validation du cloisonnement des VMs a été réalisée selon les bonnes pratiques défini en g).
http://www.tdeig.ch/SELinux/l_Analyse_securitaire_Openstack.pdf
m) Liens utiles
http://www.tdeig.ch/linux/liens_KVM.pdf
2014
© www.tdeig.ch
Page 3
§1.4
Volet économique & valorisation
Des personnes de cinq entreprises de Suisse romande ont été contactées.
Le résultat a été très décevant au point que l’assistant qui pensait initialement effectuer son TM dans le
domaine a préféré choisir un domaine de l’informatique plus porteur en termes d’employabilité en Suisse
romande.
Proches du profil ingénieur des systèmes d’information, je n’ai pas assez investigué parmi les entreprises
qui développent du logiciel compatible Linux et qui doivent garantir à leurs clients le respect des bonnes
pratiques sécuritaires (dont Linux fait partie).
§1.5
Valorisation au sein de la HESSO
Une journée de formation destinée au personnel HESSO a été organisée le 4 juin 2014 à hepia.
 4 personnes de HEIG-VD ont participé (Prof. Junod – Pasini, Assistant Rinaldini - Wehrli)
 Prof Buntsch (EIA-FR) et prof Ertz (HEIG-VD) ont reçu les supports pédagogiques car ils ne
pouvaient pas participer
§1.6
Volet pédagogique
Parmi les motifs évoqués dans la demande de financement figurait le constat que la technologie SELinux
n’était pas enseignée dans notre HESSO en 2011-2012.
Nos étudiants Bachelor ont donc été les premiers à utiliser et tester ce matériel pédagogique développé
dans le cadre de ce projet.
Le §1.3 montre une forte interaction entre ce financement et les activités du labo
 Deux travaux de Bachelor  voir §1.3a) et §1.3f)
 Des supports d’enseignement (niveaux Bachelor & Master)  voir §1.3d), §1.3e) et §1.3h)
 Un complément d’étude à TM  voir §1.3l)
 Des compléments d’étude à la virtualisation  voir §1.3i) et §1.3j)
§1.7
Conclusion
SELinux constitue un ensemble de dispositifs sécuritaires puissants et éprouvés adaptés aux besoins de
l’économie.
Basés sur un modèle inclusif (white-list), ils permettent de mettre en œuvre une excellente défense en
profondeur sur des serveurs jugés critiques au niveau sécuritaire.
Le lecteur devrait être persuadé qu’il est plus efficace d’investir dans des modèles inclusifs que dans les
traditionnels modèles exclusifs comme un antivirus.
L’attaque de type zeroday, dont seul le hacher connait le mode opérationnel, ne peut être contrée avec les
modèles exclusifs qui ne connaissent que les attaques anciennes.
En 2012 en typant SELinux dans google, la première proposition était disabled ; 2 ans plus tard elle arrive
en 3ème position derrière centos et status.
SELinux apporte donc un réel gain sécuritaire au prix d’une certaine complexité.
Puissent les livrables produits dans ce projet aider certains à ne pas désactiver SELinux !
Voir des illustrations dans §1.3 e) Blocages
§2
Chapitre administratif
§2.1
Ressources engagées
Khaled Basbous, qui a effectué son travail de Bachelor au laboratoire (voir §1.3 a), a été engagé comme
assistant du 1 sept 2012 au 31 août 2014 sur ce projet en plus d’activité d’encadrement pédagogique.
§2.2
Calendrier
Prévu initialement sur une période de 12 mois à partir de sept 2012, ce projet a été étalé sur 2 ans pendant
lesquelles Khaled Basbous a suivi le MSE.
2014
© www.tdeig.ch
Page 4