Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’informatique fiable est une initiative Microsoft visant à garantir la production de code sécurisé. L’un des éléments clés de l’initiative d’informatique digne de confiance est le cycle de vie du développement de la sécurité Microsoft (SDL). Le SDL est une pratique d’ingénierie utilisée conjointement avec des processus d’ingénierie standard pour faciliter la livraison de code sécurisé. Le SDL se compose de dix phases qui combinent les meilleures pratiques avec la formalisation, la méasurabilité et une structure supplémentaire, notamment :
Analyse de la conception de la sécurité
Vérifications de qualité basées sur les outils
Test d’intrusion
Révision finale de la sécurité
Gestion de la sécurité des produits post-mise en production
Les spécificités de WPF
L’équipe d’ingénierie WPF applique et étend le SDL, dont la combinaison comprend les aspects clés suivants :
outils d’analyse de sécurité et d’édition
Modélisation des menaces
La modélisation des menaces est un composant principal de SDL et sert à profiler un système pour déterminer les vulnérabilités de sécurité potentielles. Une fois les vulnérabilités identifiées, la modélisation des menaces garantit également que les atténuations appropriées sont en place.
À un niveau élevé, la modélisation des menaces implique les étapes clés suivantes en utilisant une épicerie comme exemple :
Identification des ressources. Les biens d’une épicerie peuvent inclure des employés, un coffre-fort, des caisses et des stocks.
Énumération des points d’entrée. Les points d’entrée d’un épicerie peuvent inclure les portes avant et arrière, les fenêtres, le quai de chargement et les unités de climatisation.
Réflexion sur les attaques possibles à l’encontre des ressources via les points d’entrée. Dans une épicerie, le coffre-fort peut être la cible d’une attaque via le point d’entrée que constitue le climatiseur ; celui-ci pourrait être démonté et, par le passage ainsi libéré, permettre d’extraire le coffre-fort hors du magasin.
La modélisation des menaces est appliquée dans WPF et inclut les éléments suivants :
Comment l’analyseur XAML lit les fichiers, mappe du texte aux classes de modèle objet correspondantes et crée le code réel.
Comment un handle de fenêtre (hWnd) est créé, envoie des messages et est utilisé pour afficher le contenu d’une fenêtre.
Comment la liaison de données obtient des ressources et interagit avec le système.
Ces modèles de menace sont importants pour identifier les exigences de conception de la sécurité et les atténuations des menaces pendant le processus de développement.
Outils d’analyse et d’édition de source
En plus des éléments manuels de révision du code de sécurité du SDL, l’équipe WPF utilise plusieurs outils pour l’analyse de la source et les modifications associées afin de réduire les vulnérabilités de sécurité. Un large éventail d’outils sources est utilisé et inclut les éléments suivants :
Avertissement
La sécurité d’accès au code (CAS) n’est pas prise en charge par .NET moderne, il s’agit d’un concept .NET Framework uniquement. Toutes les fonctionnalités liées à CAS sont traitées selon le présupposé de pleine confiance. Pour plus d’informations, consultez Différences avec WPF .NET - Sécurité de l’accès au code.
FXCop: recherche des problèmes de sécurité courants dans le code managé, allant des règles d’héritage à l’utilisation de la sécurité d’accès au code, à l’interopérabilité sécurisée avec du code non managé. Consultez la page FXCop.
Prefix/Prefast : recherche les failles de sécurité et les problèmes de sécurité courants dans le code non managé, tels que les dépassements de mémoire tampon, les problèmes de chaîne de format et la vérification d’erreurs.
API interdites: recherche le code source pour identifier l’utilisation accidentelle des fonctions connues pour provoquer des problèmes de sécurité, tels que
strcpy. Une fois identifiées, ces fonctions sont remplacées par des alternatives plus sécurisées.
Techniques de test
WPF utilise diverses techniques de test de sécurité qui incluent :
Whitebox Testing: les testeurs affichent le code source, puis créent des tests d’exploitation.
Blackbox Testing: les testeurs essaient de trouver des exploits de sécurité en examinant l’API et les fonctionnalités, puis essaient d’attaquer le produit.
Régression des problèmes de sécurité provenant d’autres produits : le cas échéant, les problèmes de sécurité provenant de produits connexes sont testés. Par exemple, des variantes appropriées d’environ soixante problèmes de sécurité pour Internet Explorer ont été identifiées et essayées pour leur applicabilité à WPF.
Test de pénétration basé sur des outils à l’aide du test de fichier à données aléatoires (fuzzing) : le test de fichier à données aléatoires (fuzzing) consiste à exploiter la plage d’entrées d’un lecteur de fichiers à travers diverses entrées. L’un des exemples de WPF dans lequel cette technique est utilisée consiste à rechercher une défaillance dans le code de décodage d’image.
Gestion du code critique
Pour les applications de navigateur XAML (XBAPs), WPF génère un bac à sable de sécurité à l’aide de la prise en charge du .NET Framework pour marquer et suivre le code critique de sécurité qui élève les privilèges (voir Security-Critical Méthodologie dans Stratégie de Sécurité WPF - Plateforme de Sécurité). Compte tenu des exigences de qualité de sécurité élevées sur le code critique de sécurité, ce code reçoit un niveau supplémentaire de contrôle de gestion des sources et d’audit de sécurité. Environ 5% à 10% de WPF se composent de code critique de sécurité, qui est examiné par une équipe d’examen dédiée. Le code source et le processus de vérification sont gérés en suivant le code critique de sécurité et en mappant chaque entité critique (c’est-à-dire une méthode qui contient du code critique) à son état de déconnexion. L'état de validation s'accompagne des noms d'un ou plusieurs réviseurs. Chaque build quotidienne de WPF compare le code critique à celui des versions précédentes pour vérifier les modifications non approuvées. Si un ingénieur modifie le code critique sans approbation de l’équipe d’examen, il est identifié et résolu immédiatement. Ce processus permet l’application et la maintenance d’un niveau d’examen particulièrement élevé du code de bac à sable WPF.
Avertissement
Les XBAPs nécessitent des navigateurs anciens pour fonctionner, tels qu’Internet Explorer et les anciennes versions de Firefox. Ces navigateurs plus anciens ne sont généralement pas pris en charge sur Windows 10 et Windows 11. Les navigateurs modernes ne prennent plus en charge la technologie requise pour les applications XBAP en raison des risques de sécurité. Les plug-ins qui activent les XBAPs ne sont plus pris en charge. Pour plus d’informations, consultez Questions fréquemment posées sur les applications WPF hébergées dans un navigateur (XBAP).
Voir aussi
.NET Desktop feedback