Rapport d'erreurs Windows - Windows Error Reporting

Image
Rapport d'erreurs Windows affichant les détails du problème d'un problème avec l' Explorateur Windows

Le rapport d'erreur Windows ( WER ) (nom de code Watson) est une technologie de rapport de panne introduite par Microsoft avec Windows XP et incluse dans les versions ultérieures de Windows et de Windows Mobile 5.0 et 6.0. À ne pas confondre avec l' outil de débogage Dr. Watson qui a laissé le vidage de la mémoire sur la machine locale de l'utilisateur, Windows Error Reporting collecte et propose d'envoyer des informations de débogage post-erreur (un vidage de la mémoire ) via Internet à Microsoft lorsqu'une application se bloque ou cesse de répondre sur le bureau d'un utilisateur. Aucune donnée n'est envoyée sans le consentement de l'utilisateur. Lorsqu'un vidage sur incident (ou d'autres informations de signature d'erreur) atteint le serveur Microsoft, il est analysé et les informations sur une solution sont renvoyées à l'utilisateur si elles sont disponibles. Les solutions sont servies à l'aide des réponses de rapport d'erreurs Windows. Le rapport d’erreurs Windows s’exécute en tant que service Windows .

Histoire

Windows XP

Microsoft a d' abord introduit le rapport d'erreurs Windows avec Windows XP .

Windows Vista

Le rapport d'erreurs Windows a été considérablement amélioré dans Windows Vista , lorsque des API publiques ont été introduites pour signaler les échecs autres que les pannes et les blocages d'applications. À l'aide des nouvelles API, telles que documentées sur MSDN, les développeurs peuvent créer des rapports personnalisés et personnaliser l'interface utilisateur de création de rapports. Le rapport d'erreurs Windows a également été repensé en mettant l'accent sur la fiabilité et l'expérience utilisateur. Par exemple, WER peut désormais signaler des erreurs même à partir de processus en mauvais état, tels que l' épuisement de la pile , les corruptions PEB / TEB et les corruptions de tas , conditions qui, dans les versions antérieures à Windows Vista, auraient entraîné l'arrêt du programme en mode silencieux sans rapport d'erreur. Une nouvelle applet du Panneau de configuration , «Rapports et solutions aux problèmes», a également été introduite, conservant un enregistrement des erreurs et problèmes liés au système et aux applications, ainsi que des solutions probables aux problèmes.

Windows 7

L' applet du Panneau de configuration Rapports et solutions aux problèmes a été remplacée par la section Maintenance du Centre d'action Windows sur Windows 7 et Server 2008 R2 .

Une nouvelle application, Problem Steps Recorder (PSR.exe), est disponible sur toutes les versions de Windows 7 et permet la collecte des actions effectuées par un utilisateur en cas de panne afin que les testeurs et les développeurs puissent reproduire la situation pour analyse et débogage.

Conception du système

WER est un système distribué . Le logiciel côté client détecte une condition d'erreur, génère un rapport d'erreur, étiquette le compartiment et signale l'erreur au service WER. Le service WER enregistre l'occurrence de l'erreur puis, en fonction des informations connues sur l'erreur particulière, peut demander des données supplémentaires au client ou diriger le client vers une solution. Les programmeurs accèdent au service WER pour récupérer des données pour des rapports d'erreurs spécifiques et pour le débogage basé sur des statistiques.

Les erreurs collectées par les clients WER sont transmises au service WER. Le service WER emploie environ 60 serveurs connectés à un réseau de stockage de 65 To qui stocke la base de données des rapports d'erreurs et à un réseau de stockage de 120 To qui stocke jusqu'à 6 mois de fichiers CAB bruts. Le service est prévu pour recevoir et traiter plus de 100 millions de rapports d'erreur par jour, ce qui est suffisant pour survivre à des événements mondiaux corrélés tels que les vers Internet .

Il peut également fournir le service où il a considéré l'objet par le serveur d'annuaire. Des informations sont également stockées pour être collectées et associées à l'objet et à la ressource. Parfois, le service d'annuaire, l'utilisateur n'a pas à se souvenir de l'adresse physique d'une ressource réseau en fournissant le nom et en localisant les ressources.

Seaux

Dans le système de rapport d'erreurs Microsoft Windows (WER), les rapports d'incident sont organisés selon des «compartiments». Les buckets classent les problèmes par:

  • Nom de l'application,
  • Version de l'application,
  • Date de création de l'application,
  • Nom du module,
  • Version du module,
  • Date de construction du module,
  • Code d'exception du système d'exploitation / code d'erreur système,
  • et décalage de code de module.

