Microsoft объяснила «хранилище» Windows в отношении USB‑накопителей

4 мин
Microsoft объяснила «хранилище» Windows в отношении USB‑накопителей

Пользователи утверждают, что Windows хранит постоянную запись каждого USB‑устройства, которое когда‑либо подключали к устройству. Сама Microsoft документировала это поведение более десяти лет, а теперь объяснила его более подробно.

Ещё в 2012 году основной полевой инженер Microsoft Джейсон Уокер написал в блоге Microsoft Scripting, что «когда USB‑устройство хранения данных вставляется в компьютер, в реестре создаётся ключ USBSTOR, и всё, что операционная система должна знать об этом устройстве хранения данных, содержится в этом ключе».

Это цельный путь, по которому можно найти ключ:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR.

В документе поддержки Microsoft об удалении информации реестра для старых устройств объясняется, почему Windows продолжает сохранять эту запись. Когда девайс хранения подключено, «даже на короткое время Windows создаёт информацию о реестре для устройства», и очистка остаётся на усмотрение другого программного обеспечения, поскольку «ОС не знает, когда устройство хранения данных удаляется временно или навсегда». Plug and Play сохраняет экземпляр устройства для распознавания и настройки диска при повторном подключении USB‑накопителя.

Устройства, которые были физически удалены, но записи реестра которых сохранились, называются несуществующими или фантомными, и их можно увидеть в диспетчере устройств, выбрав «Просмотр» > «Показать скрытые устройства». Однако USBSTOR не представляет собой список всех USB‑гаджетов. Он охватывает устройства хранения данных, управляемые драйвером Usbstor.sys, а в Windows равным образом имеется отдельный драйвер хранилища UASP, Uaspstor.sys, для использующих новый протокол USB Attached SCSI, который предназначен для повышения производительности хранилища. Клавиатура, веб‑камера, USB‑мышь или USB‑микрофон не появятся в USBSTOR. При этом udev в Linux хранит базу данных устройств, которые он обработал, а macOS также сохраняет информацию об оборудовании через IOKit и записывает системные события через свою единую систему журналирования. Этим операционным системам необходимо идентифицировать оборудование, скачать правильный драйвер и помочь устранить неполадки, если что‑то пойдёт не так.

Windows может хранить читаемое имя устройства, в частности «SanDisk Ultra USB Device», а также идентификаторы оборудования и экземпляров, полученные на основе информации, сообщаемой устройством. В зависимости от гаджета идентификатор экземпляра может содержать информацию о серийном номере или местоположении, когда диск был впервые установлен, когда он в последний раз прибыл или был удалён, а также букву диска, которую он получил.

Тем не менее описанные здесь записи USBSTOR не содержат списка файлов, находившихся на диске, и сами по себе не показывают, были ли файлы скопированы. Другие функции Windows могут оставлять отдельные доказательства, в частности «Недавние элементы» или аудит съёмных носителей.

Чтобы просмотреть свои записи, нужно открыть Windows PowerShell и выполнить следующую команду:

reg query “HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR” /s

Переключатель /s запрашивает каждый подраздел ниже USBSTOR. Каждый ключ модели содержит подразделы экземпляра устройства. В зависимости от устройства идентификатор экземпляра может содержать информацию о серийном номере или о местоположении. Тем не менее, само по себе имя SanDisk не доказывает, что был подключён один определённый диск, поскольку разные накопители могут использовать одинаковые идентификаторы оборудования, а USB‑устройства не обязаны сообщать серийный номер.

Для получения более чёткого списка можно использовать командлет PowerShell Plug and Play.

Get-PnpDevice -Class DiskDrive |

    Where-Object { $_.InstanceId -like ‘USBSTOR\*’ } |

    Format-List Status, FriendlyName, InstanceId

Get‑PnpDevice показывает устройства, известные Plug and Play, независимо от того, присутствуют они или нет, если не добавить ‑PresentOnly, что упрощает проверку. Нужно подключить USB‑накопитель, запустить команду и записать её InstanceId. Затем потребуется безопасно извлечь диск, выключить его и выполнить приведённую выше команду вместе с этой.

Get-PnpDevice -PresentOnly -Class DiskDrive |

    Format-List FriendlyName, InstanceId

Если Windows сохранила запись, накопитель исчезает из списка -PresentOnly, но остаётся в первом.

Чтобы проверить временные метки, нужно вставить этот InstanceId в переменную $deviceId и выполнить следующий код:

$deviceId = ‘PASTE_THE_FULL_INSTANCE_ID_HERE’

Get-PnpDeviceProperty -InstanceId $deviceId |

    Where-Object { $_.KeyName -match ‘_(FirstInstallDate|InstallDate|LastArrivalDate|LastRemovalDate)$’ } |

    Format-List KeyName, Data

