Raportowanie błędów systemu Windows - Windows Error Reporting

Raportowanie błędów systemu Windows zawierające szczegółowe informacje o problemie z Eksploratorem Windows

Raportowanie błędów systemu Windows ( WER ) (nazwa kodowa Watson) to technologia raportowania awarii wprowadzona przez firmę Microsoft wraz z systemem Windows XP i zawarta w późniejszych wersjach systemu Windows oraz Windows Mobile 5.0 i 6.0. Nie należy mylić z narzędziem do debugowania Dr. Watson , które pozostawiło zrzut pamięci na komputerze lokalnym użytkownika, raportowanie błędów systemu Windows gromadzi i oferuje wysyłanie informacji debugowania po wystąpieniu błędu ( zrzut pamięci ) za pomocą Internetu do firmy Microsoft, gdy aplikacja ulegnie awarii lub przestaje odpowiadać na pulpicie użytkownika. Żadne dane nie są przesyłane bez zgody użytkownika. Gdy zrzut awaryjny (lub inne informacje o sygnaturze błędu) dociera do serwera Microsoft, jest on analizowany, a informacje o rozwiązaniu są odsyłane z powrotem do użytkownika, jeśli są dostępne. Rozwiązania są obsługiwane za pomocą odpowiedzi raportowania błędów systemu Windows. Raportowanie błędów systemu Windows działa jako usługa systemu Windows .

Historia

Windows XP

Firma Microsoft po raz pierwszy wprowadziła raportowanie błędów systemu Windows w systemie Windows XP .

Windows Vista

Raportowanie błędów systemu Windows zostało znacznie ulepszone w systemie Windows Vista , kiedy wprowadzono publiczne interfejsy API do raportowania błędów innych niż awarie i zawieszanie się aplikacji. Korzystając z nowych interfejsów API, zgodnie z dokumentacją w witrynie MSDN, programiści mogą tworzyć niestandardowe raporty i dostosowywać interfejs użytkownika raportowania. Zmodernizowano także raportowanie błędów systemu Windows, kładąc nacisk na niezawodność i wygodę użytkownika. Na przykład WER może teraz zgłaszać błędy nawet z procesów w złych stanach, takich jak wyczerpanie stosu , uszkodzenia PEB / TEB i uszkodzenia sterty , warunki, które w wersjach wcześniejszych niż Windows Vista spowodowałyby ciche zakończenie programu bez raportu o błędzie. Wprowadzono również nowy aplet Panelu sterowania „Raporty i rozwiązania problemów”, który prowadzi rejestr błędów i problemów systemowych i aplikacyjnych, a także przedstawia prawdopodobne rozwiązania problemów.

System Windows 7

Aplet Raporty o problemach i rozwiązania Panelu sterowania został zastąpiony przez sekcję Konserwacja Centrum akcji systemu Windows w systemie Windows 7 i Server 2008 R2 .

Nowa aplikacja, Problem Steps Recorder (PSR.exe), jest dostępna we wszystkich wersjach systemu Windows 7 i umożliwia gromadzenie działań wykonywanych przez użytkownika podczas napotkania awarii, dzięki czemu testerzy i programiści mogą odtworzyć sytuację w celu analizy i debugowania.

Projekt systemu

WER jest systemem rozproszonym . Oprogramowanie po stronie klienta wykrywa stan błędu, generuje raport o błędzie, etykietuje zasobnik i zgłasza błąd do usługi WER. Usługa WER rejestruje wystąpienie błędu, a następnie, w zależności od informacji znanych o konkretnym błędzie, może zażądać dodatkowych danych od klienta lub skierować klienta do rozwiązania. Programiści uzyskują dostęp do usługi WER w celu pobrania danych dla określonych raportów o błędach i debugowania opartego na statystykach.

Błędy zebrane przez klientów WER są przesyłane do usługi WER. Usługa WER wykorzystuje około 60 serwerów podłączonych do sieci pamięci masowej o pojemności 65 TB, w której jest przechowywana baza danych raportów o błędach, oraz sieci pamięci masowej o pojemności 120 TB, która przechowuje do 6 miesięcy nieprzetworzonych plików CAB. Usługa zapewnia odbieranie i przetwarzanie ponad 100 milionów raportów o błędach dziennie, co jest wystarczające, aby przetrwać skorelowane zdarzenia globalne, takie jak robaki internetowe .

Może również świadczyć usługę, w przypadku której rozpatruje obiekt przez serwer katalogów. Informacje są również przechowywane w celu gromadzenia i kojarzenia z obiektem i zasobem. Czasami usługa katalogowa użytkownik nie musi pamiętać fizycznego adresu zasobów sieciowych, podając nazwę i lokalizując zasoby.

Wiadra

W systemie Microsoft Windows Error Reporting (WER) raporty o awariach są zorganizowane według „zasobników”. Zasobniki klasyfikują problemy według:

  • Nazwa aplikacji,
  • Wersja aplikacji,
  • Data kompilacji aplikacji,
  • Nazwa modułu,
  • Wersja modułu,
  • Data budowy modułu,
  • Kod wyjątku systemu operacyjnego / kod błędu systemu,
  • i przesunięcie kodu modułu.

W idealnym przypadku każdy zasobnik zawiera raporty o awariach, które są spowodowane przez jedną i tylko jedną główną przyczynę. Istnieją jednak przypadki, w których to idealne odwzorowanie jeden do jednego nie ma miejsca. Po pierwsze, heurystyka, według której niepowodzenia grupowe mogą skutkować przypisaniem pojedynczego niepowodzenia wielu zasobnikom; na przykład za każdym razem, gdy aplikacja z awarią zostanie ponownie skompilowana, aplikacja będzie miała nową datę kompilacji modułu, a wynikające z tego awarie będą następnie mapowane na wiele segmentów. Po drugie, ponieważ tylko niektóre informacje o stanie awarii są uwzględniane w algorytmie zasobnika, wiele różnych błędów można odwzorować na jeden zasobnik; na przykład, jeśli aplikacja wywołuje pojedynczą funkcję, taką jak strlen, z ciągami znaków uszkodzonymi na różne sposoby przez różne podstawowe defekty kodu, awarie mogą być mapowane do tego samego zasobnika, ponieważ wydają się być awariami tej samej funkcji z tej samej aplikacji itp. występuje, ponieważ zasobnik jest generowany na kliencie systemu operacyjnego Windows bez przeprowadzania analizy symboli na zrzucie pamięci: Moduł, który jest wybierany przez klienta raportowania błędów systemu Windows, znajduje się na szczycie stosu. Badania wielu raportów skutkują błędnym modułem, który różni się od pierwotnego określenia segmentu.

Oprogramowanie innych firm

Producenci oprogramowania i sprzętu mogą uzyskać dostęp do swoich raportów o błędach za pomocą programu Microsoft Windows Dev Center Hardware and Desktop Dashboard (dawniej Winqual ). Aby mieć pewność, że dane raportowania błędów trafiają tylko do inżynierów odpowiedzialnych za produkt, firma Microsoft wymaga, aby zainteresowani dostawcy uzyskali identyfikator cyfrowy VeriSign Class 3 lub certyfikat DigiCert . Certyfikaty cyfrowe dostarczone przez tańszych dostawców (takich jak Thawte , Comodo , GlobalSign , GeoTrust , Cybertrust , Entrust , GoDaddy , QuoVadis, Trustwave , SecureTrust , Wells Fargo ) nie są akceptowane.

Producenci oprogramowania i sprzętu mogą również zamknąć tę pętlę z klientami, łącząc sygnatury błędów z odpowiedziami funkcji raportowania błędów systemu Windows. Umożliwia to dystrybucję rozwiązań, a także zbieranie dodatkowych informacji od klientów (takich jak odtworzenie kroków, które podjęli przed awarią ) i udostępnianie im linków wsparcia.

Wpływ na przyszłe oprogramowanie

Firma Microsoft poinformowała, że ​​dane zebrane z usługi Raportowanie błędów systemu Windows spowodowały ogromną różnicę w sposobie wewnętrznego opracowywania oprogramowania. Na przykład w 2002 roku Steve Ballmer zauważył, że raporty o błędach umożliwiły zespołowi Windows naprawienie 29% wszystkich błędów systemu Windows XP w systemie Windows XP SP1. Ponad połowa wszystkich błędów pakietu Microsoft Office XP została naprawiona za pomocą dodatku SP2 dla pakietu Office XP. Sukces opiera się częściowo na zasadzie 80/20 . Dane raportowania błędów pokazują, że istnieje niewielki zestaw błędów, który jest odpowiedzialny za zdecydowaną większość problemów, które widzą użytkownicy. Naprawienie 20% błędów kodu może wyeliminować 80% lub więcej problemów napotykanych przez użytkowników. Artykuł w New York Times potwierdził, że dane raportowania błędów odegrały kluczową rolę w naprawieniu problemów występujących w wersjach beta systemu Windows Vista i Microsoft Office 2007 .

Kwestie prywatności i wykorzystanie przez NSA

Chociaż firma Microsoft zapewniła prywatność, przyznaje, że dane osobowe mogą być zawarte w pamięci i danych aplikacji skompilowanych w 100-200 KB „minizrzutach”, które raport błędów systemu Windows kompiluje i wysyła z powrotem do firmy Microsoft. Twierdzą, że w przypadku przesłania danych osobowych do firmy Microsoft nie zostaną one użyte do identyfikacji użytkowników, zgodnie z polityką prywatności firmy Microsoft . Jednak zgłaszając problemy firmie Microsoft, użytkownicy muszą również ufać partnerom firmy Microsoft. Około 450 partnerów otrzymało dostęp do bazy danych raportowania błędów w celu przeglądania rekordów związanych ze sterownikami urządzeń i aplikacjami.

Starsze wersje WER wysyłają dane bez szyfrowania; tylko WER z Windows 8 używa szyfrowania TLS. W marcu 2014 r. Firma Microsoft wydała aktualizację (KB2929733) dla systemów Windows Vista, 7 i Server 2008, która szyfruje pierwszy etap WER.

W grudniu 2013 r. Niezależne laboratorium odkryło, że WER automatycznie wysyła informacje do firmy Microsoft po podłączeniu nowego urządzenia USB do komputera.

Według Der Spiegel , raport z awarii Microsoftu został wykorzystany przez jednostkę TAO NSA do włamania się do komputerów Sekretariatu Bezpieczeństwa Publicznego w Meksyku . Według tego samego źródła raporty o awariach firmy Microsoft są automatycznie gromadzone w bazie danych XKeyscore NSA w celu ułatwienia takich operacji.

Zobacz też

Bibliografia