Dzisiaj krótki wpis, który nie do końca pasuje do tematyki prezentowanej na tej stronie.
Jeden z ostatnich projektów polegał na identyfikacji
wszystkich danych telemetrycznych, które są przesyłane do serwerów firmy
Microsoft z systemu operacyjnego Windows 10.
Okazało się, że nie wszystkie informacje są wystarczająco szczegółowo
opisane przez producenta. Nie będziemy tutaj omawiali wszystkich wyników. Zajmiemy
się jedynie jednym z miejsc w którym są zapisywane a następnie przesyłane dane
telemetryczne. Jednocześnie zachęcamy do zapoznania się z dokumentem „Manage
connections from Windows operating system components to Microsoft Services” [1],
który opisuje jakie typy danych są rejestrowane i jak skonfigurować system aby
włączać/wyłączać ich rejestrowanie.
Opisane poniżej dane pochodzą z systemu na którym włączone są
wybrane funkcje związane z telemetrią. Można wyłączyć ich rejestrowanie za
pomocą opcji z GUI, Group Policy czy bezpośrednio z rejestrów.
Według definicji telemetria to pomiar i przesyłanie wartości
pomiarowych na odległość. Przykłady użycia zbieranych danych przez
Microsoft opisane są tutaj [2]. Usługa która realizuje funkcje telemetryczne w
Windows 10 to DiagTrack (pełna nazwa to Connected User Experiences and Telemetry).
Usługa ta uruchamiana jest za pomocą komendy
svchost.exe –k utcsvc, dlatego nazywana jest również Universal Telemetry Client
(UTC).
Po identyfikacji procesu odpowiedzialnego za tą usługę można
zauważyć (poniższy zrzut z ekranu) że proces ten co 15 minut wysyła dane a
następnie zapisuje coś do plików events*.rbs (jest to wynik działania wewnętrznej
funkcji Flush).
Biblioteką która odpowiada za rejestrację zdarzeń telemetrycznych
jest diagtrack.dll. My mieliśmy okazję analizować dwie, wydaje się, najbardziej
popularne w organizacjach wersje 10.0.10240.16724 (Windows 10 Enterprise LTSB) oraz
10.0.10586.162 (Windows 10 Enterprise). W obu przypadkach są to wersje 64
bitowe.
Funkcja która zapisuje zdarzenia do bufora, a następnie do
wspomnianych powyżej plików to Microsoft::Diagnostics::CAsimovEventBuffer::AddEvent().
Plik events* są zaszyfrowane ale rejestrując argumenty
funkcji AddEvent jesteśmy w stanie podejrzeć zdarzenia.
Poniżej komenda windbg, która będzie wyświetlała
poszczególne zdarzenia (dla Windows 10 Enterprise LTBS). Dla wersji Enterprise
warto monitorować wywoływaną dwa razy funkcję append().
bp diagtrack!Microsoft::Diagnostics::CAsimovEventBuffer::AddEvent
".printf \"%ma \n\",poi(rdx); gc;"
Poniżej kilka fragmentów danych które zostały zarejestrowane
przy włączonej funkcji Zezwalaj na telemetrię (3 – pełne).
{"ver":"2.1","name":"Win32kTraceLogging.AppInteractivity","time":"2016-07-11T20:06:33.2945831Z","epoch":"1627466","seqNum":117,"flags":257,"os":"Windows","osVer":"10.0.10240.16942.amd64fre.*","appId":"W:*!dwm.exe","appVer":"2015/07/10:03:16:23!ed1f!dwm.exe","ext":{"device":{"localId":"s:*","deviceClass":"Windows.Desktop"},"user":{"localId":"w:*"},"utc":{"cat":*,"flags":0}},"data":{"FocusState":1,"AppId":"W:*!iexplore.exe","AppVersion":"2015/11/25:04:09:48!cf1f8!iexplore.exe","AppSessionId":"*","FocusDurationMS":100032,"WindowWidth":800,"WindowHeight":600,"MonitorWidth":1024,"MonitorHeight":768,"MonitorFlags":0,"WindowFlags":16,"CommandLineHash":1218101422,"EventSequence":99}}
…
{"ver":"2.1","name":"Microsoft.Windows.Shell.CortanaSearch.CortanaApp_UploadCommonSignals",…","InputSec":6,"KeyboardInputSec":0,"MouseInputSec":6,"TouchInputSec":0,"PenInputSec":0,"HidInputSec":0,"WindowWidth":1101,"WindowHeight":673,"MonitorWidth":1920,"MonitorHeight":1080,"MonitorFlags":24,"WindowFlags":48,"InteractiveTimeoutPeriodMS":60000…
…
deviceMake":"VMware,
Inc.","deviceModel":"VMware Virtual
Platform","isDeviceTouch":0,"deviceSku":"","clientMarket":"pl-PL","networkType":"ethernet"
Dodatkowo po włączeniu funkcji dostępnej w ustawieniach
prywatności: Mowa, pismo odręczne i wypisywanie tekstu (Poznaj mnie lepiej)
możemy zidentyfikować adresy URL, nawigację po załadownej stronie Internetowej
czy czas spędzony na każdej stronie.
{"ver":"2.1","name":"Microsoft.Windows.App.Browser.OneBoxAddressbarChanged","time":"2016-06-07T10:53:57.5403989Z","epoch":"2101664","seqNum":826,"flags":257,"os":"Windows","osVer":"10.0.10586.318.amd64fre.*","appId":"U:Microsoft.MicrosoftEdge_25.10586.0.0…","oneboxSettingsEnabled":1,"oneboxAddressBarInputString":"wikipedia."…
{"ver":"2.1","name":"Microsoft.Windows.App.Browser.OneBoxAutocompleted","time":"2016-06-07T10:53:57.5930153Z"…","topResult":"http://www.prevenity.com/","…
{"ver":"2.1","name":"Microsoft.Windows.App.Browser.HJ_NavigateElementClicked","…,"domElementPath":"A|0||addthis_button_facebook_like;DIV|1||addthis_toolbox;DIV|0||facebook_like_contener;DIV|2||facebook_like;DIV|1||box3_faceMain","domElementContent":"","href":"","hrefRejectCode":107,"isPrerenderedTab":0,...
Powyżej pokazaliśmy tylko niewielką próbkę zarejestrowanych
danych. Przypominamy, że dane te są rejestrowane przy włączonych funkcjach
telemetrycznych opisanych powyżej.
Źródła:
Brak komentarzy:
Prześlij komentarz