Vous êtes sur la page 1sur 23

Chapitre 3 : Sécurité Réseau

Introduction
La sécurité des réseaux est un pilier essentiel de la cybersécurité moderne. À l'ère numérique,
où nos vies personnelles et professionnelles sont liées à l'utilisation d'ordinateurs et
d'appareils connectés, il est impératif de comprendre les menaces qui pèsent sur nos réseaux
et les protocoles qui permettent de les sécuriser.
Ce chapitre se penche sur les aspects cruciaux de la sécurité réseau, en se concentrant sur
deux unités clés :
Unité 5 : Sécurité des Réseaux et Protocoles Dans cette unité, nous allons explorer les
types d'attaques réseau auxquels les systèmes informatiques sont exposés. Parmi les
menaces que nous allons étudier, on trouve les attaques par déni de service (DDoS), l'écoute
réseau (sniffing) et l'interception de données. Comprendre ces menaces est la première étape
pour les combattre efficacement.
Unité 6 : Sécurité des Applications Web Cette unité se penchera sur la sécurité des
applications web, en mettant l'accent sur les vulnérabilités courantes telles que l'injection SQL,
les attaques de type Cross-Site Scripting (XSS) et les attaques Cross- Contrefaçon de
demande de site (CSRF). Nous aborderons également les mécanismes de sécurité des
applications web, y compris l'authentification, le contrôle d'accès et la sécurisation des
données.
Enfin, nous examinons les protocoles de sécurité tels que SSL/TLS et IPsec, qui jouent un
rôle crucial dans la protection des communications en ligne.
La sécurité réseau est un élément fondamental de la cybersécurité, car les attaques et les
vulnérabilités qui exploitent les réseaux peuvent avoir des conséquences graves sur la
confidentialité, l'intégrité et la disponibilité des données. En comprenant ces menaces et en
maîtrisant les outils pour les contrer, vous serez mieux préparé à sécuriser votre
environnement informatique.
Unité 5 : Sécurité des Réseaux et Protocoles
Introduction
Dans l'ère numérique, la connectivité est omniprésente, que ce soit au niveau personnel ou
professionnel. Les réseaux informatiques sont le tissu conjonctif de cette connectivité,
permettant le partage d'informations, la communication et l'accès à des ressources en ligne.
Cependant, avec cette interconnexion croissante vient également une vulnérabilité accrue aux
menaces et aux attaques. L'Unité 5 de notre cours sur la sécurité informatique se penche sur
la "Sécurité des Réseaux et Protocoles", un domaine essentiel de la cybersécurité.
Cette unité est divisée en deux sections majeures, chacune visant à vous armer de
connaissances et d'outils pour comprendre et contrer les menaces réseau. Dans la première
section, nous explorons les attaques réseau, un ensemble de techniques utilisées par les
acteurs malveillants pour porter atteinte à la confidentialité, à l'intégrité et à la disponibilité des
données. Parmi ces attaques, le déni de service (DDoS), le sniffing (écoute réseau) et
l'interception de données sont des menaces courantes que nous allons analyser en détail.
Vous apprendrez non seulement à reconnaître ces attaques, mais aussi à mettre en place
des mécanismes de prévention et d'attaque.
Dans la deuxième section, nous nous pencherons sur les protocoles de sécurité, qui jouent
un rôle crucial dans la protection des communications en ligne. Le chiffrement et
l'authentification sont des éléments essentiels de ces protocoles. Vous découvrirez deux des
protocoles les plus importants : SSL/TLS (Secure Sockets Layer / Transport Layer Security)
et IPsec (Internet Protocol Security). Vous comprenez comment ces protocoles sécurisent les
données en transit sur Internet et les réseaux privés.
La sécurité des réseaux est un défi constant, mais avec les connaissances et les compétences
acquises dans cette unité, vous serez mieux préparé à faire face aux menaces qui pèsent sur
vos systèmes et à mettre en place des mesures de sécurité robustes.

I. Attaques réseau
1.1 Déni de service (DDoS)
Le déni de service (Denial of Service, DDoS) est une des attaques réseau les plus
dévastatrices et utilisées. Elle vise à submerger un serveur, un réseau ou une application avec
un volume de trafic excessif, rendant ainsi ces systèmes indisponibles pour leurs utilisateurs
légitimes. Cette section se plonge dans les tenants et aboutissants du DDoS, en expliquant
ses principes de fonctionnement et en mettant en lumière les stratégies pour la prévention et
le contrer.
1.1.1 Principes de fonctionnement du DDoS
Le DDoS repose sur une idée simple : inonder la cible de trafic malveillant, la submergée au
point qu'elle ne puisse plus fonctionner correctement. Cela peut se faire de plusieurs façons :
 Amplification DDoS : Les attaquants exploitent des serveurs DNS ou NTP mal
configurés pour amplifier le trafic et augmenter la charge sur la cible.
 Réflexion DDoS : Les attaquants utilisent des serveurs tiers pour renvoyer le trafic
malveillant vers la cible, masquant ainsi leur propre origine.
 Botnets : Les botnets, qui sont des réseaux d'ordinateurs infectés, sont souvent
utilisés pour correspondre à une attaque DDoS en voyant un volume massif de
requêtes.
1.1.2 Types de DDoS
Le DDoS peut prendre diverses formes en fonction des techniques utilisées. Parmi les types
courants, on trouve :
 HTTP Flood : L'attaquant envoie un grand nombre de requêtes HTTP pour surcharger
le serveur web.
 UDP Flood : Les attaquants envoient des paquets UDP à la cible, cherchant à saturer
ses ressources.
 TCP SYN/ACK Flood : Les attaquants inondent la cible de connexions TCP pour
épuiser ses ressources.
a. Outils et techniques utilisés par les attaquants
Les attaquants utilisent divers outils et techniques pour orchestrer des attaques DDoS.
Certains de ces outils sont accessibles en ligne, tandis que d'autres sont plus représentés.
Parmi les méthodes courantes, citées :
 Botnets : Les attaquants infectent des ordinateurs et les contrôlent à distance pour
exécuter des attaques DDoS.
 LOIC (Low Orbit Ion Cannon) : Un outil utilisé pour lancer des attaques DDoS en
mode déni de service.
 Stressers en ligne : Des services en ligne permettent aux attaquants d'acheter des
attaques DDoS sans avoir besoin de compétences techniques.
b. Méthodes de prévention et d'atténuation
La prévention et l'attaque des attaques DDoS sont des enjeux majeurs. Voici quelques
stratégies pour les contrer :
 Mise en place de pare-feu et de systèmes de détection des intrusions pour filtrer
le trafic malveillant.
 Utilisation de services de mitigation DDoS : Ces services détectent et atténuent les
attaques en temps réel.
 Répartition de la charge : La répartition du trafic sur plusieurs serveurs peut réduire
l'impact d'une attaque DDoS.
 Utilisation de CDN (Content Delivery Network) pour absorber le trafic malveillant.
Le déni de service est une menace constante pour les réseaux modernes. La compréhension
de ses mécanismes et des contre-mesures appropriées est essentielle pour maintenir la
disponibilité des services en ligne.

1.2 Renfilage (écoute réseau)


Le reniflage, également connu sous le nom d'écoute réseau ou "sniffing", est une technique
d'attaque qui vise à intercepter et à capturer le trafic réseau en cours de transmission.
1.2.1 Comprendre le reniflage
Le reniflage consiste en la surveillance du trafic réseau dans le but d'intercepter des données
sensibles, telles que des mots de passe, des informations de carte de crédit ou d'autres
données confidentielles. Les attaquants utilisent cette technique pour espionner les
communications entre les utilisateurs légitimes, ce qui peut avoir des conséquences graves
en matière de sécurité et de confidentialité.
1.2.2 Méthodes de capture de paquets
Pour effectuer le reniflage, les attaquants utilisent généralement des logiciels ou des outils
spécifiques qui leur permettent de capturer les paquets de données transitant sur le réseau.
Parmi les méthodes courantes de capture de paquets, on trouve :
 Promiscuité réseau : Les attaquants mettent leurs cartes réseau en mode
promiscuité, ce qui leur permet de voir tout le trafic sur le réseau, même s'il ne leur est
pas destiné.
 Analyseur de paquets : Des outils d'analyse de paquets, tels que Wireshark, sont
utilisés pour capturer, analyser et afficher le trafic réseau.
1.2.3 Outils utilisés par les attaquants
Les attaquants utilisent une variété d'outils pour mener des attaques de reniflage. Certains de
ces outils sont open source, tandis que d'autres sont plus protégés. Parmi les outils utilisés,
cités :
 Wireshark : Un outil d'analyse de paquets puissant et largement utilisé.
 Tcpdump : Un utilitaire en ligne de commande pour capturer et analyser des paquets.
 Caïn et Abel : Un outil de récupération de mots de passe qui peut également être
utilisé pour le reniflage.
1.2.4 Comment détecter et contrer les activités de reniflage
La détection et la prévention du reniflage sont essentielles pour protéger les données
sensibles. Voici quelques mesures qui peuvent être prises pour détecter et contrer ces
activités :
 Surveillance du réseau : Mettre en place un système de détection d'intrusion (IDS)
pour identifier les activités de reniflage.
 Chiffrement des données : Le chiffrement des données en transit rend plus difficile
la lecture des informations interceptées.
 Authentification forte : Utiliser l'authentification à deux facteurs pour renforcer la
sécurité des comptes.
Le reniflage est une menace sérieuse pour la confidentialité des données et la sécurité des
réseaux. En comprenant ses mécanismes et en mettant en place des contre-mesures
appropriées, vous pouvez contribuer à sécuriser vos communications et à protéger vos
données sensibles.

1.3 Interception de données


L'interception de données est une menace sérieuse pour la confidentialité des informations
en transit sur un réseau. Les attaquants cherchent à capturer et à perturber les données
sensibles, ce qui peut avoir des conséquences dévastatrices. Cette sous-section se concentre
sur l'interception de données, les risques qui y sont associés, l'utilisation de protocoles de
chiffrement pour la prévention et des cas d'utilisation de protocoles de sécurité.
1.3.1 Les risques liés à l'interception de données
L'interception de données peut porter atteinte à la confidentialité et à l'intégrité des
informations échangées sur un réseau. Les risques courants liés à l'interception de données
comprennent :
 Divulgation de données sensibles : Des informations telles que des mots de passe,
des données financières ou des informations personnelles peuvent être exposées.
 Altération de données : Les attaquants peuvent modifier les données en transit, ce
qui peut avoir un impact significatif sur leur exactitude et leur intégrité.
 Usurpation d'identité : Les attaquants peuvent se faire passer pour d'autres
utilisateurs en interceptant leurs informations d'identification.
1.3.2 Utilisation de protocoles de chiffrement pour prévenir l'interception
Le chiffre joue un rôle essentiel dans la prévention de l'interception de données. Il consiste à
coder les données de manière à ce qu'elles ne puissent pas être lues par des tiers non
autorisés. Les protocoles de chiffrement, tels que SSL/TLS et IPsec, sont utilisés pour
sécuriser les communications. Ces protocoles assurent la confidentialité et l'authentification
des données en transit.
 SSL/TLS (Secure Sockets Layer / Transport Layer Security) : Ces protocoles de
sécurité sont largement utilisés pour sécuriser les communications sur le web, telles
que les transactions financières et la navigation sur des sites sécurisés. Ils
garantissent que les données sont chiffrées en transit et qu'elles sont authentifiées
pour éviter les attaques de type "Man-in-the-Middle" (MITM).
 IPsec (Internet Protocol Security) : IPsec sécurise les communications sur des
réseaux privés et publics, tels que les connexions VPN (Virtual Private Network). Il
chiffre les données en transit et peut être configuré pour offrir une protection totale
contre l'interception.
1.3.3 Cas d'utilisation des protocoles de sécurité
Les protocoles de sécurité tels que SSL/TLS et IPsec sont utilisés dans de nombreux
scénarios pour garantir la confidentialité et l'intégrité des données. Parmi les cas d'utilisation
courants, citons :
 Sécurisation des transactions en ligne : Les protocoles SSL/TLS sont utilisés pour
chiffrer les données lors des transactions financières en ligne, garantissant ainsi la
sécurité des informations sensibles.
 Communications VPN : IPsec est souvent utilisé dans les réseaux privés virtuels
(VPN) pour sécuriser les communications entre les utilisateurs distants et les réseaux
d'entreprise.
 Sécurisation des communications de messagerie : Les protocoles de sécurité
peuvent être utilisés pour chiffrer les e-mails et les messages instantanés, préservant
ainsi la confidentialité des conversations.
L'interception de données est une menace constante, mais avec une utilisation adéquate de
protocoles de chiffrement, vous pouvez renforcer la sécurité de vos communications et
protéger vos données sensibles contre les regards indiscrets.

II. Protocoles de sécurité


2.1 SSL/TLS (Secure Sockets Layer / Transport Layer Security)
SSL/TLS (Secure Sockets Layer / Transport Layer Security) est un ensemble de protocoles
de sécurité essentiels pour sécuriser les communications sur Internet. Ces protocoles
assurent la confidentialité et l'authentification des données en transit, ce qui en fait un élément
clé de la sécurité des réseaux.
2.1.1 Généralités
SSL/TLS est un protocole de sécurité qui permet de chiffrer les données en transit entre un
client et un serveur, garantissant ainsi la confidentialité. Le protocole SSL a été développé par
Netscape dans les années 1990, tandis que TLS est sa version plus récente et améliorée.
TLS est souvent utilisé pour sécuriser les connexions HTTPS, ce qui signifie que lorsque vous
naviguez sur des sites Web sécurisés, vos données sont protégées par SSL/TLS.
2.1.2 Principes de chiffrement et d'authentification
SSL/TLS repose sur deux principes fondamentaux :
 Chiffrement : Il garantit que les données en transit sont codées de manière à ce
qu'elles ne puissent pas être lues par des tiers non autorisés. Cela rend toute
interception de données inutiles, car seuls le client et le serveur peuvent déchiffrer les
informations.
 Authentification : SSL/TLS assure que le client et le serveur sont réellement ce qu'ils
prétendent être. Cela empêche les attaques de type "Man-in-the-Middle" (MITM), où
un attaquant tente de se faire passer pour l'une des parties.
2.1.3 Utilisation de SSL/TLS pour sécuriser les communications web
SSL/TLS est largement utilisé pour sécuriser les communications sur le Web. Lorsque vous
visitez un site web en utilisant HTTPS (HyperText Transfer Protocol Secure), vous bénéficiez
de la sécurité de SSL/TLS. Les informations sensibles, telles que les mots de passe, les
numéros de carte de crédit et les données personnelles, sont protégées contre les regards
indiscrets.
2.1.4 Vulnérabilités courantes et meilleures pratiques
Bien que SSL/TLS soit un protocole de sécurité robuste, il n'est pas à l'abri de vulnérabilités.
Les attaques, telles que POODLE et Heartbleed, ont révélé des failles potentielles. Il est
essentiel de maintenir SSL/TLS à jour et de suivre les meilleures pratiques pour assurer une
sécurité optimale.
 Mises à jour régulières : Il est impératif de maintenir à jour les versions de SSL/TLS
