Как стать автором
Обновить

Комментарии 25

Весело рубильник дёрнули)
Если пользователь не дал своего согласия на участие в данной программе, то эта задача не выполняет никаких действий.
Тут не сказано, что задача целиком снимается. Просто написано, что при отказе от участия в программе CEIP, данная задача не выполняет никаких действий. Возможно, так проще программировать — при запуске каждой задачи подобного плана проверяется какой-то ключик в реестре, и впоследствии принимается решение, отработать вхолостую или выполнить какую-то работу.
Пожрать ресурсы, посадить батарею, поесть трафик и отправить 30 Мб нулей на 4 адреса? Сами-то верите в это?
поесть трафик и отправить 30 Мб нулей на 4 адреса?
В этой статье про это (ни вообще про какую-либо работу этих задач) ничего не сказано. Не нужно додумывать. Мы не на уфологическом форуме.
У меня не было достаточно времени в выходные, чтобы расковырять по полной.

По журналам видно время запуска задания, время начала и окончания действия и время окончания задания — в случае, например, консолидатора идет запуск %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 секунд
Участие в программе подразумевает отправку данных, но помимо этого в системе существуют ещё локальные механизмы для решения проблем, наверняка ими тоже используется эти данные или их часть. В общем тут нужен спец, кто глубоко в теме и сможет рассказать какие диагностические компоненты как друг на друга завязаны. Без этого реверс-инженеринг тоже без проблем можно провести, но некоторые моменты так и останутся не до конца понятны.
запустите procmon и не гадайте на кофейной гуще, чем оно занимается.
дополню VEG про «посадить батарею»: эти задачи входят в список заданий обслуживания и вообще не запускаются при работе от батарей, а при переходе на автономное питание приостанавливаются ;)
Consolidator не обращает внимание на настройки электропитания и запускается всегда.
я имею ввиду параметры задания планировщика:

DisallowStartIfOnBatteries
StopIfGoingOnBatteries

и целиком раздел:

MaintenanceSettings

разве они не используются в этих заданиях?
В консолидаторе не используются — простой триггер «раз в день в 19:00». В остальных трех да, они не запустятся при работе от акка.

На рабочем компе у меня еще имеется задание с разовым запуском Uploader (оно же «wsqmcons.exe -u»), создано лично мной, если верить журналу. Опять же если верить журналу, то я же его и запускал ежедневно в течении уже 20 дней (переработал наверное, пора в отпуск). Параметры идентичны консолидатору без ключа, только проверяется возможность подключения к любой сети.
Понятно, с заданием для wsqmcons -u тоже в общем то понятно, странно, что оно запускается просто по расписанию, однако не странно, что оно создано из под пользовательской учётки для которой работает. Ведь именно wsqmcons отсылает данные в MS, а остальные таски именно диагностические для локального накопления статистической информации. Странно конечно, что он работает (если действительно работает а не в холостую запускается) при отключённой отправке данных, возможно это баг.

P.S. не знаю у кого как, но у нас 8.x была забракована из-за проблем совместимости с софтом и из тестов не вышла, только к 10 эти ошибки ядра поправили, жаль что пока ещё не все. Однако для самой 10 нам пока ещё точно рано ибо слишком много мелких багов. Сидим с 3 квартала 2009 на 7 и всё прекрасно. Это я к тому, что анализом механизма расширенной диагностики я, например, заинтересовался только сейчас ибо только сейчас его бекпартировали на 7.
Видите ли, я нигде не писал про то, что отправляются приватные данные из папок пользователя и всем шапочки из фольги срочно заказывать надо. Просто неприятный факт — при прямом несогласии пользователя, задания по сбору данных все равно продолжают работать (либо были включены каким-то обновлением).
Ну что ж, всё таки придется заклеить скотчем камеру в ноуте.
А что мешает банально посмотреть трафик wireshark`ом, например? Когда выполняется задание есть ли какой-нибудь трафик и куда и в каком объеме?
На самом деле просто не предполагал, что наткнусь на подобное (10 полутестовая, ей еще относительно простительно, но 8.1 которой уже сто лет в обед… не ожидал) На неделе гляну поплотней, самому весьма не нравится, когда без моего разрешения начинает что попало запускаться.
Возможно, логика MS(tm) здесь следующая: если пользователь согласился на участие в программе, мы собираем его данные и используем для своих целей. Если пользователь отказался, мы все равно собираем и отправляем его данные, но не используем их. Типа, храним на всякий случай — а вдруг он передумает? :)
В восьмёрке была фича — раз где-то в пару месяцев Troubleshooting wizard проыспался и предлагал поискать, не появилось ли решений для замеченных проблем (типа ненайденного драйвера для всякой китайской периферии и т.п.).

Где-то же он должен накапливать эти данные ведь?
Пересилил природную лень и разобрал консолидатора 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.

В общем оно читает, пишет и отправляет. Не сказать что много, но тем не менее.
Я не туда смотрю или в Windows 8.0 таких заданий нет?
Хорошо бы составить список таких задач, которые можно удалить/отключить. Пока есть небольшой для windows server 2012: http://pastebin.com/MGFCdtRf
Посмотрел задания шедулера на нескольких своих компьютерах, печалька.
Проснулся внутренний параноик, он и резюмирует:
— Приватности нет, от слова «вообще»
— Каждое устройство нынче «стучит» на своего хозяина, собирает статистику и все это сливает не пойми куда
— Каждая версия windows все сильнее и сильнее «оптимизируется» для отслеживания действий пользователя
— Огромное количество программ — от браузера до среды разработки так же куда-то что-то отправляют (разумеется с целью «улучшить» и «сделать удобнее»)

Что делать-то? На ум приходят следующие варианты:
— Не пользоваться вообще устройствами и ПО, которое отслеживает каждый чих. Увы, не от всего можно отказаться
— Пользоваться старыми версиями железа/ПО. Тоже далеко не всегда возможно, плюс есть вопросы по безопасности
— Использовать альтернативные/свободные железяки/ПО. Вариант не без минусов, но вполне возможный и посильный
— Использовать некое подобие контейнеров ОС: железяка включилась (кстати, еще до включения — кто знает что и как в ней работает и куда стучит?), создался контейнер с операционкой, развернулось необходимое ПО, подключились ресурсы с пользовательскими данными. По окончанию работы данные сохранились, контейнер удалился (если не ошибаюсь Рутковски такую систему разрабатывала?). Возможен вариант — контейнер не для операционки, а для конкретного сервиса/приложения, части из них вообще запретить сетевой обмен.

Кто из умных людей что скажет, идеи и комментарии?
Тут два варианта :) Лечиться от паранойи или переходить на свободный открытый софт.
Но при этом придётся признать, что переход на открытый софт не гарантирует отсутствие закладок в нём, или отсутствие телеметрии — например, в Firefox сбор телеметрии имеется. А самое главное, в любом случае в вашем компьютере будут продолжать выполняться мегабайты закрытого кода. Даже если вы найдёте все драйвера и весь софт с открытыми исходниками, у вас останется ещё железо, и речь не только про UEFI, но и про внутреннюю логику HDD/SSD или сетевого адаптера. Если уж и быть параноиком, то до конца.
В хроме тоже, везде есть галка снять, в ФФ больше доверяю, что она снимается, но пользуюсь хромом, не хромиумом даже.
Если не доверять и железу, то какой-нибудь Librem брать, кстати мне оч нравится. Но однозначно linux прозрачнее windows и mac. А если до конца, то вообще компьютер в сторонку надо откладывать наверное :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории