Сразу скажу, что задуманное не дошло до установки десятки. Вопросы возникли уже в восьмерке.
Как же могут отправляться данные из windows?
На ум сразу же приходит планировщик заданий, в котором можно (внезапно) запланировать любое действие по событию или по времени. Второй вариант — некая стандартная служба, которая помимо выполнения штатных действий, умеет выполнять еще и нештатные. Закладка, попросту говоря. Но моя квалификация, увы, не позволяет с уверенностью выявить наличие подобных служб.
Поэтому выбор сузился до проверки планировщика. Думаю, если и отправляется оттуда что-то, то это что-то там и
Снимаю список заданий в powershell'е (Get-ScheduledTask) и тут же глаз цепляется за вот этот блок:
\Microsoft\Windows\Customer Experience Impr… BthSQM Ready
\Microsoft\Windows\Customer Experience Impr… Consolidator Ready
\Microsoft\Windows\Customer Experience Impr… KernelCeipTask Ready
\Microsoft\Windows\Customer Experience Impr… UsbCeip Ready
Как так? Я же помню, что точно отключал CEIP. Проверяю — «C:\windows\system32\rundll32.exe» werconcpl.dll,ShowCEIPDialog (если честно, то на самом деле я не настолько извращенец и просто делаю поиск по слову «CEIP» в Пуске/Старте):
Всё нормально, но отправка тем не менее включена.
Открываю taskschd.msc и смотрю журналы этих заданий (в скобках описания, взятые из самих задач):
- BthSQM (Задача программы улучшения качества Bluetooth собирает статистику по Bluetooth, а также сведения о вашем компьютере, и отправляет их в корпорацию Майкрософт. Полученные сведения используются для повышения надежности, стабильности и общей функциональности Bluetooth в Windows. При отсутствии согласия пользователя на участие в программе улучшения программного обеспечения Windows эта задача не выполняет никаких действий.) — начала работать с 17/08/2015*
- Consolidator(Если пользователь изъявил желание участвовать в программе по улучшению качества программного обеспечения Windows, эта задача будет собирать и отправлять сведения о работе программного обеспечения в Майкрософт) — с 12/08/2015
- KernelCeipTask (При выполнении задачи программы улучшения качества ПО, выполняющейся в режиме ядра (Kernel CEIP), осуществляется сбор дополнительных данных о системе, которые затем передаются в корпорацию Майкрософт. Если пользователь не дал своего согласия на участие в данной программе, то эта задача не выполняет никаких действий.) — с 12/08/2015
- UsbCeip (При выполнении задачи программы улучшения качества ПО шины USB (USB CEIP) осуществляется сбор статистических данных об использовании универсальной последовательной шины USB и сведений о компьютере, которые направляются инженерной группе Майкрософт по вопросам подключения устройств в Windows. Полученные сведения используются для повышения надежности, стабильности и общей производительности шины USB в Windows. При отсутствии согласия пользователя на участие в программе улучшения программного обеспечения Windows задача не выполняет никаких действий.) — с 15/08/2015
*важное примечание — вчера в журнале была другая дата: 10 августа. Сегодня я включал эти задания, чтобы сделать скриншот. Могу предположить, что ранние события удаляются после отработки задачи. Если это так, то не могу сказать, когда действительно они были включены.
Понятно, что раз включившись, задания продолжали работать и далее. До момента их ручного отключения (PShell от админа):
Get-ScheduledTask -TaskPath "\Microsoft\Windows\Customer Experience Improvement Program\" | Disable-ScheduledTask
Выдержка из «Заявление о конфиденциальности Windows 8.1 и Windows Server 2012 R2 (дополнение о компонентах)»
Выбор и управление
Если при установке Windows выбраны стандартные параметры, программа улучшения качества программного обеспечения Windows будет включена: Windows и приложения Майкрософт из Магазина Windows смогут отправлять отчеты программы улучшения качества программного обеспечения для всех пользователей компьютера. Если выбрана настройка параметров, вы можете управлять программой улучшения качества программного обеспечения, выбрав Отправлять Майкрософт сведения о том, как я использую компьютер, в рамках программы улучшения качества программного обеспечения в разделе Помогите Майкрософт улучшить продукты и службы. После установки Windows администраторы могут изменить этот параметр в разделе Центр поддержки панели управления.
Выдержка из описания программы CEIP
Является ли программа улучшения качества программного обеспечения шпионским ПО?
Нет. Шпионские программы могут собирать сведения или работать на компьютере пользователя без его ведома или согласия. Программа улучшения качества программного обеспечения выполняет только действия, описанные в заявлении о конфиденциальности программы улучшения качества программного обеспечения, кроме того, пользователь может в любой момент начать участвовать в программе или отказаться от этого.
Мой вопрос о таком странном поведении на answers.microsoft.com.
Ответ пока можно свести к «К сожалению нельзя полностью исключить и то, что Microsoft, пользуясь своим исключительным Правом распоряжаться своим программным продуктом так, как считает нужным, могла включить программу CEIP принудительно.» Моё замечание о недоступности страницы с описанием CEIP связано с тем, что эта страница, по какой-то мне неизвестной причине, была недоступна в течении нескольких часов (на момент завершения написания этой заметки, она снова доступна).
Причина включения заданий осталась мне также неизвестна.
В заключение: я для себя сделал вывод, что Microsoft вполне может нарушать собственные соглашения и, в том числе, отправлять данные с видеокамеры (при наличии желания и технической возможности). Увы, но «партия параноиков» в чем-то права.
Свои выводы из этой небольшой истории предлагаю сделать самостоятельно.
Комментарии (25)
VEG
24.08.2015 11:39+3Если пользователь не дал своего согласия на участие в данной программе, то эта задача не выполняет никаких действий.
Тут не сказано, что задача целиком снимается. Просто написано, что при отказе от участия в программе CEIP, данная задача не выполняет никаких действий. Возможно, так проще программировать — при запуске каждой задачи подобного плана проверяется какой-то ключик в реестре, и впоследствии принимается решение, отработать вхолостую или выполнить какую-то работу.denticulus
24.08.2015 11:42-2Пожрать ресурсы, посадить батарею, поесть трафик и отправить 30 Мб нулей на 4 адреса? Сами-то верите в это?
VEG
24.08.2015 11:51+15поесть трафик и отправить 30 Мб нулей на 4 адреса?
В этой статье про это (ни вообще про какую-либо работу этих задач) ничего не сказано. Не нужно додумывать. Мы не на уфологическом форуме.wbnet
24.08.2015 12:57У меня не было достаточно времени в выходные, чтобы расковырять по полной.
По журналам видно время запуска задания, время начала и окончания действия и время окончания задания — в случае, например, консолидатора идет запуск %SystemRoot%\System32\wsqmcons.exe и через 20 секунд завершается с кодом нормального выполнения. Это я смотрю сейчас со своего рабочего компьютера, на нем точно такая же история. Считывание одного ключа реестра не может занимать столько времени.
Сборщики bluetooth и usb работают через COM обработчики. Из mmc-консоли назначенные действия никак не посмотреть, но если экспортировать задание в xml, то можно увидеть CLSID, которые при поиске в реестре выводят на: %SystemRoot%\System32\BthSQM.dll — в случае BthSQM и %SystemRoot%\System32\usbceip.dll у UsbCeip. Эти выполняются меньше, всего около секунды.
KernelCeipTask -> %SystemRoot%\System32\kernelceip.dll, 12 секундIRainman
24.08.2015 13:08Участие в программе подразумевает отправку данных, но помимо этого в системе существуют ещё локальные механизмы для решения проблем, наверняка ими тоже используется эти данные или их часть. В общем тут нужен спец, кто глубоко в теме и сможет рассказать какие диагностические компоненты как друг на друга завязаны. Без этого реверс-инженеринг тоже без проблем можно провести, но некоторые моменты так и останутся не до конца понятны.
IRainman
24.08.2015 13:01+1дополню VEG про «посадить батарею»: эти задачи входят в список заданий обслуживания и вообще не запускаются при работе от батарей, а при переходе на автономное питание приостанавливаются ;)
wbnet
24.08.2015 15:25Consolidator не обращает внимание на настройки электропитания и запускается всегда.
IRainman
24.08.2015 21:36я имею ввиду параметры задания планировщика:
DisallowStartIfOnBatteries
StopIfGoingOnBatteries
и целиком раздел:
MaintenanceSettings
разве они не используются в этих заданиях?wbnet
25.08.2015 08:45В консолидаторе не используются — простой триггер «раз в день в 19:00». В остальных трех да, они не запустятся при работе от акка.
На рабочем компе у меня еще имеется задание с разовым запуском Uploader (оно же «wsqmcons.exe -u»), создано лично мной, если верить журналу. Опять же если верить журналу, то я же его и запускал ежедневно в течении уже 20 дней (переработал наверное, пора в отпуск). Параметры идентичны консолидатору без ключа, только проверяется возможность подключения к любой сети.IRainman
25.08.2015 12:08Понятно, с заданием для wsqmcons -u тоже в общем то понятно, странно, что оно запускается просто по расписанию, однако не странно, что оно создано из под пользовательской учётки для которой работает. Ведь именно wsqmcons отсылает данные в MS, а остальные таски именно диагностические для локального накопления статистической информации. Странно конечно, что он работает (если действительно работает а не в холостую запускается) при отключённой отправке данных, возможно это баг.
P.S. не знаю у кого как, но у нас 8.x была забракована из-за проблем совместимости с софтом и из тестов не вышла, только к 10 эти ошибки ядра поправили, жаль что пока ещё не все. Однако для самой 10 нам пока ещё точно рано ибо слишком много мелких багов. Сидим с 3 квартала 2009 на 7 и всё прекрасно. Это я к тому, что анализом механизма расширенной диагностики я, например, заинтересовался только сейчас ибо только сейчас его бекпартировали на 7.
wbnet
24.08.2015 13:09+7Видите ли, я нигде не писал про то, что отправляются приватные данные из папок пользователя и всем шапочки из фольги срочно заказывать надо. Просто неприятный факт — при прямом несогласии пользователя, задания по сбору данных все равно продолжают работать (либо были включены каким-то обновлением).
darthslider
24.08.2015 15:02+3А что мешает банально посмотреть трафик wireshark`ом, например? Когда выполняется задание есть ли какой-нибудь трафик и куда и в каком объеме?
wbnet
24.08.2015 16:35На самом деле просто не предполагал, что наткнусь на подобное (10 полутестовая, ей еще относительно простительно, но 8.1 которой уже сто лет в обед… не ожидал) На неделе гляну поплотней, самому весьма не нравится, когда без моего разрешения начинает что попало запускаться.
xandr
24.08.2015 17:27Возможно, логика MS(tm) здесь следующая: если пользователь согласился на участие в программе, мы собираем его данные и используем для своих целей. Если пользователь отказался, мы все равно собираем и отправляем его данные, но не используем их. Типа, храним на всякий случай — а вдруг он передумает? :)
bougakov
24.08.2015 19:20В восьмёрке была фича — раз где-то в пару месяцев Troubleshooting wizard проыспался и предлагал поискать, не появилось ли решений для замеченных проблем (типа ненайденного драйвера для всякой китайской периферии и т.п.).
Где-то же он должен накапливать эти данные ведь?
wbnet
24.08.2015 23:29+1Пересилил природную лень и разобрал консолидатора procmon'om. После «название».dll идет описание этой длл.
Извиняюсь за комментарии, но уже спать хотелось.%SystemRoot%\System32\wsqmcons.exe
SQM консолидатор Windows
Запуск руками. Далее происходящее:
Проверка на SafeBoot
Подгрузка библиотек
tdh.dll вспомогательная библиотека трассировки событий
wer.dll библиотека сообщений об ошибках
wevtapi.dll API настройки и использования событий
powrprof.dll DLL модуля поддержки управления питанием
xmllite.dll Microsft XMLLite Library
sppcext.dll Software Protection Platform Client Extension Dll
ktmw.dll Windows KTM Win32 Client DLL
reagent.dll Библиотека DLL агента восстановления MIcrosoft Windows
winhttp.dll Службы HTTP Windows
cabinet.dll Microsft Cabinet File API
rpcrt4.dll Библиотека удаленного вызова процедур
crypt32.dll API32 криптографии
sechost.dll Host for SCM/SDDL/LSA Lookup APIs
gdi32.dll GDI Client DLL
combase.dll Microsoft COM для Windows
WinSCard.dll API смарт-карт
— Девушка, позвольте с вами познакомиться — Чтение текущих языковых настроек
Чтение конфигурации оборудования из подразделов HKLM\System\CurrentControlSet\ и HKLM\HARDWARE\DEVICEMAP\VIDEO
Обращение к драйверам(файлам) видеокарты и к параметрам видео из реестра (Интелом побрезговало, Нвидию поизучало)
Считывание всех файлов из System32
Чтение из реестра:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\SourcePath
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DevicePath
HKLM\System\CurrentControlSet\Control\Nls\CustomLocale
HKLM\System\CurrentControlSet\Control\Nls\ExtendedLocale
HKLM\SOFTWARE\Microsoft\OLE\PageAllocatorUseSystemHeap
HKLM\SOFTWARE\Microsoft\OLE\PageAllocatorSystemHeapIsPrivate
HKLM\SOFTWARE\Microsoft\OLE\AggressiveMTATesting
HKLM\System\CurrentControlSet\Control\SystemInformation\SystemManufacturer
HKLM\System\CurrentControlSet\Control\SystemInformation\SystemProductName
HKLM\System\CurrentControlSet\Control\SystemInformation\BIOSVersion
HKLM\Software\Microsoft\windows\CurrentVersion\Internet Settings\Connections\*
— Третий лишний — Периодические проверки — выключены ли следующие товарищи (или включены?):
HKLM\SOFTWARE\Policies\Microsoft\SQMClient\
HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting\
HKLM\SOFTWARE\Microsoft\TelemetryClient\
— БД «Чтобы никто не догадался» (по моему) — Заполнение HKLM\SOFTWARE\Microsoft\SQMClient\Windows\CommonDatapoints\*
— Не понял — QueryDirectory C:\Windows\System32\drivers\*.mrk
— Ключ на старт. Зажигание. 3… 2… 1… — Чтение HKLM\System\CurrentControlSet\Services\WinSock2\Parameters\*
Подгрузка сетевых библиотек (dhcpapi, dnsapi)
Чтение параметров TCPv4/TCPv6
Подгрузка mswsock.dll, wshqos.dll, schannel.dll
— Поехали — TCP Connect -> 65.55.252.93:https
TCP Send -> 65.55.252.93:https Lenght 192
TCP Receive -> 65.55.252.93:https Lenght 3800
— Юстас Алексу: Мама, роди меня обратно — Читается разная сертификатная криптография (напр. HKLM\Software\Microsoft\Cryptography\OID или HKLM\SOFTWARE\Policies\Microsoft\SystemCertificates)
Между криптосертификатией проскакивают 2 одинаковых запроса к самому себе, с разным результатом:
QuerySecurityFile BUFFER OVERFLOW info: owner
QuerySecurityFile SUCCESS info: owner
далее опять запросы к сертификатам и так несколько раз по кругу. Проверка на вшивость?
— Радость сисадмина — Подгрузка gpapi.dll Клиентские функции API групповой политики
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\UserenvDebugLevel
HKLM\SOFTWARE\Policies\Microsoft\Windows\System\GpSvcDebugLevel
Опять сертификаты/криптография из реестра и подгрузка fveui.dll
Подгрузка wuaueng.dll Агент центра обновления
Подгрузка powershell не понял?
Криптография из реестра (HKLM\System\CurrentControlSet\Control\Cryptography\*)
обращение к dll установленного EMET (CreateFileMapping)
— Центр-Юстасу: Держитесь — TCP Send -> 65.55.252.93:https Lenght 214
TCP Receive -> 65.55.252.93:https Lenght 107
Криптография из реестра (HKLM\System\CurrentControlSet\Control\Cryptography\*)
Подгрузка dpapi.dll Data Protection API
— Юстас Алексу: Служу Советскому Союзу — TCP Send -> 65.55.252.93:https Lenght 213
TCP Send -> 65.55.252.93:https Lenght 2613
TCP Receive -> 65.55.252.93:https Lenght 389
— Торможение о плотные слои — QueryStandardInformationFile и CreateFileMapping к «C:\ProgramData\Microsoft\windowssampling\Sqm\Manifest\Sqm3.bin», перемежаемые крипто из реестра
— Раскрытие парашюта — RegSetInfoKey:
HKLM\SOFTWARE\Microsoft\SQMClient\Windows\CommonDatapoints\*
HKLM\SOFTWARE\Microsoft\Internet Explorer\svcUpdateVersion
HKLM\SOFTWARE\Microsoft\SQMClient\*
HKLM\SOFTWARE\Microsoft\Reliability Analysis\RAC\RacSampleNumber
— Приземление — Различные телодвижения с:
HKLM\SOFTWARE\Microsoft\TelemetryClient\*
HKLM\SOFTWARE\Microsoft\SQMClient\*
Закрытие TCP, выгрузка библиотек. Game Over.mlurker
25.08.2015 04:13Хорошо бы составить список таких задач, которые можно удалить/отключить. Пока есть небольшой для windows server 2012: http://pastebin.com/MGFCdtRf
rtzra
25.08.2015 07:50Посмотрел задания шедулера на нескольких своих компьютерах, печалька.
Проснулся внутренний параноик, он и резюмирует:
— Приватности нет, от слова «вообще»
— Каждое устройство нынче «стучит» на своего хозяина, собирает статистику и все это сливает не пойми куда
— Каждая версия windows все сильнее и сильнее «оптимизируется» для отслеживания действий пользователя
— Огромное количество программ — от браузера до среды разработки так же куда-то что-то отправляют (разумеется с целью «улучшить» и «сделать удобнее»)
Что делать-то? На ум приходят следующие варианты:
— Не пользоваться вообще устройствами и ПО, которое отслеживает каждый чих. Увы, не от всего можно отказаться
— Пользоваться старыми версиями железа/ПО. Тоже далеко не всегда возможно, плюс есть вопросы по безопасности
— Использовать альтернативные/свободные железяки/ПО. Вариант не без минусов, но вполне возможный и посильный
— Использовать некое подобие контейнеров ОС: железяка включилась (кстати, еще до включения — кто знает что и как в ней работает и куда стучит?), создался контейнер с операционкой, развернулось необходимое ПО, подключились ресурсы с пользовательскими данными. По окончанию работы данные сохранились, контейнер удалился (если не ошибаюсь Рутковски такую систему разрабатывала?). Возможен вариант — контейнер не для операционки, а для конкретного сервиса/приложения, части из них вообще запретить сетевой обмен.
Кто из умных людей что скажет, идеи и комментарии?lybin
26.08.2015 08:09Тут два варианта :) Лечиться от паранойи или переходить на свободный открытый софт.
VEG
26.08.2015 10:34Но при этом придётся признать, что переход на открытый софт не гарантирует отсутствие закладок в нём, или отсутствие телеметрии — например, в Firefox сбор телеметрии имеется. А самое главное, в любом случае в вашем компьютере будут продолжать выполняться мегабайты закрытого кода. Даже если вы найдёте все драйвера и весь софт с открытыми исходниками, у вас останется ещё железо, и речь не только про UEFI, но и про внутреннюю логику HDD/SSD или сетевого адаптера. Если уж и быть параноиком, то до конца.
lybin
26.08.2015 18:15В хроме тоже, везде есть галка снять, в ФФ больше доверяю, что она снимается, но пользуюсь хромом, не хромиумом даже.
Если не доверять и железу, то какой-нибудь Librem брать, кстати мне оч нравится. Но однозначно linux прозрачнее windows и mac. А если до конца, то вообще компьютер в сторонку надо откладывать наверное :)
Meklon
Весело рубильник дёрнули)