s´ecurit´e des syst`emes d’exploitation

69
ecurit´ e des Syst` emes d’Exploitation Fr´ ed´ eric Gava Master ISIDIS, Universit´ e de Paris-Est Cr´ eteil Cours s´ ecurit´ e du M2 IDIDIS

Upload: others

Post on 24-Oct-2021

5 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: S´ecurit´e des Syst`emes d’Exploitation

Securite des Systemes d’Exploitation

Frederic Gava

Master ISIDIS, Universite de Paris-Est Creteil

Cours securite du M2 IDIDIS

Page 2: S´ecurit´e des Syst`emes d’Exploitation

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

Page 3: S´ecurit´e des Syst`emes d’Exploitation

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

Page 4: S´ecurit´e des Syst`emes d’Exploitation

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

Page 5: S´ecurit´e des Syst`emes d’Exploitation

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

Page 6: S´ecurit´e des Syst`emes d’Exploitation

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

Page 7: S´ecurit´e des Syst`emes d’Exploitation

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

Page 8: S´ecurit´e des Syst`emes d’Exploitation

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

Page 9: S´ecurit´e des Syst`emes d’Exploitation

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

Page 10: S´ecurit´e des Syst`emes d’Exploitation

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

Page 11: S´ecurit´e des Syst`emes d’Exploitation

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

Page 12: S´ecurit´e des Syst`emes d’Exploitation

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

Page 13: S´ecurit´e des Syst`emes d’Exploitation

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

Page 14: S´ecurit´e des Syst`emes d’Exploitation

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

Page 15: S´ecurit´e des Syst`emes d’Exploitation

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

Page 16: S´ecurit´e des Syst`emes d’Exploitation

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

Page 17: S´ecurit´e des Syst`emes d’Exploitation

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

Page 18: S´ecurit´e des Syst`emes d’Exploitation

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

Page 19: S´ecurit´e des Syst`emes d’Exploitation

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

Page 20: S´ecurit´e des Syst`emes d’Exploitation

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

Page 21: S´ecurit´e des Syst`emes d’Exploitation

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

Page 22: S´ecurit´e des Syst`emes d’Exploitation

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

Page 23: S´ecurit´e des Syst`emes d’Exploitation

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

Page 24: S´ecurit´e des Syst`emes d’Exploitation

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

Page 25: S´ecurit´e des Syst`emes d’Exploitation

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

Page 26: S´ecurit´e des Syst`emes d’Exploitation

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

Page 27: S´ecurit´e des Syst`emes d’Exploitation

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

Page 28: S´ecurit´e des Syst`emes d’Exploitation

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

Page 29: S´ecurit´e des Syst`emes d’Exploitation

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

Page 30: S´ecurit´e des Syst`emes d’Exploitation

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

Page 31: S´ecurit´e des Syst`emes d’Exploitation

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

Page 32: S´ecurit´e des Syst`emes d’Exploitation

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

Page 33: S´ecurit´e des Syst`emes d’Exploitation

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

Page 34: S´ecurit´e des Syst`emes d’Exploitation

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

Page 35: S´ecurit´e des Syst`emes d’Exploitation

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

Page 36: S´ecurit´e des Syst`emes d’Exploitation

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

Page 37: S´ecurit´e des Syst`emes d’Exploitation

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

Page 38: S´ecurit´e des Syst`emes d’Exploitation

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

Page 39: S´ecurit´e des Syst`emes d’Exploitation

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

Page 40: S´ecurit´e des Syst`emes d’Exploitation

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

Page 41: S´ecurit´e des Syst`emes d’Exploitation

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

Page 42: S´ecurit´e des Syst`emes d’Exploitation

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

Page 43: S´ecurit´e des Syst`emes d’Exploitation

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

Page 44: S´ecurit´e des Syst`emes d’Exploitation

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

Page 45: S´ecurit´e des Syst`emes d’Exploitation

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

Page 46: S´ecurit´e des Syst`emes d’Exploitation

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

Page 47: S´ecurit´e des Syst`emes d’Exploitation

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

Page 48: S´ecurit´e des Syst`emes d’Exploitation

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

Page 49: S´ecurit´e des Syst`emes d’Exploitation

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

Page 50: S´ecurit´e des Syst`emes d’Exploitation

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

Page 51: S´ecurit´e des Syst`emes d’Exploitation

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

Page 52: S´ecurit´e des Syst`emes d’Exploitation

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

Page 53: S´ecurit´e des Syst`emes d’Exploitation

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

Page 54: S´ecurit´e des Syst`emes d’Exploitation

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

Page 55: S´ecurit´e des Syst`emes d’Exploitation

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

Page 56: S´ecurit´e des Syst`emes d’Exploitation

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

Page 57: S´ecurit´e des Syst`emes d’Exploitation

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

Page 58: S´ecurit´e des Syst`emes d’Exploitation

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

Page 59: S´ecurit´e des Syst`emes d’Exploitation

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

Page 60: S´ecurit´e des Syst`emes d’Exploitation

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

Page 61: S´ecurit´e des Syst`emes d’Exploitation

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

Page 62: S´ecurit´e des Syst`emes d’Exploitation

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

Page 63: S´ecurit´e des Syst`emes d’Exploitation

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

Page 64: S´ecurit´e des Syst`emes d’Exploitation

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

Page 65: S´ecurit´e des Syst`emes d’Exploitation

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

Page 66: S´ecurit´e des Syst`emes d’Exploitation

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

Page 67: S´ecurit´e des Syst`emes d’Exploitation

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

Page 68: S´ecurit´e des Syst`emes d’Exploitation

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

Page 69: S´ecurit´e des Syst`emes d’Exploitation

A la semaine prochaine