- История использования USB
- Перечисление (энумерация) USB устройств
- Эксперимент
- История в файлах
- Windows не распознает USB-устройства? 6 способов устранения ошибки
- Проблема с портом
- Снятие статического электричества
- Обновление драйверов
- Запрет на отключение порта usb
- Проверка аппаратной части
- Проверка программного обеспечения
История использования USB
Ни для кого уже не секрет, что информация о разного рода активности многочисленных компонентов операционной системы попадает в реестр и файлы в виде записей заданного формата. При этом, информация эта нередко содержит чувствительные пользовательские данные: историю посещенных браузером страниц, кеш данных программ, информацию о подключаемых устройствах и многое многое другое. Во основном журналирование обеспечивается функциональными особенностями пользовательских программ, которые имеют встроенные алгоритмы сохранения истории операций, отчасти это возможно благодаря архитектурным особенностям ядра/HAL операционной системы, которые, производя конфигурирационные действия с устройствами, сохраняют информацию о последних в виде записей в системном реестре. Из всего многообразия подобной информации, в рамках данной статьи нас будет интересовать исключительно история использования USB устройств.
Система создает артефакты в момент обнаружения (инициализации) устройства (сменных накопителей, модемов, гаджетов, камер, медиаплееров и прч.) на шине компьютера. Дополнительным плюсом данного материала будет возможность сбора доказательной базы по факту неправомерного использования рабочей станции пользователя в корпоративной среде при помощи незадекларированных USB-устройств.
Не так давно в нашу жизнь вошел интерфейс USB, привнеся в неё довольно существенные изменения. Неожиданно многие вещи стали проще, отпала необходимость инсталляции устройства во внутренний интерфейсный разъем (шина), или внешний интерфейс, требующий перезагрузки станции для корректной инициализации устройства, да и сам процесс конфигурирования устройств стал, во множестве случаев, тривиальнее. На интерфейсе USB появились тысячи разнообразных по назначению устройств, которые достаточно было подключить к разъему на панели корпуса, после чего от момента подключения до состояния «готов к работе», порой проходили считанные минуты. Наряду с очевидными достоинствами: легкостью конфигурирования/использования, компактностью, функциональностью, подобные устройства сразу стали источником проблем как для безопасности персональных данных самого пользователя, так и безопасности корпоративных сред. Компактный, легко маскируемый «брелок» с интерфейсом USB может запросто явиться той ахиллесовой пятой, которая станет причиной «падения» гиганта корпоративной безопасности. Если порты USB в корпоративных рабочих станциях находятся без надлежащего контроля со стороны политик безопасности, то любое приспособление может запросто выступить в качестве средства для обхода периметра безопасности компании. И тут уж насколько хватит фантазии «взломщика», например, достаточно пронести на флешке свежий, не определяемый антивирусами вредоносный код и выполнить его (умышленно или нет), и вот вам уже прецедент, поскольку даже без локальных административных привилегий учетной записи пользователя сохраняется пространство для маневра. Не меньшую опасность представляют и USB-модемы, которые, в случае установки (а при использовании локальных/доменных политик по умолчанию это достигается достаточно просто), могут выступить в роли неконтролируемого канала передачи данных, по которому может осуществляться передача чувствительной корпоративной информации за пределы защищенного внутреннего периметра. При этом, даже декларируемые (заявленные/согласованные) пользовательские устройства (например, телефоны) могут содержать в своих микропрограммах или операционных системах уязвимости, которые, в случае эксплуатации, наносят вред не только владельцу, но и могут выступать в роли средства несанкционированного доступа к служебным данным. Поэтому, в случае возникновения инцидента информационной безопасности, связанного с эксплуатацией USB-устройств,
В связи со всем перечисленным, достаточно важно не только уметь ограничивать использование устройств, но и иметь доступ к истории USB подключений в системе. Этому вопросу и будет посвящена данная статья. Сразу оговорюсь, что весь список точек создания информации о подключении тех или иных устройство чрезвычайно обширен, поэтому по теме данной статьи мы будем рассматривать лишь историю использования USB устройств.
Перечисление (энумерация) USB устройств
Поскольку я сам в данном вопросе «плаваю», перед тем как перейти к практике, предлагаю немного усилить нашу теоретическую базу и описать терминологию, которая будет использоваться на протяжении всего материала. Сразу оговорюсь, что мы не будем освещать все виды взаимодействия, выполняющиеся на шине USB на аппаратном уровне, а сосредоточимся исключительно на основных понятиях, относящихся к USB-устройствам и требующихся нам для понимания практической стороны вопроса.
Подключение любого нового оборудования сопряжено с выполнением модулями ядра системы Windows предопределенных фаз опроса и инициализации. Начинается всё с того, что при подключении устройства к разъему USB, контроллером USB (встроенным в чипсет на материнской плате) генерируется аппаратное прерывание. Драйвер USB, ответственный за обработку данного прерывания, запрашивает статус порта, и если статус указывает на подключенное устройство, то ответственными подсистемами ядра производится последовательность действий, которую условно можно разделить на две стадии:
- Нумерование устройства;
- Установка драйвера устройства;
Ядро (?) инициирует к вновь подключенному устройству серию запросов GET_DESCRIPTOR с различными типами запрашиваемых дескрипторов ( Device , Configuration , LangID , iProduct ). Запросы опрашивают устройство на предмет наличия серии дескрипторов, представляющих собой структуры данных, описывающие возможности USB устройства.
Отсюда следует вывод, что любое USB-устройство должно уметь реагировать на запросы от хоста и иные события на шине. В ответ на подобного рода запросы, микрокод устройства возвращает из ПЗУ требуемую информацию. Данные, возвращаемые устройством в ответ на запросы разнообразных дескрипторов, являются важными для операционной системы, поскольку именно часть этих данных представляет собой различного рода идентификаторы, используемые системой в дальнейшем в процессе нумерования устройства. Давайте приведем наиболее значимую информацию:
Название поля | Терминология Windows | Размер (байт) | Комментарий |
---|---|---|---|
idVendor | VID | 2 | Идентификатор производителя устройства. При присвоении идентификатора производителя, соответствующее числовое значение вносится в реестр производителей. |
idProduct | PID | 2 | Идентификатор продукта. Назначается производителем устройства. Product ID используется для дифференциации продуктов в рамках одного производителя. |
bcdDevice | REV | 2 | Идентификатор ревизии. Используется для дифференциации разных аппаратных модификаций в рамках одной модели устройства. Может использоваться при выпуске новой версии платы/контроллера/логики. |
bDeviceClass, bFunctionClass, bInterfaceClass | Class | 1 | Класс устройства. Используется для задания класса схожих устройств с общим набором идентичных свойств. |
bDeviceSubclass, bFunctionSubClass, bInterfaceSubclass | SubClass (SUB) | 1 | Подкласс устройства. Используется для задания подкласса схожих устройств в рамках класса. |
bDeviceProtocol, bFunctionProtocol, bInterfaceProtocol | Protocol (Prot, PROTO) | 1 | Протокол устройства. Используется для задания протокола для устройств в рамках класса и подкласса. |
iProduct | Product | ? | Текстовая строка-описатель продукта. Когда устройство подключено к компьютеру, данная информация отображается в Диспетчере устройств. |
iSerialNumber | Serial | ? | Серийный номер. Используется для уникализации абсолютно одинаковых устройств, например две одинаковых флешки. Назначается и поддерживается производителем устройства. Связанный механизм носит имя Сериализация. Сериализация так же участвует в уникальной идентификации устройства, поскольку добавляет еще один уровень уникальности. |
Наверняка многие из перечисленных в таблице полей Вам уже встречались в составе значений различных параметров в том же Диспетчере устройств либо в разнообразных системных лог-файлах.
Помимо стандартных дескрипторов, существуют еще так называемые Дескрипторы Microsoft (Microsoft OS Descriptors, MOD), которые содержат специфичную для ОС Windows информацию. Для поддержки производителей, чьи устройства из-за функциональных особенностей не подходят под стандартный набор классов, Майкрософт разработала набор специальных классов и собственных дескрипторов. Пользовательское и системное ПО может идентифицировать устройства, принадлежащие к разработанным Майкрософт классам устройств путем опроса устройства на предмет наличия дескрипторов Microsoft. Помимо поддержки описанных классов устройств, дескрипторы Microsoft имеют и иное применение, например при помощи них можно использовать память устройства для хранения файлов помощи, иконок, списков адресов URL, настроек системного реестра и других данных, используемых для обеспечения прозрачности установки и достижения смежных целей. Устройства, поддерживающие дескрипторы Microsoft, должны хранить специальный строковый дескриптор в прошивке с фиксированным индексом 0xEE . Операционные системы Windows XP SP1 и более поздние запрашивают этот строковый дескриптор у устройства при первом его подключении.
Более того, использование пары VID / PID в дескрипторе любого USB-устройства предписывается спецификацией, согласно которой данные параметры должны быть уникальны для каждой модели устройства. Ну это, опять же, все в теории, а на практике пару раз встречались экземпляры устройств, при работе с которыми становилось очевидно, что значения VID/PID взяты произвольно, либо взяты свободные значения (!) из реестра производителей. Понятно кому выгодно подобным заниматься 🙂 Ну это скорее редко встречающаяся ситуация, когда производителю хочется сэкономить на внесении в реестр производителей.
Затем, после того, как у устройства запрошены ключевые параметры, для USB устройства создан уникальный идентификатор HardwareID ( CompatibleID ), однозначно идентифицирующий устройство/класс устройства. Драйвер USB-концентратора уведомляет специализированный модуль ядра под названием Диспетчер Plug-n-Play (PnP Manager) о новом устройстве. Диспетчер PnP получает идентификаторы HardwareID и CompatibleID устройства и пытается обнаружить устройства с аналогичными идентификаторами HardwareID/CompatibleID. В этот момент в системе создается узел устройства (devnode), что является, по сути, первым отпечатком USB устройства в системе. Если похожее устройство найдено, то производится установка соответствующих драйверов в автоматическом режиме, если же не найдено, то Диспетчер PnP получается уведомление о новом устройстве и далее действует по определенным правилам, описание которых выходит за рамки данного материала.
Эксперимент
В Сети много противоречивой информации относительно истории подключения USB, поэтому давайте проведем собственный эксперимент по выявлению всех возможных системных местоположений, формирующих историю USB подключений. С целью выявления следов подключения USB стоит отследить абсолютно все изменения, происходящие в системе в момент подключения USB устройства. С этой целью на просторах Сети была найдена замечательная утилита под названием SysTracer, которая обладает всем необходимым функционалом. Утилита настолько проста и функциональна, что во многих случаях она окажется незаменимым средством в руках специалиста, поскольку предоставляет возможность сделать КРАЙНЕ полезное действие: создать мгновенный снимок (snapshot) состояния ключевых компонентов системы, таких как реестр и файлы. В качестве системы я использовал чистую инсталляцию Windows 7 Professional, при этом главным требованием было отсутствие каких-либо подключений внешних носителей. Итак, делаем снимок чистой системы, затем вставляем тестовую USB-флешку SanDisk Cruzer mini 1.0Gb и через некоторое время делаем второй снимок. Встроенными средствами утилиты SysTracer сравниваем полученные образы с выводом отчета. В итоге у нас получился некий набор системных изменений, среди которых мы попытаемся выбрать именно те, которые могут относиться к следам подключения USB устройств. Выбранный мною метод имеет и свои недостатки, поскольку наблюдения за активностью системы применительно к USB устройствам не проводилось «в динамике», то есть мы не работали с открытыми с подключаемого носителя файлами (.docx/.xlsx) в различных пользовательских приложениях, а это могло привести к тому, что мы можем упустить факты попадания частей информации с USB-носителя в файлы подкачки, различные временные файлы кеша и файлы иного назначения. Поэтому материал, скорее всего, потребует последующей доработки.
История в файлах
После изучения изменений файловой части системных изменений, подтвердился факт того, что в операционной системе Windows 7 все действия над устройствами отражаются в следующих журнальных файлах:
Windows не распознает USB-устройства? 6 способов устранения ошибки
Windows не распознает USB-устройства
Иногда можно наблюдать вариант, когда Windows не распознает накопитель.
Существует довольно много причин, которые способствуют появлению такой неполадки.
Проблема с портом
Если вы подключили к компьютеру какое-то внешнее оборудование — мышь, клавиатуру, принтер или просто флешку, а Windows не удается опознать что это за девайс — выполните приведенные ниже действия.
Вначале проверяем разъем компьютера и подключаемый штекер на предмет неисправности.
Проведите их внешний осмотр, а по возможности перепроверьте путем подключения к другому ПК, чтобы убедиться в его исправности.
Кроме этого проверьте целостность подключаемого кабеля, если он имеет внешние повреждения — замените его.
Зачастую бывает, что передний порт попросту не подключен к материнской плате.
Возможно и такое, что не опознается системой в связи с подключением в порт USB 3.0.
Они наиболее скоростные, чем серии 2.0.
Отличить их достаточно просто, так как контактная пластина порта имеет синий цвет.
Переподключите устройство в другой разъем и возможно проблема исчезнет сама собой.
Снятие статического электричества
Можно решить этот вопрос путем полного обесточивания персонального лаптопа.
Завершите его работу и отключите от USB-выхода не распознаваемое устройство.
Это необходимо для того, чтобы полностью избавиться от электрических разрядов, оставшихся в конденсаторах материнской платы.
Кнопка запуска ПК
После этого осуществите запуск «компа» и подключите любое внешнее запоминающее устройство в usb-выход.
Вполне вероятно, что Windows избавится от имевшейся ошибки и сможет его распознать.
Если же этого не произошло — возможно проблема заключается в некорректной работе драйверов.
Обновление драйверов
Постарайтесь найти и установить максимально свежие и рабочие драйвера к накопителю USB.
Строка с ним имеет иконку с вопросительным знаком и надписью: «Неизвестное устройство».
Для этого необходимо запустить компьютер и войти в «Диспетчер устройств». найдите в имеющемся списке оборудование , которое является неопознанным.
Строка с ним имеет иконку с вопросительным знаком и надписью: «Неизвестное устройство».
Для этого кликните по нему правой кнопкой мышки и в выпадающем списке выберите пункт «Обновить драйверы…».
Тогда, когда неопознанный накопитель находится в разделе «Контроллеры USB» — кликните по нему мышью.
В открывшемся окне перейдите на вкладку «Драйвер» и попробуйте вернуть ОС до того момента, когда драйвера работали корректно. Для этого необходимо нажать на кнопку Откатить.
Однако такая процедура действенна при наличии предыдущей версии, в противном случае придется их полностью удалить.
После этого операционная система протестирует имеющееся оборудование и обнаружив подключенный к USB-порту девайс произведет для него установку необходимого драйвера.
Чтобы убедиться в этом необходимо открыть окно свойств корневого usb-концентратора и на вкладке управления электропитанием снять галочку с пункта «Разрешить отключение этого устройства для экономии энергии».
Запрет на отключение порта usb
Еще одним вариантом, когда флешка не опознается, может быть временное отключение операционкой юсб-порта.
Чтобы это устранить, понадобится открыть «Панель управления» и перейти на вкладку «Электропитание».
В появившемся окне раскройте список пункта «Параметры usb» и выберите «Параметр временного отключения usb-порта».
Установите в нем значение «Запрещено» и нажмите «Ок» для подтверждения изменения.
Кроме этого установите на операционку новые обновления, а при необходимости — последние программы для материнской платы.
Это можно выполнить при помощи программы Driver Easy, которая устанавливает драйвера для любого имеющегося оборудования, в том числе и usb.
Внешний вид программы
Что делать, если usb устройство не опознает Windows 10?
Во — первых следует убедиться в том, что само устройство полностью исправно.
В противном случае причину следует искать в самом компьютере. Для начала проверьте аппаратную часть.
Проверка аппаратной части
При подключении винчестера или флеш-накопителя с помощью usb-разветвителя (usb-hub) появление подобной ошибки связано с недостаточным питанием.
Если устройство подключено на передней панели компьютера — попробуйте вставить его в порт материнской карты, расположенный на задней стороне.
Чтобы это исправить — выключите и отсоедините от сети стационарный ПК, а у ноутбука извлеките после выключения аккумуляторную батарею.
После этого следует 10-15 секунд удерживать в нажатом состоянии кнопку запуска, чтобы избавиться от остаточного электричества.
После этого снова включаем комп в сеть и производим запуск системы.
В случае с ноутбуком — присоединяем батарею и запускаете его.
Ошибка должна исчезнуть, а если нет — ищите причину в программном обеспечении.
Проверка программного обеспечения
Проверка программного обеспечения
Вначале проверяем режим энергосбережения, так как в целях экономии электроэнергии система может сама отключать usb-порт.
Откройте «Диспетчер устройств». кликнув правой кнопкой мыши по меню «Пуск».
Можно также нажать на клавиатуре сочетание клавиш Win+X и в открывшемся окне выбрать необходимый пункт.
Из списка всех имеющихся устройств, отображаемых на вкладке «Диспетчера», разверните список «Контроллеры USB».
Переходите поочередно на следующие вкладки — «USN Generic Hub», «Корневой USB-концентратор» и «Составное USB-устройство».
По каждой из них кликаете правой кнопкой мыши и выбираете пункт меню «Свойства».
В каждом окне свойств необходимо открыть вкладку «Управление электропитанием» и с пункта «Разрешить отключение этого устройства для экономии энергии» снять галочку выделения.
Для подтверждения кликните по кнопке «Ок».
Снова откройте «Диспетчер устройств» и кликните правой кнопкой мыши по пункту «Корневой USB-концентратор».
Из выпавшего списка выберите «Обновить драйверы…».
В появившемся окне жмете на «Поиск и установка драйверов вручную».
В следующем — «Выбрать драйвер из списка уже установленных драйверов».
Далее смотрите, чтобы в появившемся списке было наличие драйвера для корневого usb-концентратора. Выбираете его и жмете на кнопку Далее.