✔️ Отображение истории событий USB-устройств с помощью Usbrip на Linux

Мануал

В этом руководстве объясняется, что такое программа Usbrip, как отслеживать детали подключенных или отключенных USB-устройств, а также как отобразить историю событий USB-устройств с помощью инструмента Usbrip в системах Linux.

Введение

В настоящее время USB-устройства широко распространены.

Вы можете использовать множество устройств с USB-разъемом, таких как флэш-накопитель, внешний накопитель, мышь, клавиатура, принтер, зарядное устройство для мобильного телефона в течение всего дня, каждый день.

Как и любые другие события, история USB-подключений также отслеживается ОС Linux.

Каждый раз, когда вы подключаете или отключаете USB-устройство, история событий USB-устройств отслеживается и сохраняется в одном или нескольких из следующих файлов в вашей системе Linux:

  • /var/log/dmesg
  • /var/log/daemon.log
  • /var/log/kern.log
  • /var/log/syslog
  • /var/log/messages
Вы можете вручную просмотреть эти файлы, чтобы узнать историю USB-подключений, или использовать инструмент, который помогает легко организовать артефакты USB в аккуратном формате с табличными столбцами. Одним из таких инструментов для отслеживания истории событий USB является Usbrip.

Что такое Usbrip

Usbrip – это инструмент для форензики из командной строки для отслеживания истории всех подключений USB-устройств на Linux.

Он анализирует данные логов вашей системы с помощью команды journalctl или из файлов логов, таких как /var/log/syslog и /var/log/messages, и отображает собранную историю событий USB в стандартном выводе stdout или файле.

Программа usbrip отслеживает артефакты USB-устройства и перечисляет их в следующих столбцах:

  • Подключение (дата и время)
  • Хост
  • VID (идентификатор поставщика)
  • PID (идентификатор продукта)
  • Модель
  • Производитель
  • Серийный номер
  • Порт
  • Отключение “(дата и время)

Usbrip – это бесплатный инструмент с открытым исходным кодом, написанный на Python 3.

Для тех, кому интересно, название Usbrip образовано от двух слов – USB и Ripper.

Возможности Usbrip

Usbrip имеет несколько интересных функций.
Я хотел бы отметить следующие три примечательные особенности.

1. Поиск несанкционированного доступа по USB.

Это основная цель инструмента Usbrip.

Используя инструмент usbrip, мы можем доказать, что USB-устройство было подключено к определенной системе Linux определенным пользователем в течение определенного промежутка времени.

В общем, мы можем использовать Usbrip в любых случаях, когда задействованы USB-устройства.

Как уже говорилось, вы можете экспортировать все сведения о USB-соединении в файл JSON.

Почему мы выгружаем детали в файл JSON?

Потому что мы можем легко найти любые «события нарушения».

Например, мы могли бы создать файл, скажем auth.json, и сохранить в нем список авторизованных или доверенных USB-устройств.

Далее файл auth.json можно использовать в целях выяснить, какие USB-устройства были подключены и являются ли они авторизованными устройствами.

Таким образом можно узнать, скопировал ли какой-либо пользователь что-то из вашей системы без вашего разрешения.

Обратите внимание, что если вы устанавливаете usbrip с помощью скрипта установщика, файл auth.json будет автоматически создан в папке /var/opt/usbrip/trust/ во время установки.

Вы также можете сформировать свой собственный путь в любом месте вашей системы.

2. Поиск сведений о USB устройстве

Если вы хотите узнать подробности технических характеристик USB-устройства, вы можете легко получить их, используя его VID или PID.

Usbbrip получит подробную информацию о поставщиках, устройствах и интерфейсах из базы данных usb.ids, которая находится по адресу http://www.linux-usb.org/.

Если вы вручную установили Usbrip с параметром -s (–storages), вы можете автоматически создавать резервные копии событий USB с помощью планировщика crontab.

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

Установка Usbrip на Linux

