При подключении нового USB устройства к компьютеру, Windows автоматически определяет устройство и устанавливает подходящий драйвер. В результате пользователь практически сразу может использовать подключенное USB устройство или накопитель. Если политика безопасности вашей организации предполагает запрет использования переносных USB накопителей (флешки, USB HDD, SD-карты и т.п), вы можете заблокировать такое поведение. В этой статье мы покажем, как заблокировать использование внешних USB накопителей в Windows, запретить запись данных на подключенные флешки и запуск исполняемых файлов с помощью групповых политик (GPO).
- Настройка групповой политики блокировки USB носителей в Windows
- Как заблокировать USB накопители только определенным пользователям?
- Запрет доступа к USB накопителям через реестр и GPO
- Полное отключение драйвера USB накопителей в Windows
- История подключения USB накопителей в Windows
- Разрешить подключение только определенной USB флешки
Настройка групповой политики блокировки USB носителей в Windows
В Windows вы можете гибко управлять доступом к внешним накопителям (USB, CD / DVD и др.) с помощью групповых политик Active Directory (мы не рассматриваем радикальный способ отключения USB портов через настройки BIOS ). Вы можете заблокировать только USB накопителей, при этом другие типы USB устройств (мышь, клавиатура, принтер, USB адаптеры на COM порты ), будут доступны пользователю.
В этом примере мы создадим попробуем заблокировать USB накопителей на всех компьютерах в OU домена с именем Workstations (можно применить политику запрета использования USB ко всему домену, но это затронет в том числе сервера и другие технологические устройства).
- Откройте е консоль управления доменными GPO ( msc ), найдите в структуре структуре Organizational Unit контейнер Workstations, щелкните по нему правой клавишей и создайте новую политику ( Create a GPO in this domain and Link it here ); Совет . Вы можете настроить политика ограничения использования USB портов на отдельностоящем компьютере (домашний компьютер или компьютер в рабочей группе) с помощью локального редактора групповых политик (gpedit.msc).
- Задайте имя политики — Disable USB Access .
- Перейдите в режим редактирования GPO ( Edit ).
Настройки блокировки внешних запоминающих устройств есть как в пользовательском, так и в компьютерных разделах GPO:
- User Configuration -> Policies -> Administrative Templates -> System -> Removable Storage Access (Конфигурация пользователя -> Административные шаблоны -> Система ->Доступ к съемным запоминающим устройствам);
- Computer Configuration -> Policies -> Administrative Templates -> System -> Removable Storage Access (Конфигурация компьютера-> Административные шаблоны -> Система ->Доступ к съемным запоминающим устройствам).
Если нужно заблокировать USB накопители для всех пользователей компьютера, нужно настроить параметры в разделе “Конфигурация компьютера”.
В разделе “Доступ к съемным запоминающим устройствам” ( Removable Storage Access ) есть несколько политик, позволяющих отключить возможность использования различных классов устройств хранения: CD/DVD дисков, флоппи дисков (FDD), USB устройств, ленты и т.д.
- Компакт-диски и DVD-диски: Запретить выполнение (CD and DVD: Deny execute access).
- Компакт-диски и DVD-диски: Запретить чтение (CD and DVD: Deny read access).
- Компакт-диски и DVD-диски: Запретить запись (CD and DVD: Deny write access).
- Специальные классы: Запретить чтение (Custom Classes: Deny read access).
- Специальные классы: Запретить запись (Custom Classes: Deny write access).
- Накопители на гибких дисках: Запретить выполнение (Floppy Drives: Deny execute access).
- Накопители на гибких дисках: Запретить чтение (Floppy Drives: Deny read access).
- Накопители на гибких дисках: Запретить запись (Floppy Drives: Deny write access).
- Съемные диски: Запретить выполнение (Removable Disks: Deny execute access).
- Съемные диски: Запретить чтение (Removable Disks: Deny read access).
- Съемные диски: Запретить запись (Removable Disks: Deny write access).
- Съемные запоминающие устройства всех классов: Запретить любой доступ (All Removable Storage classes: Deny all access).
- Все съемные запоминающие устройства: разрешение прямого доступа в удаленных сеансах (All Removable Storage: Allow direct access in remote sessions).
- Ленточные накопители: Запретить выполнение (Tape Drives: Deny execute access).
- Ленточные накопители: Запретить чтение (Tape Drives: Deny read access).
- Ленточные накопители: Запретить запись (Tape Drives: Deny write access).
- WPD-устройства: Запретить чтение (WPD Devices: Deny read access) – это класс портативных устройств (Windows Portable Device). Включает в себя смартфоны (например, доступ хранилищу Android телефона) , планшеты, плееры и т.д.
- WPD-устройства: Запретить запись (WPD Devices: Deny write access).
Как вы видите, для каждого класса устройств вы можете запретить запуск исполняемых файлов (защита от вирусов), запретить чтение данных и запись/редактирование информации на внешнем носителе.
Максимальная ограничительная политика — All Removable Storage Classes: Deny All Access (Съемные запоминающие устройства всех классов: Запретить любой доступ) – позволяет полностью запретить доступ к любым типам внешних устройств хранения. Чтобы включить эту политику, откройте ее и переведите в состояние Enable .
После настройки политики и обновления параметров GPO на клиентах (gpupdate /force) внешние подключаемые устройства (не только USB устройства, но и любые внешние накопители) будут определять ОС, но при попытке их открыть появится ошибка доступа:
Location is not available_x000D_Drive is not accessible. Access is denied
В этом же разделе политик можно настроить более гибкие ограничения на использование внешних USB накопителей.
К примеру, вы можете запретить запись данных на USB флешки, и другие типы USB накопителей. Для этого включите политику Removable Disk: Deny write access (Съемные диски: Запретить запись).
После этого пользователи смогут читать данные с USB флешки, но при попытке записать на нее информацию, получат ошибку доступа:
Destination Folder Access Denied_x000D_You need permission to perform this action_x000D_
С помощью политики Removable Disks: Deny execute access (Съемные диски: Запретить выполнение) можно запретить запуск исполняемых файлов и скриптов с USB дисков.
Как заблокировать USB накопители только определенным пользователям?
Довольно часто необходимо запретить использовать USB диски всем пользователям компьютера, кроме администраторов.
Проще всего сделать исключение в политике с помощью Security Filtering GPO. Например, вы хотите запретить применять политику блокировки USB к группе администраторов домена.
- Найдите вашу политику Disable USB Access в консоли Group Policy Management;
- В разделе Security Filtering добавьте группу Domain Admins;
- Перейдите на вкладку Delegation , нажмите на кнопкуAdvanced . В редакторе настроек безопасности, укажите что, группе Domain Admins запрещено применять настройки этой GPO ( Apply group policy – Deny).
Может быть другая задача — нужно разрешить использование внешних USB накопителей всем, кроме определённой группы пользователей. Создайте группу безопасности “Deny USB” и добавьте эту группу в настройках безопасности политики. Для этой группы выставите разрешения на чтение и применение GPO, а у группы Authenticated Users или Domain Computers оставить только разрешение на чтение (сняв галку у пункта Apply group policy).
Добавьте пользователей, которым нужно заблокировать доступ к USB флешкам и дискам в эту группу AD.
Запрет доступа к USB накопителям через реестр и GPO
Вы можете более гибко управлять доступом к внешним устройствам с помощью настройки параметров реестра через механизм Group Policy Preferences (GPP). Всем указанным выше политикам соответствуют определенные ключи реестра в ветке HKLM (или HKCU) SOFTWAREPoliciesMicrosoftWindowsRemovableStorageDevices (по умолчанию этого раздела в реестре нет).
- Чтобы включить ту или иную политику нужно создать в указанном ключе новую ветку с именем класса устройств, доступ к которым нужно заблокировать (столбец
- В новой ветке реестра нужно создать REG_DWORD параметром с именем ограничения, которое вы хотите внедрить:
Deny_Read — запретить чтения данных с носителя;
Deny_Write – запретить запись данных;
Deny_Execute — запрет запуска исполняемых файлов. - Задайте значение параметра:
1 — заблокировать указанный тип доступа к устройствам этого класса;
0 – разрешить использования данного класса устройств.
Название параметра GPO | Подветка с именем Device Class GUID | Имя параметра реестра |
Floppy Drives: Deny read access | {53f56311-b6bf-11d0-94f2-00a0c91efb8b} | Deny_Read |
Floppy Drives: Deny write access | {53f56311-b6bf-11d0-94f2-00a0c91efb8b} | Deny_Write |
CD and DVD: Deny read access | {53f56308-b6bf-11d0-94f2-00a0c91efb8b} | Deny_Read |
CD and DVD: Deny write access | {53f56308-b6bf-11d0-94f2-00a0c91efb8b} | Deny_Write |
Removable Disks: Deny read access | {53f5630d-b6bf-11d0-94f2-00a0c91efb8b} | Deny_Read |
Removable Disks: Deny write access | {53f5630d-b6bf-11d0-94f2-00a0c91efb8b} | Deny_Write |
Tape Drives: Deny read access | {53f5630b-b6bf-11d0-94f2-00a0c91efb8b} | Deny_Read |
Tape Drives: Deny write access | {53f5630b-b6bf-11d0-94f2-00a0c91efb8b} | Deny_Write |
WPD Devices: Deny read access | {6AC27878-A6FA-4155-BA85-F98F491D4F33} {F33FDC04-D1AC-4E8E-9A30-19BBD4B108AE} | Deny_Read |
WPD Devices: Deny write access | {6AC27878-A6FA-4155-BA85-F98F491D4F33} {F33FDC04-D1AC-4E8E-9A30-19BBD4B108AE} | Deny_Write |
Вы можете создать эти ключи реестра и параметры вручную. На скриншоте ниже я создал ключ RemovableStorageDevices, а в нем подраздел с именем {53f5630d-b6bf-11d0-94f2-00a0c91efb8b} . С помощью REG_DWORD параметров я запретил запись и запуск исполняемых файлов с USB накопителей.
Чтобы быстро заблокировать чтение и запись данных на USBнакопители в Windows, можно выполнить такой PowerShell скрипт:
$regkey='HKLM:SoftwarePoliciesMicrosoftWindowsRemovableStorageDevices{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}'
$exists = Test-Path $regkey
if (!$exists) {
New-Item -Path 'HKLM:SoftwarePoliciesMicrosoftWindowsRemovableStorageDevices' -Name '{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}' -Force | Out-Null
}
New-ItemProperty -Path $regkey -Name 'Deny_Read -Value 1 -PropertyType 'DWord' -Force | Out-Null
New-ItemProperty -Path $regkey -Name 'Deny_Write' -Value 1 -PropertyType 'DWord' -Force | Out-Null
В доменной среде эти параметры реестра можно централизованно распространить на компьютеры пользователей с помощью GPP. Подробнее настройка параметров реестра через GPO описана в статье Настройка параметров реестра на компьютерах с помощью групповых политик .
Данные ключи реестра и возможности нацеливания политик GPP с помощью Item-level targeting позволят вам гибко применять политики, ограничивающие использование внешних устройств хранения. Вы можете применять политики к определённым группам безопасности AD, сайтам, версиям ОС, OU и другим характеристикам компьютеров (в том числе можно выбирать компьютеры через WMI фильтры ).
Полное отключение драйвера USB накопителей в Windows
Вы можете полностью отключить драйвер USBSTOR (USB Mass Storage Driver), который необходим для корректного определения и монтирования USB устройств хранения.
На отдельно стоящем компьютере вы можете отключить этот драйвер, изменив значение параметра Start (тип запуска) с 3 на 4 . Можно это сделать через PowerShell командой:
Set-ItemProperty "HKLM:SYSTEMCurrentControlSetservicesUSBSTOR" -name Start -Value 4
Перезагрузите компьютер и попробуйте подключить USB накопитель. Теперь он не должен появиться в проводнике или консоли управления дисками, а в диспетчере устройств вы увидите ошибку установки драйвера устройства.
С помощью Group Policy Preferences вы можете отключить запуск драйвера USBSTOR на компьютерах домена. Для этого нужно внести изменения в реестр через GPO.
Эти настройки можно распространить на все компьютеры. Создайте новую групповую политику, назначьте ее на OU с компьютерами и в разделе Computer Configuration -> Preferences -> Windows Settings -> Registry создайте новый параметр со значениями:
- Action : Update
- Hive : HKEY_LOCAK_MACHINE
- Key path : SYSTEMCurrentControlSetServicesUSBSTOR
- Value name : Start
- Value type : REG_DWORD
- Value data : 00000004
История подключения USB накопителей в Windows
В некоторых случая при анализе работы блокирующих политик вам нужно получить информацию об истории подключения USB накопителей к компьютеру.
Чтобы вывести список USB накопителей, подключенных к компьютеру прямо сейчас, выполните такую команду PowerShell:
Get-PnpDevice -PresentOnly | Where-Object { $_.deviceId -match '^USBSTOR' }
Status OK указывает, что данное устройство подключено и работает нормально.
Журнал событий Windows позволяет отслеживать события подключения/отключения USB накопителей.
- Эти события находятся в журнале Event Viewer -> Application and Services Logs -> Windows -> Microsoft-Windows-DriverFrameworks-UserMode -> Operational;
- По умолчанию Windows не сохраняет историю об подключениях. Поэтому вам придется включить вручную ( Enable Log ) или через GPO;
- После этого вы можете использовать событие с EventID 2003 (Pnp or Power Management operation to a particular device) для получения информации о времени подключения USB накопителя и Event ID 2102 (Pnp or Power Management operation to a particular device) о времени отключения флешки:
Forwarded a finished Pnp or Power operation (27, 2) to the lower driver for device SWDWPDBUSENUM_??_USBSTOR#DISK&VEN_UFD_2.0&PROD_SILICON-POWER16G&REV_PMAP#12010208030E6C10D00CE7200A6&0#{53F56307-B6BF-11D0-94F2-00A0C91EFB8B} with status 0x0.
Также вы можете использовать бесплатную утилиту USBDriveLog от Nirsoft которая позволяет вывести в удобном виде всю историю подключения USB флешек и дисков к компьютеру пользователю (выводится информацию об устройстве, серийный номер, производитель, время подключения/отключения, и device id).
Разрешить подключение только определенной USB флешки
В Windows вы можете разрешить подключение только определенных (одобренных) USB флешки к компьютеру.
При подключении любого USB накопителя к компьютеру, драйвер USBSTOR устанавливает устройство и создает в ветке реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumUSBSTOR отдельную ветку. в которой содержится информация о накопителе (например, Disk&Ven_Kingstom&Prod_DT_1010_G2&Rev_1.00
).
Get-ItemProperty –Path HKLM:SYSTEMCurrentControlSetEnumUSBSTOR**| select FriendlyName
Удалите все записи для подключенных ранее USB флешек, кроме тех, которые вам нужны. Затем нужно изменить разрешения на ветку реестра USBSTOR так, чтобы у всех пользователей, в том числе SYSTEM и администраторов, были только права на чтение. В результате при подключении любой USB накопителя, кроме разрешенного, Windows не сможет установить устройство.
Также можно создать и привязать задания планировщика к EventID подключения USB диска к компьютеру и выполнить определенное действие/скрипт (пример запуска процесса при появлении события в Event Viewer ).
Например, вы можете сделать простой PowerShell скрипт, который автоматически отключает любые USB накопителя, если серийный номер не совпадает с заданной в скрипте:
$usbdev = get-wmiobject win32_volume | where{$_.DriveType -eq '2'}
If ($usbdev.SerialNumber –notlike “32SM32846AD”)
{
$usbdev.DriveLetter = $null
$usbdev.Put()
$usbdev.Dismount($false,$false) | Out-Null
}
Таким образом можно организовать простейшую проверку подключаемых ко компьютеру USB флешек.