1. Introduction à la Sécurité Informatique
2. Principaux Concepts de la Sécurité
La sécurité est un compromis entre coûts, risques et contraintes. Le poids d'un risque est estimé par la formule :
Faiblesse inhérente à un système (software ou hardware), appelée parfois faille. Elle laisse à un assaillant l'opportunité de porter atteinte à l'intégrité du système. Exemple : un port ouvert non nécessaire, un logiciel non mis à jour.
Action potentielle susceptible de provoquer un dommage sur un système et ayant un impact sur ses fonctionnalités, son intégrité ou sa disponibilité. Peut être intentionnelle (attaque) ou accidentelle (panne).
Estimé en fonction de la sensibilité et de la vulnérabilité du système. Plus le système est vulnérable face à une menace forte, plus le risque est élevé.
Moyen permettant de réduire le risque dans une organisation. Peut être technique (pare-feu, chiffrement), organisationnelle (politique de sécurité) ou humaine (sensibilisation).
La sensibilisation aux risques au sein de l'entreprise aide les collaborateurs à mieux comprendre les risques existants, leur impact potentiel et la façon dont l'entreprise peut les gérer.
3. Services de Sécurité — Le Modèle CIA+
Tout système de sécurité vise à garantir au minimum trois propriétés fondamentales, souvent représentées par le triptyque CIA. Deux propriétés supplémentaires complètent le modèle :
| # | Service | Définition | Exemple de menace |
|---|---|---|---|
| CIA-C | Confidentialité | Les données ne sont accessibles qu'aux personnes autorisées. Réalisée par le chiffrement. | Interception (sniffing), écoute passive |
| CIA-I | Intégrité | Garantit que les données n'ont pas été altérées (modifiées, supprimées, ajoutées) de façon non autorisée. | Attaque Man-in-the-Middle, modification de paquets |
| CIA-A | Disponibilité | Le système et les données doivent être accessibles aux utilisateurs autorisés quand ils en ont besoin. | Attaque DoS/DDoS, ransomware |
| + | Authentification | Processus vérifiant l'identité d'un utilisateur ou d'un système avant d'accorder l'accès. | Usurpation d'identité, phishing |
| + | Non-répudiation | Impossibilité pour un émetteur de nier avoir envoyé un message. Réalisée par les signatures numériques. | Déni d'envoi / de réception |
┌─────────────────────────────────────────┐
│ SÉCURITÉ INFORMATIQUE │
└──────────────┬──────────────────────────┘
│
┌──────────────┼──────────────┐
▼ ▼ ▼
┌─────────────┐ ┌──────────┐ ┌─────────────────┐
│ CONFIDENTI- │ │INTÉGRITÉ │ │ DISPONIBILITÉ │
│ ALITÉ │ │ │ │ │
│ (Chiffre- │ │(Hash, │ │ (Redondance, │
│ ment) │ │ MAC) │ │ Pare-feux) │
└─────────────┘ └──────────┘ └─────────────────┘
+
┌──────────────┐ ┌───────────────────┐
│AUTHENTIFI- │ │ NON-RÉPUDIATION │
│CATION │ │ (Signature) │
└──────────────┘ └───────────────────┘
4. Menaces, Attaques & Vulnérabilités
L'attaquant observe sans modifier les données. Difficiles à détecter mais ne perturbent pas le système.
Exemples : Écoute (sniffing), analyse de trafic, interception.
L'attaquant modifie les données ou perturbe le système. Détectables mais plus destructrices.
Exemples : DoS/DDoS, Man-in-the-Middle, injection SQL, rejeu.
| Type | Définition | Vecteur de propagation |
|---|---|---|
| Virus | Programme qui se réplique en s'attachant à d'autres fichiers légitimes. | Fichiers exécutables, documents |
| Ver (Worm) | Se propage automatiquement sur le réseau sans intervention humaine. | Réseau, emails, vulnérabilités OS |
| Cheval de Troie | Se déguise en logiciel légitime tout en exécutant des actions malveillantes en arrière-plan. | Téléchargements, pièces jointes |
| Ransomware | Chiffre les données de la victime et exige une rançon pour la clé de déchiffrement. | Phishing, drive-by download |
| Spyware | Collecte discrètement des informations sur l'utilisateur (mots de passe, habitudes). | Logiciels gratuits, plugins |
| Rootkit | Masque la présence d'autres malwares en modifiant le système d'exploitation. | Exploits noyau, élévation de privilèges |
- Phishing : Usurpation d'identité par email/site web pour voler des identifiants. Variante : spear-phishing (ciblé).
- DoS / DDoS : Déni de Service (Distributed) — inonder une cible de requêtes pour la rendre indisponible.
- Injection SQL : Insérer du code SQL malveillant dans un formulaire pour manipuler la base de données.
- Man-in-the-Middle (MitM) : L'attaquant s'intercale entre deux parties qui croient communiquer directement.
- Brute Force / Dictionnaire : Tester toutes les combinaisons possibles de mot de passe.
- Ingénierie sociale : Manipuler psychologiquement des individus pour obtenir des informations confidentielles.
5. Qu'est-ce qu'un Pare-feu ?
Un pare-feu est un programme ou matériel chargé de protéger le réseau local du monde extérieur. C'est un ensemble de composants appliquant une politique de contrôle d'accès entre deux réseaux.
Il filtre les paquets entrant et sortant du réseau surveillé et les bloque le cas échéant. Il peut être incorporé à un routeur, une passerelle ou un serveur.
┌──────────┐ ┌──────────────┐ ┌──────────────┐
│ INTERNET │ ───► │ PARE-FEU │ ───► │ RÉSEAU LAN │
│(Non sûr) │ │ (Filtre) │ │ (Protégé) │
└──────────┘ └──────────────┘ └──────────────┘
│
Règles prédéfinies :
- IP source/destination
- Port source/destination
- Protocole (TCP/UDP/ICMP)
- Interface entrée/sortie
→ ACCEPT | DROP | REJECT
Fonctionnement : Le pare-feu compare les informations des paquets à un ensemble de règles prédéfinies pour bloquer ou autoriser le trafic. Les critères de filtrage sont :
- Adresse IP source et adresse IP destination
- Port source et port destination (ex: port 80 = HTTP, port 443 = HTTPS)
- Protocole : TCP, UDP, ICMP...
- Interface d'entrée et de sortie (eth0, eth1...)
6. Types de Pare-feux
Fonctionne au niveau des couches Internet et Transport du modèle TCP/IP. Il autorise ou refuse un paquet en fonction de son entête IP (adresses IP, ports, protocole), sans accéder au contenu.
Analyse chaque paquet indépendamment des autres. Simple et rapide, mais ne peut pas traquer l'état d'une connexion.
Limitation : Vulnérable aux attaques qui exploitent le contexte d'une session (ex: forger un paquet TCP ACK).
Maintient une table d'états qui suit chaque connexion établie. Peut prendre des décisions en tenant compte du contexte de la connexion.
Avantage : Peut distinguer un paquet légitime d'une réponse normale d'un paquet intrusif.
Fonctionne au niveau applicatif du modèle TCP/IP. Peut filtrer les entêtes IP et les données. Principe : quand un utilisateur veut se connecter à un serveur externe, il se connecte d'abord au programme mandataire (proxy), qui relaie vers le serveur demandé.
CLIENT (LAN) PROXY FIREWALL SERVEUR EXTERNE
│ │ │
│─── Requête HTTP ────►│ │
│ (port 8080) │── Requête HTTP ───────►│
│ │ (port 80) │
│ │◄── Réponse ────────────│
│◄── Réponse filtrée ──│ │
│ (inspecté) │ │
Avantage : Inspecte le CONTENU (données applicatives)
Inconvénient : Plus lent (traitement supplémentaire)
| Critère | Filtrage Paquets | Stateful | Applicatif (Proxy) |
|---|---|---|---|
| Couche OSI | 3 (Réseau) / 4 (Transport) | 3 / 4 | 7 (Application) |
| Vitesse | ⚡ Très rapide | 🔄 Rapide | 🐢 Plus lent |
| Inspection contenu | ❌ Non | ❌ Non | ✅ Oui |
| Suivi connexion | ❌ Non | ✅ Oui | ✅ Oui |
| Complexité | Faible | Moyenne | Élevée |
| Sécurité | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
7. Zone Démilitarisée (DMZ)
Une zone démilitarisée (DMZ) est un sous-réseau se trouvant entre le réseau local (LAN) et le réseau externe (Internet). Elle contient les serveurs accessibles publiquement (Web, Mail, DNS).
La DMZ est plus ouverte sur l'extérieur que le réseau interne, mais plus protégée qu'Internet. Si un serveur de la DMZ est compromis, l'attaquant ne peut pas directement accéder au réseau interne.
┌─────────────────┐
│ FIREWALL │
│ eth0│eth1│eth2 │
└──┬───┴──┬─┴──┬──┘
│ │ │
▼ ▼ ▼
┌────────┐ │ ┌───────────┐
│Internet│ │ │ LAN │
│(eth1) │ │ │ (eth2) │
│ │ │ │10.200.12.x│
└────────┘ │ └───────────┘
▼
┌──────────────┐
│ DMZ │
│ (eth0) │
│ Web : .208 │
│ Mail : .209 │
└──────────────┘
Interface eth0: 137.204.212.129 (vers DMZ)
Interface eth1: 193.194.88.1 (vers Internet)
Interface eth2: 10.200.12.1 (vers LAN)
Politique DMZ :
├── Internet → DMZ : Autorisé (HTTP port 80/443)
├── DMZ → LAN : INTERDIT (isolation critique !)
├── LAN → Internet : Autorisé (via NAT)
└── Internet → LAN : INTERDIT
Sans DMZ, si un attaquant compromet votre serveur web (accessible depuis Internet), il a un accès direct à votre réseau interne. Avec la DMZ, le serveur web est isolé : même compromis, l'attaquant ne peut pas atteindre le LAN (bloqué par le pare-feu).
8. IPTABLES — Pare-feu Linux
iptables est une solution complète de firewall Linux (noyau 2.4), remplaçant ipchains (noyau 2.2). Il permet de faire du firewalling stateful, de la translation de port et d'adresse (NAT), et du filtrage niveau 2.
INPUT, OUTPUT, FORWARDPREROUTING, POSTROUTING| Chaîne | Description | Cas d'usage |
|---|---|---|
INPUT |
Paquet à destination du système, entrant dans une interface (toujours en entrée). | Protéger le firewall lui-même (ex: bloquer SSH depuis Internet) |
OUTPUT |
Paquet généré par le système, sortant par une interface (toujours en sortie). | Contrôler ce que le firewall envoie |
FORWARD |
Paquet traversant le système (ni source, ni destination finale). | Filtrer le trafic entre LAN ↔ Internet ↔ DMZ |
| Cible (Action) | Effet |
|---|---|
ACCEPT | ✅ Accepter le paquet — il passe. |
DROP | ❌ Rejeter silencieusement — aucun message d'erreur envoyé à l'expéditeur. Préféré pour la sécurité. |
REJECT | ⚠️ Rejeter avec retour d'erreur à l'expéditeur. Moins discret que DROP. |
| Chaîne | Moment d'application |
|---|---|
PREROUTING | À l'arrivée du paquet sur le pare-feu (avant routage). Utilisé pour DNAT. |
POSTROUTING | À la sortie du pare-feu (après routage). Utilisé pour SNAT/MASQUERADE. |
| Cible NAT | Effet |
|---|---|
SNAT | Modifie l'adresse IP source du paquet. Utilisé pour partager une connexion Internet (IP fixe). |
DNAT | Modifie l'adresse IP destination du paquet. Utilisé pour rediriger des ports (port forwarding). |
MASQUERADE | Comme SNAT mais pour IP dynamique — le pare-feu donne l'illusion que tous les paquets viennent de lui. |
iptables -t <table> -A <CHAÎNE> [critères] -j <CIBLE>
| Option | Description |
|---|---|
-A chain | Ajoute la règle à la fin de la chaîne spécifiée |
-I chain [n] | Insère la règle à la position n (début si omis) |
-D chain | Supprime une règle de la chaîne |
-R chain n | Remplace la règle n de la chaîne |
-L | Affiche les règles en vigueur |
-F | Vide (flush) la chaîne complète |
-p protocol | Protocole : tcp, udp, icmp |
-s adresse | Adresse IP source (ex: -s 192.168.1.0/24) |
-d adresse | Adresse IP destination |
-i interface | Interface d'entrée (ex: -i eth0) |
-o interface | Interface de sortie |
--dport port | Port destination (ex: --dport 80) |
--sport port | Port source |
-j cible | Action : ACCEPT, DROP, REJECT, SNAT, DNAT... |
Contexte : Pare-feu à 3 interfaces (eth0 → DMZ, eth1 → Internet, eth2 → LAN)
# Autoriser connexions vers le serveur web 137.204.212.208 sur port 80 iptables -t filter -A FORWARD -d 137.204.212.208 --dport 80 -j ACCEPT
# DMZ vers Internet autorisé (interface eth1) iptables -t filter -A OUTPUT -s 137.204.212.128/25 -o eth1 -j ACCEPT
# Partager Internet du LAN1 (10.200.10.0/24) via eth0 iptables -t nat -A POSTROUTING -s 10.200.10.0/24 -o eth0 -j MASQUERADE # Alternative avec SNAT (IP publique fixe 193.194.88.1) iptables -t nat -A POSTROUTING -s 10.200.10.0/24 -j SNAT --to 193.194.88.1
# Port 80 externe redirigé vers port 8080 interne (camoufler config serveur) iptables -t nat -A PREROUTING -p TCP --dport 80 -i eth0 -j DNAT --to 193.194.88.10:8080
eth0 → 137.204.212.129 (interface vers la DMZ - réseau 137.204.212.128/25)
eth1 → 193.194.88.1 (interface vers Internet)
eth2 → 10.200.12.1 (interface vers le LAN - réseau 10.200.12.0/24)
Web Server DMZ → 137.204.212.208 · Mail Server DMZ → 137.204.212.209
Host A LAN → 10.200.12.8 · Host B LAN → 10.200.12.5
Analyse : Le trafic vient d'Internet et va vers la DMZ. Le paquet traverse le pare-feu → chaîne FORWARD. Destination = serveur web (IP .208), port 80.
iptables -t filter -A FORWARD -d 137.204.212.208 --dport 80 -j ACCEPT
Pourquoi FORWARD ? Le paquet entre par eth1 (Internet) et ressort par eth0 (DMZ). Il traverse le firewall sans être pour lui. Les chaînes INPUT/OUTPUT ne concernent que les paquets dont le firewall est la source/destination finale.
Analyse : Source = DMZ (137.204.212.128/25), destination = Internet, interface de sortie = eth1. Le paquet traverse → chaîne FORWARD ou OUTPUT selon la perspective. Dans le cours, c'est traité comme OUTPUT (sortie du firewall vers Internet).
iptables -t filter -A OUTPUT -s 137.204.212.128/25 -o eth1 -j ACCEPT
Le masque /25 : 137.204.212.128/25 couvre les adresses .128 à .255, ce qui inclut le web server (.208) et mail server (.209) de la DMZ. C'est un seul sous-réseau décrit efficacement avec la notation CIDR.
Solution 1 — MASQUERADE (recommandée si IP publique dynamique) :
iptables -t nat -A POSTROUTING -s 10.200.10.0/24 -o eth0 -j MASQUERADE
Solution 2 — SNAT (recommandée si IP publique fixe = 193.194.88.1) :
iptables -t nat -A POSTROUTING -s 10.200.10.0/24 -j SNAT --to 193.194.88.1
Pourquoi POSTROUTING ? La translation d'adresse source s'applique après que le noyau a décidé du routage du paquet. Le paquet sort du LAN avec IP privée (10.x.x.x) et doit apparaître avec l'IP publique du pare-feu sur Internet.
Analyse : On veut que les requêtes arrivant sur le port 80 de l'IP publique soient redirigées vers le port 8080 du serveur interne. C'est du DNAT (Destination NAT) + port forwarding. Applicable à l'arrivée → chaîne PREROUTING.
iptables -t nat -A PREROUTING -p TCP --dport 80 -i eth0 -j DNAT --to 193.194.88.10:8080
Mécanisme :
① Un visiteur Internet envoie une requête vers IP_publique:80
② Le pare-feu intercepte en PREROUTING et modifie la destination : 193.194.88.10:8080
③ Le serveur reçoit la requête sur le port 8080 (son vrai port de config)
④ Le visiteur ne sait jamais que le vrai port est 8080 — sécurité par obscurité.
QCM — Chapitre 1 : Introduction & Pare-feux
Testez vos connaissances. Correction immédiate avec explication.