Capture D'écran . 2025-04-09 À 22.40.57
Capture D'écran . 2025-04-09 À 22.40.57
Web
Dr Beman KAMAGATE
[Link]@[Link]
1
PARTIE I : SECURITE DU WEB
• Comment définir le niveau de sécurité d’un bien du S.I. ? Comment évaluer si ce bien
est correctement sécurisé ?
• 3 critères sont retenus pour répondre à cette problématique, connus sous le nom de
D.I.C.
Disponibilité
Propriété d'accessibilité au moment voulu
des biens par les personnes autorisées (i.e. le bien
doit être disponible durant les plages d’utilisation prévues)
Bien à
protéger
Intégrité
Propriété d'exactitude et de complétude des biens
et informations (i.e. une modification illégitime
d’un bien doit pouvoir être détectée et corrigée)
Confidentialité
Propriété des biens de n'être accessibles
qu'aux personnes autorisées
Preuve
Propriété d'un bien permettant de retrouver, avec
une confiance suffisante, les circonstances dans
Bien à lesquelles ce bien évolue. Cette propriété englobe
protéger Notamment :
La traçabilité des actions menées
L’authentification des utilisateurs
L’imputabilité du responsable de l’action effectuée
Ainsi, pour évaluer si un bien est correctement sécurisé, il faut auditer son niveau de
Disponibilité, Intégrité, Confidentialité et de Preuve. L’évaluation de ces critères sur une
échelle permet de déterminer si ce bien est correctement sécurisé.
Exemple des résultats d’un audit sur un bien sur une échelle (Faible, Moyen, Fort, Très
fort) :
• Tous les biens d’un S.I. n’ont pas nécessairement besoin d’atteindre les mêmes niveaux de DICP.
• Exemple avec un site institutionnel simple (statique) d’une entreprise qui souhaite promouvoir ses
services sur internet :
Un Système d’Information a besoin de mécanismes de sécurité qui ont pour objectif d’assurer de
garantir les propriétés DICP sur les biens de ce S.I. Voici quelques exemples de mécanismes de
sécurité participant à cette garantie :
D I C P
Mécanisme technique permettant de détecter toute attaque
Anti-virus virale qui a déjà été identifiée par la communauté sécurité ✓ ✓ ✓
D I C P
Mécanismes organisationnels destinés à s’assurer de l’efficacité
Capacité d’audit et de la pertinence des mesures mises en œuvre. Participe à ✓ ✓ ✓ ✓
l’amélioration continue de la sécurité du S.I.
a. Notion de « Vulnérabilité »
• Vulnérabilité
• Faiblesse au niveau d’un bien (au niveau de la conception, de la
réalisation, de l’installation, de la configuration ou de l’utilisation du
bien).
Vulnérabilités
b. Notion de « Menace »
• Menace
• Cause potentielle d’un incident, qui pourrait entrainer des dommages sur
un bien si cette menace se concrétisait.
Perte de service
Menaces
Code malveillant
04/03/2020 Sensibilisation et initiation à la cybersécurité
Notions de vulnérabilité, menace, attaque
• Attaque
• Action malveillante destinée à porter atteinte à la sécurité d’un bien. Une
attaque représente la concrétisation d’une menace, et nécessite
l’exploitation d’une vulnérabilité.
Attaques
• Attaque
• Une attaque ne peut donc avoir lieu (et réussir)
que si le bien est affecté par une vulnérabilité.
Etat
tiers
Groupe de Capacité
cybercriminels degré d’expertise et ressources
de la source de menaces
Concurrents
Exposition
opportunités et intérêts de la
Personnel
source de menaces
interne
Cyber-
délinquant
exposition
Exemple d’une cartographie des principales sources de menaces
qui pèsent sur un S.I.
Attention : cette cartographie doit être individualisée à chaque organisation car toutes les
organisations ne font pas face aux mêmes menaces.
Exemple : le S.I. d’une administration d’état ne fait pas face aux mêmes menaces que le S.I. d’un e-commerce ou d’une université
Déni de service
Virus informatique
distribué
les scénarios d’ingénierie sociale sont illimités, avec pour seules limites
l’imagination des attaquants et la naïveté des victimes…
[Link]
e. Fraude interne
Des mots de passe simples ou faibles (notamment sans caractères spéciaux comme
« ! » ou « _ » et des chiffres) permettent – entre autre – à des attaquants de mener les
actions suivantes :
• Utiliser des scripts automatiques pour tester un login avec tous les mots de passe
couramment utilisés (issus d’un dictionnaire) ;
• Utiliser des outils pour tenter de « casser » le mot de passe. Ces outils sont très
efficaces dans le cadre de mots de passe simples, et sont beaucoup moins efficaces
dans le cas de mots de passe longs et complexes.
Réflexion sur l’utilisation des mots de passe : les mots de passe constituent une faiblesse
significative pour la cybersécurité. En effet, les êtres humains n’ont pas la capacité de
mémoriser de nombreux mots de passe, complexes, différents pour chaque
application, etc.
Pour cette raison, d’autres moyens d’authentification émergent, de façon à libérer les
individus des problématiques des mots de passe. Quelques exemples : la biométrie,
les tokens USB, les matrices papier, la vérification via un code SMS, les « one time
password », etc.
Les intrusions informatiques constituent des « attaques ciblées » qui exploitent une ou des
vulnérabilité(s) technique(s) pour dérober des informations confidentielles (ex. : mots de passe, carte
bancaire…) ou prendre le contrôle des serveurs ou postes de travail
Depuis le réseau Internet sur les ressources exposées : sites institutionnels, services de e-commerce, services
d’accès distant, service de messagerie, etc.
Depuis le réseau interne sur l’Active Directory ou les applications sensibles internes
Active Directory : est un système d’annuaire sous Windows répertoriant les ressources du réseau notamment les sites, les
machines, les utilisateurs.
04/03/2020 Sensibilisation et initiation à la cybersécurité
Panorama de quelques menaces
g. Virus informatique
Les virus informatiques constituent des « attaques massives » qui tendent…
• à devenir de plus en plus ciblés sur un secteur d’activité (télécommunication, banque, défense, énergie, etc.)
• à devenir de plus en plus sophistiqués et furtifs
La déni de service distribué (DDoS) constituent une « attaque ciblée » qui consiste à saturer un site
Web de requêtes pour le mettre « hors-service » à l’aide de « botnets », réseaux d’ordinateurs
infectés et contrôlés par les attaquants
34,5 heures
durée moyenne d’une attaque
48,25 Gbps
bande passante moyenne d’une attaque
Milliers ou millions
d’ordinateurs infectés,
prêts à attaquer une cible
sur ordre de l’attaquant
Serveurs de
commande
(relais)
Un botnet est un ensemble de systèmes
contrôlables par un attaquant via des serveurs
de commande. Les propriétaires de ces
systèmes ne savent pas que leur PC participe à
un botnet (leur PC a été compromis au préalable
et à leur insu via l’exploitation d’une vulnérabilité)
Attaquant contrôlant le botnet
2
Fonctionnement de l’application Web
• Comprendre le problème
3
Le mythe « notre site est sécurisé » ?
• « Nous utilisons des gestionnaires de vulnérabilités réseau ».
– Cette approche néglige la sécurité logicielle dans le réseau ou
celle du serveur Web.
4
Ce qui peut arriver
5
Statistiques des applications Web
septembre 2014
6
Principe des attaques
• Les attaques s’appuient généralement sur l’injection
des fautes:
– Une techniques permettant d’exploiter les vulnérabilités
de la syntaxe sémantique d’une application Web
7
Référencement des documents
[Link]
Le protocole
Le N° du port Tout ce qui
après le « ? »
Le nom de hôte est la partie
Chemin d’accès au document requête de
l’URL
8
Exemples d’attaques
9
OWASP top 10 – best practice
• OWASP: Open Web Application Security Project : est une communauté
publique open source, formée en 2001.
• OWASP maintient le OWASP top 10, une liste qui identifie les rsiques les
plus critiques de la sécurité applicative.
• Depuis 2004 une nouvelle liste est arêtée tout les 3 ans.
10
OWASP top 10 – best practice
11
WASC
• Web Application Security Consortiums
– Leurs objectifs est de développer et d’adopter des standards
pour la sécurité des applications Web.
12
WASC
13
1. Injection de code
Une faille d'injection, telle l'injection SQL, OS et LDAP, se produit
quand une donnée non fiable est envoyée à un interpréteur en
tant qu'élément d'une commande ou d'une requête. Les données
hostiles de l'attaquant peuvent duper l'interpréteur afin de
l'amener à exécuter des commandes fortuites ou accéder à des
données non autorisées.
14
1. Injection de code
• Quelles sont les conséquences:
– Fuite d’informations par le biais des messages d’erreurs du
SGBD.
– Echapper une séquence d’authentification
– Extraction des données à partir de la base.
– Prendre le contrôle complet sur la BD (insertion de
données, suppression des tables, etc.)
– Exécuter des commandes sur le système.
– Compromettre le système.
15
1. Injection de code
• Principes d’injection SQL:
– Techniques de détection: découvrir comment l’application
interagit avec le serveur BD
• Souvent ajouter une simple quotte (') ou un point-virgule
(;) au champ ou paramètre à tester
• Les délimiteurs de commentaires (-- ou /* */, etc) et
d'autres mots clefs SQL comme 'AND' et 'OR‘.
• Analyser les erreurs retournées par l’application
– Exemple :
SELECT id FROM users WHERE username =‘test123’ and password =‘xxxxxxx’
SELECT id FROM users WHERE username =‘test123’ or 1=1-- and password =‘xxxxxxx’
16
1. Injection de code
• Principes :
– Techniques d’exploitation: différentes techniques
• Par union: L'opérateur UNION est utilisé dans les injections SQL
pour joindre une requête.
• Booléenne: les opérateurs AND et OR.
• Basée sur les erreurs : forcer la BD à générer des erreurs
• Out-of-band: La technique consiste à utiliser des fonctions du
SGBD pour ouvrir une connexion séparée
• Par délai: mesurer les délai de la réponse du SGBD.
• Injection de procédure stockée
• Exploitation automatisée: SQLMap par exemple
– [Link]
(OTG-INPVAL-005)
17
1. Injection de code
• Solutions:
– Validation des toutes les entrées : utiliser « white list » qui
accepte les bonnes valeurs. Taille, type,..
– Utilisation des API saines évitant toute utilisation de
l’interpréteur.
– Sinon, rejet des entrées contenant des données binaires, des
séquences de caractères d'échappement et des caractères de
commentaire.
– Utilisation des procédures stockées pour valider les entrées.
– Paramétrer les messages d’erreurs.
– Appliquer le moindre privilège de connexion à la BD.
– ….
18
2. Violation de Gestion
d’Authentification et de Session
19
2. Violation de Gestion
d’Authentification et de Session
• Description:
– Faiblesse des fonctions de gestion de compte (ex: création de
compte, changement de mot de passe, récupération de mot de
passe, IDs de session faibles) permettant de deviner ou
d’écraser les credentials.
– Exposition des IDs de session dans l'URL. (Session hijacking)
– Vulnérabilité des IDs de session à l’attaque par fixation.
– Pas de timeout des IDs de session ou mauvaise désactivation
des sessions ou jetons d’authentification
– Non rotation des IDs de session après connexion réussie
– Les mots de passe, IDs de session et autres credentials
transitent par des canaux non chiffrés
20
2. Violation de Gestion
d’Authentification et de Session
• Solutions
– Mécanismes pour sécuriser les mots de passe
• choisir des mots de passe forts et complexes.
• Protection et stockage des mots de passe : chiffrement
• En cas de changement des mots de passe: ils doivent saisir l’ancien
et le nouveau, validation par e-mail,..
– Mécanismes sécurisés pour la gestion des IDs de session:
• Combiner l’@IP soure avec l’ID de session
• Chaque login génère un nouvel unique ID de session.
• Forcer la ré-authentification termine le session hijacking
• Terminer la session après un time out d’inactivité.
• L’ID de session doit être long ,compliqué, aléatoire,..
• L’ID de session doit être protéger par SSL
21
3. Cross-Site Scripting (XSS)
22
3. Cross-Site Scripting (XSS)
• Implications
– Vol des cookies du domaine navigué
– Modifie complètement le contenu de n’importe quelle page
que vous voyez dans le domaine
– Redirige l’accès vers un site de phishing
– Exploite les vulnérabilités du browser pour prendre le
contrôle de la machine de la victime.
23
3. Cross-Site Scripting (XSS)
24
3. Cross-Site Scripting (XSS)
• Solutions
– L’option à privilégier est d’échapper toute donnée non fiable
selon le contexte HTML dans lequel elle sera insérée.
– La validation positive des entrées est recommandée mais ne
constitue pas une protection suffisante en raison des
différentes manières dont les applications traitent leur
contenu.
– Considérez Content Security Policy (CSP) pour se protéger
des attaques XSS sur l’ensemble de votre site
– [Link]
evention_Cheat_Sheet
25
4. Références directes non
sécurisées à un objet
26
4. Références directes non
sécurisées à un objet
• Implications
– Une partie du ou tous les noms de ressources (fichiers, table, …) contrôlées
par l’entrée utilisateur.
– Changer un ID dans l’URL pour accéder à un autre compte.
• Solutions
– Eviter d’exposer les références aux objets (clés primaires, nom
de fichiers,…)
– Valider toutes les références aux objets.
– Vérifier toujours l’autorisation aux objets référencés.
– Utiliser le modèle de sécurité positives pour accepter
uniquement les bonnes références aux objets.
27
5. Mauvaise configuration de
Sécurité
28
5. Mauvaise configuration de
Sécurité
• Implications:
– Mise à jour des logiciels ? OS, Web/App Serveur, l’ensemble des librairies de
code,…
– Des fonctions inutiles activées (ex:ports, services, pages, comptes, privilèges,..
– Des mots de passe par défauts.
– La configuration des frameworks de développement (Spring, [Link], …) ne
sont pas configurés aves des valeurs sécurisées.
– Le Listage des répertoires est activés.
• Solutions
– Utiliser des scans et les audits pour détecter les mauvaises
configuration.
– Déployer les nouvelles versions et des correctifs de sécurité.
– Ne pas afficher les messages d’erreurs et les exceptions dans un
environnement de production
29
6. Exposition de données sensibles
30
6. Exposition de données sensibles
• Implications :
– Données stockées/archivées en clair
– Données circulent en clair.
– Algorithmes cryptographiques et clés faibles et non robuste, la gestion
des clés.
– Composants de l’application web identifiés accessibles via HTTP et HTTPS.
• Solutions
– Choisir des algorithmes éprouvés et générer des clés robustes.
S'assurer qu'une gestion des clés est en place. Privilégier des
modules cryptographiques certifiés.
– Ne pas conserver que les données sensibles cryptés avec des
algorithmes forts bycrypt, PBKDF2, scrypt.
31
7. Manque de contrôle d’accès au
niveau fonctionnel
32
7. Manque de contrôle d’accès au
niveau fonctionnel
• Implications :
– L’interface utilisateur permet de naviguer vers des focntionnalités accès
restreint.
– Certaines vérifications côté serveur (authentification et autorisation) sont
manquantes.
• Solutions
– Faites en sorte que la gestion des droits soit facile à mettre à jour
et à auditer.
– La gestion des droits doit par défaut interdire tout accès . Ceci
impose l’autorisation explicite de certains rôles pour chacune des
fonctionnalités proposées.
– Si la fonctionnalité fait partie d’un Workflow, vérifier que les
conditions requises pour accéder cet état sont réunies.
33
8. Falsification de requête intersite
(CSRF)
34
8. Falsification de requête intersite
(CSRF)
• Implications :
– CSRF exploite le fait que la plupart des applications web permettent aux
attaquants de prévoir les détails de certaines actions.
– L’attaquant conçoit des pages web malicieuses, qui génèrent des requêtes
spécialement forgées, qui paraissent ainsi légitimes.
– L’attaquant force la victime à réaliser n’importe quelle opération.
• Solutions
– S’assurer que l’utilisateur est l’auteur de la requête, soit par la ré-
authentification, soit par la vérification que la demande n’est pas
automatisée.
– La meilleure option est d’inclure un jeton unique dans un champ caché.
Ce jeton, envoyé dans le corps de la requête HTTP, et non inséré à l’URL
sera ainsi potentiellement moins exposé.
– Le projet CSRF Guard de l’OWASP fournit des bibliothèques pour
insérer de tels jetons dans les applications Java EE, .NET, ou PHP.
35
8. Falsification de requête intersite
(CSRF)
1)
36
8. Falsification de requête intersite
(CSRF)
2)
37
9. Utilisation de composants avec
des vulnérabilités connues
38
9. Utilisation de composants avec
des vulnérabilités connues
• Implications :
– L’attaquant utilise des outils manuels ou des scanners afin d’identifier
des composants vulnérables.
• Solutions
– Identifier tous les composants et les versions utilisées, ainsi que les
dépendances (ex: le plugin des versions).
– Surveiller les bases de données publiques, les listes de diffusion des
projets et les listes de diffusion de sécurité afin de s’assurer de la
sécurité de ces composants afin de les maintenir à jour.
– Établir des politiques de sécurité pour l’utilisation des composants,
telles que la mise en place de pratiques de développement sécurisé,
le passage avec succès des recettes sécurité et l’utilisation de
composants sous License.
39
10. Redirections et renvois non
validés
40
10. Redirections et renvois non
validés
• Implications :
– Un attaquant utilise des redirections non validées afin d’inciter
l’utilisateur à cliquer sur un lien.
– Certaines redirections essayent d’encourager les victimes à installer des
logiciels malicieux ou à fournir des informations sensibles
• Solutions
– Eviter l’utilisation des redirections et des renvois.
– En cas d’utilisation, ne pas utiliser de valeur de destination dans les
paramètres utilisateur. Ceci est généralement réalisable.
– Il est recommandé de ne pas utiliser d’URL dans les paramètres,
mais plutôt une valeur abstraite qui sera traduite côté serveur par
une URL cible. Les applications peuvent utiliser ESAPI afin de
bénéficier de la fonction sendRedirect() permettant de s’assurer
que les redirections soient sûre
41
Chapitr
e IV :
écurité des Applications Web
Introduction
• Site web vs Application Web:
– Aucune définition précise
• Site Web :
– Permet l’accès à des documents statiques.
– Aucun « input » qui affecte les fonctionnalités du site.
• Application Web
– Développée autour d’un serveur Web.
– Prend des « inputs» de l’utilisateur qui affectent le «backend
business».
– Le serveur Web interagit avec un serveur d’application ou un serveur
de BD.
2
Fonctionnement de l’application Web
• Comprendre le problème
3
Le mythe « notre site est sécurisé » ?
• « Nous utilisons des gestionnaires de vulnérabilités réseau ».
– Cette approche néglige la sécurité logicielle dans le réseau ou
celle du serveur Web.
4
Ce qui peut arriver
5
Statistiques des applications Web
septembre 2014
6
Principe des attaques
• Les attaques s’appuient généralement sur l’injection
des fautes:
– Une techniques permettant d’exploiter les vulnérabilités
de la syntaxe sémantique d’une application Web
7
Référencement des documents
[Link]
Le protocole
Le N° du port Tout ce qui
après le « ? »
Le nom de hôte est la partie
Chemin d’accès au document requête de
l’URL
8
Exemples d’attaques
9
OWASP top 10 – best practice
• OWASP: Open Web Application Security Project : est une communauté
publique open source, formée en 2001.
• OWASP maintient le OWASP top 10, une liste qui identifie les rsiques les
plus critiques de la sécurité applicative.
• Depuis 2004 une nouvelle liste est arêtée tout les 3 ans.
10
OWASP top 10 – best practice
11
WASC
• Web Application Security Consortiums
– Leurs objectifs est de développer et d’adopter des standards
pour la sécurité des applications Web.
12
WASC
13
1. Injection de code
Une faille d'injection, telle l'injection SQL, OS et LDAP, se produit
quand une donnée non fiable est envoyée à un interpréteur en
tant qu'élément d'une commande ou d'une requête. Les données
hostiles de l'attaquant peuvent duper l'interpréteur afin de
l'amener à exécuter des commandes fortuites ou accéder à des
données non autorisées.
14
1. Injection de code
• Quelles sont les conséquences:
– Fuite d’informations par le biais des messages d’erreurs du
SGBD.
– Echapper une séquence d’authentification
– Extraction des données à partir de la base.
– Prendre le contrôle complet sur la BD (insertion de
données, suppression des tables, etc.)
– Exécuter des commandes sur le système.
– Compromettre le système.
15
1. Injection de code
• Principes d’injection SQL:
– Techniques de détection: découvrir comment l’application
interagit avec le serveur BD
• Souvent ajouter une simple quotte (') ou un point-virgule
(;) au champ ou paramètre à tester
• Les délimiteurs de commentaires (-- ou /* */, etc) et
d'autres mots clefs SQL comme 'AND' et 'OR‘.
• Analyser les erreurs retournées par l’application
– Exemple :
SELECT id FROM users WHERE username =‘test123’ and password =‘xxxxxxx’
SELECT id FROM users WHERE username =‘test123’ or 1=1-- and password =‘xxxxxxx’
16
1. Injection de code
• Principes :
– Techniques d’exploitation: différentes techniques
• Par union: L'opérateur UNION est utilisé dans les injections SQL
pour joindre une requête.
• Booléenne: les opérateurs AND et OR.
• Basée sur les erreurs : forcer la BD à générer des erreurs
• Out-of-band: La technique consiste à utiliser des fonctions du
SGBD pour ouvrir une connexion séparée
• Par délai: mesurer les délai de la réponse du SGBD.
• Injection de procédure stockée
• Exploitation automatisée: SQLMap par exemple
– [Link]
(OTG-INPVAL-005)
17
1. Injection de code
• Solutions:
– Validation des toutes les entrées : utiliser « white list » qui
accepte les bonnes valeurs. Taille, type,..
– Utilisation des API saines évitant toute utilisation de
l’interpréteur.
– Sinon, rejet des entrées contenant des données binaires, des
séquences de caractères d'échappement et des caractères de
commentaire.
– Utilisation des procédures stockées pour valider les entrées.
– Paramétrer les messages d’erreurs.
– Appliquer le moindre privilège de connexion à la BD.
– ….
18
2. Violation de Gestion
d’Authentification et de Session
19
2. Violation de Gestion
d’Authentification et de Session
• Description:
– Faiblesse des fonctions de gestion de compte (ex: création de
compte, changement de mot de passe, récupération de mot de
passe, IDs de session faibles) permettant de deviner ou
d’écraser les credentials.
– Exposition des IDs de session dans l'URL. (Session hijacking)
– Vulnérabilité des IDs de session à l’attaque par fixation.
– Pas de timeout des IDs de session ou mauvaise désactivation
des sessions ou jetons d’authentification
– Non rotation des IDs de session après connexion réussie
– Les mots de passe, IDs de session et autres credentials
transitent par des canaux non chiffrés
20
2. Violation de Gestion
d’Authentification et de Session
• Solutions
– Mécanismes pour sécuriser les mots de passe
• choisir des mots de passe forts et complexes.
• Protection et stockage des mots de passe : chiffrement
• En cas de changement des mots de passe: ils doivent saisir l’ancien
et le nouveau, validation par e-mail,..
– Mécanismes sécurisés pour la gestion des IDs de session:
• Combiner l’@IP soure avec l’ID de session
• Chaque login génère un nouvel unique ID de session.
• Forcer la ré-authentification termine le session hijacking
• Terminer la session après un time out d’inactivité.
• L’ID de session doit être long ,compliqué, aléatoire,..
• L’ID de session doit être protéger par SSL
21
3. Cross-Site Scripting (XSS)
22
3. Cross-Site Scripting (XSS)
• Implications
– Vol des cookies du domaine navigué
– Modifie complètement le contenu de n’importe quelle page
que vous voyez dans le domaine
– Redirige l’accès vers un site de phishing
– Exploite les vulnérabilités du browser pour prendre le
contrôle de la machine de la victime.
23
3. Cross-Site Scripting (XSS)
24
3. Cross-Site Scripting (XSS)
• Solutions
– L’option à privilégier est d’échapper toute donnée non fiable
selon le contexte HTML dans lequel elle sera insérée.
– La validation positive des entrées est recommandée mais ne
constitue pas une protection suffisante en raison des
différentes manières dont les applications traitent leur
contenu.
– Considérez Content Security Policy (CSP) pour se protéger
des attaques XSS sur l’ensemble de votre site
– [Link]
evention_Cheat_Sheet
25
4. Références directes non
sécurisées à un objet
26
4. Références directes non
sécurisées à un objet
• Implications
– Une partie du ou tous les noms de ressources (fichiers, table, …) contrôlées
par l’entrée utilisateur.
– Changer un ID dans l’URL pour accéder à un autre compte.
• Solutions
– Eviter d’exposer les références aux objets (clés primaires, nom
de fichiers,…)
– Valider toutes les références aux objets.
– Vérifier toujours l’autorisation aux objets référencés.
– Utiliser le modèle de sécurité positives pour accepter
uniquement les bonnes références aux objets.
27
5. Mauvaise configuration de
Sécurité
28
5. Mauvaise configuration de
Sécurité
• Implications:
– Mise à jour des logiciels ? OS, Web/App Serveur, l’ensemble des librairies de
code,…
– Des fonctions inutiles activées (ex:ports, services, pages, comptes, privilèges,..
– Des mots de passe par défauts.
– La configuration des frameworks de développement (Spring, [Link], …) ne
sont pas configurés aves des valeurs sécurisées.
– Le Listage des répertoires est activés.
• Solutions
– Utiliser des scans et les audits pour détecter les mauvaises
configuration.
– Déployer les nouvelles versions et des correctifs de sécurité.
– Ne pas afficher les messages d’erreurs et les exceptions dans un
environnement de production
29
6. Exposition de données sensibles
30
6. Exposition de données sensibles
• Implications :
– Données stockées/archivées en clair
– Données circulent en clair.
– Algorithmes cryptographiques et clés faibles et non robuste, la gestion
des clés.
– Composants de l’application web identifiés accessibles via HTTP et HTTPS.
• Solutions
– Choisir des algorithmes éprouvés et générer des clés robustes.
S'assurer qu'une gestion des clés est en place. Privilégier des
modules cryptographiques certifiés.
– Ne pas conserver que les données sensibles cryptés avec des
algorithmes forts bycrypt, PBKDF2, scrypt.
31
7. Manque de contrôle d’accès au
niveau fonctionnel
32
7. Manque de contrôle d’accès au
niveau fonctionnel
• Implications :
– L’interface utilisateur permet de naviguer vers des focntionnalités accès
restreint.
– Certaines vérifications côté serveur (authentification et autorisation) sont
manquantes.
• Solutions
– Faites en sorte que la gestion des droits soit facile à mettre à jour
et à auditer.
– La gestion des droits doit par défaut interdire tout accès . Ceci
impose l’autorisation explicite de certains rôles pour chacune des
fonctionnalités proposées.
– Si la fonctionnalité fait partie d’un Workflow, vérifier que les
conditions requises pour accéder cet état sont réunies.
33
8. Falsification de requête intersite
(CSRF)
34
8. Falsification de requête intersite
(CSRF)
• Implications :
– CSRF exploite le fait que la plupart des applications web permettent aux
attaquants de prévoir les détails de certaines actions.
– L’attaquant conçoit des pages web malicieuses, qui génèrent des requêtes
spécialement forgées, qui paraissent ainsi légitimes.
– L’attaquant force la victime à réaliser n’importe quelle opération.
• Solutions
– S’assurer que l’utilisateur est l’auteur de la requête, soit par la ré-
authentification, soit par la vérification que la demande n’est pas
automatisée.
– La meilleure option est d’inclure un jeton unique dans un champ caché.
Ce jeton, envoyé dans le corps de la requête HTTP, et non inséré à l’URL
sera ainsi potentiellement moins exposé.
– Le projet CSRF Guard de l’OWASP fournit des bibliothèques pour
insérer de tels jetons dans les applications Java EE, .NET, ou PHP.
35
8. Falsification de requête intersite
(CSRF)
1)
36
8. Falsification de requête intersite
(CSRF)
2)
37
9. Utilisation de composants avec
des vulnérabilités connues
38
9. Utilisation de composants avec
des vulnérabilités connues
• Implications :
– L’attaquant utilise des outils manuels ou des scanners afin d’identifier
des composants vulnérables.
• Solutions
– Identifier tous les composants et les versions utilisées, ainsi que les
dépendances (ex: le plugin des versions).
– Surveiller les bases de données publiques, les listes de diffusion des
projets et les listes de diffusion de sécurité afin de s’assurer de la
sécurité de ces composants afin de les maintenir à jour.
– Établir des politiques de sécurité pour l’utilisation des composants,
telles que la mise en place de pratiques de développement sécurisé,
le passage avec succès des recettes sécurité et l’utilisation de
composants sous License.
39
10. Redirections et renvois non
validés
40
10. Redirections et renvois non
validés
• Implications :
– Un attaquant utilise des redirections non validées afin d’inciter
l’utilisateur à cliquer sur un lien.
– Certaines redirections essayent d’encourager les victimes à installer des
logiciels malicieux ou à fournir des informations sensibles
• Solutions
– Eviter l’utilisation des redirections et des renvois.
– En cas d’utilisation, ne pas utiliser de valeur de destination dans les
paramètres utilisateur. Ceci est généralement réalisable.
– Il est recommandé de ne pas utiliser d’URL dans les paramètres,
mais plutôt une valeur abstraite qui sera traduite côté serveur par
une URL cible. Les applications peuvent utiliser ESAPI afin de
bénéficier de la fonction sendRedirect() permettant de s’assurer
que les redirections soient sûre
41