Master IAO - Module Sécurité - Chap4

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 20

Master spécialisé : Informatique Appliquée Offshoring

Chapitre 4:
Sécurité et Services Réseaux Sécurité
des systèmes d’exploitation
Partie: Sécurité
et des applications
Pr. Ghizlane ORHANOU

Année Universitaire 2018-2019


Master IAO G. Orhanou

Introduction
Plan
Introduction à la sécurité des systèmes  Les systèmes informatiques
d’exploitation modernes, en particulier les
ordinateurs, sont équipés d’une
Sécurité des plateformes Windows couche logicielle appelée
système d’exploitation (SE)
Sécurité (en anglais Operating System
des plateformes Linux
(OS)).
Introduction à la sécurité des applications

Master IAO G. Orhanou Master IAO G. Orhanou


Définition d’un Système d’exploitation Définition d’un Système d’exploitation
 Le système d’exploitation est le composant logiciel
Navigateur Web Courrier électronique Lecteur audio
fondamental d’un ordinateur.
 Au dessus du matériel, on trouve le logiciel ou software.
Mode utilisateur La plupart des ordinateurs ont deux modes d’opération:
Interface Programme Utilisateur Logiciel 
le mode noyau, ou kernel : accès complet et total à
toutes les ressources matérielles
Mode noyau Système d’exploitation

le mode utilisateur : où fonctionnent les
applications utilisateur.
Matériel

Place du système d’exploitation au sein d’un ordinateur (*)


*
( ) Figure prise du Livre Systèmes d’exploitation” d’Andrew Tanenbaum.

Master IAO Master IAO G. Orhanou


G. Orhanou

Rôle du système d’exploitation


Fonctions de base d’un SE
 Le système d’exploitation est un intermédiaire entre les
logiciels d’application et le matériel. Les Fonctions généralement remplies par
 Un système d’exploitation remplit deux tâches a priori un SE
sans relations: Gestion du matériel : se fait par l’intermédiaire des
pilotes qui sont des petits logiciels légers dédiés à un
1.il fournit aux programmes utilisateur une interface simplifiée matériel donné qui permettent de faire communiquer ce
avec le matériel, à base de fichiers à lire et/ou à écrire. matériel.
Ordonnancement des tâches
2.il gère les ressources matérielles de l’ordinateur
Gestion de mémoire
(processeur, mémoire, disque dur, etc).

Master IAO G. Orhanou Master IAO G. Orhanou


Quelques familles des systèmes d’exploitation Quelques familles des systèmes d’exploitation

 Les SE des mainframes  Les SE des PC


 grandes capacités d’E/S: gérer un millier de  Leur rôle est de fournir à l’utilisateur une interface
disques pour plusieurs téraoctets de conviviale pour exécuter ses applications.
mémoire au total.

 Les SE des serveurs (web par exemple)  Les SE des équipements mobiles
 Ils servent en parallèle de nombreux (tablettes, smartphone, etc)
utilisateurs à travers le réseau, leur  Ces SE ressemblent aux SE des PC. La majeur
permettant de partager des ressources différence se situe au niveau de la gestion des
capacités restreintes de mémoire centrale et de
matérielles et logicielles. disque dur. Ex.: Android, iOS

Master IAO G. Orhanou Master IAO G. Orhanou

Quelques familles des systèmes d’exploitation Exemples de systèmes d’exploitation


Les systèmes d’exploitation les plus courants
 Les SE des objets communicants (ex. sur les PC sont :
capteurs d’incendie) 
Les différentes versions de Windows développés
 disposent d’un petit SE temps réel permettant de par Microsoft (Windows 7, Windows 10, Windows
répondre et agir face à des événements extérieurs server 2012, etc).
qu’ils peuvent détecter ou mesurer. Ex.: TinyOS 
Unix : l’ancêtre d’un ensemble de systèmes
d’exploitation actuels.


Linux : est une version "open source" plus
légère de Unix. Ce système d’exploitation est
 Les SE pour les cartes à puces (smart assez souvent utilisé au niveau des serveurs
cards) (Ubuntu, Fedora, Debian, etc)
 Sont les plus petits SE. 
Mac OS : une autre variante de Unix est un
système d’exploitation réservé aux ordinateurs
de la firme Apple.


