Гид по технологиям

Защита от вредоносных USB: USBGuard и аппаратные фильтры

7 min read IT безопасность Обновлено 04 Jan 2026
Защита от вредоносных USB — USBGuard и фильтры
Защита от вредоносных USB — USBGuard и фильтры

защита USB на Linux, общий вид порта и флешки

USB (Universal Serial Bus) — удобный стандарт для обмена данными и подключения периферии. Определение: USB — стандарт для подключения устройств и передачи питания и данных в одном разъёме.

Почему это важно: USB-накопители и периферия часто используются как векторы атак. Они могут не только передавать вредоносный код, но и повредить аппаратно, например, USB Killer подаёт всплески напряжения и выводит из строя порт или материнскую плату.

В этой статье вы найдёте практические рекомендации, настройку USBGuard в Linux, аппаратные решения, метод принятия решений и чек-листы для пользователей и администраторов.

Краткие правила безопасности

  • Не вставляйте найденные на полу флешки.
  • Не подключайте носители от незнакомых людей.
  • Просите коллег отправлять файлы через облако или защищённые каналы.
  • Предпочитайте флешки от проверенных производителей (Samsung, SanDisk и т. п.).
  • Не оставляйте включённый компьютер без присмотра.

Важно: эти простые правила закрывают множество распространённых сценариев атак, но не все.

Что такое USB Killer и BadUSB

  • USB Killer — аппаратный прибор, который заряжает встроенные конденсаторы от порта и возвращает высокий импульс напряжения в USB, что может выжечь порт или материнскую плату. Это физический вектор повреждения.
  • BadUSB — программно-аппаратная атака, при которой устройство перепрограммирует свою микропрошивку и эмулирует, например, клавиатуру или сетевой адаптер. Оно может ввести команды от лица пользователя или перенаправить трафик.

Оба вектора опасны, но требуют разных мер защиты: аппаратные решения против USB Killer, программные — против BadUSB.

Защита BIOS и доступ к загрузке

Если кто-то получает физический доступ к машине, он может загрузиться с флешки и получить доступ к незащищённым данным. Простая защита — пароль на BIOS/UEFI.

Что даёт пароль BIOS: при включении компьютера система потребует пароль ещё до выбора опций загрузки. Это предотвращает загрузку с произвольных внешних носителей.

Как включить: найдите в документации к вашему компьютеру комбинацию клавиш для входа в BIOS/UEFI (часто Delete, F2 или Esc). В разделе Security задайте пароль администратора и запретите загрузку с внешних устройств или включите Secure Boot.

Важно: если вы забудете пароль BIOS, восстановление может потребовать вмешательства сервисного центра. Храните пароли в менеджере паролей.

Программная защита: USBGuard для Linux

USBGuard — утилита для управления доступом USB-устройств в Linux. Она позволяет реализовать белые и чёрные списки, блокировать новые устройства по умолчанию и разрешать только доверенные.

Коротко: USBGuard сканирует подключаемое устройство и сверяет его с набором правил. Если устройство не соответствует правилам — подключение блокируется; если соответствует — разрешается.

Установка в Ubuntu 16.10 и новее:

sudo apt install usbguard

Генерация начальной политики и её правка:

usbguard generate-policy > rules.conf
nano rules.conf

Команды установки и запуска службы:

sudo install -m 0600 -o root -g root rules.conf /etc/usbguard/rules.conf
sudo systemctl restart usbguard

Принцип работы на практике:

  1. После включения политики любые новые устройства будут обнаруживаться, но блокироваться до тех пор, пока вы явно не разрешите их.
  2. С помощью lsusb вы находите идентификаторы устройства (Vendor:Product), имя и серийный номер.
  3. Добавляете специфичную запись в /etc/usbguard/rules.conf и перезапускаете службу.

Пример специфичных правил:

allow 0781:5151 name "SanDisk Corp. Cruzer Micro Flash Drive" serial "0001234567" via-port "1-2"
reject via-port "1-2"

Объяснение: первая строка разрешает устройство с конкретным id, именем и серийником только на порту 1-2. Вторая строка запрещает любые другие устройства на этом порту.

Примечание: USBGuard использует возможности ядра Linux и обладает тонкой системой фильтрации. Изучите документацию проекта для продвинутых опций.

Проверка: от детектирования до разрешения

  • Подключите флешку и выполните lsusb, чтобы увидеть её id.
  • По умолчанию при работе USBGuard устройство будет обнаружено, но не смонтировано.
  • Добавьте соответствующую allow-запись в /etc/usbguard/rules.conf.
  • Перезапустите службу usbguard и переподключите устройство — оно станет доступным.

список lsusb в Ubuntu с выделенным устройством SanDisk

файловый менеджер Ubuntu без смонтированного устройства

правила USBGuard в файле конфигурации

графический интерфейс USBGuard показывает разрешённое устройство

Аппаратные меры против USB Killer и BadUSB

Программные фильтры не защитят от целенаправленного физического всплеска напряжения. Для аппаратной защиты рассмотрите следующие варианты:

  1. Бюджетный USB-хаб. Подключите сомнительные устройства через недорогой USB-хаб. Если устройство окажется USB Killer, пострадает хаб, а не ноутбук.
  2. Аппаратный фильтр/USG (USB Security Gate). Это inline-устройство, которое фильтрует взаимодействие USB-устройства с компьютером, оставляя только безопасные протоколы и данные.
  3. Специализированные блоки питания и изоляция портов в критических системах. В промышленных или высокозащищённых средах можно использовать ограничители мощности и аппаратную изоляцию.

