
Отслеживание истории событий USB на GNU/Linux
usbrip (унаследовано от «USB Ripper», не «USB R.I.P.») — это простой инструмент криминалистики с интерфейсом командной строки, позволяющий отслеживать артефакты USB-устройств (т.е. историю USB-событий) на машинах Linux.
Содержание:
usbrip — это небольшая программа, анализирующая данные журналов Linux: вывод journalctl или содержимое файлов /var/log/syslog* (или /var/log/messages*). На основе собранных данных usbrip может строить таблицы истории USB-событий со следующими столбцами:
Кроме того, он также может:
-s* создавать защищённые хранилища (архивы 7-Zip) для автоматического резервного копирования и накопления USB-событий с помощью планировщика cron.Способ 1. Установка через pip:
~$ sudo -H python3 -m pip install -U usbrip
~$ usbrip -h
Способ 2. Установка последней версии с помощью install.sh (рекомендуется, доступны дополнительные функции):
~$ sudo apt install python3-venv p7zip-full -y
~$ git clone https://github.com/snovvcrash/usbrip && cd usbrip
~/usbrip$ sudo -H installers/install.sh
~/usbrip$ cd
~$ usbrip -h

Docker (*ТОЛЬКО ДЕМО!*)
~$ docker run --rm -it snovvcrash/usbrip
usbrip поддерживает два типа временных меток для анализа файлов системного журнала:
"%b %d %H:%M:%S", например "Янв 1 00:00:00"). Этот тип меток не содержит информации о годе."%Y-%m-%dT%H:%M:%S.%f%z", например "1970-01-01T00:00:00.000000-00:00").Если у вас установлен journalctl, то беспокоиться не о чем, так как он может конвертировать метки времени на лету. В противном случае желаемую структуру syslog можно получить, установив формат RSYSLOG_FileFormat в конфигурации rsyslog.
/etc/rsyslog.conf:$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
.conf файл для usbrip:~$ echo '$ActionFileDefaultTemplate RSYSLOG_FileFormat' | sudo tee /etc/rsyslog.d/usbrip.conf
~$ sudo rm -f /var/log/syslog* /var/log/messages*
~$ sudo systemctl restart rsyslog
Сначала usbrip проверит, есть ли возможность сбросить системные события с помощью journalctl как наиболее портативный вариант. Если нет – он будет искать и обрабатывать файлы системных журналов /var/log/syslog* или /var/log/messages*.
storage)Для простоты договоримся, что все команды с префиксом ~/usbrip$ выполняются в каталоге ~/usbrip, который создаётся в результате git clone:
~$ git clone https://github.com/snovvcrash/usbrip
~$ cd usbrip
~/usbrip$ pwd
install.shПомимо установки через pip, usbrip можно установить с помощью пользовательского скрипта installers/install.sh.
При использовании install.sh становятся доступны некоторые дополнительные возможности:
storage – настроить задачу cron для резервного копирования USB-событий по расписанию (пример задачи cron можно найти в usbrip/cron/usbrip.cron).⚠️ Предупреждение: если вы используете планировщик cron, настройте crontab с помощью sudo crontab -e, чтобы принудительно запускать подмодуль storage update от имени root. Пароли хранилищ находятся в /var/opt/usbrip/usbrip.ini и по умолчанию доступны только root.
Для установки usbrip с помощью install.sh используйте:
~/usbrip$ sudo -H installers/install.sh [-l/--local] [-s/--storages]
~/usbrip$ cd
~$ usbrip -h
-l зависимости Python разрешаются из локальных .tar-пакетов (каталог 3rdPartyTools) вместо PyPI.-s устанавливается не только проект usbrip, но также создаются список доверенных USB-устройств, хранилища истории и нарушений.После завершения установки каталог ~/usbrip можно удалить.
При установке с помощью install.sh usbrip использует следующие пути: