Windows Error Reporting Explained

Windows Error Reporting (WER) (codenamed Watson) is a crash reporting technology introduced by Microsoft with Windows XP[1] and included in later Windows versions and Windows Mobile 5.0 and 6.0. Not to be confused with the Dr. Watson debugging tool which left the memory dump on the user's local machine, Windows Error Reporting collects and offers to send post-error debug information (a memory dump) using the Internet to Microsoft when an application crashes or stops responding on a user's desktop. No data is sent without the user's consent.[2] When a crash dump (or other error signature information) reaches the Microsoft server, it is analyzed, and information about a solution is sent back to the user if available. Solutions are served using Windows Error Reporting Responses. Windows Error Reporting runs as a Windows service.[3] Kinshuman Kinshumann is the original architect of WER. WER was also included in the Association for Computing Machinery (ACM) hall of fame for its impact on the computing industry.[4] [5]

History

Windows XP

Microsoft first introduced Windows Error Reporting with Windows XP.

Windows Vista

Windows Error Reporting was improved significantly in Windows Vista, when public APIs were introduced for reporting failures other than application crashes and hangs.[6] Using the new APIs, as documented on MSDN, developers can create custom reports and customize the reporting user interface. Windows Error Reporting was also revamped with a focus on reliability and user experience. For example, WER can now report errors even from processes in bad states such as stack exhaustions, PEB/TEB corruptions, and heap corruptions, conditions which in releases prior to Windows Vista would have resulted in silent program termination with no error report. A new Control Panel applet, "Problem Reports and Solutions" was also introduced, keeping a record of system and application errors and issues, as well as presenting probable solutions to problems.

Windows 7

The Problem Reports and Solutions Control Panel applet was replaced by the Maintenance section of the Windows Action Center on Windows 7 and Server 2008 R2.

A new app, Problem Steps Recorder (PSR.exe), is available on all builds of Windows 7 and enables the collection of the actions performed by a user while encountering a crash so that testers and developers can reproduce the situation for analysis and debugging.[7]

System design

WER is a distributed system. Client-side software detects an error condition, generates an error report, labels the bucket, and reports the error to the WER service. The WERservice records the error occurrence and then, depending on information known about the particular error, might request additional data from the client, or direct the client to a solution. Programmers access the WER service to retrieve data for specific error reports and for statistics-based debugging.

Errors collected by WER clients are sent to the WER service. The WER service employs approximately 60 servers connected to a 65TB storage area network that stores the error report database and a 120TB storage area network that stores up to 6 months of raw CAB files. The service is provisioned to receive and process well over 100 million error reports per day, which is sufficient to survive correlated global events such as Internet worms.[8]

It can also provide the service where it considered the object by the directory server. Information is also stored to collect and associated with the object and resource. Sometimes the directory service the user do not have to remember the physical address of a network resources by providing name and locate the resources.

Buckets

In the Microsoft Windows Error Reporting (WER) system, crash reports are organized according to "buckets". Buckets classify issues by:[9]

Ideally, each bucket contains crash reports that are caused by one and only one root cause. However, there are instances where this ideal one-to-one mapping is not the case. First, the heuristics that group failures can result in a single failure's being attributed to multiple buckets; for instance, each time an application with a failure is recompiled, the application will have a new Module Build Date, and resulting failures will then map to multiple buckets. Second, because only certain information about the failure state is factored into the bucketing algorithm, multiple distinct bugs can be mapped to a single bucket; for instance, if an application calls a single function like strlen with strings corrupted in different ways by different underlying code defects, the failures could map to the same bucket because they appear to be crashes in the same function from the same application, etc. This occurs because the bucket is generated on the Windows OS client without performing any symbol analysis on the memory dump: The module that is picked by the Windows Error Reporting client is the module at the top of the stack. Investigations of many reports result in a faulting module that is different from the original bucket determination.[14]

Third-party software

Software & hardware manufacturers may access their error reports using Microsoft's Windows Dev Center Hardware and Desktop Dashboard (formerly Winqual) program.[15] In order to ensure that error reporting data only goes to the engineers responsible for the product, Microsoft requires that interested vendors obtain a VeriSign Class 3 Digital ID or DigiCert certificate.[16] Digital certificates provided by cheaper providers (such as Thawte, Comodo, GlobalSign, GeoTrust, Cybertrust, Entrust, GoDaddy, QuoVadis, Trustwave, SecureTrust, Wells Fargo) are not accepted.[17] [18] [19] [20] [21]

Software and hardware manufacturers can also close the loop with their customers by linking error signatures to Windows Error Reporting Responses. This allows distributing solutions as well as collecting extra information from customers (such as reproducing the steps they took before the crash) and providing them with support links.

Impact on future software

Microsoft has reported that data collected from Windows Error Reporting has made a huge difference in the way software is developed internally. For instance, in 2002, Steve Ballmer noted that error reports enabled the Windows team to fix 29% of all Windows XP errors with Windows XP SP1. Over half of all Microsoft Office XP errors were fixed with Office XP SP2.[22] Success is based in part on the 80/20 rule. Error reporting data reveals that there is a small set of bugs that is responsible for the vast majority of the problems users see. Fixing 20% of code defects can eliminate 80% or more of the problems users encounter. An article in the New York Times confirmed that error reporting data had been instrumental in fixing problems seen in the beta releases of Windows Vista and Microsoft Office 2007.[23]

