Aller au contenu
M08 · A. Introduire la sécurité informatique

L'hameçonnage et les attaques par déni de service

L'ingénierie sociale et l'hameçonnage (phishing par e-mail, SMS, téléphone), les indices qui trahissent un faux message, puis les attaques par déni de service (DoS, DDoS) - saturation, botnets - et les protections - limitation du débit, CDN, plan de continuité.

1Situer

Les deux attaques de cette leçon n'exploitent pas un bug de code. L'hameçonnage vise la personne : il la pousse à donner elle-même son mot de passe. Le déni de service vise la disponibilité : il noie le serveur sous les requêtes. Le développeur doit connaître les deux, pour former les utilisateurs et pour concevoir un site qui tient la charge.

2Comprendre

Une attaque par déni de service distribué
botnet Cliente Serveur répond ✖ délai dépassé CDNfiltre 429 aux excès

En temps normal, les clients envoient quelques requêtes : le serveur répond à chacun.

1 / 4

L’ingénierie sociale

L’hameçonnage

Les indices classiques :

  • une urgence ou une menace (« sous 24 h », « compte bloqué ») ;
  • une demande d’informations secrètes (mot de passe, code SMS, numéro de carte) : aucun organisme sérieux ne les demande ;
  • un expéditeur ou un lien dont le domaine ne correspond pas exactement ;
  • une pièce jointe inattendue ou à double extension (.pdf.exe) ;
  • une offre trop belle (gain, remboursement, colis à débloquer contre quelques dirhams).

Côté développeur, on protège ses utilisateurs : double authentification proposée, alertes de connexion depuis un nouvel appareil, enregistrements DNS anti-usurpation pour le domaine d’envoi (SPF, DKIM, DMARC), et jamais de lien de connexion dans les e-mails transactionnels.

Le déni de service

On distingue :

  • les attaques volumétriques, qui saturent la bande passante (des dizaines de Gbit/s) ;
  • les attaques sur les protocoles, qui épuisent les connexions du serveur ou du pare-feu (inondation SYN) ;
  • les attaques applicatives, qui envoient des requêtes HTTP coûteuses (une recherche lourde répétée en boucle).

Se protéger d’un DDoS

  • Limiter le débit (rate limiting) par IP et par compte : au-delà d’un seuil, répondre 429 Too Many Requests.
  • Placer le site derrière un CDN ou un service anti-DDoS (Cloudflare, par exemple), qui absorbe le trafic avant le serveur.
  • Mettre en cache les pages qui ne changent pas, optimiser les requêtes coûteuses.
  • Prévoir la continuité : hébergeur capable d’augmenter les ressources, page de secours, contacts d’urgence.
Exemple simple

Le faux agent du compteur

Un homme en gilet sonne pour « contrôler le compteur » et demande à entrer. Le gilet ne prouve rien : on appelle le numéro officiel avant d'ouvrir. Un e-mail aux couleurs de la banque, c'est le même gilet.

Exemple simple

La file bloquée par des faux clients

Cent complices font la queue au guichet sans rien acheter : les vrais clients ne peuvent plus être servis. Une attaque DDoS remplit la file du serveur avec des requêtes inutiles.

3Manipuler

Une employée reçoit un e-mail « Votre compte bancaire est suspendu ». Classez chaque observation : indice d'hameçonnage, ou élément qui ne prouve rien à lui seul.
L'expéditeur est service-client@banque-maroc-securite.co
« Sans réponse sous 24 h, votre compte sera fermé »
Le lien affiché dit banque.ma mais pointe vers bnq-verif.top
On vous demande votre mot de passe et le code reçu par SMS
La pièce jointe s'appelle Releve.pdf.exe
« Cher client » au lieu de votre nom
Le logo de la banque est parfaitement reproduit
Le site du lien affiche un cadenas HTTPS
Le message ne contient aucune faute d'orthographe

4Pratiquer

Exercice 1 · Que faire ?

Vous avez cliqué sur un lien d'hameçonnage et saisi votre mot de passe de messagerie professionnelle. Listez dans l'ordre ce que vous faites dans l'heure qui suit.

Voir le corrigé
1. Changer immédiatement le mot de passe, depuis le site officiel tapé à la main (et partout où il était réutilisé).
2. Activer ou vérifier la double authentification.
3. Prévenir le responsable informatique : il peut couper les sessions ouvertes et alerter les collègues.
4. Vérifier les règles de transfert et les messages envoyés récemment depuis le compte.
5. Signaler le message (bouton « signaler l'hameçonnage », ou plateforme nationale de signalement).

Exercice 2 · Limiter les tentatives

Une page de connexion reçoit des milliers de requêtes par minute depuis la même adresse IP. Écrivez en PHP une limite simple : au-delà de 10 requêtes par minute et par IP, répondre 429 Too Many Requests.

Voir le corrigé
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$fichier = sys_get_temp_dir() . '/limite_' . md5($ip);
$minute = date('YmdHi');
[$m, $n] = is_file($fichier) ? explode(':', file_get_contents($fichier)) : [$minute, 0];
$n = $m === $minute ? (int) $n + 1 : 1;
file_put_contents($fichier, "$minute:$n");
if ($n > 10) {
    http_response_code(429);
    header('Retry-After: 60');
    exit('Trop de requêtes, réessayez dans une minute.');
}

5Vérifier

1. Un site affiche le cadenas HTTPS. Est-ce la preuve qu'il est légitime ?
2. Que signifie le premier D de DDoS ?
3. Quel objectif de sécurité une attaque DDoS vise-t-elle ?