Android, iOS, etc : SE pour les smartphones et
G. Orhanou
tablettes G. Orhanou
Master IAO Master IAO
Choix des mots de passe
 Le mot de passe doit être :
à caractère arbitraire (éviter l’utilisation des informations
personnelles : noms, prénoms, dates de naissance,…, et des
Mesures générales mots de dictionnaire) ;
 composé au minimum de 8 caractères (plus sera mieux)
avec des chiffres, des lettres majuscules et minuscules, et
de sécurité d’un OS pourquoi pas des symboles aussi (comme @, !, %, ;,…);
 différent pour chaque application, fichier ou système que
vous utilisez ;
 changé régulièrement (selon l’utilité, immédiatement à
chaque doute et, au minimum tous les six mois).
 Astuce de création d’un mot de passe robuste: Pour se
rappeler du mot de passe, utiliser des acronymes à partir
d’une phrase « magique » que vous apprenez par cœur.

Master IAO G. Orhanou Master IAO G. Orhanou

Sécurité d’un SE Mécanismes


Les mises à jours de protection de la mémoire

Les mises à jour de sécurité du système d’exploitation et de ses
différents composants.  Les mécanismes de protection de la mémoire permettent

Les mises à jour des applications de protéger les données stockées temporairement en

Stratégie de Planification des mises à jours mémoire et qui sont relatives aux processus et
Les contrôles administratifs et contrôles d’accès applications en cours d'exécution.

Vérification des accès au système
 Les systèmes d'exploitation utilisent différents

Les comptes utilisateurs et administrateurs existants

La robustesse des mots de passe utilisés mécanismes de protection de la mémoire, à savoir :

Utilisation du modèle de contrôle d’accès adéquat l
Protection de l'espace exécutable
La sécurité du système
l
ALSR

Vérification de l’état du Firewall personnel;
l
Technique des canaris

Vérification de l’existence et l’état d’un antivirus;

Techniques d’authentification utilisées

Vérification du système de fichier utilisé au niveau des différentes
partitions du système.
Master IAO G. Orhanou Master IAO G. Orhanou
Protection de l'espace exécutable Protection de l'espace exécutable
(suite)
 Plusieurs systèmes d'exploitation implémentent ou ont une
 C'estune forme de protection de la mémoire avec laquelle une