FirstInstallDate — это момент, когда Windows в начальный раз установила данный экземпляр устройства. InstallDate — время последней установки; по данным Microsoft, эта метка меняется при каждом обновлении драйвера. LastArrivalDate и LastRemovalDate содержат лишь по одному значению, следовательно ни одно из этих полей не даёт полной истории всех случаев подключения накопителя.

Windows также записывает информацию об установке устройств в текстовый журнал SetupAPI, расположенный по адресу %SystemRoot%\INF\setupapi.dev.log. В нём можно найти сведения о своём накопителе.

Select-String -Path “$env:SystemRoot\INF\setupapi.dev.log” -SimpleMatch -Pattern $deviceId -Context 3,12

Наличие совпадения означает, что SetupAPI зафиксировал событие установки данного устройства. Тем не менее это не следует рассматривать как исчерпывающую запись обо всех последующих подключениях.

Наконец, команда reg query “HKLM\SYSTEM\MountedDevices” выводит содержимое базы данных постоянных имён диспетчера монтирования (mount manager), которая сопоставляет тома с буквами дисков и может хранить имена томов, отсутствующих в текущей системе. Запись вида \DosDevices\F: не позволяет однозначно идентифицировать накопитель SanDisk, если не сопоставить содержащиеся в ней двоичные информация с томом конкретного устройства.

Чтобы удалить запись о накопителе, нужно щёлкнуть правой кнопкой мыши на неактивном (сером) устройстве в «Диспетчере устройств» (в режиме отображения скрытых устройств) и выбрать пункт «Удалить устройство» (Uninstall device).

Итак, Windows запоминает USB‑накопитель даже после его отключения — так же, как и другие популярные настольные ОС. Тем не менее запись в разделе USBSTOR не содержит содержимого самого накопителя. Сама по себе эта запись не может доказать, что кто‑либо копировал файлы. Сведения о доступе к файлам могут быть получены в ходе отдельного аудита или с помощью других методов компьютерно‑технической экспертизы, но это не то же самое, что запись в журнале USBSTOR. Наконец, эта запись не является постоянной.

Ранее Microsoft решила отказаться от инструмента для прямой передачи данных между компьютерами (PC‑to‑PC), который был незаметно реализован в Windows 11. Этот средство позволял передавать файлы по Wi‑Fi или локальной сети (LAN), в отличие от метода синхронизации через OneDrive, используемого в приложении «Резервное копирование Windows» (Windows Backup). Теперь Microsoft сообщила, что функция миграции данных между ПК в Windows 11 больше недоступна, а компания рекомендует использовать «Резервное копирование Windows», которое задействует OneDrive для сохранения файлов.

Читают сейчас

Харбинский университет вынес 20 студентам предупреждения за использование VPN

36 минут назад

Харбинский университет вынес 20 студентам предупреждения за использование VPN

Институт математических наук Харбинского инженерного университета в Китае вынес предупреждения 20 студентам бакалавриата и магистратуры за использование VPN для доступа к зарубежным сайтам. В соответс

В Dyson признали проблемы водонепроницаемости зубной щётки CameraJet и свернули её продажи

40 минут назад

В Dyson признали проблемы водонепроницаемости зубной щётки CameraJet и свернули её продажи

Менее чем через месяц после релиза Dyson сняла с продажи электрическую зубную щётку CameraJet из‑за проблем с водонепроницаемостью. На создание этого устройства за $500 ушло шесть лет, 38 патентов и о

«Баллады прошлого» для «Ведьмака 3» свяжут с прошлыми DLC

45 минут назад

«Баллады прошлого» для «Ведьмака 3» свяжут с прошлыми DLC

В 2027 году нас ждет новое — и, судя по всему, последнее — дополнение для «Ведьмака 3». Над ним работает CD Projekt RED совместно со студией Fool's Theory, которые подарили нам The Thaumaturge в 2024

Robinhood объявил о ИИ‑ассистента для автоматической торговли акциями

48 минут назад

Robinhood объявил о ИИ‑ассистента для автоматической торговли акциями

Robinhood представила ИИ‑ассистента Robinhood Agents, который позволит создать собственного ИИ‑агента в приложении компании, работающем на базе больших языковых моделей от сторонних поставщиков. Средс

Kubernetes-кластер на нескольких инфраструктурах: наш начальный шаг к единой модели конфигурации

58 минут назад

Kubernetes-кластер на нескольких инфраструктурах: наш начальный шаг к единой модели конфигурации

Можно ли собрать один Kubernetes-кластер из узлов, которые работают в разных инфраструктурах? Команда Deckhouse движется именно к такой модели, когда control plane остаётся единым, а узлы могут «подкл