s´ecurit´e des syst`emes d’exploitation
TRANSCRIPT
Securite des Systemes d’Exploitation
Frederic Gava
Master ISIDIS, Universite de Paris-Est Creteil
Cours securite du M2 IDIDIS
Plan
1 Introduction
2 Securite de la machine
3 Points d’entrees
4 Outils de Protection
5 Prise de controle
6 Apres la compromission
7 Pour le Plaisir
Plan
1 Introduction
2 Securite de la machine
3 Points d’entrees
4 Outils de Protection
5 Prise de controle
6 Apres la compromission
7 Pour le Plaisir
Plan
1 Introduction
2 Securite de la machine
3 Points d’entrees
4 Outils de Protection
5 Prise de controle
6 Apres la compromission
7 Pour le Plaisir
Plan
1 Introduction
2 Securite de la machine
3 Points d’entrees
4 Outils de Protection
5 Prise de controle
6 Apres la compromission
7 Pour le Plaisir
Plan
1 Introduction
2 Securite de la machine
3 Points d’entrees
4 Outils de Protection
5 Prise de controle
6 Apres la compromission
7 Pour le Plaisir
Plan
1 Introduction
2 Securite de la machine
3 Points d’entrees
4 Outils de Protection
5 Prise de controle
6 Apres la compromission
7 Pour le Plaisir
Plan
1 Introduction
2 Securite de la machine
3 Points d’entrees
4 Outils de Protection
5 Prise de controle
6 Apres la compromission
7 Pour le Plaisir
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Deroulement du cours
1 Introduction
2 Securite de la machine
3 Points d’entrees
4 Outils de Protection
5 Prise de controle
6 Apres la compromission
7 Pour le Plaisir
IDIDIS : cours 3 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Enseignants et modalites
Frederic Gava : [email protected].
Luc Delpha : [email protected]. Directeur Auditet Conseil SSI chez CISSP.
Theorique : 21h de cours et 9 h de TP. Pratique : un mixsuivant les besoins
Examen final
Deroulement :
F. Gava : 1) et 2) Generalites 3) AttaqueBuffer/Integer-overflowL. Alpha : 4-6) Attaque Concurrence/Noyau et Protectioncontre analyse et ingenieurie inverse
IDIDIS : cours 4 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Generalites
Theorie : surete
Surete ≡ bonne execution des programmes, donnent les bonresultats escompte sans ”planter”
Securite ≡ pas d’intrusion exterieur modifiant lecomportement du systeme
Theorique : surete ≡ securite. On considere ”juste” qu’unemodification est un mauvais comportement
Pratique/Theorie : surete ⊂ securite. Modeliser toutes les”modifications de l’environement” est trop complexe(impossible meme).
la plus part des problemes de securite sont inherents (due) ades problemes de surete (mauvaise execution des programmesentraınant des intrusions externes).
IDIDIS : cours 5 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Objectifs de la securite
integrite : les donnees sont bien celles qu’on attend
confidentialite : l’acces a chaque ressource est conforme auxautorisations
disponibilite : le systeme reste en fonctionnement, la securiten’empeche pas les utilisateurs legitimes de travailler
non repudiation : une transaction ne peut etre niee
confiance : construire des mecanismes dans lesquels on peutplacer sa confiance (mais pas aveuglement) ; dans cetted’emarche, la regle de base est la mefiance, voire la paranoıa.Mais il faut pourtant faire confiance a un moment donne ⇒
authentification, cryptographie forte, audit, etc.
IDIDIS : cours 6 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Attaques (1)
Afin de pouvoir securiser un systeme, il faut connaıtre lesmenaces :
exploitation des erreurs de configuration (systeme ouvert ouvulnerable) et de programmation (exploits)
denis de service (mailbombing, flood, exploits, nuke),potentiellement distribues
squat (hebergement illegal, attaques par rebond, botnets)
malware (virus, vers, troyens, espions, backdoors)
usurpation d’identitee (IP/ARP spoofing)
erreurs humaines ⇒ ne pas etre root
ingenierie sociale : exploitation des erreurs humaines, de lanaıvete, gentillesse, ignorance, etc. Par exemple, le phishing :faux message de la banque qui redemande le mot de passe(via une fausse page web) ⇒ identifiee par certains antivirus.Attaque de Twitter/Yahoo.
IDIDIS : cours 7 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Attaques (2)
L’URLhttp://[email protected]
dirige vers http//www.site-attaquant.com en envoyantwww.site-officiel.com comme login (qui peut etreignoree). Attention aussi a l’orthographe d’une URL :http://WWW.SITE-OFFICIEL.COM 6=http://WWW.SITE-0FFICIEL.COM (0 au lieu de O)
geneurs (spam, popups) et canulars (haox, chain mail)
sur le reseau, les attaques ont lieu en permanence (plusieurspar minutes), en grande partie de faccon automatique (vers,attaques de masse, botnets a louer, etc.) et a l’insu duproprietaire de la machine attaquante (machine compromiseou infectee)
IDIDIS : cours 8 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Politiques de securite (1)
Ensemble des droits d’acces aux ressources :
globale a une organisation
definie par la hierarchie
mise en oeuvre par les informaticiens en ce qui concerne lesressources informatiques
prend en compte la formation (utilisation correcte desressources, ingenierie sociale)
le maillon le plus faible definit la force de la chaıne desecurite, c’est souvent l’utilisateur lambda
defense en profondeur (a plusieurs niveaux) ⇒ une barrierepeut tomber, il en reste d’autres
simplicite ⇒ efficacite (KISS : keep it simple, stupid)
conception ouverte : la protection ne doit pas d’ependre del’ignorance de l’attaquant ⇒ audit (par des experts)
IDIDIS : cours 9 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Politiques de securite (2)
mediation complete : toute tentative d’acces a une ressourcedoit etre verifie
surete des comportements par defaut (refus) : tout le monde aconnu l’amer experience d’un Windows XP qui fraıchementinstalle n’a pas le firewall active ⇒ a peine lance, il estvictime d’un vers
separations des privileges : l’acces a une ressource doitdependre de plus d’une condition
acceptabilite psychologique et simplicite d’utilisation
necessaire integration de la marche a suivre en cas d’attaquereussie, de compromission des clefs, etc.
Il est inutile d’installer des systemes sophistiques sur une machinedont l’acces physique n’est pas securise (vol, destruction, reboot,poste non verrouille, mot de passe sur un post-it, etc.)
IDIDIS : cours 10 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Securite par l’obscurite
Cacher des informations dans le but d’ameliorer la securite. ⇒ pasde securite
Le code source des produits Microsoft, Apple, IBM et tuttiquanti n’est (generalement) pas disponible, ce sont eux quisont les plus vulnerables.
Surtout Microsoft car beaucoup d’ordis potentiels a toucher.Exemples aussi chez Apple (p. ex. non specification desprotocoles de securite employes)
ne supprime pas le risque
empeche l’audit par une tierce partie
ne resiste pas aux attaques automatisees
resiste peu aux attaquants decidees (ingenierie inverse)
Les protections anti-copie (DVD, etc.) sont secretes et n’ontjamais fonctionne.
IDIDIS : cours 11 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
La mise en lumiere ?
La simple mise en lumiere n’ameliore pas la securitee non plus, ilfaut faire plus :
Les cryptographes utilisent la publication scientifique et desconcours avec recompense.
concours de hacking
White-hacker
Verifier formellement si possible
Corriger toujours au plus vite
Respecter certaines regles et faire de la veille technologique
IDIDIS : cours 12 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Algorithme de l’attaquant
1 prise d’information
2 reperage de faille
3 exploitation de la faille et si echec ⇒ 1
4 elevation des privileges et si insuffisant ⇒ 1
5 realisation du but initial. Game Over. You lose.
IDIDIS : cours 13 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Deroulement du cours
1 Introduction
2 Securite de la machine
3 Points d’entrees
4 Outils de Protection
5 Prise de controle
6 Apres la compromission
7 Pour le Plaisir
IDIDIS : cours 14 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Securite de la machine
Acces physique possible = risques
vol de la machine, de ses disques (crypto des fichiers)
installation de logiciels (malware)
vol ou consultation de donnees
usurpation d’identite
modification de donnees
modification de configuration (mots de passe)
IDIDIS : cours 15 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Securite physique
attacher la machine
empecher son ouverture : Vol des elements (en particulier lesdisques durs) ou retirer la pile du BIOS pour supprimer le motde passe.
empecher le redemarrage
IDIDIS : cours 16 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Securite du BIOS
mettre un mot de passe
attention aux mots de passe par defaut
supprimer le boot sur support amovible
sur un serveur ⇒ mot de passe au boot
IDIDIS : cours 17 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Chargeur de systeme (boot loader)
ne pas utiliser Linux n’empeche pas d’en installer un
permet la protection par mot de passe (On a supprime le bootsur support amovible dans le BIOS, on le retablit avec le bootloader en ajoutant un mot de passe)
attention au stockage des mots de passes : LILO les stocke enclair dans /etc/lilo.conf ⇒ proteger ce fichier. GRUB utiliseMD5 c’est plus sur
IDIDIS : cours 18 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Connexion
mot de passe obligatoire
pas de mots trop simples
pas d’aide memoire sous le clavier (Des systemes verifient lacomplexite du mot de passe ou peuvent generer des mots depasse aleatoires mais prononcables).
ne pas proposer de nom d’utilisateur (c’est ca de plus adeviner. A ce niveau, Windows est defaillant)
ne pas afficher d’etoiles ⇒ longueur plus difficile a connaıtre
connexion securisee : Le Ctr-Alt-Suppr est capture par lesysteme ⇒ on ne peut pas faire un faux ecran de connexion
IDIDIS : cours 19 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Verrouillage
Necessite du mot de passe avant de reprendre le travail :
en quittant son poste
apres un certain temps d’inactivite
doit etre facile (Rabattre l’ecran du portable peut leverrouiller)
securiser comme la connexion
IDIDIS : cours 20 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Deroulement du cours
1 Introduction
2 Securite de la machine
3 Points d’entrees
4 Outils de Protection
5 Prise de controle
6 Apres la compromission
7 Pour le Plaisir
IDIDIS : cours 21 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Generalites
La securite n’est pas une fonctionnalite comme les autres :
a prendre en compte des le debut
necessite formations et information
utilisation des methodes formelles (preuves)
les langages / protocoles / programmes ne sont pas fait pourca (C, C++, Perl, PHP /la suite TCP-IP/demons Internet)⇒ l’expertise technique est necessaire (mais pas suffisante)
prise en compte de l’aspect multi-utilisateur
la securite coute en temps, en argent, en efforts, en tests, etc.
separation du controle et des donnees (virus de documents,cross-site scripting (XSS), ...)
IDIDIS : cours 22 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Programmes sensibles (1)
Les programmes critiques s’executent sur une frontiere, entre deuxespaces qui doivent rester separes :zone hostile programme securise zone protegee
Internetserveurfirewall, routeurclient (navigateur)
machine qui l’executereseau interneutilisateur
utilisateurprogramme suid/sgidsysteme de droits
administrateurautres utilisateurs
programmeappel systemesysteme de fichiergestionnaire de memoire
noyauespace disponibleespace disponible
document inconnu afficheur, editeur utilisateur
programmes critiques (plus ou moins)
cibles privilegiees pour les attaques
il faut limiter les erreurs et les consequences d’erreurs
IDIDIS : cours 23 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Pourquoi des erreurs ? (1)
peu de formations, peu de sources d’information (moinsmaintenant)
pas d’utilisation des methodes formelles (preuves)
les langages ne sont pas fait pour ca (surtout C/C++ et PHP)
non prise en compte de l’aspect multi-utilisateur
paresse et facilite
les programmes sont securises a posteriori et non a priori (desla conception)
mauvais programmeurs (ou moyens, ou non specialistes dulangage)
la programmation et la securite sont (encore) deux metierssepares
les utilisateurs se soucient peu de securite (ou ne savent pas,ou ne veulent pas savoir ou naif/trop confiant)
IDIDIS : cours 24 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Pourquoi des erreurs ? (2)
la securite coute en temps, en argent, en efforts, en tests, etc.
beaucoup d’options de compilations ne sont pas utilisees.Exemples :
avec GNAT : -gnatoavec GCC : -Wall -Wpointer-arith -Wstrict-prototypes -O2
les documentations ne sont pas lues : Pour Perl, perlsec etpour Java, Li Gong, Inside Java 2 Platform Security, AddisonWesley
les langages utilises sont mal connus :
la securite sous Java est quelque chose de tres difficile car lesmecanisme de chargement de code (local, distant) sont trescomplexesen C/C++, les debordements de tampons, les bogues deformats, les debordements arithmetiques, etc., sont meconnus
IDIDIS : cours 25 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Comptes utilisateurs
donner les privileges minimaux pour l’usage demande
interdire la connexion a certains moments, de certains endroits
interdire les salles serveurs ou l’installation de logiciel maisonsen binaires dessus
desactiver les comptes inactifs
tous les comptes doivent etre individuels
faire des audits reguliers des comptes (Un utilisateur nedevrait pas avoir de dossier ou fichiers accessibles en ecriture atous. Il faut regulierement chercher les malwares sur soncompte. Il faut controler les binaires qu’il installe.) ⇒ lapolitique de securite
maintenir des log des activites
interdire les mots de passe faibles ou par defaut
IDIDIS : cours 26 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Compte administrateur (root)
pareil mais beaucoup plus critique :
inaccessible a tous (sauf aux autres root)
utilise au minimum (Avec su et sudo, meme pas besoin de seconnecter)
log et controle tres precis des connexions
creer des comptes ”mini-root” : un compte staff possedant/usr/local et quelques droits d’execution par sudo commeldconfig. Mais attention a quoi on donne acces (cat est tresdangereux).
attention au PATH ⇒ pas de ., ne contient que desrepertoires non modifiables
le comportement de root est aussi critique ⇒ prudence, nepas installer n’importe quoi, etc. ne pas se balader sur le web,pas tchater, QUE DE L’ADMIN
attention a umask (buildin)
IDIDIS : cours 27 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Protection des mots de passe
idealement, on ne les stocke pas. Mot de passe dans/etc/shadow (double protection : fichier protege, mots depasse haches)
sinon, les stocker chiffres et proteges par les droits d’acces(ssh ne se lance pas si les droits sont incorrects)
ne pas autoriser les mots de passe trop simples
ne jamais faire transiter en clair un mot de passe sur le reseau(voir capture mot de passe POP sur la feuille)
ne jamais ecrire ni divulguer son mot de passe
garder une clef le moins longtemps possible en memoire
IDIDIS : cours 28 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Deroulement du cours
1 Introduction
2 Securite de la machine
3 Points d’entrees
4 Outils de Protection
5 Prise de controle
6 Apres la compromission
7 Pour le Plaisir
IDIDIS : cours 29 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Outils de protection
antivirus : protege des virus, vers, etc.
pare-feux : controle les connexions reseaux
anti-espion : cherche les spywares, backdoors, rootkits, etc. ⇒comme antivirus
controle d’integrite : verifie si le systeme a ete altere
detecteur d’intrusions : cherche la presence d’un intrus
IDIDIS : cours 30 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Antivirus (1)
Etude britannique de 2004 (sur l’anneee 2003) :
99% des grandes entreprises et 93% des PME utilisent unantivirus
83% des entreprises ont ete attaquees au moins une fois
68% on ete victimes d’un virus
le nombre d’attaques reussies a augmente de 25%
cout pour l’annee : 290 millions d’euros
Les antivirus ne suffisent pas. Ils n’en sont pas moins necessaires !Resultats theoriques :
la detection virale en general est indecidable
les instances restreintes interessantes sont au minimumNP-complet ou p-space
la detection des virus polymorphes est NP-complet
⇒ toute protection peut etre contournee
IDIDIS : cours 31 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Antivirus (2)
En pratique, c’est de plus en plus difficile meme si, ca pourrait etremieux :
les editeurs d’antivirus ”s’opposent” a la recherche dans ledomaine
les produits privilegient la rapidite d’execution a la surete
l’ingenierie sociale permet de contourner les outils
l’utilisateur final ne sait pas reagir a une alerte
Bon antivirus :
detecte, identifie et eradique les virus connus
gere les virus inconnus qui utilisent des techniques connues
ne genere pas (ou peu) de fausses alertes et ne necessite pasd’intervention de l’utilisateur
s’execute sans ralentir le systeme
s’installe et se desinstalle facilement et facile a configurer
est pre-configure de facon pertinente
IDIDIS : cours 32 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Antivirus (3)
L’etat du marche est assez deprimant :
les meilleurs ne sont pas les plus connus (Avast/AlwilSoftware, AVG/Grisoft, FSecure, Kaspersky/KAV, NOD32)
Unix/Linux tres en retard sur Windows (mais moins de virus).Existe Anti-virus pour linux pour proteger des ordis windows
certains produits sont tres mauvais
delais entre l’apparition du virus et la mise-a-jour assez(malgre ce que dit le marketing) : 24h a 48h minimum, parfoisjamais
incoherence de l’identification et de l’appellation entre lesediteurs
mauvaises configuration par defaut
vitesse d’execution au detriment de la surete
desinfection assez mauvaise
et surtout : distorsion enorme entre le marketing et la realite
IDIDIS : cours 33 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Antivirus (4)
Analyse de forme (statique) : Analyse hors de tout contexted’execution par la recherche d’une signature (une suite de bits) quidoit etre caracteristique (pas de confusion) et suffisamment longue(pas de fausse alerte) :
facilement contournable (virus polymorphes/metamorphes ouchiffres)
peu de fausses alertes
detection une infection deja effective
ne gere que le connu et difficultes de mise-a-jour de la base designatures
taille de la base de signatures ⇒ non exhaustive (quelquesmilliers en pratique, les vieux virus sont ignores)
recherche partielle (certaines parties de certains fichiers) pourdes raisons de temps d’execution
IDIDIS : cours 34 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Antivirus (5)
Analyse spectrale : recherche d’instructions caracteristiques desvirus mais rares dans les programmes ”normaux”
methodes statistiques pour definir la normalite
fausses alertes
peut detecter de nouveaux virus
contournable par mimetisme (virus code ”comme” unprogramme normal)
Analyse heuristique : strategies de detection d’actionpotentiellement virales :
difficile et peu fiable
fausses alertes
contournable par mimetisme
IDIDIS : cours 35 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Analyse de comportement (dynamique)
Surveillance des actions potentiellement dangereuses (exemple :modification du MBR).
detection possible de virus inconnus
fausses alertes
consommation des ressources de la machine
emulation de code ⇒ analyse statique
IDIDIS : cours 36 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Controle d’integrite (1)
Verifier que le systeme est conforme a ce qu’il devrait.Essentiellement une technique : prise d’empreintes etcomparaisons :
on prend une empreinte de chaque fichier (systeme, pasforcement les images, quoique...) du systeme sainon met a jour la base d’empreintes a chaque modificationlegitimeune modification illegitime est detectable par changement del’empreinte
Difficultes :
falsification des empreintes ⇒ utiliser un hachagecryptographique. Les antivirus utilisent souvent CRC32 ).(facile a contourner). On conseille maintenant d’utiliser deuxempreintes simultanement (ex : MD5+SHA, ouSHA+HAVAL).distinguer une modification legitime d’une autre ⇒ souscontrole de l’administrateur
IDIDIS : cours 37 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Controle d’integrite (2)
securite de la base d’empreintes : certains virus modifient labase d’empreinte des antivirus les plus repandus pour cacherleur infection. Un intrus ayant les droits root a tout pouvoir⇒ meme ces droits ne doivent pas suffire a la modification ⇒
support en ecriture seule ⇒ difficultes de la mise-a-jour. Lessystemes courants securisent par cryptographie et mots depasse (empreintes signees ou chiffrees).
le controle sur un systeme compromis n’est pas fiable : Leslibrairies peuvent avoir ete changees ⇒ les outils d’analysedoivent etre compiles statiquement. Un rootkit noyaux peutfaire modifier l’appel systeme d’ouverture de fichier etpresenter le fichier d’origine au lieu du fichier modifie ⇒ lesoutils d’analyse doivent s’executer sur un autre systeme.Impossible lorsqu’on veut garder le systeme en marche.
IDIDIS : cours 38 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Controle d’integrite (3)
Comment savoir que le systeme est sain lorsqu’on prend/met ajour une empreinte ? Methodologie : utiliser une machine dereference, isolee et coupee du reseau sauf lors des mises a jour :
installation prises d’empreintes
pour mettre a jour :connexion (la plus breve) et telechargement (securise) desmises-a-jour et deconnexioncontrole d’integrite minutieux (c’est la machine de reference)controle des mises-a-jour (signatures) et prise des nouvellesempreintesdistribution des mises-a-jourcontrole d’integrite des machines a mettre a jourmise-a-jour des autres machinesmise-a-jour des bases d’empreintes a partir de celles prises surla machine d’installation
c’est assez peu praticable, voire impossible (OS ne lepermettant pas, systemes heterogenes, etc.)
IDIDIS : cours 39 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Detection d’intrusions
Tres proche des antivirus :
meme techniques de detection (memes limites)
controle d’integrite (memes difficultes)
limites fortes en terme de ressources systeme : l’analyse dureseau necessite de surveiller simultanement des milliers deconnexions sur des centaines de protocoles differents.
IDIDIS : cours 40 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Reprendre le controle (1)
Observer avant d’agir :
peut t’on voir l’attaquant en train d’agir (processus, traficreseau, ecoute reseau, etc.)mais il est peut-etre deja en train de faire des degats, decommettre des infractionsil est peut-etre tres furtif (controle profond)le systeme est indigne de confiance
Reprise de controle :
il faut couper l’alimentation brutalement : un arret ”propre”peut ne pas desinstaller les fichiers de l’attaquant.il faut deconnecter le reseauil faut redemarrer sur un systeme sain : nombreusesdistribution Linux utilisables depuis un CD (Live-CD). On peutaussi deplacer le disque du systeme compromis sur une autremachine.
IDIDIS : cours 41 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Deroulement du cours
1 Introduction
2 Securite de la machine
3 Points d’entrees
4 Outils de Protection
5 Prise de controle
6 Apres la compromission
7 Pour le Plaisir
IDIDIS : cours 42 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Prise de controle
Une attaque reussie est generalement suivie d’une prise decontrole :
pour propager l’attaque (vers, virus)
pour utiliser le systeme (squat, botnets)
pour espionner les utilisateurs (spywares)
pour revenir plus tard (backdoors)
S’installe ses outils et doit rester discret ⇒ rootkit : ensembled’outils pour garder le controle en toute discretion
IDIDIS : cours 43 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Rootkit (1)
on en trouve des tout fait sur internet...
modification des binaires sensibles. Les programmes dedissimulation cachent les ressources employees par le pirateaux yeux des autres utilisateurs :
ls, find, locate, xargs ou du ne reveleront pas ses fichiersps, top ou pidof dissimuleront ses processusnetstat n’affichera pas les connexions indesireeskillall preservera ses processusifconfig ne montrera pas que l’interface est en modepromiscuoustcpd et syslogd ne loguent pas ses actions
Les backdoors permettent au pirate de changer d’identite :chfn, chsh, passwd, login, su, etc., ouvrent un shell rootlorsque le mot de passe du root-kit est entre (comme nomd’utilisateur ou comme mot de passe)
IDIDIS : cours 44 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Rootkit (2)
Les demons offrent au pirate un moyen simple d’acces adistance :
inetd installe un shell root a l’ecoute sur un port. Apres laconnexion, le mot de passe du root-kit doit etre saisi enpremiere lignershd execute la commande demandee en tant que root si leusername employe est le mot de passe du root-kitsshd fonctionne comme login mais donne un acces distant
modification des librairies dynamiques : meme but que lamodification des binaires en plus facile : on ne change quequelques appels systemes critiques (module ≡ load dynamiquede module dans le noyau)
IDIDIS : cours 45 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Rootkit (3)
modification du noyau ⇒ un module noyau se charge de toutce qui a ete vu precedemment : plus discret, plus de pouvoirs :
rendre invisible des fichiers, comme ceux produit par un snifferfiltrer le contenu d’un fichier (supprimer son IP des logs, lesnumeros de ses processus, etc.)sortir de prison (chroot)tout ce qui etait possible l’est encore (plus facilement)
on en est sur maintenant : un systeme compromis ne peutcontroler son integrite
Exemple : Installation d’une backdoor via un lkm (Linux 2.2 et2.4) : /etc/passwd devient une commande qui donne un shell root(voir feuille)
IDIDIS : cours 46 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Rootkit (4)
Protection :
interdire les modules (recompiler le noyau)
comparer l’image memoire du noyau (/dev/kmem) avec cequ’il declare publiquement (dans /proc)
pre-charger un module interdisant la modification des appelssysteme (on trouve sur le net)
tests d’integrite de la memoire noyau
Toutes contournables puisqu’on a compromis le noyau ⇒ analyse apartir d’une boot sain ou de la machine de reference.
IDIDIS : cours 47 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Deroulement du cours
1 Introduction
2 Securite de la machine
3 Points d’entrees
4 Outils de Protection
5 Prise de controle
6 Apres la compromission
7 Pour le Plaisir
IDIDIS : cours 48 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Helas... (1)
Statistiquement, elle aura lieu ⇒ mieux vaut partir du principe quec’est certain. Les signes d’une compromission :
activite inhabituelle dans les logs de connexions
apparition de binaires suid/sgid
controle d’integrite negatif
binaires (executables ou librairies) modifies
trafic reseau anormal ou inhabituel ⇒ presence de processussurveillant le reseau
interface reseau en mode promiscuous
nouvelles entrees cron ou at
nouveaux services ou services modifies
/etc/passwd ou /etc/shadow modifies : Rarement controlepour leur integrite (les utilisateurs peuvent les modifier viachsh ou passwd) il peuvent etre verifies manuellement :comptes sans mots de passe, comptes avec meme uid ou uid 0(root), etc.
IDIDIS : cours 49 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Helas... (2)
fichiers de configuration modifies
fichiers caches (noms possibles ”...” ”..ESPACE” ”.G”
donnees/binaires dans des endroits anormaux
fichiers non device dans /dev
... (Dans le doute, faire comme si c’etait certain)
Si une machine du reseau est compromise, il faut verifier toutes lesautres. Il peut etre prudent de changer tous les mots de passe(utilisateurs ralent).Attention aux sauvegardes : tant que l’attaque n’a pas etecompletement demontee, les sauvegardes ne sont pas plus suresque le reste du systeme.
IDIDIS : cours 50 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Avant de commencer
Consulter votre politique de securite
Quand on n’en a pas :
consulter la hierarchiesolliciter un conseil juridiquecontacter les autorites (deposer une plainte)informer : utilisateurs, collaborateurs, (clients ?), prestataires,etc. tous ceux qui ont affaire au systeme compromis
documenter precisement chaque etape du travail : pour laprochaine fois, pour pouvoir revenir en arriere, pour verifier desoublis, pour corriger des erreurs, pour etablir des preuves, etc.
IDIDIS : cours 51 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Reprendre le controle (1)
Observer avant d’agir :
peut t’on voir l’attaquant en train d’agir (processus, traficreseau, ecoute reseau, etc.)mais il est peut-etre deja en train de faire des degats, decommettre des infractionsil est peut-etre tres furtif (controle profond)le systeme est indigne de confiance
Reprise de controle :
il faut couper l’alimentation brutalement : un arret ”propre”peut ne pas desinstaller les fichiers de l’attaquant.il faut deconnecter le reseauil faut redemarrer sur un systeme sain : nombreusesdistribution Linux utilisables depuis un CD (Live-CD). On peutaussi deplacer le disque du systeme compromis sur une autremachine.
IDIDIS : cours 52 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Reprendre le controle (2)
faire une image miroir des disques : dd. Copier les fichiers nesuffit pas : donnees cachees (ex : StegFS).
garder cette image intacte (a dupliquer si necessaire) commepreuve legale
ne pas alterer les sauvegardes tant que la date de lacompromission est inconnue : elle peut ne jamais l’etre, ilfaudra restaurer avec precautions. En general, elle est connuscar on peut constater la date de modification des fichierscompromis (le jour ou ils ont ete sauvegardes). Il est moinscouteux de faire du controle d’integrite que de faire de tellessauvegardes.
IDIDIS : cours 53 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Analyse de l’intrusion (1)
Buts :
trouver l’origine de la compromission (faille, erreur humaine,etc.)
dater la compromission
etablir des preuves
connaıtre les informations acquises par l’attaquant
faire le bilan des actions de l’attaquant
Actions a entreprendre (non exhaustif) :
examiner toute modification de binaires (en particulier lessuid/sgid) ou de configuration. Rappel : on a demarre un autresysteme, sain. Le systeme compromis est indigne de confiance.
examiner manuellement les fichiers dont on n’a pas de copiede reference. De meme qu’on documente les etapes del’analyse apres intrusion, il faut documenter les etapesd’installation et de mise a jour. Tres utile en cas de panne oude compromission.
IDIDIS : cours 54 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Analyse de l’intrusion (2)
examiner les donnees modifiees recemment : pages web,fichiers ftp, fichiers des utilisateurs, etc.
rechercher des outils laisses par l’intrus : sniffers, chevaux deTroie, portes derobees, exploits, etc. Utiliser un maximumd’outils d’analyse de comportements ou de recherche de telslogiciels (anti-virus, anti-spywares, detecteurs de rootkits, etc.ils ont tous au moins une version d’evaluation !)
examen des logs : attention, ils ont pu etre alteres : chercheraussi les trous potentiels. Chercher tout ce qui semble sortirde l’ordinaire. Comparer aux logs d’une machine saine, utiliserdu filtrage Bayesien (statistique), des outils d’analyse de logs.
examiner minutieusement les logs de sniffers decouverts : ilsindiquent les machines en danger et les donnees revelees
verifier en detail les autres systemes en relation avec lesysteme compromis
verifier toutes les autres machinesIDIDIS : cours 55 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Analyse de l’intrusion (3)
controler toute action potentiellement tentee par l’attaquant
rechercher dans les annonces du net de vulnerabilites dessignes qu’on a pu constater : une attaque automatisee ferad’autres victimes, avec des symptomes similaires
Rechercher une ecoute reseau. On doit le faire (vraiment)avant de reprendre le controle mais sans certitude ⇒
processus suspect, interface en mode promiscuous, fichiergrossissant constamment et rapidement (log du sniffer). Apresredemarrage sain, on peut rechercher le fichier de log dusniffer (fichier contenant des adresses IP connues, mais c’estparfois chiffre), la presence d’un binaire connu commetcpdump (attention il a ete surement renomme), ingenierieinverse sur les binaires modifies), le mot ”promiscuous” dansles logs systeme, etc.
gava@gava-laptop : $ sudo grep promiscuous /var/log/kern.logSep 6 21 :29 :49 gava-laptop kernel : [44666.781337] device wlan0 entered promiscuous modeSep 6 21 :40 :12 gava-laptop kernel : [45289.416547] device wlan0 left promiscuous mode
IDIDIS : cours 56 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Assainissement (1)
reinstaller un systeme sain : Il faut considerer que le systemecompromis est irrecuperable
le configurer au plus sur
installer toutes les mises a jour de securite
utiliser les sauvegardes avec precautions : Si la date de lacompromission est connue (avec certitude), on peut utiliser cequi est anterieur. Sinon, et pour le reste, il ne faudraitrestaurer que des donnees qu’on verifie minutieusement.
changer tous les mots de passe
Il faut ameliorer la securite du systeme et du reseau :
demande d’un audit general
mettre a jour (ou changer) et utiliser les outils de securite : enchangeant d’outil, attention a ne pas ouvrir des portes. Il vautparfois mieux doubler que remplacer.
IDIDIS : cours 57 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Assainissement (2)
ajouter des outils de securite (en particulier ceux qui auraientpu prevenir ou detecter l’attaque)
augmenter le detail des logs
verifier la configuration des pare-feux et autre outils desecurite du reseau
documenter les lecons tirees de l’attaque, de son analyse etdes mesures qui ont du etre prises
calculer le cout de l’incident
mettre a jour la politique de securite si elle s’est avereedefaillante (ou inexistante)
rester vigilant ”un certains temps” : l’attaquant va peut-etrerevenir (et c’est certain si c’est un ver/virus)
IDIDIS : cours 58 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Deroulement du cours
1 Introduction
2 Securite de la machine
3 Points d’entrees
4 Outils de Protection
5 Prise de controle
6 Apres la compromission
7 Pour le Plaisir
IDIDIS : cours 59 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Conditions de concurrence (1)
Lorsque plusieurs programmes s’executant en meme tempspartagent une ressource, typiquement le systeme de fichier.Attaque sur les scripts suid :$ id
uid=1000(gava) gid=1000(gava) groups=4(adm)
$ head -n 1 /bin/suidscript
#!/bin/sh
$ cd /tmp; echo "id" > titi.sh; ln -s /bin/suidscript toto
$ (nice -n +19 ./toto &) ; ln -sf titi.sh toto
uid=0(root) gid=0(root) groups=0(root)
Pourquoi :
le systeme suit le lien toto et trouve un programme suid ⇒
devient root
le systeme invoque l’interpreteur donne dans la premiere ligneavec le source en argument ⇒ /bin/sh toto
pendant que /bin/sh se charge, ln remplace toto (le nice -n+19 lui laisse du temps)
/bin/sh lit le contenu de toto et donc de titi.sh et l’execute ⇒
id de root
les systemes modernes ignorent suid sur les scriptsIDIDIS : cours 60 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Conditions de concurrence (2)
evitez d’utiliser une suite d’appels a chown, chgrp et chmodqui prennent un nom de fichier en parametre : le fichier peutchanger entre deux appels. Utilisez plutot fchown, fstat etfchmod qui prennent un descripteur de fichier (ne peut paschanger)
un appel a ”access” suivi de ”open” est fautif car les droitspeuvent changer entre les deux appels. A la place, positionnerles droits avec umask, setuid et setgid et lancer directementopen en testant la valeur de retour.
tout fichier cree doit avoir les droits corrects des le debut ⇒utiliser umask suivi de open avec le modeO CREAT—O EXCL, puis verifier l’absence d’erreur
attention a la creation de fichiers temporaires (delai entre lacreation du nom et celle du fichier) :
IDIDIS : cours 61 / 63
Introduction Securite de la machine Points d’entrees Outils de Protection Prise de controle Apres la compromission Pour le Plaisir
Conditions de concurrence (3)
utilisez mkstemp au lieu de tempfile
utilisez umask au prealable
une fois le fichier ferme, ne l’ouvrez plus jamais et ne reutilisezpas son nom
effacez immediatement le fichier avec unlink ⇒ il disparaıt dusysteme de fichier mais reste utilisable jusqu’a sa fermeture(et le fichier sera efface meme si le programme plante)
plutot que d’utiliser /tmp, creez un sous-repertoire prive (⇒umask avant creation)
attention a NFS (v2) qui ne supporte pas O EXCL.
ne faıtes pas confiance aux variables d’environnement TMP etTMPDIR si l’utilisateur peut les positionner
IDIDIS : cours 62 / 63
A la semaine prochaine