politique de protection de l'espace exécutable :
page peut être accessible soit en écriture, soit en
exécution, mais en aucun cas ne peut être à la fois accessible 
NX bit : les OS qui utilisent NX bit marquent certaines zones de la
en écriture et en exécution simultanément. mémoire comme non-exécutables (le noyau Linux supporte le 'NX
bit' sur les processeurs x86-64 et IA-32 qui le supportent).
 Ceci lutte contre les attaques par débordement de tampon, 
XD bit (eXecute Disable) : c'est le nom utilisé par Intel pour cette
dont les attaques les plus communes basées sur l'exploitation fonctionnalité.
de la pile : en s'assurant que la pile n'est pas exécutable 
Enhanced Virus Protection : c'est le terme marketing utilisé chez
(car accessible en écriture), les codes injectés ne peuvent être Advanced Micro Devices (AMD).
exécutés. Dans le cas où le contrôle est tenté d'être passé sur

XN (eXecute Never) : nomination pour l'architecture ARM
la pile, le programme s'arrête.

W^X : est apparu pour la première fois dans la version 3.3 de
OpenBSD. Elle marque les pages accédées en écriture par défaut
non-exécutables pour les processeurs qui supportent ceci.

Master IAO G. Orhanou Master IAO G. Orhanou

Protection de l'espace exécutable Address Space Layout Randomization


DEP (Data Execution Prevention)
 ASLR ou Address Space Layout Randomization est une
 DEP gère deux zones de mémoire distinctes: une réservée aux
fonctionnalité permettant de rendre aléatoire l'espace
programmes et une autre réservée aux données et autres
d'adressage mémoire de zones comme le tas (heap) ou la
parties non exécutables.
pile (stack) afin de compliquer le travail d'un attaquant
 Cette protection interdit l'utilisation de la seconde zone par les souhaitant compromettre une machine via une attaque de type
programmes exécutables: les logiciels standards mais surtout buffer overflow par exemple.
 Le tas et la pile sont deux sections mémoire qui contiennent la
virus et logiciels utilisant des failles de sécurité.
plupart du temps les buffers d'un processus. Les allocations
 Cette dynamiques (*malloc) sont placées dans le tas tandis que les
protection se base sur une partie logicielle (implantée
statiques (char/int/... *buff[SIZE]) sont placées dans la pile.
dans le système d'exploitation windows) et matérielle
(implantée dans les processeurs).  En rendant ces adresses aléatoires, l'attaquant ne peut plus
utiliser les techniques classiques d'exploitation, les réussites
d'exploitation sont donc bien souvent plus rares.

Master IAO G. Orhanou Master IAO G. Orhanou


Technique du « canari » OS: Statistiques générales
Le  Windows avec ses différentes versions est le système d’exploitation
principe de fonctionnement: le plus populaire. La famille Windows compte plus de 70%:
stocker une valeur secrète, générée à l’exécution, juste
avant l'adresse de retour (entre la fin de la pile et
l'adresse de retour).
Lorsque la fonction se termine, cette valeur est
contrôlée. Si cette clé est modifiée (par un débordement
ou par l'injection de code malhonnête), l’exécution est
avortée.

Cette méthode permet d'empêcher l'exécution de


code corrompu, mais ralentit l’appel de la
fonction et augmente la taille du code.
Source: http://www.w3schools.com/browsers/browsers_os.asp

Master IAO G. Orhanou Master IAO G. Orhanou

OS: Statistiques générales


 Statistiques pour les OS mobiles: Etudes de cas

1er cas: Microsoft Windows


2ème cas: Linux

* * iOS is the operating system for Apple mobile devices (like iPhone, iPad and iPod)
Source: http://www.w3schools.com/browsers/browsers_os.asp

Master I AO G. Orhanou Master IAO G. Orhanou


Historique: Trustworthy Computing
 La sécurité a longtemps été le talon d'Achille de Microsoft.
 Mais, en 2002, Bill Gates a exprimé la volonté de replacer la
sécurité au centre du développement de Windows
Sécurité  Solution: L’informatique de confiance: une démarche
intégrant la sécurité dans la conception et le développement

de Microsoft Windows de ses logiciels et systèmes.

Master IAO G. Orhanou Master IAO G. Orhanou

Principes SD3+C pour la création de Phases et activités SDL


logiciels plus sécurisés Microsoft Security Development Lifecycle
 Microsoft  Les phases SDL et les activités obligatoires dans le domaine de
a désigné ces principes SD3+C :
 Secure by Design (sécurisé par conception), la sécurité se résument comme suit:
 impose des processus destinés à éviter l'introduction de failles
en premier lieu
 Secure by Default (sécurisé par défaut),
 implique que l'exposition par défaut du logiciel, sa «surface

d'attaque », soit réduite.


 Secure in Deployment (sécurisé dans le déploiement)
 Accompagnement lors du déploiement des logiciels pour aider

les utilisateurs à les utiliser de façon sécurisée.


 et Communications.
 communiquer de façon transparente et responsable avec les

utilisateurs finaux pour les aider à prendre des mesures de


protection
Master IAO G. Orhanou Master IAO G. Orhanou
User Account Control (UAC) - Définition

 UAC est une technologie conçue pour protéger les


fichiers et le système de registre du système
Mécanismes de protection d'exploitation contre les malwares, les virus, et les
code malveillants qui tentent de accéder voir modifier
sous l’OS Windows ou altérer les zones protégées de l'ordinateur.
 Le logiciel malveillant essaye, en fait, d'ajouter,
modifier, et supprimer des parties fondamentales du
système d'exploitation afin d'essayer de commander
l'ordinateur et de ne pas être repéré.

Master IAO G. Orhanou Master IAO G. Orhanou

UAC - Fonctionnement UAC – Fonctionnement (différents modes)


 1er cas: utilisateur sans privilèges  2ème cas: administrateur
 UAC enlève tout privilège « administratif » des administratifs
applications, tâches ou actions qu'un utilisateur
effectue durant son travail quotidien.
 Il y a 2 cas différents de l’application de l’UAC :
pour un utilisateur qui n'appartient pas au groupe
d'administrateurs locaux
pour un utilisateur qui appartient au groupe
d'administrateurs locaux

Master IAO G. Orhanou Master IAO G. Orhanou


UAC - options Système de fichiers
 il  Les fichiers sont gérés par un système de gestion de
est possible que
l'administrateur fichiers, qui fait souvent partie du système d’exploitation.
commande, à travers
l'UAC, le niveau de  Un système de fichiers désigne la manière dont les
sécurité mis en place. fichiers sont organisés. Il permet de :
 Le

classer les fichiers dans des dossiers
niveau le plus élevé est
ennuyant, mais sécurise

de chiffrer les fichiers (pour certains systèmes de
bien l’ordinateur. fichiers)

Restreindre l’accès aux fichiers pour certains
 Le niveau le plus bas utilisateurs.
transforme un Windows 7
en Windows XP, sans  Exemples :
aucune sécurité dans ce
sens!!!!

NTFS, FAT32, ext3, ...

Master IAO G. Orhanou Master IAO G. Orhanou

Système de fichiers Système de fichiers NTFS


 Avantages du NTFS (New Technology File
System):
NTFS permet :
de mettre des droits très spécifiques (ACL – Access
Control List) sur les fichiers et répertoires : lecture,
écriture, exécution, appropriation, etc. ;
de chiffrer des fichiers avec EFS (Encrypting File
System) ;
de compresser des fichiers ;
d'établir des quotas par volume (Les quotas de disque sont
implémentés pour chaque volume et permettent d'établir des
limites de stockage aussi bien matérielles que logicielles pour
chaque utilisateur).

G. Orhanou Master IAO G. Orhanou


Les permissions NTFS
Chiffrement
 EFS (Encrypting File System)
NTFS
Chiffre les fichiers et répertoires, protège les
informations personnelles contre des attaques de
personnes ayant un accès direct à l'ordinateur.
 BitLocker
Chiffre des volumes entiers

Master IAO G. Orhanou Master IAO G. Orhanou

EFS (Encrypting File System) EFS (Encrypting File System)


 EFS réalise l’opération
de chiffrement en  La clé symétrique utilisée est elle-même chiffrée avec une
utilisant la clé publique associée à l'utilisateur qui a chiffré le fichier;
cryptographie la clé symétrique chiffrée est stockée dans l'en-tête du
symétrique.
fichier chiffré.
 EFS fonctionne en
 Pour le déchiffrer, le système de fichiers utilise la clé
chiffrant un fichier avec
une clé symétrique, privée de l'utilisateur pour déchiffrer la clé symétrique
appelée File située dans l'en-tête. Enfin, il utilise cette clé symétrique
Encryption Key ou pour le déchiffrement du fichier.
FEK.
 Étant donné que tout est réalisé au niveau du système de
fichiers, ces opérations sont invisibles pour l'utilisateur.

Master IAO Master IAO G. Orhanou


G. Orhanou
Windows BitLocker Drive Encryption Firewall de Windows
 Windows BitLocker Drive Encryption (BitLocker): BitLocker
permet de faire face aux menaces de vol ou de perte de données Le Firewall de Windows 7 par exemple est :
 Un firewall avec état:
causées essentiellement par la perte ou le vol d’ordinateurs
 il prend en compte la validité des paquets qui transitent par rapport
personnels.
aux paquets précédemment reçus. Il garde alors en mémoire les
différents attributs de chaque connexion, de son commencement
jusqu’à leur fin.
 Un firewall personnel qui permet de filtrer les paquets des
 Introduit avec Windows connexions entrantes (incoming ou inbound) et sortantes (outgoing
Vista; ou outbound), contrairement aux anciennes versions:
 Chiffre un volume ou une  Comportement par défaut pour les connexions entrantes :

partition complète; Block. Il est recommandé de bloquer par défaut toutes les
connexions entrantes. Et Afin d’autoriser la réception du trafic à
partir de certains programmes spécifiques, on crée des règles
inbound qui servent d’exception au comportement par défaut.
 Comportement par défaut pour les connexions sortantes:
Allow. Il est recommandé d’autoriser par défaut toutes les
connexions sortantes et céer des règles outbound pour bloquer le
trafic qui devra l’être.
Master IAO G. Orhanou Master IAO G. Orhanou

Console MMC Utilisation de modèles de sécurité


pour gestion du Firewall Windows Les modèles de sécurité sont des fichiers
de texte qui définissent des paramètres de
stratégie pour des ordinateurs utilisant la
plate-forme Windows

Zone de sécurité Description


Stratégies de Stratégie de mot de passe, stratégie de verrouillage des
comptes comptes et stratégie Kerberos
Stratégies locales Stratégie d'audit, attribution des droits utilisateur et options de
sécurité
Journal des Paramètres des journaux d'événements Applications,
événements Système et Sécurité
Groupes restreints Appartenance à des groupes où la sécurité est un facteur
sensible (ex. Administrateurs, Opérateurs de serveur,
Opérateurs de sauvegarde, Utilisateurs avec pouvoir
Services système Démarrage et autorisations pour les services système
Registre Autorisations pour les clés du Registre
Système de Autorisations pour les dossiers et les fichiers
fichiers
Exemple de stratégie locale Exemple de stratégie locale pour
les mots de passe

Master IAO G. Orhanou Master IAO G. Orhanou

Architecture de GNU/Linux

Sécurité d’un système Linux

Linux Army

Master IAO Master IAO


G. Orhanou
Sécurité des mots de passe
Sécurité des mots de passe
 Les mots de passe constituent une des méthodes qui
peuvent être utilisées par un système Linux pour vérifier
 Sécuritédes mots l'identité d'un utilisateur.
de passe  Sécurité des mots de passe:
 Utilisation d’une bonne fonction de hachage;
 Structurede  Utilisation de mots de passe masqués
/etc/passwd  Choix judicieux des mots de passe : utiliser un outil pour
 Structure vérifier la robustesse du mot de passe: ex. John the
de ripper
/etc/shadow
 Mettre en place une politique d’expiration des mots de
passe;

Master IAO G. Orhanou Master IAO G. Orhanou

Sécurité des mots de passe


Sécurité des mots de passe
 Dans les anciennes versions de Linux, les mots de passe
masqués n’étaient pas utilisés. Par conséquent, tous les  Il
y a trois fichiers de configuration importants, dont les
mots de passe étaient stockés en tant que hachage à entrées sont séparées par des « : », ce sont :
sens unique dans le fichier /etc/passwd qui est lisible par
tout les utilisateurs.
 Les mots de passe masqués éliminent ce type d'attaque
en stockant les hachages de mots de passe dans le
fichier /etc/shadow qui n'est lisible que par le super-
utilisateur.
 Lechangement de mot de passe s'effectue par la
commande passwd.

Master IAO G. Orhanou Master IAO G. Orhanou


Structure de /etc/shadow
Structure de /etc/passwd « /etc/shadow » contient ceci :
« /etc/passwd » contient ce qui suit :
Username :password :last :may :must :warn :expire :disable :reserved
Username login name of the account
Password encoded password (le « $1$ » du début indique l’utilisation d'un
La structure d’une entrée du fichier /etc/passwd est la suivante : chiffrement MD5, le $6 indique SHA-512.)
Username :password :uid :gid :fullname :homedir :shell Last Days since January 1, 1970 that password was last changed
May Minimum days a user must wait before she can change the
Username login name of the account password since the last change
Password encoded password Must maximum number of days that the user can go on without changing
UID Unique user ID the password
GID Group ID Warn number of days when the password change reminder starts
Fullname used to store a user full name or a short comments Expire days after password expires that account is disabled
Homedir User’s home directory path Disable days since jan. 1, 1970 that account is disabled
Shell User’s login shell Reserved a reserved field
Master IAO G. Orhanou Master IAO G. Orhanou

Contrôles administratifs Restriction de l’accès root (1/2)


 Lors de l'administration d'un ordinateur privé,  Utilisation de la commande su:
l'utilisateur doit effectuer certaines tâches en tant
su (substitute user ou switch user) est une
que super-utilisateur ou en s'appropriant les
privilèges du super-utilisateur au moyen d'un commande Unix permettant d'exécuter un Shell avec un
Group ID et un User ID différents.
programme setuid tel que sudo ou su.
Cette commande est surtout utilisée pour obtenir les
 Un programme setuid utilise l'ID utilisateur
privilèges d'administration à partir d'une session
(UID) du propriétaire du programme plutôt que
d'utilisateur normal, c’est-à-dire, non privilégiée.
l'utilisateur se servant du programme.

Master IAO G. Orhanou Master IAO G. Orhanou


Restriction de l’accès root (2/2) Exemple d’un fichier /etc/sudoers
 Utilisation de la commande sudo:
permet d'attribuer des privilèges à des utilisateurs et
pour des commandes spécifiques.
permet à un utilisateur normal d'obtenir les privilèges
d'administrateur en s’authentifiant simplement par son
mot de passe.
 La configuration des droits se fait au niveau du
fichier /etc/sudoers, en utilisant un utilitaire
nommé Visudo.

Master IAO G. Orhanou Master IAO G. Orhanou

Exemple d’un fichier /etc/sudoers Exemple d’un fichier /etc/sudoers


 Le fichier sudoers par défaut contient en Un autre exemple:
particulier la ligne suivante :
root ALL=(ALL) ALL %users ALL = /sbin/mount /cdrom, /sbin/umount
 Cela signifie que l'utilisateur root, sur n’importe /cdrom
quelle machine (le premier ALL) a le droit %users localhost = /sbin/shutdown –h now
d'utiliser Sudo pour lancer n'importe quel
programme (le troisième ALL), appartenant à
n'importe quel utilisateur (le deuxième ALL).

Master IAO G. Orhanou Master IAO G. Orhanou


Le firewall Netfilter Structure de Netfilter
 Netfilter est une architecture de filtrage des paquets pour
les noyaux Linux. Le filtrage se fait au sein même du
noyau au niveau des couches 2, 3 et 4 du modèle OSI.
 Netfilter n’inspecte que les en-têtes des paquets, il est
extrêmement rapide et n’entraîne pas de temps de
latence.
 Le programme utilisateur permettant d’agir sur les règles
de filtrage est iptables.

Sous Windows : le firewall sous windows peut être arrêté ou attaqué  système sera
insécurisé.
Sous Linux: Aucun programme ne peut interférer avec Netfilter à l’exception de iptables
qui n’est accessible que par le root.

Master IAO G. Orhanou Master IAO G. Orhanou

Les chaînes et règles de Netfilter Les chaînes du Netfilter


 Chaînes: Une chaîne est un ensemble de règles qui indiquent ce
qu'il faut faire des paquets qui la traversent. Lorsqu'un paquet arrive  Chaque état (rectangle) correspond à un point de filtrage
dans une chaîne : possible par la commande iptables:
 Netfilter regarde la 1ère règle de la chaîne,
 puis regarde si les critères de la règle correspondent au paquet.  PREROUTING : traite les paquets à leur arrivée. Si un paquet est à
 Si le paquet correspond, la cible est exécutée (jeter le paquet, le destination du système local, il sera traité par un processus local
laisser passer, etc.). (INPUT). Sinon, et si le forwarding est activé, les règles FORWARD
 Sinon, Netfilter prend la règle suivante et la compare de nouveau et POSTROUTING seront appliquées.
au paquet. Et ainsi de suite jusqu'à la dernière règle.  FORWARD : les paquets ne font que traverser le système local.
 Si aucune règle n'a interrompu le parcours de la chaîne, la politique
Traite les paquets routés à travers le système local.
par défaut est appliquée.  INPUT : traite les paquets destinés au système local, en entrée
 Règles (après le routage).
 Une règles est une combinaison de critères et une cible. Lorsque  OUTPUT : traite les paquets quittant le système local, avant
tous les critères correspondent au paquet, le paquet est envoyé POSTROUTING.
vers la cible.  POSTROUTING : traite les paquets juste avant leur sortie du
 Les critères disponibles et les actions possibles dépendent de la système.
chaîne manipulée.

Master IAO G. Orhanou Master IAO G. Orhanou


Exemple d’utilisation de Netfilter Autres exemples d’utilisation de Netfilter
 Voiciune règle simple qui autorise tous les paquets en  iptables
-A INPUT -p tcp -m multiport --destination-port 21,23 -s !
provenance de 192.168.1.11. 127.0.0.1 -j DROP :
# iptables -A INPUT -s 192.168.1.11 –j ACCEPT
 -A  iptables -A INPUT -p tcp --syn -m limit --limit 10/s -j ACCEPT :
: pour l’ajout d’une règle au point de filtrage (INPUT, OUTPUT,
FORWARD, PREROUTING, POSTROUTING) qu’on appelle aussi
chaîne.
 -s : source, peut être une adresse IP, un nom d’hôte, un réseau,  iptables
-A INPUT -p tcp -m mac --mac-source 00:02:B3:98:41:08
etc.
 -j : jump, cible de la règle (ACCEPT, DROP, REJECT...) –j DROP :
Résultat : vous autorisez l’entrée des paquets dont la source est
192.168.1.11.

Master IAO G. Orhanou Master IAO G. Orhanou

Top 25 des erreurs de programmation les


plus dangereuses
 Ce Top 25 (http://www.sans.org/top25-software-errors/ ou
http://cwe.mitre.org/top25/) est annoncé comme un
Introduction véritable bond en avant dans la sécurité informatique des
réseaux.
à la sécurité des applications Rq : Les failles n'y sont pas simplement présentées, elles
y sont aussi analysées et chacune d'entre elles est
accompagnée des moyens de la combler.

«La cause principale des attaques informatiques est


le manque de connaissance des principes de sécurité
dans la programmation. »

Master IAO G. Orhanou Master IAO G. Orhanou


Top 25 des erreurs de programmation les Top 25 des erreurs de programmation les
plus dangereuses plus dangereuses
 Ces erreurs de programmation sont regroupées en 3 Programming Error Category: Insecure Interaction Between
Components
catégories principales. Les codes associés aux erreurs
correspondent à leurs identifiants dans la base de données  [1] CWE-79: Failure to Preserve Web Page Structure ('Cross-site
CWE (Common Weakness Enumeration) de la MITRE (qui Scripting')
recense leur virulence, leur nature, leur fonctionnement,  [2] CWE-89: Failure to Preserve SQL Query Structure (aka 'SQL

etc.): Injection')
 [4] CWE-352: Cross-Site Request Forgery (CSRF)
 le manque de sécurisation dans l'interaction entre
 [8] CWE-434: Unrestricted Upload of File with Dangerous Type
composants (Insecure Interaction Between Components)  [9] CWE-78: Failure to Preserve OS Command Structure (aka 'OS
 la prise de risques dans la gestion des ressources
Command Injection')
(Risky Resource Management )  [17] CWE-209: Information Exposure Through an Error Message
 la porosité des mécanismes de défense (Porous  [23] CWE-601: URL Redirection to Untrusted Site ('Open

Defenses). Redirect')
 [25] CWE-362: Concurrent Execution using Shared Resource
with Improper Synchronization (‘Race Condition’)
Master IAO G. Orhanou Master IAO G. Orhanou

CWE-89: Failure to Preserve SQL Query Structure


Attaque par Injection SQL
(aka 'SQL Injection') Exemple
 Considérons un site web dynamique (programmé en PHP dans cet
exemple) qui dispose d'un système permettant aux utilisateurs

SQL injection est une technique qui permet à une possédant un nom d'utilisateur et un mot de passe valides de se
connecter. Ce site utilise la requête SQL suivante pour identifier un
personne malveillante de modifier une requête SQL
utilisateur :
existante pour afficher les données cachées, ou écraser SELECT uid FROM Users WHERE name = '(nom)' AND password
des valeurs importantes ou encore exécuter des = '(mot de passe hashé)';
commandes dangereuses pour la base de données.
 Si on suppose que le script PHP exécutant cette requête ne fait pas

Elle est liée à l'insuffisance, ou l'absence de contrôle des de contrôle des données saisies, un hacker, connaissant le login Ali,
pourrait alors fournir les informations suivantes :
instructions SQL saisies pour accéder à une base de  Utilisateur : Ali';--
données.  Mot de passe : n'importe lequel
 La requête devient :
SELECT uid FROM Users WHERE name = ‘Ali'; -- ' AND password
= '(mot de passe hashé)‘;

Master IAO G. Orhanou Master IAO G. Orhanou


CWE-362:
Concurrent Execution using Shared Resource with Improper
Top 25 des erreurs de programmation les
Synchronization (‘Race Condition’) plus dangereuses
Exemple d’un cas de Race condition Programming Error Category: Risky Resource Management

Une race condition peut arriver lorsque au moins deux [3] CWE-120: Buffer Copy without Checking Size of Input ('Classic
acteurs entrent en concurrence, et que le résultat des Buffer Overflow')
opérations diffère selon l’acteur qui a agit avant l’autre. [7] CWE-22: Improper Limitation of a Pathname to a Restricted
Directory ('Path Traversal')
Cela se produit lorsque les deux acteurs travaillent en
[14] CWE-98: Improper Control of Filename for Include/Require
même temps : Statement in PHP Program ('PHP File Inclusion')
[12] CWE-805: Buffer Access with Incorrect Length Value

quand plusieurs CPU tournent par exemple, [13] CWE-754: Improper Check for Unusual or Exceptional Conditions
[15] CWE-129: Improper Validation of Array Index

ou lorsqu’ils s’entrecroisent s’il n’y a qu’un CPU et que ce [16] CWE-190: Integer Overflow or Wraparound
CPU alterne entre les deux tâches pour qu’elles [18] CWE-131: Incorrect Calculation of Buffer Size
[20] CWE-494: Download of Code Without Integrity Check
s’exécutent avec un pseudo-parallélisme. [21] CWE-770: Allocation of Resources Without Limits or Throttling

Master IAO G. Orhanou Master IAO G. Orhanou

Top 25 des erreurs de programmation les Bibliographie


plus dangereuses  Andrew Tanenbaum (Université libre d’Amsterdam), « Systèmes
d’exploitation », 3ème édition, Nouveaux Horizons, 2008.
 Wolfgang Mauerer, « Professional Linux® Kernel Architecture », Wiley
Programming Error Category: Porous Defenses Publishing, Inc, 2008.
 F. Elmaleh, E. Dreux, « La Sécurité sous Windows 7 », ENI Editions,
[5] CWE-285: Improper Access Control (Authorization) 2011
 Russell Smith, « Least Privilege Security for Windows 7, Vista, and
[6] CWE-807: Reliance on Untrusted Inputs in a Security
XP », PACKT Publishing, 2010
Decision  P.Thurrott, R. Rivera, “Windows 7 Secrets”, Wiley Publishing Inc, 2009
[10] CWE-311: Missing Encryption of Sensitive Data  Professor Messer’s Free, « CompTIA A+ Certification – Training
[11] CWE-798: Use of Hard-coded Credentials Course, Operating System Security Issues », 2010 Messer Studios,
[19] CWE-306: Missing Authentication for Critical Function LLC
 Dossier: « Sécurité Android », MISC n°63, sept/oct 2012
[22] CWE-732: Incorrect Permission Assignment for Critical  P. Prados, « Les architectures de sécurité des OS Mobiles », Linux
Resource magazine HS n°61, Juillet/Août 2012.
 [24] CWE-327: Use of a Broken or Risky Cryptographic P. Prados, « Sécurité du développement », Linux magazine HS n°61,
Algorithm Juillet/Août 2012.

Master IAO G. Orhanou Master IAO G. Orhanou


Webographie
 http://www.linux.org/
 http://www.linuxdoc.org/
 http://www.gnu.org/gnu/linux-and-gnu.html
 http://fr.wikibooks.org
 http://www.kernel.org/
 http://www.netfilter.org/
 « Preleminary specification - X/Open Single Sign-On Service (XSSO) -
Pluggable Authentication Modules », The Open Group, 1997:
www.opengroup.org/onlinepubs/8329799/toc.pdf
 http://sourcedaddy.com/windows-7/windows-7-security.html
 http://www.forum-seven.com/forum/topic329.html
 Sécurité Windows: http://technet.microsoft.com/fr-fr/windows/aa905062
 BitLocker Drive Encryption Technical Overview:
http://technet.microsoft.com/en-us/library/ cc732774 %28v=ws.10%29
 http://cwe.mitre.org/top25/archive/2011/2011_cwe_sans_top25.pdf
 http://cwe.mitre.org
 http://www.sans.org
 http://www.viruslist.com/fr

Master IAO G. Orhanou

Vous aimerez peut-être aussi