USG аппаратный фильтр между флешкой и компьютером

Преимущества аппаратных решений: они защищают от электрических повреждений и блокируют эмуляцию устройств на уровне физического интерфейса.

Когда меры кажутся избыточными

Контекст важен. Если вы единственный пользователь домашнего ноутбука и никогда не подключаете внешние флешки — жёсткие политики и аппаратные фильтры могут быть излишни.

Противопоказания для жёстких мер:

  • Домашний ПК с ограниченным риском физического доступа.
  • Среда, где удобство важнее безопасности (например, временный демонстрационный стенд).

Тем не менее, базовые правила (не вставлять найденные флешки, обновлять ОС, использовать антивирус/анти-malware) полезны всегда.

Поток принятия решений (Mermaid)

flowchart TD
  A[Есть физический доступ к машине?] -->|Нет| B[Базовые правила: не подключать незнакомые носители]
  A -->|Да| C[Оцени риск данных и стоимость замены оборудования]
  C --> D{Ценны данные или общедоступный доступ?}
  D -->|Да| E[Заблокировать загрузку с USB в BIOS; установить пароль UEFI]
  D -->|Да| F[Развернуть USBGuard; запретить новые устройства]
  D -->|Да| G[Использовать аппаратные фильтры/USG и резервирование портов]
  D -->|Нет| H[Оставить гибкие политики; обучить пользователей]

Этот простой поток помогает выбрать между мягкой и жёсткой политикой в зависимости от риска.

Ролевые чек-листы

Чек-лист для обычного пользователя:

  • Не подключать найденные или незнакомые флешки.
  • Отправлять/получать файлы через облачные хранилища.
  • Блокировать сессию при уходе от компьютера (Win+L в Windows).
  • Хранить резервные копии важных данных.

Чек-лист для системного администратора:

  • Включить пароль BIOS/UEFI для критичных машин.
  • Развернуть USBGuard или аналогичный агент на Linux-серверах.
  • Подготовить whitelist устройств и зарегистрировать серийники.
  • Использовать аппаратные фильтры в публичных точках доступа и стендах.
  • Регулярно тестировать и обновлять правила.

Чек-лист для команды безопасности:

  • Оценить impact от физического доступа и стоимостные риски.
  • Разработать и задокументировать политику работы с внешними носителями.
  • Обучить сотрудников и проводить периодические аудиты.
  • Внедрить инвентаризацию USB-устройств и процессы одобрения.

Мини-SOP: быстрая инструкция для админа

  1. Обновите систему и установите usbguard.
  2. Сгенерируйте политику: usbguard generate-policy > rules.conf.
  3. Прочитайте и отредактируйте rules.conf, убрав нежелательные устройства.
  4. Установите права и скопируйте файл в /etc/usbguard.
  5. Перезапустите службу: sudo systemctl restart usbguard.
  6. Добавьте журналирование и оповещения при попытке подключить запрещённые устройства.

Критерии приёмки:

  • Новые USB-устройства блокируются по умолчанию.
  • Авторизованные устройства подключаются корректно.
  • Попытки подключения запрещённых устройств логируются.

Тесты и критерии приёмки

Тест 1: Подключение незарегистрированной флешки

  • Ожидание: устройство обнаружено, но не смонтировано; событие логируется.

Тест 2: Разрешение конкретной флешки

  • Ожидание: после добавления записи в rules.conf и перезапуска usbguard устройство монтируется и доступно.

Тест 3: Имитация BadUSB (в контролируемой среде)

  • Ожидание: эмуляция клавиатуры/сетевой карты не получает права исполнить команды; подключение ограничено правами политики.

Тест 4: Аппаратная защита от электрического импульса

  • Ожидание: при подаче импульса через испорченное устройство поврежден первым USB-хаб или фильтр, а не основная машина.

Не проводите тесты, которые могут вывести оборудование из строя в продуктивной среде.

Контрпримеры и ограниченности мер

  • USBGuard не защитит от USB Killer, потому что он физически повреждает порт. Для этого нужны аппаратные фильтры.
  • Аппаратный фильтр не защитит от внутреннего пользователя с правами администратора, который намеренно вставляет вредоносное устройство.
  • Ограничение по портам (via-port) полезно, но требует строгой дисциплины при использовании оборудования и смене расположения портов.

Резюме и ключевые выводы

  • USB остаётся удобным, но опасным интерфейсом: угроза — и программная, и аппаратная.
  • Простые правила поведения покрывают большинство инцидентов.
  • Для защиты данных и предотвращения удалённого выполнения команд используйте USBGuard и политику whitelist.
  • Для защиты от электрических атак применяйте аппаратные фильтры или дешёвые USB-хабы между сомнительным устройством и машиной.
  • Определяйте меры по риску: чем ценнее данные и шире физический доступ — тем строже защита.

Важно: комбинируйте программные и аппаратные меры для всесторонней защиты.

Часто задаваемые вопросы

Чем USBGuard отличается от антивируса?

USBGuard управляет доступом к USB-устройствам на уровне системы и ядра. Антивирус ищет вредоносный код в файловой системе. Они дополняют друг друга.

Защитит ли VPN от атак через USB?

Нет. VPN защищает сетевой трафик. Атаки через USB — локальный вектор и требуют локальных мер защиты.

Нужно ли разрешать все устройства по серийному номеру?

Рекомендуется указывать серийный номер для наиболее критичных устройств, чтобы предотвратить подмену. Однако это усложняет администрирование и требует учёта смен и замен устройств.


Image Credits: Marek R. Swadzba via Shutterstock; Frantisek Keclik/Shutterstock

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство