Objectif d'apprentissage 5.1.A : Expliquer comment les adversaires peuvent exploiter les vulnérabilités applicatives et de fichiers pour provoquer des pertes, des dommages, des perturbations ou des destructions.
- 5.1.A.1 Un adversaire peut lire tout fichier non chiffré s'il a accès à l'appareil ou au disque stockant les fichiers.
- 5.1.A.2 Les ordinateurs ont des utilisateurs standards et des utilisateurs administrateurs. Les utilisateurs administrateurs ont accès aux paramètres de contrôle du système et peuvent généralement accéder à n'importe quels fichiers ou applications sur un système. Si des utilisateurs réguliers se voient accorder des privilèges administrateurs sur un ordinateur et qu'un adversaire peut compromettre le compte d'un utilisateur, alors l'adversaire aura des privilèges élevés sur le système.
- 5.1.A.3 Lorsque les paramètres de contrôle d'accès sont faiblement configurés, de nombreux utilisateurs ont souvent la permission de visualiser et parfois même de modifier des fichiers sur un système. Les adversaires peuvent tirer parti de paramètres de contrôle d'accès faibles pour voler ou détruire des fichiers ou perturber une application.
Objectif d'apprentissage 5.1.B : Expliquer comment les attaques applicatives exploitent les vulnérabilités.
- 5.1.B.1 Les applications sont des programmes qui exécutent des instructions sur des ordinateurs ; ce sont des données exécutables. Certaines applications s'exécutent localement sur l'ordinateur d'un utilisateur, tandis que d'autres applications, comme les applications web, s'exécutent sur un serveur et sont accessibles par les utilisateurs via un réseau.
- 5.1.B.2 De nombreuses applications prennent des entrées utilisateur via des champs de saisie ouverts où les utilisateurs peuvent taper des caractères (par exemple, des lettres, des chiffres, de la ponctuation). Les développeurs devraient inclure des vérifications d'entrée utilisateur dans leur application, telles que des entrées numériques lorsqu'on demande un nombre d'articles, pour s'assurer que l'entrée utilisateur correspond à ce qui est attendu ; l'application doit rejeter les entrées en dehors des paramètres attendus. Ce processus de vérification que l'entrée utilisateur répond aux critères attendus avant son traitement est appelé validation des données. Les applications qui échouent à valider l'entrée utilisateur sont vulnérables aux attaques de type injection, où les adversaires insèrent des chaînes de caractères inattendues dans les champs de saisie pour altérer le comportement d'un programme.
- 5.1.B.3 Le langage SQL (Structured Query Language) est un langage informatique utilisé pour demander des informations aux bases de données et apporter des modifications aux bases de données ou aux entrées des bases de données. Les applications qui interrogent une base de données en utilisant des entrées non validées ou non nettoyées provenant des utilisateurs sont vulnérables.
- 5.1.B.4 Une attaque d'injection SQL place des commandes SQL et des caractères de contrôle dans un champ de saisie utilisateur dans une application, ce qui peut entraîner une atteinte à la confidentialité en faisant retourner à l'application plus d'informations qu'elle ne devrait, ou une atteinte à l'intégrité en modifiant ou en supprimant des données dans la base de données.
- 5.1.B.5 Les sites Web sont écrits en langage HTML (hypertext markup language), et de nombreux sites utilisent Javascript pour créer du contenu dynamique sur les sites Web ou les applications Web. Comme les commandes Javascript s'exécutent dans le navigateur de l'utilisateur visitant le site, ces commandes peuvent accéder aux données sensibles stockées dans le navigateur, telles que les noms d'utilisateur, les mots de passe et les clés cryptographiques.
- 5.1.B.6 Une attaque XSS (Cross Site Scripting) injecte du code malveillant dans un site Web que le navigateur de l'utilisateur exécute ensuite. Le code malveillant peut être intégré dans un lien cliqué par l'utilisateur (une attaque XSS de Type I ou Reflectée) ou il peut être inséré sur un site Web via un champ de commentaire, un message de forum ou un journal de visiteur, ce qui affecterait tout utilisateur visitant ce site Web (une attaque XSS de Type II ou Stockée).
- 5.1.B.7 Lorsqu'elles prennent une entrée utilisateur, cette entrée est écrite dans un tampon. Un tampon est une section désignée de la mémoire informatique avec une taille fixe. Si la quantité de données saisies par l'utilisateur dépasse la taille du tampon, elle peut déborder vers des emplacements mémoire adjacents et écraser d'autres parties de la mémoire de l'ordinateur.
- 5.1.B.8 Une attaque de débordement de tampon alimente plus de données dans la mémoire que ce qui était alloué, ce qui peut provoquer un crash du système ou l'exécution de code en dehors du cadre de la politique de sécurité d'un programme, permettant ainsi effectivement à l'adversaire d'effectuer des actions non autorisées sur un ordinateur, telles que l'accès, la modification ou la suppression de fichiers.
- 5.1.B.9 Les fichiers qui exécutent les applications web sont stockés dans des répertoires sur des serveurs. Lorsqu'ils accèdent à des applications web, leurs navigateurs envoient des requêtes GET en utilisant le protocole de transfert hypertexte (HTTP). Une requête GET accède à un fichier quelque part dans le système de fichiers du serveur.
- 5.1.B.10 Dans une attaque par traversal de répertoire, les adversaires modifient les URL et les requêtes GET pour tenter d'accéder à des données sensibles (par exemple, noms d'utilisateur et mots de passe) sur le système de fichiers d'un serveur.
- Exemples illustratifs pour 5.1.B.10 :
- Un serveur web stocke les images d'un site qu'il héberge dans le répertoire /var/www/images/. Un adversaire modifie une URL demandant une image pour obtenir ../../../etc/passwd. Le .. permet de remonter d'un répertoire dans le système de fichiers ; ainsi, trois .. consécutifs renvoie le chemin vers la racine, et de là, l'adversaire tente d'accéder au fichier passwd qui contiendrait une liste de tous les utilisateurs autorisés sur l'appareil.
- Exemples illustratifs pour 5.1.B.10 :
Objectif d'apprentissage 5.1.C : Évaluer et documenter les risques liés aux vulnérabilités des applications et des données.
- 5.1.C.1 Les risques pour la sécurité des données peuvent impliquer une atteinte à la confidentialité lorsque des personnes non autorisées peuvent accéder à des données sensibles, une atteinte à l'intégrité lorsque des données peuvent être manipulées ou altérées par rapport à leur état prévu, et une perte de disponibilité lorsque des données peuvent être détruites ou chiffrées pour empêcher d'autres personnes de y accéder.
- 5.1.C.2 Les hauts risques dus aux vulnérabilités des données concernent souvent des données très sensibles (par exemple, des données régies par des lois ou des réglementations) qui pourraient être compromises par une exploitation très probable.
- Exemples illustratifs pour 5.1.C.2 :
- L'entreprise développant le prochain réacteur qui sera utilisé par l'Air Force dans ses avions stocke les spécifications techniques du réacteur sur un disque non chiffré.
- Exemples illustratifs pour 5.1.C.2 :
- 5.1.C.3 Les risques moyens dus aux vulnérabilités des données concernent souvent des données sensibles ne disposant pas d'un chiffrement suffisamment fort ou de contrôles d'accès assez stricts.
- Exemples illustratifs pour 5.1.C.3 :
- Une entreprise stocke les RPI (renseignements personnels identifiables) de ses clients dans un tableur, et ce tableur est chiffré avec une petite clé.
- Exemples illustratifs pour 5.1.C.3 :
- 5.1.C.4 Les faibles risques dus aux vulnérabilités des données concernent souvent des informations moins sensibles étant chiffrées avec des clés plus courtes ou ayant des contrôles d'accès qui ne sont pas assez stricts.
- Exemples illustratifs pour 5.1.C.4 :
- Le PDG d'une organisation stocke ses mémos privés destinés à son personnel exécutif sur un lecteur partagé de l'entreprise qui est non chiffré et ne dispose d'aucun contrôle d'accès.
- Exemples illustratifs pour 5.1.C.4 :