pour éviter les vulnérabilités connues.
 Choix de paramètres sécurisés : La configuration correcte des paramètres SSL/TLS
est cruciale pour garantir une sécurité optimale.
 Utilisation de certificats SSL valides : Les certificats SSL doivent être émis par des
autorités de certification de confiance pour garantir l'authenticité du site.
La compréhension de SSL/TLS est essentielle pour garantir la sécurité des communications
en ligne. Les protocoles SSL/TLS contribuent à renforcer la confiance dans l'environnement
numérique en sécurisant les transactions financières, les données personnelles et bien
d'autres informations sensibles.

2.2 IPsec (sécurité du protocole Internet)


IPsec (Internet Protocol Security) est un ensemble de protocoles et de normes de sécurité qui
visent à sécuriser les communications sur les réseaux, y compris les réseaux privés et publics.
IPsec est particulièrement utilisé dans les connexions VPN (Virtual Private Network) pour
garantir la confidentialité et l'authentification des données en transit.
2.2.1 Comprendre IPsec
IPsec est une suite de protocoles de sécurité qui fonctionne au niveau de la couche réseau,
offrant une sécurité au niveau de la transmission des paquets IP. Il vise à fournir trois
principaux services de sécurité :

 Confidentialité : IPsec chiffre les données en transit, les rendant illisibles pour des
tiers non autorisés.

 Intégrité : Il garantit que les données en transit n'ont pas été modifiées en cours de
route.

 Authentification : IPsec assure l'authenticité des parties qui communiquent,


correspondant aux attaques de type "Man-in-the-Middle" (MITM).
2.2.2 Modes de fonctionnement d'IPsec
IPsec offre deux modes de fonctionnement pour sécuriser les communications :
 Mode de transport : Dans ce mode, seules les données de la charge utile (payload)
des paquets IP sont chiffrées et authentifiées. L'en-tête IP d'origine est préservé. Le
mode de transport est couramment utilisé pour sécuriser les communications hôte-à-
hôte.
 Mode tunnel : Le mode tunnel encapsule l'ensemble du paquet IP dans un nouveau
paquet IP, ajoutant ainsi une couche de protection supplémentaire. Ce mode est
souvent utilisé dans les connexions VPN pour sécuriser le trafic entre des réseaux
distants.
2.2.3 Configuration et implémentation d'IPsec
Pour utiliser IPsec, il est nécessaire de configurer les périphériques réseau pour qu'ils
prennent en charge le protocole. Cela inclut la définition de politiques de sécurité, la
génération de clés et la configuration des règles de sécurité. Il existe différentes solutions et
implémentations d'IPsec, notamment StrongSwan, Openswan et Windows IPsec.
Avantages et inconvénients d'IPsec
IPsec présente plusieurs avantages, notamment :
 Sécurité au niveau du réseau : IPsec sécurise l'ensemble des communications au
niveau de la couche réseau, offrant une protection complète.
 Compatibilité interplateforme : IPsec est une norme ouverte, ce qui signifie qu'il est
compatible avec de nombreuses plates-formes et appareils.
Cependant, IPsec présente également quelques inconvénients, notamment :
 Complexité de configuration : La configuration d'IPsec peut être complexe, en
particulier dans des environnements réseau complexes.
 Impact sur les performances : L'encapsulation et le chiffrement des paquets peuvent
avoir un impact sur les performances réseau.
IPsec est largement utilisé pour sécuriser les communications dans un large éventail de
scénarios, notamment les réseaux d'entreprise, les connexions VPN et les communications
inter-réseaux. En comprenant IPsec et en utilisant ses fonctionnalités de manière appropriée,
vous pouvez renforcer la sécurité de vos réseaux et protéger les données en transit.

III. Outils de Sécurisation des Réseaux


La sécurisation des réseaux repose sur l'utilisation d'outils spécialisés qui permettent de
prévenir, détecter et répondre aux menaces. Cette section se penchera sur certains des outils
fondamentaux utilisés dans la sécurité des réseaux.

3.1 Pare-feu (Pare-feu)


Description : Un pare-feu est un dispositif matériel ou logiciel qui contrôle le trafic entrant et
sortant d'un réseau en fonction d'un ensemble de règles de sécurité. Il sert de première ligne
de défense en garantissant l'accès non autorisé et en bloquant les attaques.
Fonctionnement : Le pare-feu examine le trafic en fonction des règles prédéfinies. Il peut
être basé sur des politiques de sécurité, des adresses IP, des ports ou des protocoles
spécifiques. Les pare-feu peuvent être déployés au niveau des périphériques réseau, tels que
les routeurs, ou en tant que logiciel sur des serveurs.
Utilisation : Les pare-feu sont utilisés pour sécuriser les réseaux en filtrant le trafic, en
particulier les accès non autorisés, et en fournissant une barrière contre les attaques
malveillantes.

3.2 Systèmes de Détection d'Intrusion (IDS)