Idéalement, chaque compartiment contient des rapports d'incidents causés par une et une seule cause première. Cependant, il existe des cas où ce mappage un à un idéal n'est pas le cas. Premièrement, l'heuristique qui regroupe les échecs peut entraîner l'attribution d'un seul échec à plusieurs compartiments; par exemple, chaque fois qu'une application avec un échec est recompilée, l'application aura une nouvelle date de construction de module, et les échecs qui en résultent seront alors mappés à plusieurs compartiments. Deuxièmement, étant donné que seules certaines informations sur l'état d'échec sont prises en compte dans l'algorithme de compartimentage, plusieurs bogues distincts peuvent être mappés sur un seul compartiment; par exemple, si une application appelle une seule fonction telle que strlen avec des chaînes corrompues de différentes manières par différents défauts de code sous-jacents, les échecs peuvent être mappés vers le même compartiment car ils semblent être des plantages dans la même fonction à partir de la même application, etc. se produit car le compartiment est généré sur le client du système d'exploitation Windows sans effectuer d'analyse de symbole sur le vidage de la mémoire: le module sélectionné par le client de rapport d'erreurs Windows est le module en haut de la pile. Les enquêtes sur de nombreux rapports aboutissent à un module défectueux qui est différent de la détermination d'origine du compartiment.

Logiciels tiers

Les fabricants de logiciels et de matériel peuvent accéder à leurs rapports d'erreur à l'aide du programme Microsoft Windows Dev Center Hardware and Desktop Dashboard (anciennement Winqual ). Afin de garantir que les données de rapport d'erreurs ne soient transmises qu'aux ingénieurs responsables du produit, Microsoft exige que les fournisseurs intéressés obtiennent un certificat numérique VeriSign Classe 3 ou DigiCert . Les certificats numériques fournis par des fournisseurs moins chers (tels que Thawte , Comodo , GlobalSign , GeoTrust , Cybertrust , Entrust , GoDaddy , QuoVadis, Trustwave , SecureTrust , Wells Fargo ) ne sont pas acceptés.

Les fabricants de logiciels et de matériel peuvent également boucler la boucle avec leurs clients en liant les signatures d'erreur aux réponses de rapport d'erreurs Windows. Cela permet de distribuer des solutions ainsi que de collecter des informations supplémentaires auprès des clients (comme la reproduction des étapes qu'ils ont suivies avant le crash ) et de leur fournir des liens d'assistance.

Impact sur les futurs logiciels

Microsoft a signalé que les données collectées à partir de Windows Error Reporting ont fait une énorme différence dans la façon dont les logiciels sont développés en interne. Par exemple, en 2002, Steve Ballmer a noté que les rapports d'erreurs permettaient à l'équipe Windows de corriger 29% de toutes les erreurs de Windows XP avec Windows XP SP1. Plus de la moitié de toutes les erreurs Microsoft Office XP ont été corrigées avec Office XP SP2. Le succès repose en partie sur la règle des 80/20 . Les données de rapport d'erreurs révèlent qu'un petit ensemble de bogues est responsable de la grande majorité des problèmes rencontrés par les utilisateurs. La correction de 20% des défauts de code peut éliminer 80% ou plus des problèmes rencontrés par les utilisateurs. Un article du New York Times a confirmé que les données de rapport d'erreurs avaient contribué à résoudre les problèmes rencontrés dans les versions bêta de Windows Vista et Microsoft Office 2007 .

Problèmes de confidentialité et utilisation par la NSA

Bien que Microsoft ait donné des garanties de confidentialité, il reconnaît que des informations personnellement identifiables peuvent être contenues dans la mémoire et les données d'application compilées dans les «minidumps» de 100 à 200 Ko que Windows Error Reporting compile et renvoie à Microsoft. Ils insistent sur le fait que si des données personnelles sont envoyées à Microsoft, elles ne seront pas utilisées pour identifier les utilisateurs, conformément à la politique de confidentialité de Microsoft . Mais pour signaler des problèmes à Microsoft, les utilisateurs doivent également faire confiance aux partenaires de Microsoft. Environ 450 partenaires ont eu accès à la base de données de rapports d'erreurs pour voir les enregistrements liés à leurs pilotes de périphériques et à leurs applications.

Les anciennes versions de WER envoient des données sans cryptage; seul WER de Windows 8 utilise le cryptage TLS. En mars 2014, Microsoft a publié une mise à jour (KB2929733) pour Windows Vista, 7 et Server 2008 qui crypte la première étape de WER.

En décembre 2013, un laboratoire indépendant a découvert que WER envoie automatiquement des informations à Microsoft lorsqu'un nouveau périphérique USB est connecté au PC.

Selon Der Spiegel , le journaliste du crash de Microsoft a été exploité par l' unité TAO de la NSA pour pirater les ordinateurs du Secrétariat mexicain de la sécurité publique . Selon la même source, les rapports de plantage de Microsoft sont automatiquement récoltés dans la base de données XKeyscore de la NSA , afin de faciliter de telles opérations.

Voir également

Les références