waqur: (Default)
[personal profile] waqur
В продолжение темы грамотного собаководства.

Немецкий компьютерный журнал PC Welt недавно опубликовал большую статью на тему телеметрии в Windows 10 и методов её отключения (выпуск #5/2019, стр 38-42).

Журнальная статья ссылается на исследование, которое провела немецкая спецслужба BSI (Федеральное управление по информационной безопасности) по запросу парламентской группы "Die Linke" к федеральному правительству на тему информационной безопасности десятой винды. Исследование называется SiSyPHuS* Win10 и на него уже успели потратить 1.37 млн евро.

Те, кто силён в немецком, смогут самостоятельно осилить оригинал и разобраться (по приведённой ссылке особенно интересна вторая PDFка), а я здесь кратко-конспективно изложу суть этой публикации.


Итак, что удалось выяснить:

1. Отправка данных на сервера Microsoft'а реализована в службе DiagTrack (%SystemRoot%\System32\diagtrack.dll), которая исполняется в контейнере svchost.exe. При этом для обеспечения защиты от перехвата данных на уровне провайдера применяется TLS, с закреплением сертификатов (pinning) на клиентской стороне (в crypt32.dll**).

2. Хотя сбор данных пронизывает практически всю винду, внутренняя коммуникация между сборщиками событий и службой для их обработки и отправки в Microsoft происходит через механизм ETW-событий. Часть событий, которые происходят на раннем этапе загрузки, пишется в файл %ProgramData%\Microsoft\Diagnosis\ETLLogs\ShutdownLogger\AutoLogger-Diagtrack-Listener.etl, далее стартует служба DiagTrack, которая одновременно и обрабатывает этот файл (ETW-сессия Autologger-Diagtrack-Listener-Session), и начинает обработку ETW-событий в реальном времени (ETW-сессия Diagtrack-Listener-Session).

3. Количество ETW-провайдеров (сборщиков событий) на этапе загрузки зависит от уровня телеметрии и составляет 9 для уровня Security, 93-112 для уровней Basic-Full. После того, как загрузка закончилась, сборщиков событий будет 4 на уровне Security, 410-422 на уровнях Basic-Full.

4. Уровень телеметрии, заданный в настройках Windows, влияет на содержимое файла %ProgramData%\Microsoft\Diagnosis\DownloadedSettings\utc.app.json (который задаёт действующие фильтры для потока ETW-событий). Впрочем, вручную опустошать этот файл бесполезно: он защищён, часто обновляется вместе с Windows Update, его содержимое зависит от редакции Windows, региона, номера сборки Windows и т.д.

5. Для начала немцы советуют задать минимальный уровень телеметрии, равный Security. Конечно, это можно сделать только в редакциях Windows 10 LTSC/LTSB, Enterprise, Education, Mobile Enterprise или Server. Пользователи более популярных Home и Pro, как говорится, в пролёте.
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection\AllowTelemetry = 0 (REG_DWORD).

6. Затем предлагается отключить запуск службы DiagTrack:
HKLM\SYSTEM\CurrentControlSet\Services\DiagTrack\Start = 4 (REG_DWORD)

7. Затем предлагается запретить запуск ETW-сессии AutoLogger-DiagTrack-Listen (загрузочные события):
HKLM\SYSTEM\CurentControlSet\Control\WMI\Autologger\AutoLogger-DiagTrack-Listener\Start = 0 (REG_DWORD)

8. Нелишним будет также уконтрапупить службу Windows Update, поскольку она сама тоже умеет слать телеметрию, даже на уровне Security:
HKLM\SYSTEM\CurrentControlSet\Services\wuauserv\Start = 4 (REG_DWORD)
Заодно и страховочка будет от такого сценария, что прилетит апдейт и вернёт все ваши изменения в состояние по умолчанию. Хотя этих слов в явной форме нет в отчёте BSI, взамен там можно прочесть такое: "путём использования служб WindowsServerUpdate и SystemCenterConfigurationManager можно получать обновления не из облака, а с сервера в локальной сети" — шутят немцы.

9. А ещё что-то там на сервера Microsoft'а любит сливать Windows Defender (встроенный антивирус), так что нелишним будет отучить его от этой наглости: Update and Security → Windows Defender → Cloud-based protection = Off

10. И напоследок, предлагается настроить встроенный в винду firewall, чтобы тот не пускал службу DiagTrack в интернет. Засада в том, что diagtrack.dll стартует под svchost.exe, а блокировать одну DLLку на файерволле нельзя: или блокируем все процессы svchost.exe (что сделает винду неюзабельной), или ничего не блокируем (что влечёт риск утечки данных). Немцы предлагают выйти из ситуации так: сделать жёсткую связь (fsutil hardlink create) на svchost.exe под другим именем (например utc_myhost.exe), затем изменить правила запуска службы DiagTrack, чтобы в автозагрузке вместо команды "%SystemRoot%\System32\svchost.exe -k utcsvc -p" выполнялась команда "%SystemRoot%\System32\utc_myhost.exe -k utcsvc -p". Ну а в конце наглухо зафайерволлить засранца (utc_myhost.exe) через PowerShell:
New-NetFirewallRule -DisplayName "BlockDiagTrack" -Name "BlockDiagTrack" -Direction Outbound -Program "%SystemRoot%\System32\utc_myhost.exe" -Action block

11. Оставшаяся часть отчёта фокусируется на блокировке на уровне DNS-резолвера доменных имён, используемых для слива телеметрии в Microsoft. Однако с учётом того, что их много, они зависят от вашей страны, и постоянно меняются, я не нахожу эти усилия эффективными. Разве что в качестве второго, вспомогательного, уровня защиты (и то, при условии, что ваш роутер такое умеет).

12. Остальное, как говорится, додумайте сами. Я бы и виндовому недоантивирусу выход в интернет закрыл. Насколько я понимаю, необходимость пункта 10 при наличии пунктов 6 и 8 обусловлена тем, что завтра установщик какого-нибудь SQL Server или Skype может невзначай поменять обратно Start=4 на 2 или 3 для служб DiagTrack и wuauserv. Журнал PC Welt также пишет о том, что надо использовать локальный вход в систему вместо Microsoft Account, отключить Cortana, найти замену Skype и OneDrive и т.д.

Нужны ли после этого всего файлы diagtrack.dll и wuaueng.dll на диске — решать вам. Когда-то давно, лет 10-15 назад я подрабатывал тем, что чистил от вирусов компы под управлением Windows XP, и поскольку часто было недостаточно просто удалить файл с малварью (условно назовём его malware.dll), загрузившись с какого-нибудь линуксового Live CD, т.к. вредонос восстанавливался при следующей загрузке, я применял разные милые трюки типа "создать папку с именем malware.dll и в ней файл с именем NUL". По техническим причинам, выходящим за рамки этого повествования, после подобных манипуляций создать файл malware.dll из Windows уже не получится. Однако со времён Windows XP много воды утекло, в разработке программного обеспечения был достигнут значительный прогресс, поэтому теперь для максимального удобства пользователей все вредоносы сразу встроены прямо в винду. А вот будут ли старые милые трюки по-прежнему эффективными против новых вредоносов, и не закончится ли затея BSoD'ом при следующей загрузке, я предлагаю читателям выяснить самостоятельно. :)

Лично мне проще оставаться на Windows 7.




* Название проекта, насколько я понимаю, содержит элемент самоиронии: немцы намекают на тщетность всех подобных усилий, с учётом того, что Microsoft в любой момент может выпустить принудительное обновление, которое изменит правила игры

** Это для защиты от баловства с SSL trusted root. Без certificate pinning'а, когда в какой-нибудь рашке или иране местная гэбня протолкнёт новый закон насчёт принудительной инсталляции своих сертификатов в доверенный корень на устройства конечных пользователей, эта гэбня сможет слушать всю телеметрию, сможет натолкать юзерам левых "апдейтов" собственной разработки, сможет запрашивать Word'овские и Excel'евские файлы с диска к себе в облако "для поиска вирусов" и т.д. Прямо как NSA. Однако, как известно, что позволено Юпитеру — то не позволено быку. Поэтому имеем certificate pinning. Впрочем, этот самый certificate pinning — он же и ахиллесова пята всей схемы: видите ли, в протоколе TLS 1.0-1.2 сертификаты передаются открытым текстом. Так что можно сделать прозрачный прокси, который прослушивает весь трафик и рубит на стадии инициации те TLS-сессии, где мимо проплывает "хорошо известный" сертификат. Список таковых для максимального удобства разработчиков подобного прокси Microsoft собрала в одном файле: crypt32.dll

Date: 2019-06-10 05:50 pm (UTC)
chuka_lis: (Default)
From: [personal profile] chuka_lis
потому выходит что не каждому " по плечу", так что ситуация, фактически, где выбор отсутствует.

March 2024

S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930
31      

На этой странице

Автор стиля

Развернуть

No cut tags
Page generated 2025-06-24 03:54 pm
Powered by Dreamwidth Studios