Поскольку Usbrip написан на Python, мы можем установить его с помощью диспетчера пакетов Pip.
Если вы установили usbrip с помощью pip, некоторые функции будут недоступны.
Чтобы получить все функции, вам следует вручную установить usbrip, используя его установочный скрипт install.sh.
Во-первых, убедитесь, что вы установили необходимые компоненты:
  • python3-venv
  • p7zip

На Debian, Ubuntu и его производных вы можете установить их, как показано ниже:

$ sudo apt install python3-venv p7zip-full
Склонируем Git репозиторий:
$ git clone https://github.com/snovvcrash/usbrip.git usbrip
Сделайте скрипт установщика исполняемым:
Чтобы просмотреть раздел справки программы Usbrip, просто запустите:
Вывод:
usage: usbrip [-h] {banner,events,storage,ids} ...

positional arguments:
  {banner,events,storage,ids}
    banner              show tool banner
    events              work with USB events
    storage             work with USB event storage
    ids                 work with USB IDs

optional arguments:
  -h, --help            show this help message and exit

Как видите, основных команд четыре, а именно – bannereventsstorage, and ids
Чтобы просмотреть список подкоманд для определенной основной команды, запустите:
100%|█████████████████████████████| 912890/912890 [00:05<00:00, 159754.38line/s]

USB-History-Events
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Connected:      2021-03-27 10:16:08
Host:           itsecforu
VID:            0cf3
PID:            3005
Product:        ∅
Manufacturer:   ∅
Serial Number:  ∅
Bus-Port:       1-1.4
Disconnected:   ∅
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Connected:      2021-03-27 11:52:19
Host:           itsecforu
VID:            046d
PID:            c52b
Product:        USB Receiver
Manufacturer:   Logitech
Serial Number:  ∅
Bus-Port:       1-1.2
Disconnected:   ∅
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

3. Как сохранить историю событий USB в файл

Вместо того, чтобы отображать историю событий в стандартном выводе, мы можем сохранить ее в файл в формате JSON.

Для этого запустите команду, чтобы показать историю событий USB:

$ usbrip events history
Введите 2, когда вам будет предложено выбрать, как вы хотите сохранить вывод.
Вам снова будет предложено ввести расположение имени выходного файла.
Просто введите местоположение по вашему выбору или нажмите ENTER, чтобы сохранить его в файле по умолчанию с именем history.json в каталоге $HOME.
                      
         _     {{4}}    {v2.2.2-1}
 _ _ ___| |_ ___[3]___ 
| | |_ -| . |  _[N] . |
|___|___|___|_| [5]  _|
               x[1]_|   https://github.com/snovvcrash/usbrip
                       

[*] Started at 2021-03-29 11:49:40
[11:49:40] [INFO] Trying to run journalctl...
[11:49:41] [INFO] Successfully ran journalctl
[11:49:41] [INFO] Reading journalctl output
100%|███████████████████████████████| 15910/15910 [00:00<00:00, 235574.33line/s]
[?] How would you like your event history list to be generated?

    1. Terminal stdout
    2. JSON-file

[>] Please enter the number of your choice (default 1): 2
[>] Please enter the output file name (default is "history.json"): [11:49:46] [INFO] Generating event history list (JSON) [11:49:46] [INFO] New event history list: "/home/itsecforu/history.json" [*] Shut down at 2021-03-29 11:49:46 [*] Time taken: 0:00:05.852216
Вы можете просмотреть этот файл в любое время, используя команду:
Чтобы показать историю подключений внешних устройств, используйте флаг -e, –external:
$ usbrip events history -q -c conn disconn serial prod --manufact Logitech -n 15
Точно так же вы можете фильтровать события USB, объединив любые поля, такие как PID, VID, port, host name, serialр и т. д.
Чтобы создать список авторизованных USB-устройств, используйте параметр authgen:
Эта команда сгенерирует список доверенных USB-устройств в виде файла JSON с именем auth.json, содержащего первые 10 устройств, подключенных 29 марта 2021 года.
Кроме того, этот файл будет содержать только сведения об атрибутах VID и PID.

9. Поиск нарушений.

Если вы хотите проверить наличие несанкционированного доступа к USB, просто выполните поиск в файле auth.json, который мы создали ранее.

Добавить комментарий