Cybersécurité: Les Attaques Par Déni de Service
Cybersécurité: Les Attaques Par Déni de Service
Cybersécurité: Les Attaques Par Déni de Service
DÉDICACES
REMERCIEMENTS
DÉDICACES -------------------------------------------------------------------------------------------------------- i
REMERCIEMENTS -------------------------------------------------------------------------------------------- ii
GLOSSAIRE ------------------------------------------------------------------------------------------------------- v
LISTE DES TABLEAUX ----------------------------------------------------------------------------------- viii
LISTE DES FIGURES ---------------------------------------------------------------------------------------- ix
INTRODUCTION GÉNÉRALE : CONTEXTE ET MOTIVATIONS --------------------- 10
CHAPITRE 1 : NOTION de CYBERSÉCURITE et de CYBERATTAQUE ----------- 12
I.1 Introduction ---------------------------------------------------------------------------------------- 12
I.2 Définition de la cybersécurité ------------------------------------------------------------- 12
I.3 Critères de cybersécurité -------------------------------------------------------------------- 12
I.3.1 Disponibilité ---------------------------------------------------------------------------------- 13
I.3.2 Intégrité ---------------------------------------------------------------------------------------- 13
I.3.3 Confidentialité ------------------------------------------------------------------------------ 13
I.3.4 Non-répudiation ---------------------------------------------------------------------------- 13
I.4 Définition et étapes de réalisation d’une cyberattaque ----------------------- 13
I.5 Catégorie de cyberattaques ----------------------------------------------------------------- 14
I.5.1 Cyberattaques actives ------------------------------------------------------------------- 14
I.5.2 Cyberattaques passives ----------------------------------------------------------------- 19
I.6 Pourquoi les cyberattaques par Déni de Service ? ------------------------------ 21
I.7 Conclusion ------------------------------------------------------------------------------------------- 22
CHAPITRE 2 : les CYBERATTAQUES de type DoS et DDoS ----------------------------- 23
I.8 Introduction ---------------------------------------------------------------------------------------- 23
I.9 Définition d'une cyberattaque DoS ------------------------------------------------------ 23
I.10 Différence entre les cyberattaques DoS et DDoS --------------------------------- 23
I.11 Modèles en couches ----------------------------------------------------------------------------- 24
I.11.1 Généralités sur le modèle OSI ------------------------------------------------------- 24
I.11.2 Généralités sur le modèle TCP/IP -------------------------------------------------- 27
I.12 Protocoles -------------------------------------------------------------------------------------------- 28
I.12.1 Le protocole http --------------------------------------------------------------------------- 29
I.12.2 Le protocole TCP --------------------------------------------------------------------------- 32
I.12.3 Protocole UDP ------------------------------------------------------------------------------- 35
I.12.4 Protocole DNS ------------------------------------------------------------------------------- 36
I.13 Types d’attaques par Déni de Service (DoS) ---------------------------------------- 38
I.13.1 Attaques sur la couche Application ----------------------------------------------- 39
I.13.2 Attaques Protocolaires ------------------------------------------------------------------ 40
I.13.3 Attaques Volumétriques ---------------------------------------------------------------- 42
I.14 Conclusion ------------------------------------------------------------------------------------------- 43
CHAPITRE 3 : ANALYSE et ÉVALUATION ------------------------------------------------------ 45
I.15 Introduction ---------------------------------------------------------------------------------------- 45
I.16 Définition d’un test de pénétration ----------------------------------------------------- 45
I.17 Différentes phases d’un test de pénétration ---------------------------------------- 45
I.17.1 Phase de planification (avant le test) -------------------------------------------- 45
I.17.2 Phase d’exécution (pendant le test) ----------------------------------------------- 46
I.17.3 Phase post-exécution (après le test) ---------------------------------------------- 47
I.18 Types de test de pénétration --------------------------------------------------------------- 47
I.18.1 Test de pénétration externe ---------------------------------------------------------- 47
I.18.2 Test de pénétration interne ----------------------------------------------------------- 48
I.19 Conditions d’un test d’intrusion ---------------------------------------------------------- 48
GLOSSAIRE
A
ACK: Acknowledgement
APCJ : Asie Pacifique Chine Japon
API: Automatic Programmable Interface
ARP: Adress Resolution Protocol
C
CIDR Classless InterDomain Routing
CRC: Cyclic Redundancy Check
D
DDoS: Distributed Denial of Service
DNS: Domain Name Service
DoS: Denial of Service
E
EIGRP: Enhanced Interior Gateway Routing Protocol
EMEA: Europe Middle East and Africa
F
FIN: Fin
FTP: Files Transfer Protocol
H
HTML: HyperText Markup Language
HTTP: Hypertext Transfer Protocol
HTTPS: Hypertext Transfer Protocol Secure
I
ICMP: Internet Control Message Protocol
IDS: Intrusion Systems Detection
IGMP: Internet Group Management Protocol
IMAP: Internet Message Access Protocol
IP: Internet Protocol
IPSec: Internet Protocol Secure
IRC: Internet Relay Chat
IS-IS: Intermediate System to Intermediate System
J
JPEG: Joint Photographic Experts Group
M
MAC: Media Access Control
MIME: Multipurpose Internet Mail Extensions
MITM: Man In The Middle
MPEG: Moving Picture Experts Group
O
OS: Operating System
OSI: Open Systems Interconnection
OSPF: Open Shortest Path First
P
PPP: Point-to-Point Protocol
PSH: Push
R
RIP: Routing Information Protocol
RST: Reset
S
SI: Système d’information
SIRT: Security Incident Response Team
SQL: Structured Query Language
SSH: Secure Shell
SSL: Secure Sockets Layer
SYN: Synchronization
T
TCP: Transmission Control Protocol
TLD: Top Level Domain
U
UDP: User Datagram Protocol
URG: Urgent
URL: Uniform Resource Locator
V
VM: Virtual Machine
VMware: Virtual machines Ware
X
XSS: Cross-Site Scripting
Dans un monde de plus en plus technologique, la science apporte chaque jour des
changements plus que révolutionnaires dans la façon dont nous vivons au
quotidien, notamment avec l’utilisation des smartphones, des ordinateurs, des
télévisions intelligentes (smart-TVs), etc.
L’avènement d’internet a permis l’essor des nouvelles technologies, les systèmes
d’information deviennent incontournables pour les entités comme les entreprises,
les gouvernements, les associations etc. Cela est d’autant plus vrai en raison des
quantités importantes de données traitées et diffusées chaque jour. Internet s’est
imposé comme un outil indispensable tant pour les entreprises que pour les
particuliers.
De nos jours, la dématérialisation de l’information à travers les systèmes
d’information et leur large diffusion à travers les réseaux de communication, ont
des répercussions à tous les niveaux de l’existence humaine.
Les connexions à internet rendent les structures accessibles depuis l’extérieur, les
rendant ainsi vulnérables aux cyberattaques. Ces vulnérabilités sont encore plus
importantes pour les entreprises offrant des services sur internet comme les
services bancaires mobiles, les services de ventes et d’achats en ligne, les services
de transferts d’argents etc.
En effet, malgré, des très nombreux avantages, internet apporte également une
quantité non négligeable de risques en termes de sécurité de l’information qu’il
faut sérieusement prendre en considération. Car il ne se passe pas un seul jour
sans que des cyberattaques, de différentes natures soient perpétrées sur
internet : Des millions d’attaques réalisées par des cybercriminels (Pirates
informatiques) sont constamment menées sur les serveurs, les terminaux et sur
des objets connectés.
Parmi ces cyberattaques, on trouve le déni de service qui fait partie des
cyberattaques les plus utilisées par les pirates en raison de sa simplicité de mise
en œuvre et des dégâts qu’il peut causer.
I.1 Introduction
Dans ce chapitre, nous aborderons les généralités ainsi que les enjeux de la
cybersécurité et des cyberattaques.
DISPONIBILITÉ INTÉGRITE
CONFIDENTIALITÉ NON-RÉPUDIATION
I.3.1 Disponibilité
I.3.2 Intégrité
I.3.3 Confidentialité
La notion de confidentialité est liée au maintien du secret, elle est réalisée par la
protection des données contre une divulgation non autorisée (notion de protection
en lecture).
I.3.4 Non-répudiation
Il existe un très grand nombre de cyberattaques ayant des objectifs divers. Ils
peuvent être classés en deux grandes familles :
Les cyberattaques actives
Et les cyberattaques passives
Ce sont celles qui, de par leur fonctionnement, modifient la nature des données
transitant dans le système cible et donc le fonctionnement du système. Les
C’est une attaque qui se produit lorsque qu’un cybercriminel exécute un morceau
de code SQL (langage informatique normalisé) pour manipuler une base de
données et accéder à du contenu potentiellement sensible. Ces données sont alors
consultables, modifiables et supprimables.
Elles relèvent de l’écoute du trafic sans altération des données. Ces attaques
n’influencent donc pas les ressources du système piraté. La seule menace pour
cette catégorie de cyberattaque est la confidentialité des données. On retrouve
dans cette catégorie des attaques de type sniffing [3].
I.5.2.1 Le sniffing
Le reniflage (en français) est une technique qui consiste à analyser le trafic
réseau. Lorsque deux équipements communiquent, il y a un échange
d'informations (trafic). Il est donc possible qu'une personne malveillante récupère
ce trafic qu’elle peut alors analyser.
Parfois notée MITM, le Man in The Middle, est un scénario d'attaque dans lequel
un pirate écoute une communication entre deux périphériques et falsifie les
échanges afin de se faire passer pour l'une des parties [4].
Le pirate positionné au milieu capte, contrôle et analyse le trafic entre des
équipements connectés pour extraire des informations personnelles comme un
mot de passe, une photo etc.
Si nous avons choisi de travailler sur les attaques de types DoS et DDoS, c’est
parce qu’il s’agit du type de cyberattaques le plus fréquemment utilisé par les
pirates. En effet, nous nous sommes basés sur une étude de F5 SIRT (Security
Incident Response Team) publiée le 19/04/2021, qui révèle les statistiques issus
de leurs interventions auprès d’entreprises victimes de cyberattaques.
Rappelons que F5 est une société opérant dans le domaine de la sécurité
informatique. En cas d’attaques, l’équipe F5 SIRT protège les données
d’utilisateurs et clients, les actifs ainsi que les applications.
F5 Labs a constaté que près d’un tiers (32 %) des incidents enregistrés jusqu’en
2019 par l’équipe F5 SIRT étaient des attaques DoS. Et cette tendance se
confirme, avec un taux qui a atteint 36 % en 2020.
La plupart des cyberattaques DoS sont des attaques par inondation volumétrique
du réseau (connues sous le nom d’attaques TCP SYN ou UDP Flood). L’équipe F5
SIRT a également enregistré des attaques de type « Slow POST/Slowloris » qui
visent à ouvrir et maintenir ouvertes le plus grand nombre possible de
connexions pour un utilisateur cible. 19 % des incidents DoS signalés visaient un
serveur DNS.
La région APCJ (Asie Pacifique Chine et Japon) a été la plus touchée par ces
attaques DoS qui représentaient 57 % des incidents enregistrés par l’équipe
SIRT. Arrivaient ensuite la région EMEA (Europe Middle East and Africa) avec
47 %, puis les États-Unis et le Canada avec 33 % et l’Amérique latine avec 30 %.
C’est dans la région EMEA que le taux a connu la plus forte hausse, passant de
2,2 % en 2018 à 23 % en 2020, soit une augmentation spectaculaire de 20,8 %.
Les prestataires de services et les établissements d’enseignement figuraient
parmi les secteurs les plus touchés, avec un taux d’attaques DoS s’élevant à 59 %
des incidents globaux. Ils étaient suivis par les entreprises du secteur financier
(36 %) et celles du secteur public (28 %) [5].
I.7 Conclusion
I.8 Introduction
Dans ce deuxième chapitre, nous allons étudier les cyberattaques par déni de
service de type DoS et de type DDoS. Les différences entre les deux types
d’attaques seront présentées, ainsi que les généralités sur les modèles en couches
OSI et TCP/IP utilisées pour les réalisées seront abordés.
Une cyberattaque par déni de service est une attaque qui vise à paralyser
intentionnellement un système informatique en l’inondant de grandes quantités
de requêtes. Le principe est de le surcharger de données afin de le rendre
incapable de répondre correctement aux requêtes légitimes.
Au cours des dernières années, presque toutes les principales attaques par déni
de service ont été effectuées de façon distribuée (DDoS).
Une attaque DDoS distribuée est une attaque DoS dans laquelle de nombreux
ordinateurs individuels ou d’autres dispositifs connectés dans des régions
diverses inondent simultanément une cible de requêtes [6]. Les appareils utilisés
par le pirate pour inonder le service afin de le saturer de requêtes sont appelés
des « botnets » (réseaux de machines zombies). Ce sont des réseaux d'ordinateurs
infectés qui, sous le contrôle d'un seul ordinateur maître, travaillent ensemble
pour atteindre un objectif.
Ces systèmes zombies submergent ainsi la bande passante et la capacité de
traitement de la cible. Ces attaques DDoS sont difficiles à tracer, car les bots
(terminaux zombies) sont disséminés dans des lieux géographiques différents [7].
Les cyberattaques DoS distribuées les plus sophistiquées impliquent parfois
Les attaques DoS et DDoS sont réalisées sur les couches 4 et 7 du modèle OSI
(Open Systems Interconnection).
Les différentes couches du modèle OSI sont représentées sur la figure 6. Il est
composé de 7 couches : physique, liaison de données, réseau, transport, session,
présentation et application.
Les divers protocoles qui définissent le réseau et les communications sont donc
répartis dans chaque couche selon leur utilité. Il est d'usage de diviser ces sept
couches en deux : les couches basses, qui se limitent à gérer des fonctionnalités
de base, et les couches hautes, qui contiennent les protocoles plus élaborés. Le
modèle OSI est donc une norme qui préconise la façon dont les ordinateurs
devraient communiquer entre eux.
Le modèle TCP/IP est plus simple que le modèle OSI, avec seulement quatre
couches : liaison, Internet, transport et application. La différence avec OSI est
simplement que certaines couches ont été fusionnées. La couche liaison de
TCP/IP regroupe notamment les couches physiques et liaison du modèle OSI. De
même, la couche application de TCP/IP regroupe les couches session, application
et présentation du modèle OSI.
L’IP est le protocole principal du modèle TCP/IP, car lors d’une communication
entre deux processus, quel que soit le protocole de transport utilisé (TCP ou UDP)
pour identifier les ports des applications engagées dans la communication, le
protocole IP est toujours utilisé car il permet lui d’identifier les machines
impliquées dans la communication avec leurs adresses IP. C’est donc un protocole
universel qui permet à tout ordinateur de communiquer en tout temps et en tout
lieu.
I.12 Protocoles
Pour une meilleure compréhension des cyberattaques par déni de service, nous
allons étudier en détails le fonctionnement de certaines couches ainsi que leurs
protocoles, notamment les protocoles http (HyperText Transfer Protocol) et DNS
(Domain Name Service) de la couche 7 et les protocoles TCP (Transport Control
Protocol) et UDP (User Datagram Protocol) de la couche 4.
Principe de fonctionnement
La communication entre un navigateur et un serveur se fait en deux étapes :
MÉTHODE DESCRIPTION
GET Requête de la ressource située à l'URL spécifiée
HEAD Requête de l'en-tête de la ressource située à l'URL spécifiée
POST Envoi de données au programme situé à l'URL spécifiée
PUT Envoi de données à l'URL spécifiée
DELETE Suppression de la ressource située à l'URL spécifiée
Tableau 1 : Quelques commandes HTTP
Sur la base du tableau précédent, on constate que le protocole http peut intégrer
de nombreuses méthodes à ses requêtes, les plus importantes sont les méthodes
« GET » et « POST ».
Principe de fonctionnement
Les flags contenus dans l’en-tête TCP sont à la fois utilisés pour initialiser les
connexions entre différentes machines, et pour acquitter chaque paquet reçu lors
d’une communication.
Pour qu’une connexion TCP soit établie entre deux machines, il faut un échange
de trois paquets spécifiques contenant respectivement les flags SYN, SYN+ACK,
ACK : c’est le Three Way Handshake. Ce mécanisme se passe en trois étapes [9]:
Dans un premier temps la machine émettrice transmet un segment dont le
flag SYN est à 1 (pour signaler qu'il s'agit d'un segment de
synchronisation), avec un numéro d'ordre N, que l'on appelle numéro
d'ordre initial du client.
Dans un second temps la machine réceptrice reçoit le segment initial
provenant de la machine émettrice, puis lui envoie un accusé de réception,
c'est-à-dire un segment dont le flag ACK est à 1 et le flag SYN est à 1 (car
il s'agit là encore d'une synchronisation). Ce segment contient le numéro
d'ordre de cette machine (machine réceptrice) qui est le numéro d'ordre
initial de la machine émettrice. Le champ le plus important de ce segment
est le champ accusé de réception qui contient le numéro d'ordre initial de
la machine émettrice, incrémenté de 1.
Enfin, la machine émettrice transmet à la machine réceptrice un accusé de
réception, c'est-à-dire un segment dont le flag ACK est à 1, dont le drapeau
SYN est à zéro (il ne s'agit plus d'un segment de synchronisation). Son
numéro d'ordre est incrémenté et le numéro d'accusé de réception
représente le numéro d'ordre initial du serveur incrémenté de 1.
Principe de fonctionnement
Le protocole UDP n’étant pas un protocole de transmission connecté (c’est-à-dire
fonctionnant avec un système d’acquittement) comme TCP, il envoie des paquets
directement à un ordinateur cible, sans établir de connexion au préalable, sans
indiquer l'ordre des dits paquets ou sans vérifier s'ils sont arrivés comme prévu.
UDP est donc plus rapide mais moins fiable.
Principe de fonctionnement
Chaque nœud de l'arbre est appelé « nom de domaine » et possède une étiquette
d'une longueur maximale de 63 caractères. L'ensemble des noms de domaine
constitue ainsi un arbre inversé où chaque nœud est séparé du suivant par un
point (« . »).
Les serveurs correspondant aux domaines de plus haut niveau (TLD) sont
appelés « serveurs de noms racine ». Il en existe treize, répartis sur la planète,
possédant les noms « a.root-servers.net » à « m.root-servers.net ».
Les différents types d'attaques DoS ciblent des composants variables d'une
connexion réseau.
On distingue donc [12]:
Les attaques sur la couche d'application
Les attaques protocolaires
Et les attaques volumétriques
I.13.1.1Http Flood
Le HTTP Flood est une attaque par déni de service distribué (DDoS) dans lequel
l'attaquant manipule les requêtes http GET ou POST afin d'attaquer un serveur
Web ou une application. Ces attaques utilisent souvent des ordinateurs
interconnectés qui sont infectés de logiciels malveillants. Ce qui est plus simple
que d'utiliser des paquets volontairement malformés, notamment en modifiant le
contenu des requêtes http. Cela nécessite également moins de bande passante
pour attaquer les sites ou les serveurs ciblés.
Sur la base des méthodes intégrées aux requêtes http, on distingue deux types de
cyberattaques http Flood : http GET Flood et le http POST Flood.
- un http GET Flood demande une représentation de la ressource spécifiée
(comme des images), car elle est uniquement utilisée pour récupérer des
données.
- Un http POST Flood permet d’envoyer des données au serveur en les
intégrant au corps de la requête et non à l’en-tête comme avec la méthode
GET.
I.13.2.1SYN Flood
I.13.2.2UDP FLood
I.13.3.1DNS Flood
Dans un flot DNS DDoS, qui est essentiellement une version spécifique à une
application d'un flot UDP, l'attaquant envoie un volume énorme de fausses
requêtes DNS directement au serveur DNS de la victime dans le seul but de le
surcharger. Comme pour les autres types d'attaques par inondation, le serveur
DNS de la victime essaie de répondre à toutes les demandes (il ne peut pas faire
la distinction entre les demandes fausses et légitimes) et est finalement
submergé et incapable de répondre, rendant le site Web de la victime
inaccessible.
I.14 Conclusion
Dans ce chapitre, nous avons présenté de façon détaillée les cyberattaques par
déni de service, notamment le déni de service distribué avec l’utilisation des
botnets qui sont des réseaux de machines zombies.
De manière générale, les attaques par déni service exploitent les failles des
protocoles existants afin de causer des dommages sur les systèmes. C’est le cas
avec les protocoles TCP, UDP, http et DNS.
Dans le protocole TCP, l’attaque par déni de service exploite le mécanisme de
« Three Way Handshake » pour bombarder de requêtes une cible sans acquitter
les paquets envoyés. Le protocole UDP quant à lui, ne fonctionnant pas avec un
système d’acquittement, il est encore plus facile de saturer la cible.
I.15 Introduction
La partie légale doit expliciter le test qui va être fait et définir clairement le
niveau d’indemnité, d’assurance et de limitations de portée en cas de dommages
irrémédiables lors du test. Après accord sur ces points, le pentesteur pourra
commencer le travail pratique.
Dans un test de pénétration externe, le pentesteur est placé sur Internet. Il est
donc dans la situation d’un pirate qui tenterait de pénétrer dans l’entreprise à
partir de l’extérieur. L'adresse IP publique de la connexion internet du
pentesteur et l'adresse IP publique de la connexion internet de l'entreprise sont
utilisées dans ce scénario.
Dans le cas d’un test de pénétration interne, le pentesteur est sur le réseau
interne de la cible. Il est dans la situation d'une personne malveillante interne.
Par exemple, cela peut être le cas d'un prestataire qui a accès physiquement au
bureau de la cible comme un technicien télécom, un électricien, etc. C'est
également le cas d'un employé malveillant (espionnage industriel ou vengeance).
L’employé peut également être inconscient des risques, et cliquer sur une pièce
jointe infectée ou communiquer des identifiants. Enfin, on peut également
imaginer un pirate ayant la possibilité de s'introduire physiquement dans
l'entreprise et de se retrouver dans un de ces scénarios.
Dans ce cas, le pentesteur n'a aucune information sur le réseau cible au début du
test et ne connaît aucun nom d’utilisateur ni mot de passe.
La cible,
les employés/les utilisateurs,
connaître la situation géographique,
Nous sommes là dans le scénario d'un pirate qui souhaiterait s'introduire dans
un système (cible) qu'il ne connaît pas.
Dans ce scénario, la recherche est très approfondie et très complète avec une
recherche exhaustive des failles par le pentesteur.
I.20.1 L’hyperviseur
C’est la machine du pentesteur qui contient tous les outils nécessaires pour
réaliser des tests de pénétration. Il intègre, un OS, un scanneur de vulnérabilité,
un Framework d’exploitation des vulnérabilités, un constructeur de paquets et un
sniffer.
I.20.2.1Système d’exploitation
I.20.2.2Scanner de vulnérabilités
Figure 21 : Nessus
Nous avons choisi comme Framework : Metasploit qui permet de conduire des
tests d’intrusion en exploitant les vulnérabilités détectées sur la cible.
Ce Framework contient deux éléments essentiels : Metasploit (comme le nom du
Framework) et Metasploitable.
L’élément Metasploit est l’instance du Framework qui permet de conduire
le test. Cette instance sera notamment installée sur la machine hôte c’est-
à-dire la machine du pentesteur.
L’élément Metasploitable, est l’instance du Framework qui contient
volontairement des vulnérabilités qui seront détectées par le pentesteur et
ainsi exploitées par la suite. Il s’agit donc de l’élément cible du test
d’intrusion.
Le choix de ce Framework se justifie également par le fait qu’il soit déjà intégré
dans la distribution Kali Linux.
I.20.2.4Constructeur de paquets
Le constructeur de paquets que nous avons décidé d’utiliser est Scapy qui est
nativement intégré au système d’exploitation Kali Linux. Il s’agit d’un
programme Python qui permet à l'utilisateur d'envoyer, de renifler, de disséquer
et de forger des paquets réseau. Cette capacité permet la construction d'outils qui
peuvent sonder, scanner ou attaquer des réseaux.
Figure 23 : Scapy
I.20.2.5Sniffer de paquets
Comme sniffer de paquets, nous avons choisi Wireshark, car comme Scapy, il est
déjà intégré au système d’exploitation Kali Linux et de plus il s’agit d’un logiciel
Open-source (caractéristique d’un programme dont le code de conception est
accessible au public et peut être modifié à sa convenance). Il nous permettra
d’intercepter et d’analyser le trafic entre nos deux machines virtuelles (hôte et
cible).
Figure 24 : Wireshark
I.20.3.1Système d’exploitation
I.21 Conclusion
I.22 Introduction
Ce dernier chapitre est consacré au cas pratique. Nous allons dans un premier
temps présenter l’installation, ainsi que les configurations réalisées au sein de
l’environnement pour réaliser des attaques puis terminer avec les résultats.
Ces configurations peuvent être vérifiées sur chacune des deux machines
virtuelles en tapant la commande « ifconfig ».
Pour réaliser l’attaque SYN Flood avec cette méthode, nous allons construire des
paquets à l’aide de l’outil Scapy.
La première étape consiste à envoyer des requêtes TCP SYN au port associé au
service du système de la cible. Pour envoyer une requête TCP SYN à un port
donné, nous devons d'abord construire les couches de cette requête. La première
couche que nous devons construire est la couche IP [15]:
Pour construire la couche IP de notre requête, nous devons créer une variable i et
nous devons lui affecter l’objet IP. Pour prendre connaissance des configurations
d’attributs de cette variable i, nous devons lui appliquer la fonction « display() ».
Les adresses d'envoi et de réception sont définies par défaut, et ces valeurs
peuvent être modifiées en changeant l'adresse de destination en définissant
« i.dst » égal à l'adresse IP du système cible qui n’est autre que notre machine
virtuelle Metasploitable qui a pour adresse IP : 192.168.117.130/24.
Maintenant que nous avons créé les couches IP et TCP, nous pouvons construire
la requête en empilant ces deux couches :
Pour obtenir les détails des paquets il suffit d’appliquer la fonction display() à la
variation « response ».
L'efficacité du flot SYN dépend du nombre de requêtes SYN qui peut être généré
dans un laps de temps donné. Pour améliorer l'efficacité de cette attaque, nous
allons rédiger un script multithread (script donc l’exécution des instructions se
fait de manière asynchrone) qui peut exécuter autant de processus simultanés de
génération de requêtes SYN (identique à la réalisation d’une attaque).
Ce script est rédigé en langage « Python ».
Pour lancer le script, il nous suffit d’exécuter le fichier tout en complétant les
trois paramètres indispensables suivants :
L’adresse IP de la cible
Le nombre de threads (bombardement simultané)
Et le numéro du port du service cible
Une fois l'auxiliaire chargé, on tape la commande « show options » pour lister
toutes les options pouvant lui être appliquées. Et on constate qu’il contient de
nombreuses options dont certaines sont facultatives, et certaines ont déjà des
valeurs par défaut.
Ensuite, il ne nous reste plus qu’à configurer le paramètre RHOST (l’adresse IP
du système cible) et RPORT (le numéro de port du service cible qui est par défaut
le port 80).
Une fois toutes ces configurations terminées, on peut lancer l’attaque avec la
commande « exploit ».
Pour observer les résultats de l’attaque, il nous faut utiliser le sniffer Wireshark
afin de capturer le trafic entre nos deux machines (attaquant et cible).
De l’autre côté, on constate que dans le paquet qui part de la cible vers
l’attaquant, l’« Acknowledgement Number » c’est-à-dire que le flag ACK est égal à
1, ce qui signifie que la cible acquitte tous les paquets reçus.
Une fois l’attaque lancée sur le système cible et après avoir entrée la commande
« netstat –ct », on obtient le résultat de la figure 38.
Tout comme avec la méthode du script rédigé, pour observer les résultats de
l’attaque au niveau de l’attaquant, nous allons utiliser le sniffer de paquets
Wireshark.
Nous allons utiliser la commande « netstat -ct » qui nous permettra d’avoir en
temps réel connaissance du trafic entrant sur le serveur.
Stopper une attaque par déni de service de type SYN Flood n’est pas facile.
L’enjeu étant de pouvoir distinguer les paquets SYN malveillants de ceux qui
sont légitimes. Cependant, de nombreuses mesures à la fois préventives et
correctives peuvent être prises afin de les éviter ou de limiter leurs impacts sur
un système.
Pour les mesures correctives en cas d’attaques, on peut mettre en place les
solutions suivantes :
L’une des méthodes les plus simples pour protéger un système contre les
attaques SYN flood consiste à étendre le backlog SYN. Chaque entrée du backlog
SYN nécessite une certaine quantité de mémoire vive ce qui limite le nombre
d’entrées. Par défaut, cette limite est de quelques centaines d’entrées sous Linux
mais cette valeur peut facilement être augmentée. En principe, le backlog SYN
peut contenir des milliers d’entrées permettant ainsi d’absorber les attaques SYN
flood les plus petites.
I.27 Conclusion
Dans ce chapitre, nous avons mis en évidence dans l’environnement défini, un cas
pratique d’une cyberattaque réalisée avec deux méthodes.
Nous avons pour cela, à partir des outils choisis, pu reproduire les conditions
réelles d’une cyberattaque par déni de service de type SYN Flood, afin d’en
mesurer l’impact sur un système d’information.
Nous avons constaté que pour les systèmes d’information de type applications
web, un simple port ouvert pouvait constituer une porte d’entrée suffisante pour
une cyberattaque.
Au regard de tout le travail réalisé, nous avons compris que la sécurité des
systèmes d’information, est aujourd’hui très important en raison de la sensibilité
des informations y circulant chaque jour.
Références bibliographiques
[1] Ghernaouti, S. (2019). Cybersécurité : Analyser les risques, mettre en œuvre des
solutions. Paris: Dunod.
[2] Le top 10 des différents types de cyberattaques. (2021, Mars 17). Récupéré sur
oodrive: https://www.oodrive.com/fr/blog/securite/top-10-differents-types-
cyberattaques/
[3] X, W. (2018, Juillet 28). Difference entre attaque active et passive. Récupéré
sur WayToLearn X: https://waytolearnx.com/2018/07/difference-entre-
attaque-active-et-attaque-passive.html
[4] Pillou, J.-F. (2018, 11 05). Attaque man in the middle (« homme au milieu ») .
Récupéré sur CCM Comment Ca Marche:
https://www.commentcamarche.net/contents/60-attaque-man-in-the-middle
[5] Richard, P. (2021, Avril 19). Explosion des attaques DoS et par mot de passe.
Récupéré sur IT Social: https://itsocial.fr/enjeux-it/enjeux-
securite/cybersecurite/explosion-des-attaques-dos-et-par-mot-de-passe/
[6] Lussan, P.-L. (2019, Septembre 18). Les 10 types de cyberattaques les plus
courants. Récupéré sur netwrix: Les 10 types de cyberattaques les plus
courants
[7] Steinberg, J. (2020). La cybersécurité pour les nuls. Paris: Wiley Publishing.
[8] noctambule28. (2020, Janvier 07). Le protocole HTTP. Récupéré sur CCM
Comment Ca Macrhe: https://www.commentcamarche.net/contents/520-le-
protocole-http
[9] avenuepopulaire. (2017, Juin 01). Le Protocole TCP. Récupéré sur CCM
comment ca marche: https://www.commentcamarche.net/contents/538-le-
protocole-tcp
[10] Pillou, J;-F. (2011, 20 04). Le protocole UDP. Récupéré sur CCM Comment
Ça Marche: https://www.commentcamarche.net/contents/541-le-protocole-
udp
[11] Pillou, J.-F. (2019, Septembre 23). Qu'est-ce que le DNS ? . Récupéré sur
CCM Comment Ca Marche:
https://www.commentcamarche.net/contents/518-dns-systeme-de-noms-de-
domaine
[12], [17] Walkowski, D. (2019, 06 05). What Is a Distributed Denial-of-Service
Attack? Récupéré sur F5: https://www.f5.com/labs/articles/education/what-
is-a-distributed-denial-of-service-attack-
[13] Openclassrooms. (2021, Janvier 01). C’est quoi un test d’intrusion (ou pentest)
? Récupéré sur Openclassrooms:
https://openclassrooms.com/fr/courses/1756296-conduisez-un-test-
dintrusion/5369701-c-est-quoi-un-test-d-intrusion-ou-pentest
[14] Openclassrooms. (2021, Janvier 01). Maîtrisez les types de tests. Récupéré sur
Openclassrooms: https://openclassrooms.com/fr/courses/1756296-conduisez-
un-test-dintrusion/5369711-maitrisez-les-differents-types-de-tests
[15] Hutchens, J. (2014). Kali Linux Networking Scanning Cookbook.
Birmingham - Mumbai: Packt.
[16] Way, I. S. (1981, Septembre ). TRANSMISSION CONTROL PROTOCOL.
Récupéré sur IETF: https://datatracker.ietf.org/doc/html/rfc793
Annexe
Après la connexion, nous sommes rédigés vers le tableau de bord de Nessus d’où
nous pouvons réaliser nos scans.
Pour scanner la cible, il suffit de cliquer sur le lien « new scan » en haut à droite
de notre page de tableau de bord.
On doit renseigner le nom du scan afin de le distinguer des autres scans du même
type qui seront effectués ultérieurement, un descriptif du scan, le dossier
d’enregistrement puis le plus important l’adresse IP de la cible qui est dans notre
cas celle de l’instance VM Metasploitable. Une fois tous ces champs renseignés,
on a plus qu’à enregistrer et le scan apparaît automatiquement dans la liste des
scans créés.
Le scan enregistré peut alors être exécuté en cliquant sur la petite icone « Play »
après la date d’enregistrement du scan.
Les failles découvertes par Nessus sont alors consultables en cliquant sur le nom
du scan. Comme on peut le constater, Nessus classe les vulnérabilités par ordre
de gravité, notamment dans cinq catégories à savoir : Critical, High, Medium,
Low et Info.
Si l’on souhaite mettre en place un déni de service de type « SYN Flooding », il
faut rechercher les vulnérabilités en rapport avec le flag SYN. Pour cela, il
faudra rechercher le flag SYN dans la boîte de recherche au-dessus du tableau.
Pour connaître les détails de cette vulnérabilité, il ne faut cliquer sur la ligne du
tableau.
Mots-clés :
Internet,
Cybersécurité,
Cyberattaque,
Déni de service,
TCP SYN Flood,
Test d’intrusion,
Metasploit,
Et système d’information.