Académique Documents
Professionnel Documents
Culture Documents
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.
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.
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.
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 :
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.
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.
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.
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.
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.
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.
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:
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.
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.
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.