Privacy concerns and use by the NSA

Although Microsoft has made privacy assurances, they acknowledge that personally identifiable information could be contained in the memory and application data compiled in the 100-200 KB "minidumps" that Windows Error Reporting compiles and sends back to Microsoft. They insist that in case personal data is sent to Microsoft, it won't be used to identify users, according to Microsoft's privacy policy.[24] [25] But in reporting issues to Microsoft, users need to trust Microsoft's partners as well. About 450 partners have been granted access to the error reporting database to see records related to their device drivers and apps.[26]

Older versions of WER send data without encryption; only WER from Windows 8 uses TLS encryption. In March 2014, Microsoft released an update (KB2929733) for Windows Vista, 7 and Server 2008 that encrypts the first stage of WER.[27]

In December 2013, an independent lab found that WER automatically sends information to Microsoft when a new USB device is plugged to the PC.[28]

According to Der Spiegel, the Microsoft crash reporter has been exploited by NSA's TAO unit to hack into the computers of Mexico's Secretariat of Public Security. According to the same source, Microsoft crash reports are automatically harvested in NSA's XKeyscore database, in order to facilitate such operations.[29]

See also

Notes and References

  1. http://blogs.msdn.com/b/wer/archive/2008/12/26/what-are-wer-services.aspx What are WER Services?
  2. http://blogs.msdn.com/b/wer/archive/2009/03/11/an-overview-of-wer-consent-settings-and-corresponding-ui-behavior.aspx An overview of WER consent settings and corresponding UI behavior
  3. https://xxsolution.com/ 0x0 0x0 Solution
  4. http://m.cacm.acm.org/magazines/2011/7/109883-debugging-in-the-very-large/abstract Debugging in the (Very) Large: Ten Years of Implementation and Experience
  5. https://www.sigops.org/2019/hof-award-2019/ WER CACM Award Kinshuman
  6. http://msdn2.microsoft.com/en-us/library/bb513635.aspx WER APIs
  7. http://msdn.microsoft.com/en-us/library/windows/desktop/dd371782(v=vs.85).aspx Windows Error Reporting Problem Steps Recorder
  8. http://www.sigops.org/sosp/sosp09/papers/glerum-sosp09.pdf Debugging in the (Very) Large: Ten Years of Implementation and Experience
  9. http://msdn.microsoft.com/en-us/library/windows/hardware/dn641147.aspx How WER collects and classifies error reports
  10. Web site: NTSTATUS values . Microsoft . 2015-06-08.
  11. Web site: Bug Check Code Reference . Microsoft . 2015-06-08.
  12. Web site: System Error Codes (Windows) . Microsoft . 2015-06-08.
  13. Web site: HRESULT Values . Microsoft . 2015-06-08.
  14. http://blogs.msdn.com/b/wer/archive/2011/08/08/the-only-thing-constant-is-change-part-1.aspx MSDN Blogs > WER Services > The only thing constant is change – Part 1
  15. Web site: SysDev (was Winqual) website . 2012-11-07 . 2018-08-03 . https://web.archive.org/web/20180803125334/http://sysdev.microsoft.com/ . dead .
  16. http://msdn.microsoft.com/en-us/library/windows/hardware/br230783.aspx Update a code signing certificate
  17. http://blogs.technet.com/b/empower/archive/2007/05/15/introducing-windows-error-reporting.aspx Introducing Windows Error Reporting
  18. http://idvlpsw.wordpress.com/2008/03/08/winqual-registration-head-aches/ WinQual Registration Head Aches
  19. http://social.msdn.microsoft.com/forums/en-US/windowscompatibility/thread/37cc820e-d715-44b2-a7bd-a7fe47f6f13e/ Microsoft Support Forum: WER with Thawte authenticode signed app
  20. https://archive.today/20120707011358/http://blogs.msdn.com/oldnewthing/archive/2005/08/10/449865.aspx The Old New Thing: How can a company get access to Windows Error Reporting data?
  21. http://successfulsoftware.net/2008/02/27/the-great-digital-certificate-ripoff/ The great digital certificate ripoff?
  22. http://www.microsoft.com/mscorp/execmail/2002/10-02customers.mspx Steve Ballmer's letter: Connecting to customers
  23. News: A Challenge for Exterminators (Published 2006) . The New York Times . 9 October 2006 . Markoff . John .
  24. Web site: Microsoft Privacy Statement for Error Reporting . 2007-10-07 . 2012-10-10 . https://web.archive.org/web/20121010075211/http://oca.microsoft.com/en/dcp20.asp . dead .
  25. http://support.microsoft.com/kb/283768/ Description of the end user privacy policy in application error reporting when you are using Office
  26. Web site: Microsoft Error Reporting Drives Bug Fixing Efforts . Bekker . Scott . 3 October 2002 . Redmond Partner Channel . 1105 Redmond Media Group.
  27. Web site: The first stage of the WER protocol is not SSL encrypted in Windows. Microsoft. 10 January 2015. 11 March 2014.
  28. Web site: Are Your Windows Error Reports Leaking Data? . 29 Dec 2013 . Websense Security Labs. 4 January 2014.
  29. http://www.spiegel.de/international/world/the-nsa-uses-powerful-toolbox-in-effort-to-spy-on-global-networks-a-940969-2.html Inside TAO: Documents Reveal Top NSA Hacking Unit