Barre de bogues de sécurité SDL (exemple)

Remarque : Cet exemple de document est fourni seulement à titre d'illustration. Le contenu présenté ci-dessous présente les critères de base à prendre en compte lors de la création de processus de sécurité. Ce n'est pas une liste exhaustive d'activités ou de critères, et il ne doit pas être traité comme tel.

Reportez-vous aux définitions des termes de cette section.

Serveur

Reportez-vous à la matrice des dénis de service pour une matrice complète des scénarios de déni de service des serveurs.

La barre de serveur n'est généralement pas appropriée quand l'interaction utilisateur fait partie du processus d'exploitation. Si une vulnérabilité critique existe seulement sur les produits serveur et qu'elle est exploitée de façon telle qu'elle nécessite une interaction utilisateur et aboutit à la compromission du serveur, la gravité peut être réduite Critique à Importante, conformément à la définition des données/NEAT d'une interaction utilisateur étendue présentée au début du tableau de gravité du client.

Serveur

Critique

Résumé pour le serveur : les vers réseau ou les cas inévitables où le serveur est « possédé ».

  • Élévation de privilège : possibilité d'exécuter du code arbitraire ou d'obtenir plus de privilèges que ce qui est autorisé

    • Utilisateur anonyme distant

      • Exemples :

        • Accès non autorisé au système de fichiers : écriture arbitraire dans le système de fichiers

        • Exécution de code arbitraire

        • Injection SQL (qui permet l'exécution de code)

    • Toutes les violations d'accès en écriture, les violations d'accès en lecture exploitables ou les dépassements de capacité pour un entier dans du code appelable anonymement à distance

Important

Résumé pour le serveur : scénarios autres que ceux par défaut ou cas où des atténuations existent qui peuvent aider à éviter des scénarios critiques.

  • Déni de service : doit être « facile à exploiter » en envoyant une petite quantité de données ou sinon être provoqué rapidement

    • Anonyme

      • Déni de service persistant

        • Exemples :

          • L'envoi d'un seul paquet TCP malveillant aboutit à l'affichage d'un écran bleu (BSoD)

          • L'envoi d'un petit nombre de paquets entraînant un échec de service

      • Déni de service temporaire avec amplification

        • Exemples :

          • L'envoi d'un petit nombre de paquets qui rend le système inutilisable pendant une période de temps donnée

          • Un serveur web (comme IIS) indisponible pendant une minute ou plus

          • Un client distant unique consommant toutes les ressources disponibles (sessions, mémoire) sur un serveur en établissant des sessions et en les maintenant ouvertes

    • Authentifié

      • Déni de service persistant sur une ressource d'une valeur importante

        • Exemple :

          • L'envoi d'un petit nombre de paquets entraînant un échec de service pour une ressource ayant une valeur importante dans les rôles serveur (serveur de certificats, serveur Kerberos, contrôleur de domaine), par exemple quand un utilisateur authentifié par un domaine peut effectuer un déni de service sur un contrôleur de domaine

  • Élévation de privilège : possibilité d'exécuter du code arbitraire ou d'obtenir plus de privilèges que ce qui est prévu

    • Utilisateur authentifié distant

    • Utilisateur authentifié local (Terminal Server)

      • Exemples :

        • Accès non autorisé au système de fichiers : écriture arbitraire dans le système de fichiers

        • Exécution de code arbitraire

    • Toutes les violations d'accès en écriture, les violations d'accès en lecture ou les dépassements de capacité pour un entier dans le code accessibles aux utilisateurs authentifiés locaux ou distants qui ne sont pas des administrateurs (par définition, les scénarios des administrateurs n'ont pas de problèmes de sécurité, mais restent néanmoins toujours des problèmes de fiabilité.)

  • Divulgation (ciblée) d'informations

    • Cas où l'attaquant peut localiser et lire des informations depuis n'importe où sur le système, y compris les informations système qui n'étaient pas destinées à être exposées

      • Exemples :

        • Divulgation d'informations d'identification personnelle

          • Divulgation d'informations d'identification personnelle (adresses e-mail, numéros de téléphone, informations de carte de crédit)

          • Un attaquant peut collecter des informations d'identification personnelle sans consentement de l'utilisateur ou de façon secrète

  • Usurpation

    • Une entité (ordinateur, serveur, utilisateur, processus) est en mesure de se faire passer pour une entité spécifique (un utilisateur ou un ordinateur) de son choix.

      • Exemples :

        • Un serveur web utilise improprement l'authentification par certificat client (SSL), permettant à un attaquant d'être identifié comme n'importe quel utilisateur de son choix.

        • Le nouveau protocole est conçu pour fournir une authentification client à distance, mais il existe un défaut dans le protocole qui permet à un utilisateur distant malveillant d'être vu comme un autre utilisateur de son choix.

  • Tampering (falsification)

    • Modification de données d'une « ressource ayant une valeur importante » dans un scénario courant ou par défaut où la modification persiste après le redémarrage du logiciel affecté

    • Modification permanente ou permanente de n'importe quelles données utilisateur ou système utilisées dans un scénario courant ou par défaut

      • Exemples :

        • Modification de fichiers de données ou des bases de données de l'application dans un scénario courant ou par défaut, par exemple l'injection de SQL authentifié

        • Empoisonnement du cache du proxy dans un scénario courant ou par défaut

        • Modification des paramètres d'une application ou du système d'exploitation sans consentement de l'utilisateur dans un scénario courant ou par défaut

  • Fonctionnalités de sécurité : passer à travers ou contourner une fonctionnalité de sécurité fournie.
    Notez qu'une vulnérabilité dans une fonctionnalité de sécurité est notée « Important » par défaut, mais que l'évaluation peut être ajustée en fonction d'autres considérations, comme documenté dans la barre de bogues du SDL.

    • Exemples :

      • Désactivation ou contournement d'un pare-feu sans informer les utilisateurs ou obtenir leur consentement

      • Reconfiguration d'un pare-feu et autorisation de connexions à d'autres processus

Modéré
  • Denial of service (déni de service)

    • Anonyme

      • Déni de service temporaire sans amplification dans une installation par défaut/courante

        • Exemple :

          • Plusieurs clients distants consommant toutes les ressources disponibles (sessions, mémoire) sur un serveur en établissant des sessions et en les maintenant ouvertes

    • Authentifié

      • Déni de service persistant

        • Exemple :

          • L'utilisateur connecté à Exchange peut envoyer un e-mail spécifique et planter le serveur Exchange, et le plantage n'est pas dû à une violation d'accès en écriture, une violation d'accès en lecture exploitable ou un dépassement de capacité pour un entier.

      • Déni de service temporaire avec amplification dans une installation par défaut/courante

        • Exemple :

          • L'utilisateur SQL Server ordinaire exécute une procédure stockée installée par un produit et consomme 100 % du processeur pendant quelques minutes

  • Divulgation (ciblée) d'informations

    • Les cas où l'attaquant peut facilement lire des informations sur le système depuis des emplacements spécifiques, notamment des informations système, qui n'étaient pas destinées à être exposées.

      • Exemple :

        • Divulgation ciblée de données anonymes

        • Divulgation ciblée de l'existence d'un fichier

        • Divulgation ciblée du numéro de version d'un fichier

  • Usurpation

    • Une entité (ordinateur, serveur, utilisateur, processus) est en mesure de se faire passer pour une entité aléatoire différente qui ne peut pas être spécifiquement sélectionnée.

      • Exemple :

        • Le client s'authentifie correctement auprès du serveur, mais le serveur transmet une session d'un autre utilisateur aléatoire qui se trouve être connecté au serveur en même temps.

  • Tampering (falsification)

    • Modification permanente ou persistante des données d'un utilisateur ou d'un système dans un scénario spécifique

      • Exemples :

        • Modification de fichiers de données ou de bases de données d'une application dans un scénario spécifique

        • Empoisonnement du cache du proxy dans un scénario spécifique

        • Modification des paramètres du système d'exploitation/de l'application sans consentement utilisateur dans un scénario spécifique

    • Modification temporaire des données dans un scénario courant ou par défaut qui ne persiste pas après le redémarrage du système d'exploitation/de l'application/de la session

  • Garanties de sécurité :

    • Une garantie de sécurité est une fonctionnalité de sécurité ou une autre fonctionnalité/fonction du produit dont les clients attendent qu'elle offre une protection de sécurité. Des communications ont spécifié (explicitement ou implicitement) que les clients peuvent s'appuyer sur l'intégrité de la fonctionnalité, et c'est ce qui en fait une garantie de sécurité. Des bulletins de sécurité seront publiés pour un défaut dans une garantie de sécurité qui ébranle la confiance ou l'approbation du client.

      • Exemples :

        • Des processus qui s'exécutent avec des privilèges « utilisateur » normaux ne peuvent pas obtenir les privilèges « administrateur », sauf si les informations d'identification ou le mot de passe d'administrateur ont été fournis via des méthodes intentionnellement autorisées.

        • Du code JavaScript basé sur Internet s'exécutant dans Internet Explorer ne peut pas contrôler le système d'exploitation hôte, sauf si l'utilisateur a explicitement changé les paramètres de sécurité par défaut.

Faible
  • Divulgation (non ciblée) d'informations

    • Informations d'exécution

      • Exemple :

        • Fuite de mémoire du tas aléatoire

  • Tampering (falsification)

    • Modification temporaire des données dans un scénario spécifique qui ne persiste pas après le redémarrage du système d'exploitation/de l'application

Client

Une action utilisateur étendue est définie comme suit :

  • Une « interaction utilisateur » peut se produire seulement dans un scénario piloté par le client.

  • Les actions utilisateur normales simples, comme l'affichage de l'aperçu d'un e-mail, la visualisation de dossiers locaux ou des partages de fichiers, ne sont pas des interactions utilisateur étendues.

  • « Étendue » inclut les utilisateurs qui naviguent manuellement jusqu'à un site web particulier (par exemple en tapant une URL) ou en cliquant via un invite oui/non.

  • « Non étendue » inclut les utilisateurs cliquant via des liens dans un e-mail.

  • Qualificateur NEAT (s'applique seulement aux avertissements). Manifestement, l'expérience utilisateur est :

    • Nécessaire (l'invite oui/non doit-elle vraiment être présentée à l'utilisateur ?)

    • Expliquée (l'expérience utilisateur présente-t-elle toutes les informations dont l'utilisateur a besoin pour prendre cette décision ?)

    • Actionable (existe-t-il un ensemble d'étapes que les utilisateurs peuvent effectuer pour prendre de bonnes décisions dans des scénarios bénins et des scénarios malveillants ?)

    • Testée (l'avertissement a-t-il été revu par plusieurs personnes, pour garantir que les gens comprennent comment répondre à l'avertissement ?)

  • Clarification : Notez que l'effet d'une interaction utilisateur étendue n'est pas une réduction de niveau de la gravité, mais est et a été une réduction de la gravité dans certaines circonstances où l'expression « interaction utilisateur étendue » apparaît dans la barre de bogues. L'objectif est d'aider les clients à distinguer les attaques à propagation rapide et par vers de celles-ci, où en raison du fait que l'utilisateur interagit, l'attaque est ralentie. Cette barre de bogues ne vous permet pas de réduire l'élévation de privilège à un niveau inférieur à Important, en raison de l'interaction utilisateur.

Client

Critique

Résumé pour le client :

  • Les vers réseau ou les scénarios de navigation/utilisation courants inévitables où le client est « possédé » sans avertissements ni invites.

  • Élévation de privilège (à distance) : possibilité d'exécuter du code arbitraire ou d'obtenir plus de privilèges que ce qui est prévu

    • Exemples :

      • Accès non autorisé au système de fichiers : écriture dans le système de fichiers

      • Exécution de code arbitraire sans action utilisateur étendue

      • Toutes les violations d'accès en écriture, les violations d'accès en lecture exploitables, les dépassements de capacité de la pile ou les dépassements de capacité pour un entier dans du code appelable à distance (sans action utilisateur étendue)

Important

Résumé pour le client :

  • Scénarios courants d'exploration/utilisation où le client est « possédé » avec des avertissements ou des invites, ou via des actions étendues sans invites. Notez que cela ne fait pas de distinction entre la qualité/utilisabilité d'une invite et la probabilité qu'un utilisateur clique sur l'invite, mais simplement qu'il existe une invite d'une certaine forme.

  • Élévation de privilège (à distance)

    • Exécution de code arbitraire avec action utilisateur étendue

      • Toutes les violations d'accès en écriture, les violations d'accès en lecture exploitables ou les dépassements de capacité pour un entier dans du code appelable à distance (avec action utilisateur étendue)

  • Élévation de privilège (locale)

    • Un utilisateur à privilège faible local peut s'élever lui-même à un autre utilisateur, administrateur ou système local.

      • Toutes les violations d'accès en écriture, les violations d'accès en lecture exploitables ou les dépassements de capacité pour un entier dans du code appelable local

  • Divulgation (ciblée) d'informations

    • Cas où l'attaquant peut localiser et lire des informations sur le système, y compris les informations système qui n'étaient pas destinées à être exposées.

    • Exemple :

      • Accès non autorisé au système de fichiers : lecture à partir du système de fichiers

      • Divulgation d'informations d'identification personnelle

        • Divulgation d'informations d'identification personnelle (adresses e-mail, numéros de téléphone)

      • Scénarios de téléphone à domicile

  • Denial of service (déni de service)

    • Une déni de service par corruption du système nécessite la réinstallation du système et/ou de composants.

      • Exemple :

        • La consultation d'une page web provoque la corruption du Registre qui rend la machine non démarrable

    • Déni de service furtif

      • Critères :

        • Déni de service de système non authentifié

        • Exposition par défaut

        • Pas fonctionnalité de sécurité ou d'atténuation des limites par défaut (pare-feux)

        • Pas d'interaction utilisateur

        • Pas de chemin d'audit et de punition

        • Exemple :

          • Déni de service du système par Bluetooth furtif ou SMS sur un téléphone mobile

  • Usurpation

    • Possibilité pour un attaquant de présenter une interface utilisateur différente (mais visuellement identique) de l'interface utilisateur sur laquelle les utilisateurs doivent s'appuyer pour prendre des décisions d'approbation valides dans un scénario par défaut/courant. Une décision d'approbation est définie comme suit : chaque fois que l'utilisateur effectue une action en faisant confiance au fait que certaines informations sont présentées par une entité particulière, qui peut-être le système, ou une source locale ou distante spécifique.

      • Exemples :

        • Affichage d'une URL dans la barre d'adresse du navigateur différente de l'URL du site que le navigateur affiche réellement dans un scénario par défaut/courant

        • Affichage d'une fenêtre sur la barre d'adresses du navigateur qui semble identique à une barre d'adresses mais qui affiche des données factices dans un scénario par défaut/courant

        • Affichage d'un nom de fichier dans une boîte de dialogue « Voulez-vous exécuter ce programme ? » différent du fichier qui sera réellement chargé dans un scénario par défaut/courant

        • Afficher une invite de connexion « factice » pour recueillir les informations d'identification de l'utilisateur ou du compte

  • Tampering (falsification)

    • Modification permanente de données utilisateur ou de données utilisées pour prendre des décisions d'approbation dans un scénario courant ou par défaut, qui persiste après le redémarrage du système d'exploitation/de l'application.

      • Exemples :

        • Empoisonnement du cache du navigateur web

        • Modification de paramètres importants du système d'exploitation/de l'application sans le consentement de l'utilisateur

        • Modification de données utilisateur

  • Fonctionnalités de sécurité : passer à travers ou contourner une fonctionnalité de sécurité fournie

    • Exemples :

      • Désactivation ou contournement d'un pare-feu en informant les utilisateurs ou en obtenant leur consentement

      • Reconfiguration d'un pare-feu et autorisation de connexion à d'autres processus

      • Utilisation d'un chiffrement faible ou conservation de clés stockées en texte brut

      • Contournement du contrôle d'accès

      • Contournement de BitLocker ; par exemple, non-chiffrement d'une partie du lecteur

      • Contournement de Syskey, un moyen de décoder la clé système sans le mot de passe

Modéré
  • Denial of service (déni de service)

    • Un déni de service permanent nécessite un redémarrage à froid ou provoque un écran bleu/une vérification de bogue.

      • Exemple :

        • L'ouverture d'un document Word provoque l'affichage de l'écran bleu/vérification de bogue sur la machine.

  • Divulgation (ciblée) d'informations

    • Cas où l'attaquant peut lire des informations sur le système depuis des emplacements connus, y compris des informations système qui n'étaient pas destinées à être exposées

      • Exemples :

        • Existence ciblée d'un fichier

        • Numéro de version d'un fichier ciblé

  • Usurpation

    • Possibilité pour un attaquant de présenter une interface utilisateur différente (mais visuellement identique) de l'interface utilisateur à laquelle les utilisateurs sont habitués à faire confiance dans un scénario par défaut/courant. « Habitué à faire confiance » est défini comme suit : tout ce dont l'utilisateur est communément familier, avec une interaction normale sur le système d'exploitation ou l'application, mais qu'il ne considère généralement pas comme une décision d'approbation.

      • Exemples :

        • Empoisonnement du cache du navigateur web

        • Modification de paramètres importants du système d'exploitation/de l'application sans le consentement de l'utilisateur

        • Modification de données utilisateur

Faible
  • Denial of service (déni de service)

    • Un déni de service temporaire nécessite le redémarrage de l'application.

      • Exemple :

        • L'ouverture d'un document HTML provoque le plantage d'Internet Explorer

  • Usurpation

    • Possibilité pour un attaquant de présenter une interface utilisateur différente (mais visuellement identique) de l'interface utilisateur qui est une partie d'une attaque de plus grande ampleur.

      • Exemple :

        • L'utilisateur doit accéder à un site web « malveillant », puis cliquer sur un bouton dans une boîte de dialogue falsifiée : il est alors susceptible d'une vulnérabilité basée sur un autre bogue du navigateur.

  • Tampering (falsification)

    • Modification temporaire de données qui ne persiste pas après le redémarrage du système d'exploitation/de l'application

    • Divulgation (non ciblée) d'informations

      • Exemple :

        • Fuite de mémoire du tas aléatoire

Définition des termes

authentifié
Toute attaque qui doit inclure l'authentification par le réseau. Ceci implique qu'une connexion d'un certain type doit pouvoir se produire pour que l'attaquant puisse être identifié.

anonyme
Toute attaque qui n'a pas besoin de s'authentifier pour se produire.

client
Un logiciel qui s'exécute localement sur un seul ordinateur ou un logiciel qui accède à des ressources partagées fournies par un serveur sur un réseau.

par défaut/commun
Les fonctionnalités actives dès l'installation du logiciel ou qui atteignent plus de 10 % des utilisateurs.

scénario
Les fonctionnalités qui nécessitent une personnalisation spéciale ou des cas d'usage pour s'activer, atteignant moins de 10 % des utilisateurs.

server
Ordinateur configuré pour exécuter des logiciels qui attendent et répondent aux demandes de processus clients qui s'exécutent sur d'autres ordinateurs.

Critique
Vulnérabilité de sécurité qui serait considérée comme ayant le potentiel le plus élevé de dommages.

Important
Vulnérabilité de sécurité qui serait considérée comme ayant un potentiel significatif pour les dommages, mais inférieur à Critique.

Moderate
Vulnérabilité de sécurité qui serait considérée comme ayant un potentiel modéré pour les dommages, mais inférieur à Important.

Faible
Vulnérabilité de sécurité qui serait considérée comme ayant un faible risque de dommages.

divulgation ciblée d'informations
Possibilité de sélectionner (cibler) intentionnellement les informations souhaitées.

déni de service temporaire
Un déni de service temporaire est une situation répondant aux critères suivants :

  • La cible ne peut pas effectuer d'opérations normales en raison d'une attaque.

  • La réponse à une attaque est à peu près de la même amplitude que celle de l'attaque.

  • La cible retourne au niveau normal de fonctionnalité peu après la fin de l'attaque. La définition exacte de « peu après » doit être évaluée pour chaque produit.

Par exemple, un serveur ne répond pas quand un attaquant envoie constamment un flux de paquets sur un réseau, et le serveur revient à la normale quelques secondes après l'arrêt du flux de paquets.

Déni de service temporaire avec amplification

Un déni de service temporaire avec amplification est une situation répondant aux critères suivants :

  • La cible ne peut pas effectuer d'opérations normales en raison d'une attaque.

  • La réponse à une attaque est d'une amplitude supérieure à la taille de l'attaque.

  • La cible retourne au niveau normal de fonctionnement une fois l'attaque terminée, mais cela prend un certain temps (peut-être quelques minutes).

Par exemple, si vous pouvez envoyer un paquet malveillant de 10 octets et provoquer une réponse de 2048 Ko sur le réseau, vous provoquez un déni de service en termes de bande passante en amplifiant notre attaque.

Déni de service permanent

Un déni de service permanent nécessite qu'un administrateur démarre, redémarre ou réinstalle tout ou partie du système. Toute vulnérabilité qui redémarre automatiquement le système est également un déni de service permanent.

Matrice des dénis de service (serveur)

Attaques authentifiées ou anonymes Par défaut/commun ou scénario Déni de service temporaire ou permanent Évaluation
Authentifié Par défaut/commun Durable Modéré
Authentifié Par défaut/commun Déni de service temporaire avec amplification Modéré
Authentifié Par défaut/commun Déni de service temporaire Faible
Authentifié Scénario Durable Modéré
Authentifié Scénario Déni de service temporaire avec amplification Faible
Authentifié Scénario Déni de service temporaire Faible
Anonyme Par défaut/commun Durable Important
Anonyme Par défaut/commun Déni de service temporaire avec amplification Important
Anonyme Par défaut/commun Déni de service temporaire Modéré
Anonyme Scénario Durable Important
Anonyme Scénario Déni de service temporaire avec amplification Important
Anonyme Scénario Déni de service temporaire Faible

Clause d'exclusion de responsabilité

Cette documentation n'est pas une référence exhaustive sur les pratiques SDL chez Microsoft. Des travaux d'assurance supplémentaires peuvent être effectués par les équipes de produits (mais pas nécessairement documentées) à leur discrétion. Par conséquent, cet exemple ne doit pas être considéré comme le processus exact que Microsoft suit pour sécuriser tous les produits.

Cette documentation est fournie « en l'état ». Les informations et les points de vue exprimés dans ce document, y compris les URL et autres références à des sites web, peuvent être modifiés sans préavis. Vous acceptez le risque lié à leur utilisation.

Cette documentation ne vous donne aucun droit légal sur aucune propriété intellectuelle dans les produits Microsoft. Vous pouvez copier et utiliser ce document pour votre information uniquement.

© 2018 Microsoft Corporation. Tous droits réservés.

Sous licenceCreative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported