Entry tags:
Windows 10: как отключить слив персональных данных (инструкция от BSI)
В продолжение темы грамотного собаководства.
Немецкий компьютерный журнал 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
Немецкий компьютерный журнал 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
no subject
no subject
этот принудительный мониторинг, удручает.
и я так пониаю, для хоум эдишин, без вариантов..
no subject
Сразу после открытия этого явления Эрнестом Резерфордом и Марией Склодовской-Кюри поднялся большой хайп, и почему-то считалось, что радиоактивность и всё, что с ней связано, очень полезны для здоровья. "Вы что, будете отрицать прогресс?" — говорили сейлз-менеджеры скептикам того времени.
Радиоактивная пудра, радиоактивная зубная паста, радиоактивный шоколад, радиоактивный сигареты, радиоактивные презервативы, которые светятся в темноте, и даже радиоактивные трусы:
https://idlewords.com/talks/haunted_by_data.htm
"Современная шпионская экономика больших данных сейчас находится на стадии радиоактивных трусов" — резюмировал автор.
no subject
и небезосновательная, я думаю.
только радиоактивные трусы можно было не покупать, с айти компаниями все же чуть по другому, современный мир таков, что человек как бы вынужден пользоваться "усовершенствованными" программными пакетами, тк старые или не найти, или они не поддерживаются, или требуются дополнительные навыки-опыт, чтобы выйти из положения, итд.
те, ситуация, когда на рынке почти все трусы - "радиоактивные", а не хочешь- можешь не носить трусов, или соткать себе ткань и пошить сам.
no subject
То же самое касается Android без Google Play Services — не всякий аппарат подойдёт, у него должны быть все драйверы в open source и разблокированный загрузчик, приходится подбирать железо под операционную систему (например LineageOS), неделю или около того возиться с установкой, и потом жить без магазина приложений, устанавливать приложения из apk-файлов через adb, пользоваться OsmAnd вместо Google Maps и т.д.
no subject