Это сиквел статьи про отслеживание приложения, записывающего непонятные файлы на диск. На этот раз у меня вверху области навигации проводника появились значки Home и OneDrive. Это началось после установки накопительного обновления для Windows 11 22H2, добавившего вкладки к проводнику.
[+] Сегодня в программе
Проблема: нежелательный значок OneDrive
Значок Home я решил не трогать, а OneDrive мне там не нужен. Потому что у меня и так уже закреплены конкретные облачные папки.
Я уже рассказывал в канале Telegram, как убирать значки или менять их порядок. Поэтому от значка OneDrive я избавился легко. Однако спустя несколько дней он появился снова. Я повторно поменял значение параметра System.IsPinnedToNameSpaceTree
с 1
на 0
, но вскоре значок опять вернулся. Стало понятно, что это не случайность, а решение разработчиков. Но каких?
Строго говоря, OneDrive – стороннее ПО для Windows. Хотя он внедрен в систему, и есть интеграция в оболочку. Новый значок Home вверху – точно от команды проводника. Наверное, OneDrive сам прикрепляет свой значок. Но зачем гадать, когда можно выяснить доподлинно!
Способы мониторинга изменений в реестре
Я покажу два способа, каждый со своими плюсами и минусами:
- Process Monitor – просто, но не очень хорошо подходит для длительного мониторинга. Например, все время потребляются ресурсы ЦП. Кроме того, надо перезапускать отслеживание после перезагрузки ОС.
- Аудит реестра – мощно, хорошо масштабируется, но сложнее настраивается и недоступно в домашних изданиях.
Отслеживание записи в реестр с Process Monitor
Нужно всего два фильтра:
Здесь
- Path contains
{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree
– путь содержит конечную часть пути к разделу реестра и сам параметр - Operation is RegSetValue – операция, задающая значение параметра в реестре
В меню Filter выберите Drop filtered events, чтобы не собирать ненужные события. Иначе за несколько дней ожидания память может закончиться.
Процесс FileSyncConfig.exe
попался в расставленные сети в начале второй недели мониторинга.
Получается, этот исполняемый файл конфигурирует не только OneDrive, но и проводник. Но как выяснилось, FileSyncConfig — не единственный игрок! Я исключил его из уравнения, но значок снова вернулся.
Гонять Process Monitor неделями было нецелесообразно, поэтому я настроил аудит изменений в реестре.
Отслеживание записи в реестр с помощью аудита
Поскольку мы отслеживаем разовое изменение всего одного параметра, с точки зрения производительности на длинной дистанции рациональнее включить аудит реестра.
Эта политика безопасности доступна в изданиях Pro и выше.
Задача решается в три шага.
Шаг 1 – Включите политику аудита объектов реестра
- Откройте Win + R – secpol.msc – Advanced audit policy configuration – System audit policies – Object access.
- Для политики Audit Registry включите аудит событий успеха (Success).
Шаг 2 – Настройте аудит конкретного раздела реестра
В реестре перейдите к разделу, щелкните ПКМ – Permissions – Advanced — Auditing. Далее:
- Выберите субъект Everyone в английской ОС или Все в русской.
- Убедитесь что указаны события успеха для раздела и подразделов.
- Выберите Set Value (Задание значения). (На картинке также отслеживается удаление, т.к. это один из способов обнулить заданное значение).
Шаг 3 – Найдите событие 4657 в журнале безопасности Windows
- Для теста поменяйте значение параметра в разделе, для которого настроили аудит.
- Откройте Win + R — eventvwr.msc – Security (Безопасность) и найдите событие 4657.
Видно, что в сети аудита на сей раз попался другой процесс — OneDrive.exe
!
Бонус: скрипт PowerShell для анализа событий аудита
Чтобы не открывать журнал, я набросал скрипт PowerShell (скачать audit-script.zip и разблокировать!) для извлечения ключевых данных из событий аудита реестра и процессов. Этот скрипт несложно приспособить для обработки любых данных из узла EventData на картинке↑ Заметьте, что в PowerShell Core можно ускорить фильтрацию — в данном случае по имени параметра реестра, которое аудит пишет в журнал.
В скрипте используется синтаксис XPath для поиска и вывода конкретных элементов XML. Я применял этот прием еще для анализа события 100 в утилите CheckBootSpeed, однако не демонстрировал его в блоге. Выглядит непривлекательно, но работает безотказно.
Код скрипта не публикую на странице из-за некорректного отображения в блоге. Ниже фрагмент вывода скрипта с выборкой восьми элементов события, представляющих интерес.
EventTime : 2022-12-05T22:08:33.3566298Z SubjectUserName : Vadim SubjectUserSid : S-1-5-21-3770827514-527019215-2194716761-1001 ObjectName : \REGISTRY\USER\S-1-5-21-3770827514-527019215-2194716761-1001_Classes\CLSID\{018D5C66-4533-4307-9B53-224D E2ED1FE6} ObjectValueName : System.IsPinnedToNameSpaceTree NewValue : 1 OldValue : 0 ProcessName : C:\Program Files\Microsoft OneDrive\OneDrive.exe
Заключение
Мониторинг реестра – несложная задача. Аудит звучит по-взрослому, но по большому счету тоже тыкание в кнопки. В любом случае – это сбор сведений, которые еще нужно проанализировать для решения задачи.
В следующей статье я разберу, почему параметр реестра меняют разные процессы. Я также объясню, как воспрепятствовать закреплению значка OneDrive в панели навигации. На Boosty статья уже доступна подписчикам и посредством разовой оплаты! Вы можете 🤝стать постоянным подписчиком и получить ранний доступ ко всем новым статьям блога.
Dmitry Barabash
Не по основной теме поста, но по связанной с ней. Проблема в том, что при каждом обновлении OneDrive снова пишет в System.IsPinnedToNameSpaceTree единицу.
Vadim Sterkin
Да, об этом написано в последнем абзаце.
Dmitry Barabash
Жду следующую статью. :)
Sergey Dindikov
Я так понимаю альтернативно аудит событие можно словить и через использование SysMon М.Руссиновича?
кстати не хотите статью у себя про этот инструмент написать? я вроде у вас не видел такой….
Vadim Sterkin
Я не пробовал. Но если он в целом может мониторить журнал, то почему нет?
Илья
Огромное спасибо. Так я отследил почему периодически появлялся Он Драйв для бизнеса. Это Офис про мне его » втыкал постоянно.