Description : Les IDS (Systèmes de Détection d'Intrusion) sont des dispositifs ou des logiciels
qui surveillent le trafic réseau à la recherche d'activités suspectes ou de comportements
anormaux qui pourraient indiquer une tentative d'intrusion.
Fonctionnement : Un IDS analyse le trafic en temps réel et compare les modèles détectés
aux signatures connues d'attaques. Certains IDS utilisent également des méthodes d'analyse
comportementale pour repérer les anomalies.
Utilisation : Les IDS sont utilisés pour détecter les attaques en temps réel et déclencher des
alertes en cas d'activité suspecte. Ils complètent les pare-feu en fournissant une détection
plus avancée des menaces.

3.3 Équilibreurs de Charge


Description : Les équilibreurs de charge sont des dispositifs qui distribuent le trafic entrant
entre plusieurs serveurs afin d'optimiser les performances, d'assurer la disponibilité des
applications et de prévenir les surcharges.
Fonctionnement : Un équilibreur de charge analyse le trafic entrant et le répartit
équitablement entre plusieurs serveurs. Cela permet de réduire la charge sur chaque serveur
individuel, d'optimiser les ressources et d'améliorer la fiabilité du système.
Utilisation : Les équilibreurs de charge sont utilisés pour garantir la disponibilité des
applications, améliorer les performances, et assurer une répartition équitable de la charge sur
les serveurs, notamment les temps d'arrêt liés à la surcharge d'un serveur spécifique.

3.4 le proxy
Description : Un serveur proxy agit en tant qu'intermédiaire entre les utilisateurs et les
ressources auxquelles ils accèdent, permettant un contrôle plus fin sur le trafic réseau et une
protection accrue.
Fonctionnement : Un proxy intercepte les requêtes des utilisateurs et les transmet aux
serveurs cibles. Il peut filtrer le trafic, bloquer l'accès à des sites spécifiques, ou fournir une
couche supplémentaire de sécurité en cachant l'adresse IP réelle des utilisateurs.
Utilisation : Les proxys sont utilisés pour contrôler l'accès à Internet, surveiller le trafic,
améliorer la confidentialité en masquant les adresses IP, et renforcer la sécurité en filtrant les
contenus malveillants.

3.5 VPN (Réseau Privé Virtuel)


Description : Un VPN établit une connexion sécurisée entre deux réseaux, généralement via
Internet. Il permet aux utilisateurs d'accéder aux ressources réseau de manière sécurisée et
confidentielle.
Fonctionnement : Un VPN utilise des protocoles de chiffrement pour sécuriser les
communications entre les utilisateurs distants et les réseaux d'entreprise. Il crée un tunnel
sécurisé, garantissant la confidentialité et l'intégrité des données transitant sur Internet.
Utilisation : Les VPN sont utilisés pour sécuriser les communications à distance, permettant
aux utilisateurs de se connecter de manière sécurisée aux réseaux d'entreprise depuis des
emplacements distants, notamment lors de l'utilisation de réseaux Wi-Fi publics.
Ces outils représentent une gamme diversifiée de solutions utilisées dans la sécurisation des
réseaux. En comprenant leur fonctionnement et en les utilisant de manière stratégique, les
professionnels de la sécurité peuvent renforcer la robustesse de leurs infrastructures réseau.

Conclusion
Cette unité, nous a permis d'explorer en profondeur les menaces réseau et les protocoles de
sécurité essentiels. Au cours de cette unité, nous avons acquis une compréhension
approfondie des défis et des solutions liées à la protection des communications et des réseaux
informatiques.
La sécurité des réseaux et des protocoles est une composante cruciale de la cybersécurité
moderne. Les menaces réseau évoluent constamment, mais avec les connaissances
acquises dans cette unité, vous êtes mieux préparé à faire face à ces défis et à mettre en
place des mesures de sécurité solides.
Dans l'unité suivante, nous explorons la Sécurité des Applications
Web, en nous concentrant sur les menaces telles que l'injection SQL, le Cross-Site Scripting
(XSS) et le Cross-Site Request Forgery (CSRF). Nous découvrirons les mécanismes de
sécurité qui permettent de protéger les applications web contre ces menaces.
Unité 6 : Sécurité des Applications Web
Introduction
Aujourd'hui, les applications web sont omniprésentes, offrant une variété de services allant
des médias sociaux aux services bancaires en ligne. Cependant, cette ubiquité expose
également les utilisateurs et les organisations à un éventail de menaces potentielles qui visent
à compromettre la sécurité et la confidentialité des données. C'est dans ce contexte que la
sécurité des applications web revêt une importance capitale.
Cette unité se concentrera sur trois vulnérabilités majeures qui affectent les applications web
modernes : l'injection SQL, les attaques de type Cross-Site Scripting (XSS) et les attaques
Cross-Site Request Forgery (CSRF). Comprendre ces vulnérabilités et apprendre à les
prévenir est essentiel pour les développeurs, les administrateurs de systèmes et les
professionnels de la sécurité informatique.
En outre, nous explorerons les mécanismes de sécurité des applications web, notamment
l'authentification, la gestion des sessions, le contrôle d'accès, et la sécurisation des données,
qui sont essentiels pour créer des applications robustes et résistantes aux attaques.
La sécurité des applications web est une compétence fondamentale pour tous les
professionnels de l'informatique. Grâce à cette unité, vous serez mieux armé pour reconnaître,
prévenir et contrer les menaces qui pèsent sur ces applications, contribuant ainsi à la
protection des données sensibles et à la confiance des utilisateurs.

I. Injection SQL
1.1 Comprendre injection SQL
L'injection SQL est l'une des vulnérabilités les plus courantes et dangereuses auxquelles sont
confrontées les applications web. Elle permet aux attaquants d'exploiter les failles de sécurité
pour interagir avec la base de données sous-jacente de l'application. Comprendre le
fonctionnement de l'injection SQL est la première étape cruciale pour la prévenir.
1.1.1 Définition de l'injection SQL
L'injection SQL tire son nom de l'injection de requêtes SQL malveillantes au sein de champs
de saisie de données ou de paramètres d'URL. Les attaquants utilisent ces entrées pour
insérer du code SQL non autorisé dans les requêtes SQL de l'application. Les conséquences
de ces attaques peuvent être désastreuses, car elles permettent aux attaquants de manipuler,
d'accéder ou de supprimer des données sensibles stockées dans la base de données.
1.1.2 Comment les attaquants exploitent cette vulnérabilité
Pour comprendre comment les attaquants exploitent l'injection SQL, il est essentiel de
reconnaître leur mode opératoire :
 Saisie malveillante de données : Les attaquants insèrent du code SQL malveillant
dans les champs de saisie de l'application, tels que les formulaires de connexion ou
de recherche.
 Modification des requêtes SQL : Le code SQL inséré modifie les requêtes SQL
légitimes de l'application en injectant de nouvelles clauses SQL.
 Accès à la base de données : Une fois que la requête SQL est modifiée avec succès,
les attaquants peuvent accéder aux données sensibles, les télécharger, les altérer ou
même les supprimer.
 Découverte d'informations sensibles : Les attaquants peuvent exploiter l'injection
SQL pour extraire des informations confidentielles telles que des noms d'utilisateurs,
des mots de passe, des numéros de carte de crédit, etc.
1.1.3 Exemples d'injections SQL
Pour illustrer l'injection SQL, voici quelques exemples concrets :
 Exemple 1 - Injection SQL basique : Imaginez un champ de saisie de recherche sur
un site web. Si un attaquant saisit "'; DROP TABLE utilisateurs; --" dans ce champ,
l'application exécutera une requête SQL qui pourrait effacer la table des utilisateurs.
 Exemple 2 - Extraction de données : En insérant une requête SQL malveillante telle
que "UNION SELECT nom, mot_de_passe FROM utilisateurs" dans un champ de
connexion, un attaquant peut extraire des informations de la base de données, y
compris les noms d'utilisateur et les mots de passe.
La compréhension de ces exemples d'injection SQL met en lumière les risques potentiels pour
la sécurité des applications web. Il est donc essentiel de savoir comment prévenir et contrer
ces attaques.
1.2 Risques et impacts
L'injection SQL est une vulnérabilité redoutable qui peut avoir des conséquences
dévastatrices pour la sécurité et l'intégrité des applications web et de leurs données.
Comprendre les risques et les impacts de l'injection SQL est essentiel pour apprécier la gravité
de cette menace.
1.2.1 Les risques associés à l'injection SQL
Les risques liés à l'injection SQL sont multiples et touchent différents aspects de la sécurité
d'une application web :

 Perte de données : Les attaquants peuvent supprimer, altérer ou exfiltrer des


données de la base de données de l'application, entraînant la perte de données
critiques ou confidentielles.

 Fuites d'informations sensibles : L'injection SQL peut permettre aux attaquants


d'accéder à des informations sensibles, telles que des mots de passe, des
informations personnelles ou des données financières.

 Attaques indirectes : Les attaques d'injection SQL peuvent servir de point de départ
pour d'autres attaques, telles que la prise de contrôle du serveur ou l'exécution de
scripts malveillants sur le côté client.

 Dégradation de la réputation : Une application web compromise peut nuire à la


réputation de l'organisation qui la possède, créant une perte de confiance chez les
utilisateurs.

 Violation de la conformité : Les réglementations telles que le RGPD en Europe


imposent des obligations strictes en matière de protection des données. Une violation
due à une injection SQL peut entraîner des sanctions importantes.
1.2.2 Les conséquences sur la sécurité des données
L'injection SQL peut nuire à la sécurité des données de multiples façons :
 Confidentialité : Les données sensibles, telles que les informations personnelles, les
numéros de carte de crédit, ou les secrets d'entreprise, peuvent être exposées,
mettant ainsi en péril leur confidentialité.
 Intégrité : Les attaquants peuvent modifier les données de la base de données,
compromettant ainsi leur intégrité. Cela peut se traduire par des informations inexactes
ou des actions malveillantes.
 Disponibilité : Les attaques d'injection SQL peuvent entraîner des temps d'arrêt du
système, rendant les données inaccessibles pour les utilisateurs légitimes.
1.2.3 Exemples de cas où l'injection SQL a eu des conséquences graves
Pour illustrer l'impact de l'injection SQL, voici quelques exemples de cas célèbres où cette
vulnérabilité a eu des conséquences graves :
 L'incident Sony Pictures (2014) : Des attaquants ont utilisé l'injection SQL pour voler
d'énormes quantités de données sensibles, y compris des courriels, des documents
confidentiels et des informations sur les employés.
 L'attaque contre Equifax (2017) : Une faille d'injection SQL a conduit à la
compromission de données personnelles de près de 147 millions de personnes, l'une
des plus grandes violations de données de l'histoire.
 L'incident Ashley Madison (2015) : L'injection SQL a été utilisée pour exfiltrer des
données confidentielles de ce site de rencontres, exposant ainsi les informations
personnelles de ses utilisateurs.
Ces exemples illustrent les conséquences graves de l'injection SQL. La prévention de cette
vulnérabilité est donc impérative pour garantir la sécurité des applications web et des données
qui y sont stockées.

1.3 Prévention et sécurisation


Pour contrer l'injection SQL et protéger vos applications web, il est essentiel de mettre en
place des mécanismes de prévention et de sécurisation adéquats. Voici les techniques et
bonnes pratiques pour réduire considérablement les risques d'injection SQL.
1.3.1 Techniques de prévention de l'injection SQL

 Validation et filtration des entrées : Validez et filtrez toutes les données d'entrée
provenant des utilisateurs avant de les utiliser dans des requêtes SQL. Évitez
d'accepter des caractères spéciaux non autorisés, tels que les guillemets simples ou
doubles.

 Utilisation de requêtes paramétrées : Privilégiez l'utilisation de requêtes


paramétrées. Les requêtes paramétrées permettent de séparer les données de la
requête SQL, entraînant ainsi les risques d'injection.

 Stockage sécurisé des données : Utilisez des mécanismes de stockage sécurisé


pour les mots de passe, tels que le hachage avec un sel (salt). Cela rend difficile
l'extraction de mots de passe en cas d'injection SQL réussie.
 Limitation des droits d'accès : Accordez aux comptes de base de données
uniquement les autorisations nécessaires. Limitez au maximum les privilèges
administratifs.
1.3.2 Utilisation de pare-feu applicatifs pour détecter et bloquer les attaques

 Pare-feu d'application web (WAF) : Les WAF sont conçus pour détecter et bloquer
les attaques web, et comprennent les attaques par injection SQL. Ils surveillent le trafic
web entrant et sortant et identifient les requêtes suspectes.

 Listes blanches : Autorisez uniquement les entrées qui correspondent à une liste
blanche préalablement définie. Tout ce qui ne correspond pas à cette liste sera rejeté.

 Analyse heuristique : Les WAF peuvent également utiliser des techniques d'analyse
heuristique pour détecter les modèles de comportement anormaux qui pourraient
indiquer une injection SQL.
1.3.3 Tests de sécurité et audits

 Tests de pénétration : Effectuez des tests de pénétration réguliers pour identifier les
vulnérabilités d'injection SQL dans vos applications web.

 Audits de code : Réalisez des audits de code pour rechercher des vulnérabilités
d'injection SQL. Cela implique une révision minutieuse du code source de l'application.

 Éducation et formation : Formez les développeurs, les administrateurs et les


professionnels de la sécurité pour qu'ils fournissent et préviennent les attaques par
injection SQL.
La prévention de l'injection SQL est une responsabilité cruciale pour garantir la sécurité des
applications web. En mettant en place des mesures de prévention et de détection adéquates,
vous pouvez réduire de manière significative les risques liés à cette vulnérabilité, contribuant
ainsi à la protection des données et à la confiance des utilisateurs.

II. Scripts intersites (XSS)


Les scripts intersites (XSS) sont une classe d'attaques courantes et potentiellement
dangereuses qui visent à injecter du code malveillant dans des sites web, compromettant ainsi
la sécurité des utilisateurs finaux. Dans cette section, nous explorons en détail les différentes
formes d'attaques XSS, les risques associés, et les techniques pour les préventions.

2.1 Définition
Les attaques de type Cross-Site Scripting (XSS) sont une autre menace majeure pour la
sécurité des applications web. Comprendre les différentes formes de XSS et comment elles
fonctionnent est essentiel pour prévenir ces attaques.
2.1.1 Définition du Cross-Site Scripting (XSS)
Le Cross-Site Scripting (XSS) est une vulnérabilité qui permet aux attaquants d'injecter des
scripts malveillants (généralement écrits en JavaScript) dans les pages web consultées par
d'autres utilisateurs. Ces scripts sont alors exécutés dans le navigateur des victimes, ce qui
peut entraîner des conséquences graves, telles que le vol de données sensibles ou la prise
de contrôle de sessions utilisateur.
2.1.2 Différenciation entre les types de XSS
Il existe plusieurs types de XSS, chacun avec des caractéristiques et des impacts spécifiques.
Les principales variantes comprennent :

 XSS Stocké (Stored XSS) : Dans ce scénario, le script malveillant est stocké sur le
serveur web et est ensuite récupéré et exécuté par les utilisateurs qui consultent la
page. Les commentaires sur les forums, les publications sur les réseaux sociaux et les
formulaires de saisie sont des vecteurs courants pour les attaques XSS stockées.

 XSS Réfléchi (Reflected XSS) : Les attaques XSS réfléchies impliquent l'injection de
scripts malveillants dans les paramètres d'URL ou les formulaires de saisie. Les
victimes déclenchent ces attaques en visitant un lien ou en soumettant un formulaire,
sans que le script soit stocké sur le serveur.

 XSS Basé sur le DOM (DOM-based XSS) : Ce type d'attaque se produit côté client,
directement dans le navigateur de la victime. Les scripts sont manipulés au niveau du
Document Object Model (DOM) de la page web, ce qui peut entraîner des
modifications dynamiques et des comportements non souhaités.
La différenciation entre ces types de XSS est cruciale pour comprendre comment les attaques
se produisent et pour mettre en place des mesures de prévention spécifiques.

2.2 Impacts et dangers


Les attaques de type Cross-Site Scripting (XSS) ont le potentiel de causer des dommages
importants aux utilisateurs, aux applications web et aux organisations. Comprendre les
impacts et les dangers de XSS est essentiel pour apprécier la gravité de cette vulnérabilité.
2.2.1 Les impacts sur la sécurité de l'utilisateur
Les attaques XSS peuvent nuire à la sécurité des utilisateurs de plusieurs manières :
1. Vol de données sensibles : Les scripts malveillants peuvent voler des informations
personnelles, telles que les identifiants de connexion, les numéros de carte de crédit,
ou d'autres données confidentielles directement depuis le navigateur de la victime.
2. Session utilisateur compromise : Les attaques XSS peuvent être utilisées pour voler
les sessions utilisateur actives, permettant aux attaquants de se faire passer pour
l'utilisateur légitime et d'effectuer des actions en son nom.
3. Propagation de malwares : Les scripts malveillants peuvent rediriger les utilisateurs
vers des sites web malveillants, où ils peuvent être infectés par des malwares.
4. Altération du contenu : Les attaquants peuvent modifier le contenu des pages web,
créant ainsi une expérience utilisateur altérée et semant la confusion.
2.2.2 Comment les attaquants exploitent les scripts malveillants
Les attaquants exploitent les scripts malveillants pour atteindre leurs objectifs malveillants :
 Infiltration de scripts : Les attaquants insèrent des scripts malveillants dans les
pages web, en utilisant des vulnérabilités XSS, telles que des formulaires de saisie
non protégés.
 Propagation : Une fois qu'un script est exécuté dans le navigateur d'un utilisateur, il
peut être utilisé pour propager davantage d'attaques, notamment par le biais de
redirections vers d'autres sites malveillants.
 Vol de données : Les scripts peuvent extraire des données sensibles directement du
navigateur de la victime, les voyants ainsi aux attaquants.
 Session utilisateur : Les scripts peuvent voler des sessions utilisateur, ce qui permet
aux attaquants d'usurper l'identité de la victime et d'effectuer des actions en son nom.
2.2.3 Exemples de cas où les attaques XSS ont causé des dommages
Pour illustrer l'impact des attaques XSS, voici quelques exemples de cas où cette vulnérabilité
a eu des conséquences graves :
 L'attaque MySpace Samy (2005) : Samy Kamkar a utilisé une attaque XSS sur
MySpace pour diffuser un ver qui a infecté des millions de profils et a effectué des
modifications non autorisées.
 L'attaque Twitter Mikeyy (2009) : L'attaquant Mikeyy Mooney a utilisé des attaques
XSS pour envoyer des tweets malveillants et inciter les utilisateurs à suivre des liens
dangereux.
 L'incident eBay (2014) : Des vulnérabilités XSS sur eBay ont été exploitées pour
voler des informations de connexion et d'autres données sensibles.
Ces exemples démontrent les conséquences graves des attaques XSS. La prévention de
cette vulnérabilité est donc impérative pour garantir la sécurité des applications web et des
utilisateurs qui les fréquentent.

2.3 Méthodes de prévention


Pour protéger les applications web contre les attaques de type Cross-Site Scripting (XSS), il
est essentiel de mettre en place des mécanismes de prévention adéquats. Voici les
techniques et les bonnes pratiques pour réduire considérablement les risques de XSS.
2.3.1 Techniques de sécurisation des applications web contre XSS

 Échappement des données : Échapper correctement toutes les données avant de


les inclure dans le code HTML. Cela signifie que les caractères spéciaux, tels que les
chevrons (< >) et les guillemets (" ' "), doivent être transformés en équivalents HTML
(entités HTML) pour qu'ils ne soient pas interprétés comme du code.

 Validation et filtrage des entrées : Validez et filtrez toutes les données d'entrée
provenant des utilisateurs. Les entrées malveillantes, telles que les balises <script>,
doivent être rejetées.

 Mécanismes de sécurité côté serveur : Utilisez des mécanismes de sécurité côté


serveur, tels que les en-têtes HTTP Content Security Policy (CSP), pour contrôler
quel contenu peut être exécuté sur une page.

 Gestion des cookies : Utilisez les paramètres HttpOnlyet Securepour les cookies
afin de renforcer leur sécurité.
2.3.2 Éducation et sensibilisation
1. Formation des développeurs : Formez les développeurs pour qu'ils reconnaissent
les vulnérabilités XSS et comprennent comment échapper correctement les données
et valider les entrées.
2. Sensibilisation des utilisateurs : Éduquez les utilisateurs sur les risques liés à
l'exécution de scripts depuis des sources non fiables, les incitant ainsi à être prudents
lorsqu'ils cliquent sur des liens ou visitent des sites web.
2.3.3 Utilisation de bibliothèques et de frameworks sécurisés
1. Frameworks sécurisés : Utilisez des frameworks et des bibliothèques qui intègrent
des mécanismes de sécurité pour prévenir les attaques XSS, tels que React, Angular,
et Vue.js.
2. Outils de sécurité automatisés : Utilisez des outils d'analyse de sécurité automatisés
pour détecter les vulnérabilités XSS dans le code source de l'application.
2.3.4 Essais de sécurité
1. Tests de pénétration : Effectuez des tests de pénétration réguliers pour identifier les
vulnérabilités XSS dans vos applications web.
2. Scans de sécurité automatisés : Utilisez des scanners de sécurité automatisés pour
détecter les vulnérabilités XSS sur l'ensemble de votre application.
La prévention des attaques de type Cross-Site Scripting est essentielle pour garantir la
sécurité des applications web. En mettant en place des mesures de prévention adéquates et
en sensibilisant les développeurs et les utilisateurs aux risques, vous pouvez réduire de
manière significative les risques de XSS, contribuant ainsi à la protection des données et à la
confiance des utilisateurs.

III. Contrefaçon de demande intersites (CSRF)

3.1 Comprendre les attaques CSRF


La contrefaçon de demande intersites (CSRF) est une autre vulnérabilité courante qui menace
la sécurité des applications web. Pour prévenir ces attaques, il est essentiel de comprendre
leur fonctionnement et leurs risques.
3.1.1 Définition de la contrefaçon de demande intersites (CSRF)
La contrefaçon de demande intersites (Cross-Site Request Forgery, CSRF) est une attaque
qui incite un utilisateur à effectuer involontairement une action non autorisée au sein d'une
application web sur laquelle il est authentifié. Contrairement aux attaques XSS, les attaquants
n'injectent pas de scripts malveillants. Au lieu de cela, ils exploitent la confiance que
l'application accorde à l'utilisateur authentifié pour effectuer des actions indésirables.
3.1.2 Fonctionnement d'une attaque CSRF
Le fonctionnement d'une attaque CSRF est le suivant :
1. L'utilisateur authentifié se rend sur un site web malveillant, par exemple, en cliquant
sur un lien ou en consultant une page piégée.
2. Le site malveillant envoie des requêtes HTTP à l'application ciblée en utilisant les
informations d'authentification de l'utilisateur. Cela peut inclure des actions telles que
la modification de mots de passe, l'envoi de messages ou même des transactions
financières.
3. L'application ciblée, ne faisant aucune distinction entre une demande légitime et une
demande CSRF, exécute l'action souhaitée, pensant qu'elle provient de l'utilisateur
authentifié.
3.1.3 Les risques associés à la contrefaçon de demande intersites (CSRF)
Les attaques CSRF peuvent avoir des conséquences sérieuses, notamment :
 Modification non autorisée de données : Les attaquants peuvent effectuer des
actions au nom de l'utilisateur, modifiant ainsi des données sensibles, telles que les
paramètres du compte, les informations de profil, ou les mots de passe.
 Transfert d'argent non autorisé : Les attaques CSRF peuvent être utilisées pour
effectuer des transactions financières non autorisées, transférant de l'argent depuis le
compte de l'utilisateur vers celui de l'attaquant.
 Envoi de messages non désirés : Les attaquants peuvent envoyer des messages
indésirables depuis le compte de l'utilisateur, nuisant à sa réputation.
 Altération de l'état de l'application : Les attaques CSRF peuvent entraîner des
comportements inattendus et altérer l'état de l'application.
3.1.4 Différenciation entre les attaques CSRF et XSS
Il est essentiel de noter que les attaques CSRF sont distinctes des attaques XSS. Les
attaques CSRF exploitent la confiance de l'application dans l'utilisateur authentifié pour
effectuer des actions non autorisées, tandis que les attaques XSS cohérentes à injecter des
scripts malveillants pour exécuter du code dans le navigateur de l'utilisateur.

3.2 Impacts et dangers


Les attaques de contrefaçon de demande intersites (CSRF) comportent des risques
significatifs pour la sécurité des applications web et de leurs utilisateurs. Comprendre les
impacts et les dangers du CSRF est essentiel pour apprécier la gravité de cette menace.
3.2.1 Les impacts sur la sécurité de l'utilisateur
Les attaques CSRF peuvent avoir de graves conséquences sur la sécurité des utilisateurs :
1. Modification non autorisée de données : Les attaquants peuvent modifier les
paramètres du compte, les informations de profil, ou d'autres données sensibles de
l'utilisateur.
2. Transfert d'argent non autorisé : Les attaques CSRF peuvent être utilisées pour
effectuer des transactions financières non autorisées, transférant de l'argent depuis le
compte de l'utilisateur.
3. Envoi de messages non désirés : Les attaquants peuvent envoyer des messages,
des courriels ou des publications non désirés depuis le compte de l'utilisateur, nuisant
ainsi à sa réputation.
4. Altération de l'état de l'application : Les attaques CSRF peuvent modifier l'état de
l'application, provoquant des dysfonctionnements et des comportements non
souhaités.
3.2.2 Les risques pour les applications web
Les applications web sont également exposées à des risques importants liés aux attaques
CSRF :
1. Détérioration de la confiance des utilisateurs : Les attaques CSRF peuvent
entraîner des problèmes de sécurité qui nuisent à la confiance des utilisateurs. Cela
peut entraîner une réduction de l’utilisation de l’application.
2. Conformité réglementaire : Les applications web gérant des données sensibles,
telles que des informations financières ou médicales, peuvent être en violation de la
conformité réglementaire en cas d'attaques CSRF réussies.
3.2.3 Exemples de cas où les attaques CSRF ont causé des dommages
Pour illustrer l'impact des attaques CSRF, voici quelques exemples de cas où cette
vulnérabilité a eu des conséquences graves :
 L'incident PayPal (2015) : Des attaquants ont exploité une vulnérabilité CSRF pour
effectuer des transactions non autorisées sur les comptes PayPal des utilisateurs.
 L'attaque sur les routeurs NETGEAR (2017) : Des attaquants ont utilisé des
attaques CSRF pour modifier les paramètres des routeurs NETGEAR, les rendant
vulnérables à d'autres attaques.
 L'incident Facebook (2018) : Une faille CSRF a été exploitée pour détourner les
comptes d'utilisateurs, leur faisant "aimer" des pages ou publier des messages
indésirables.
Ces exemples mettent en évidence les conséquences graves des attaques CSRF. La
prévention de cette vulnérabilité est donc cruciale pour garantir la sécurité des applications
web et des utilisateurs qui les utilisent.

3.3 Méthodes de prévention


La prévention de la contrefaçon de demande intersites (CSRF) est essentielle pour protéger
les applications web contre cette vulnérabilité. Voici les techniques et bonnes pratiques pour
réduire considérablement les risques de CSRF.
3.3.1 Utilisation de jetons anti-CSRF (CSRF Tokens)
Les jetons anti-CSRF, également appelés jetons synchrones, sont l'une des méthodes les
plus efficaces pour prévenir les attaques CSRF. Leur fonctionnement est le suivant :
1. Lorsqu'un utilisateur authentifié accède à une application, un jeton anti-CSRF unique
est généré et associé à sa session.
2. Ce jeton est ensuite inclus dans les formulaires web et les requêtes qui effectuent des
actions sensibles.
3. Lorsqu'une action est soumise, l'application vérifie que le jeton anti-CSRF inclus dans
la demande correspond à celui stocké dans la session de l'utilisateur. Si les jetons
correspondent, l'action est autorisée. Sinon, elle est rejetée.
Les jetons anti-CSRF empêchent les attaques CSRF en obligeant les attaquants à connaître
le jeton unique associé à chaque session utilisateur. Comme ils ne peuvent pas deviner ce
jeton, les attaques CSRF deviennent considérablement plus difficiles.
3.3.2 Vérification de l'en-tête Référent
L'en-tête Referer dans les requêtes HTTP indique la source de la requête. Les applications
web peuvent vérifier si l'en-tête Referer correspond au domaine attendu pour l'action en cours.
Si l'en-tête Referer ne correspond pas au domaine attendu, l'action peut être considérée
comme suspecte et rejetée.
Cependant, l'en-tête Referer peut être désactivé dans certains scénarios, ce qui limite son
efficacité.
3.3.3 Exiger une confirmation d'action raisonnable
Pour les actions particulièrement sensibles, telles que la modification du mot de passe ou le
transfert d'argent, il est préférable d'exiger une confirmation supplémentaire de l'utilisateur,
par exemple, en demandant un mot de passe ou en voyant un code de vérification par e-mail.
3.3.4 Sessions courtes et jetons uniques
Les sessions utilisateur doivent être effectuées aussi courtoisement que possible. De plus,
les jetons de session doivent être uniques pour chaque utilisateur et invalidés après utilisation.
Cela limite le temps pendant lequel un jeton anti-CSRF est valide.
3.3.5 Éducation des développeurs
Les développeurs doivent être formés pour comprendre les risques de CSRF et savoir
comment implémenter des protections appropriées, telles que l'utilisation de jetons anti-
CSRF.
La prévention de la contrefaçon de demande intersites est cruciale pour garantir la sécurité
des applications web et la protection des utilisateurs. En mettant en place des mécanismes
de prévention tels que les jetons anti-CSRF, les applications web peuvent réduire
considérablement les risques liés à cette vulnérabilité.

IV. Mécanismes de sécurité des applications web


4.1 Authentification et gestion des sessions
L'authentification et la gestion des sessions sont des composants essentiels de la sécurité
des applications web. Cette sous-section explorera les mécanismes de sécurité associés à
l'authentification des utilisateurs et à la gestion de leurs sessions.
4.1.1 Authentification des utilisateurs
L'authentification des utilisateurs consiste à vérifier leur identité avant de leur accorder l'accès
à une application web. Voici quelques mécanismes utilisés pour l'authentification :
 Authentification basée sur des identifiants et des mots de passe : Les utilisateurs
doivent saisir un identifiant (nom d'utilisateur) et un mot de passe pour leur compte.
L'application vérifie que les informations saisies correspondent à celles stockées dans
la base de données.

 Authentification à deux facteurs (2FA) : En plus du nom d'utilisateur et du mot de


passe, les utilisateurs doivent fournir une deuxième forme d'authentification, telle qu'un
code envoyé par SMS ou une application d'authentification.

 Authentification à clé publique : Les utilisateurs possèdent une paire de clés, l'une
publique et l'autre privée. La clé publique est utilisée pour vérifier l'identité de
l'utilisateur, tandis que la clé privée est conservée en toute sécurité.

 Authentification unique (SSO) : Les utilisateurs se connectent une fois à une seule
application et sont ensuite authentifiés automatiquement sur d'autres applications du
même système sans avoir à saisir à nouveau leurs identifiants.
4.1.2 Gestion des séances
Une fois qu'un utilisateur est authentifié, sa session doit être gérée de manière sécurisée. La
gestion des sessions garantit que l'utilisateur reste authentifié tant qu'il est actif et qu'il est
correctement déconnecté lorsqu'il se déconnecte. Voici quelques aspects importants de la
gestion des sessions:

 Création de sessions sécurisées : Les sessions doivent être créées de manière


sécurisée, en utilisant des mécanismes robustes pour générer des jetons de session
uniques.

 Expiration des sessions : Les sessions doivent avoir une durée de vie limitée. Les
utilisateurs doivent être automatiquement déconnectés après une période d'inactivité
prédéfinie.

 Stockage sécurisé des jetons de session : Les jetons de session doivent être
stockés de manière sécurisée, généralement dans des cookies sécurisés ou dans des
en-têtes HTTP.

 Déconnexion sécurisée : Les utilisateurs doivent pouvoir se déconnecter de manière


sécurisée, en invalidant leur session et en effaçant les jetons associés.

 Protection contre les attaques de session : Les mécanismes de gestion des


sessions doivent être conçus pour résister aux attaques telles que la fixation de
session, la session hijacking et la session fixation.
La combinaison d'une authentification solide et d'une gestion des sessions sécurisées est
essentielle pour garantir que seules les personnes autorisées ont accès aux ressources et
aux données sensibles des applications web.

4.2 Autorisation et contrôle d'accès


L'autorisation et le contrôle d'accès sont des composants cruciaux de la sécurité des
applications web. Ils déterminent quelles ressources et quelles fonctionnalités un utilisateur
authentifié est autorisé à utiliser.
4.2.1 Authentification vs Autorisation
Il est important de faire la distinction entre l'authentification et l'autorisation :
 Authentification : C'est le processus de vérification de l'identité de l'utilisateur. Une
fois authentifié, l'utilisateur est reconnu par le système en tant qu'entité légitime.
 Autorisation : C'est le processus de détermination des droits et des privilèges d'accès
de l'utilisateur authentifié. L'autorisation détermine ce que l'utilisateur est autorisé à
faire au sein de l'application.
4.2.2 Mécanismes d'autorisation
Voici quelques mécanismes utilisés pour mettre en œuvre l'autorisation dans les applications
web :

 Listes de contrôle d'accès (ACL) : Les ACL sont des listes qui spécifient les droits
d'accès de chaque utilisateur ou groupe d'utilisateurs pour chaque ressource. Ils
déterminent qui peut lire, écrire ou exécuter une ressource donnée.

 Systèmes de rôles : Les rôles regroupent les utilisateurs en catégories en fonction


de leurs responsabilités. Chaque rôle a des droits d'accès prédéfinis. Les utilisateurs
sont attribués à des rôles, ce qui détermine leurs privilèges.

 Attributs d'accès : Les attributs d'accès sont associés à chaque ressource et à


chaque utilisateur. Ils précisent les droits d'accès en fonction d'attributs tels que la
catégorie, le propriétaire, la date de création, etc.
4.2.3 Bonnes pratiques pour l'autorisation
Pour garantir un contrôle d'accès efficace, voici quelques bonnes pratiques à suivre :

 Attribution minimale de privilèges : Accordez aux utilisateurs uniquement les


privilèges dont ils ont besoin pour accomplir leurs tâches. Évitez de donner des droits
d’accès excessifs.

 Principe du moindre privilège : Les utilisateurs doivent disposer du moins de


privilèges nécessaires pour accomplir leurs tâches. Cela limite les risques liés à une
élévation des privilèges.

 Révision régulière des droits d'accès : Passez en revue et mettez à jour


régulièrement les droits d'accès pour vous assurer qu'ils sont toujours appropriés.

 Protection contre l'injection d'identité : Protégez les mécanismes d'autorisation


contre les attaques d'injection d'identité, telles que la manipulation de paramètres
d'URL.

 Suivi des accès : Tenez des journaux d'audit pour enregistrer les activités des
utilisateurs et les accès aux ressources. Cela permet de détecter les comportements
suspects.
Une mise en œuvre efficace de l'autorisation et du contrôle d'accès est essentielle pour
garantir que seules les personnes autorisées ont accès aux ressources et aux fonctionnalités
appropriées au sein des applications web.

4.3 Protection contre les attaques courantes


La sécurité des applications web nécessite la mise en place de mesures pour se prémunir
contre les attaques courantes. Ces attaques, telles que l'injection SQL et les attaques par
force brute, peuvent mettre en péril la sécurité des données et des utilisateurs. Cette sous-
section examine les principales menaces et les stratégies de défense associées.
4.3.1 Injection SQL
L'injection SQL est une attaque où un attaquant insère des commandes SQL malveillantes
dans les entrées des applications web. Si ces entrées ne sont pas correctement validées et
échappées, l'attaquant peut manipuler la base de données de l'application. Voici quelques
stratégies pour se protéger contre les attaques par injection SQL :
 Validation et filtrage des entrées : Validez et filtrez toutes les données d'entrée pour
empêcher l'ajout de commandes SQL malveillantes.
 Utilisation de requêtes paramétrées : Utilisez des requêtes paramétrées ou des
procédures stockées pour interagir avec la base de données, ce qui réduit le risque
d'injection SQL.
 Limitation des droits d'accès à la base de données : Accordez les droits d'accès
les plus bas possibles aux utilisateurs de la base de données pour minimiser les
dégâts en cas de violation.
4.3.2 Attaques par force brute
Les attaques par force brute cohérentes à essayer toutes les combinaisons possibles de
noms d'utilisateur et de mots de passe pour à un compte. Pour se défendre contre de telles
attaques:
 Politiques de verrouillage de compte : Mettre en place des politiques de verrouillage
de compte qui bloquent temporairement un compte après un certain nombre de
tentatives infructueuses.
 Utilisation des mots de passe forts : Encouragez les utilisateurs à utiliser des mots
de passe forts et mettez en place des politiques de complexité des mots de passe.
4.3.3 Protection contre les autres attaques courantes
D'autres attaques courantes incluent les attaques Cross-Site Scripting (XSS), Cross-Site
Request Forgery (CSRF), le sniffing, le déni de service (DDoS) et l'interception de données.
Pour se protéger contre ces attaques :
 Mise en œuvre de mécanismes de sécurité côté serveur : Utilisez des mécanismes
de sécurité côté serveur, tels que les en-têtes HTTP CSP (Content Security Policy)
pour contrôler l'exécution de scripts et réduire les risques de XSS.
 Utilisation de jetons anti-CSRF : Pour prévenir les attaques CSRF, utilisez des
jetons anti-CSRF pour valider l'origine des requêtes.
 Chiffrement : Utilisez des protocoles de chiffrement tels que SSL/TLS pour sécuriser
la communication entre les clients et les serveurs, notamment les risques de sniffing.
 Mise en place de pare-feu et de systèmes de détection des intrusions (IDS) : Ces
dispositifs peuvent aider à prévenir et à détecter les attaques DDoS et les tentatives
d'interception.
La protection contre les attaques courantes est un élément essentiel de la sécurité des
applications web. En combinant des mesures de sécurité robustes avec des bonnes pratiques
de développement, les applications web peuvent être mieux préparées pour faire face aux
menaces actuelles.
Conclusion
La sécurité des applications web est un élément fondamental dans un paysage numérique en
constante évolution. La confiance des utilisateurs et la protection des données sensibles
dépendent de la mise en place de mécanismes de sécurité robustes et de bonnes pratiques
de développement. Dans ce chapitre, nous avons exploré divers aspects de la sécurité des
applications web, en mettant l'accent sur l'authentification, l'autorisation, et la protection contre
les attaques courantes.
L’authentification des utilisateurs est la première étape cruciale pour garantir que seules les
personnes autorisées ont accès aux ressources de l'application. En utilisant des mécanismes
tels que l'authentification à deux facteurs (2FA) et l'authentification à clé publique, les
applications web peuvent renforcer la sécurité des comptes utilisateurs.
L’autorisation et le contrôle d'accès déterminant ce que les utilisateurs peuvent faire une fois
authentifiés. En suivant les bonnes pratiques, telles que l'attribution minimale de privilèges et
la révision régulière des droits d'accès, les applications web peuvent garantir un contrôle
d'accès efficace.
La protection contre les attaques courantes, telles que l'injection SQL, les attaques par force
brute, les attaques XSS et les attaques CSRF, est essentielle pour maintenir la sécurité des
applications web. En utilisant des techniques telles que la validation et le filtrage des entrées,
les requêtes paramétrées, et les jetons anti-CSRF, les développeurs peuvent réduire
considérablement les risques.
En résumé, la sécurité des applications web est un domaine en constante évolution qui
nécessite une vigilance continue. La combinaison de mécanismes d'authentification et
d'autorisation solides, de bonnes pratiques de développement, et de la prévention des
attaques courantes permet de créer des applications web sécurisées et de protéger la
confidentialité et l'intégrité des données.

Vous aimerez peut-être aussi