GNU/Linux >> Znalost Linux >  >> Linux

Zobrazit historii událostí zařízení USB pomocí Usbrip v systému Linux

Tato příručka vysvětluje, co je Usbrip program, jak sledovat podrobnosti o připojených nebo odpojených zařízeních USB a také jak zobrazit historii událostí zařízení USB pomocí nástroje Usbrip v Linuxu.

Úvod

V dnešní době převládají USB zařízení. Po celý den, každý den byste měli používat spoustu zařízení s USB konektorem, jako je flash disk, externí disk, myš, klávesnice, tiskárna, nabíječka mobilního telefonu. Jako každá jiná událost je historie USB připojení také sledována OS Linux. Kdykoli připojíte nebo odpojíte zařízení USB, historie událostí zařízení USB je sledována a uložena v jednom nebo více z následujících souborů ve vašem systému Linux:

  • /var/log/dmesg
  • /var/log/daemon.log
  • /var/log/kern.log
  • /var/log/syslog
  • /var/log/messages

Tyto soubory můžete ručně procházet a zjistit historii připojení USB nebo použít nástroj, který pomáhá snadno uspořádat artefakty USB do úhledného formátu tabulkového sloupce. Jedním z takových nástrojů pro sledování historie událostí USB je Usbrip .

O Usbrip

Usbrip je forenzní nástroj příkazového řádku pro sledování historie všech připojení USB zařízení v Linuxu. Analyzuje data protokolu vašeho systému pomocí journelctl příkaz nebo ze souborů protokolu, jako je /var/log/syslog a /var/log/messages a zobrazí shromážděnou historii událostí USB ve standardním výstupu nebo souboru.

Program usbrip sleduje artefakty zařízení USB a uvádí je v následujících sloupcích:

  1. Připojeno (datum a čas)
  2. Hostitel
  3. VID (ID dodavatele)
  4. PID (ID produktu)
  5. Produkt
  6. Výrobce
  7. Sériové číslo
  8. Port
  9. Odpojeno“ (datum a čas)

Usbrip je bezplatný a open source nástroj napsaný v Pythonu 3 . Pro ty, kdo by se zajímali, název Usbrip je odvozen od dvou slov - USB a Rozparovač . Nejedná se o USB R.I.P.

Funkce Usbrip

Usbrip má několik zajímavých funkcí. Rád bych zmínil následující tři pozoruhodné funkce.

1. Najděte neautorizovaný přístup USB

To je hlavní účel nástroje Usbrip. Pomocí nástroje usbrip dokážeme, že bylo USB zařízení připojeno ke konkrétnímu linuxovému systému konkrétním uživatelem v určitém časovém intervalu. Obecně můžeme Usbrip použít ve všech případech, kdy se jedná o zařízení USB.

Jak již bylo uvedeno, všechny podrobnosti o připojení USB můžete exportovat do JSON soubor. Proč vypisujeme podrobnosti do souboru JSON? Protože můžeme snadno vyhledat jakékoli „události porušení“. Můžeme například vytvořit soubor, řekněme auth.json a do tohoto souboru uložte seznam autorizovaných nebo důvěryhodných zařízení USB.

auth.json soubor lze použít ke zjištění, která zařízení USB byla připojena a zda se jedná o autorizovaná zařízení či nikoli. Tímto způsobem je možné zjistit, zda některý uživatel nezkopíroval něco z vašeho systému bez vašeho svolení.

Upozorňujeme, že pokud nainstalujete usbrip pomocí instalačního skriptu, auth.json soubor bude automaticky vytvořen v umístění /var/opt/usbrip/trusted/ v době instalace. Můžete si také vytvořit svůj vlastní na libovolném místě podle svého výběru.

2. Najděte podrobnosti o zařízení USB

Pokud chcete znát podrobnosti o specifikaci zařízení USB, můžete je snadno získat pomocí jeho VID nebo PID. Usbbrip načte podrobnosti o dodavatelích, zařízeních a rozhraních z usb.ids databáze spravovaná na http://www.linux-usb.org/ .

3. Zálohování událostí USB

Pokud jste ručně nainstalovali Usbrip s -s (--storages ), můžete automaticky zálohovat události USB pomocí plánovače crontab.

Nyní se podívejme, jak nainstalovat a používat Usbrip v Linuxu ke shromažďování událostí připojení USB.

Nainstalujte Usbrip v Linuxu

Protože je Usbrip napsán v Pythonu, můžeme jej nainstalovat pomocí Pip správce balíčků.

$ pip install usbrip

Pokud jste nainstalovali usbrip s pip, některé funkce nebudou dostupné. Chcete-li získat všechny funkce, měli byste ručně nainstalovat usbrip pomocí jeho instalačního skriptu s názvem install.sh .

Nejprve se ujistěte, že jste nainstalovali nezbytné předpoklady:

  • python3-venv
  • p7zip

Na Debian, Ubuntu a jeho deriváty je můžete nainstalovat, jak je uvedeno níže:

$ sudo apt install python3-venv p7zip-full

Git klon usbrip úložiště:

$ git clone https://github.com/snovvcrash/usbrip.git usbrip

Výše uvedený příkaz naklonuje obsah úložiště usbrip a uloží jej do adresáře s názvem „usbrip“ ve vašem aktuálním adresáři.

Cd do adresáře usbrip:

$ cd usbrip

Vytvořte instalační skript jako spustitelný:

$ chmod +x ./installers/install.sh

A nakonec jej nainstalujte pomocí příkazu:

$ sudo -H ./installers/install.sh -s

Zde jsme použili -s příznak pro povolení modulu úložiště. Tím se nejen nainstaluje program usbrip, ale také se vytvoří seznam důvěryhodných zařízení USB, historie a úložiště porušení. Poznamenejte si své tajné heslo. Možná to budete potřebovat později.

Po dokončení instalace můžete odstranit klonovaný adresář:

$ cd
$ rm -r usbrip/

Zobrazit historii událostí zařízení USB pomocí Usbrip v systému Linux

Než jej začnete používat, seznamte se se seznamem obecných možností a dostupných příznaků.

1. Získání nápovědy

Chcete-li zobrazit sekci nápovědy programu Usbrip, jednoduše spusťte:

$ usbrip --help

Ukázkový výstup:

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

Jak vidíte, existují čtyři hlavní příkazy, konkrétně banner , events , storage a ids .

Chcete-li zobrazit seznam dílčích příkazů pro konkrétní hlavní příkaz, spusťte:

$ usbrip <command> --help

Příklad:

$ usbrip events --help

Chcete-li zobrazit seznam všech přepínačů souvisejících s konkrétním dílčím příkazem, například events , spustit:

$ usbrip events genauth --help

2. Zobrazení historie připojení zařízení USB

Chcete-li zobrazit historii připojení zařízení USB, spusťte:

$ usbrip events history

Budete dotázáni, zda chcete zobrazit historii událostí USB ve standardním výstupu nebo v souboru JSON. Pokud chcete zobrazit výstup, jednoduše stiskněte ENTER (což je výchozí nastavení) nebo zadejte číslo 2 uložit do souboru JSON.

Použil jsem výchozí výstup, takže dostanu tento dlouhý výstup:

                   
         _     {{4}}    {v2.2.2-1}
 _ _ ___| |_ ___[e]___ 
| | |_ -| . |  _[n] . |
|___|___|___|_| [5]  _|
               x[1]_|   https://github.com/snovvcrash/usbrip
                       

[*] Started at 2021-03-27 14:28:31
[14:28:31] [INFO] Trying to run journalctl...
[14:29:10] [INFO] Successfully runned journalctl
[14:29:11] [INFO] Reading journalctl output
100%|█████████████████████████████| 912197/912197 [00:04<00:00, 188838.07line/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): 1
[14:29:48] [INFO] Preparing collected events
[14:29:48] [WARNING] Terminal window is too small to display table properly
[14:29:48] [WARNING] Representation: list

USB-History-Events
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Connected:      2020-12-26 21:24:23
Host:           ostechnix
VID:            0cf3
PID:            3002
Product:        ∅
Manufacturer:   ∅
Serial Number:  ∅
Bus-Port:       1-1.4
Disconnected:   2020-12-26 21:24:24
.
.
.
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Connected:      2021-03-27 11:52:19
Host:           ostechnix
VID:            046d
PID:            c52b
Product:        USB Receiver
Manufacturer:   Logitech
Serial Number:  ∅
Bus-Port:       1-1.2
Disconnected:   ∅
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[*] Shut down at 2021-03-27 14:29:48
[*] Time taken: 0:01:17.624936

Ve výchozím nastavení zobrazí Usbrip výsledek ve formátu tabulkového sloupce. Protože je moje okno Terminálu příliš malé na správné zobrazení tabulky, výstup se zobrazí ve formátu seznamu. Pokud chcete, aby Usbrip přesto zobrazoval výsledek ve formátu tabulkového sloupce, přidejte -t příznak:

$ usbrip events history -t

Výstup si můžete upravit podle svého. V následujícím příkladu jsem použil -q/--quiet příznak pro potlačení banneru a dalších uživatelských informací, -l/--list pro zobrazení výstupu ve formátu seznamu a -n/--number pro zobrazení určitého počtu výstupů.

$ usbrip events history -ql -n 2

Výše uvedený příkaz zobrazí pouze nejnovější 2 Události historie USB bez banneru, informační zprávy a výzvy k interakci uživatele.

Ukázkový výstup:

100%|█████████████████████████████| 912890/912890 [00:05<00:00, 159754.38line/s]

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

3. Uložte historii událostí USB do souboru

Místo zobrazení historie událostí ve standardním výstupu ji můžeme uložit do souboru ve formátu JSON.

Chcete-li tak učinit, spusťte příkaz k zobrazení historie událostí USB:

$ usbrip events history

Zadejte 2, když se zobrazí výzva k výběru způsobu uložení výstupu. Znovu budete požádáni o zadání umístění názvu výstupního souboru. Jednoduše zadejte umístění podle svého výběru nebo stiskněte ENTER pro uložení do výchozího souboru s názvem history.json v $HOME adresář.

                      
         _     {{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/ostechnix/history.json"
[*] Shut down at 2021-03-29 11:49:46
[*] Time taken: 0:00:05.852216

Tento soubor můžete kdykoli zobrazit pomocí příkazu:

$ usbrip events open history.json

4. Zobrazit historii událostí externích zařízení USB

Chcete-li zobrazit historii připojení externích zařízení, použijte -e , --external příznak:

$ usbrip events history -q -e

5. Zobrazit historii událostí USB mezi konkrétním časovým rámcem

Můžeme použít -d , --date příznak pro zobrazení historie událostí zařízení USB mezi určitým časovým obdobím. Tento příkaz například zobrazí historii událostí, které se odehrály mezi lednem 2021 a březnem 2021:

 $ usbrip events history -q -d '2021-01-01' '2021-03-29'

6. Zobrazit pouze určité informace

Možná vás bude zajímat zobrazení konkrétních událostí připojení USB. Například následující příkaz vám poskytne podrobnosti o sloupcích, jmenovitě Připojeno, Odpojeno, Sériové a Pouze název produktu:

$ usbrip events history -q -c conn disconn serial prod -n 20

Zde -n 20 možnost se používá k zobrazení posledních 20 záznamů.

7. Vyhledejte podrobnosti o konkrétních zařízeních USB

Možná vás bude zajímat zobrazení historie událostí konkrétního zařízení. Pokud ano, můžete použít --manufact příznak pro zobrazení těchto podrobností:

V následujícím příkladu jsem zobrazil 15 nedávných událostí mého bezdrátového přijímače Logitech. Také jsem uvedl podrobnosti pouze o 4 sloupcích, jmenovitě Connected, Disconnected, Serial a Product.

$ usbrip events history -q -c conn disconn serial prod --manufact Logitech -n 15

Podobně můžete filtrovat události USB zkombinováním mnoha polí, jako je PID, VID, port, název hostitele, sériové číslo atd.

8. Vygenerujte seznam důvěryhodných zařízení USB

Chcete-li vytvořit seznam autorizovaných zařízení USB, použijte authgen možnost:

$ sudo usbrip events genauth ~/auth.json -a vid pid -n 10 -d '2021-03-29'

Tento příkaz vygeneruje seznam důvěryhodných zařízení USB jako soubor JSON s názvem auth.json obsahující prvních 10 zařízení připojených 29. března 2021. Tento soubor bude také obsahovat pouze podrobnosti o atributech VID a PID.

9. Hledejte porušení

Chcete-li zkontrolovat, zda nedošlo k neoprávněnému přístupu k USB, jednoduše vyhledejte soubor auth.json soubor, který jsme vytvořili dříve.

$ sudo usbrip events violations ~/auth.json

Výstup můžete také filtrovat podle svých představ.

Příklad:

$ sudo usbrip events violations ~/auth.json -a pid -et --host ostechnix --manufact Logitech --serial 0123456789 -c conn disconn

Tento příkaz prohledá historii událostí externích zařízení USB pro porušení na základě seznamu důvěryhodných zařízení USB (~/auth.json) podle atributu "PID", omezí výsledné události na ty, které mají "ostechnix" jako název hostitele, " Logitech“ jako výrobce, „0123456789“ jako sériové číslo a výstup zobrazí jako tabulku se sloupci „Připojeno“, „Odpojeno“.

Pokud se zařízení USB objeví v historii, ale ne v auth.json soubor, můžeme říci, že došlo k události porušení.

Další podrobnosti o použití najdete na stránce projektu GitHub uvedené níže.


Linux
  1. Jak zakázat přístup k zápisu na zařízení USB pomocí nástroje „hdparm“.

  2. Simulace události Key Press pomocí Pythonu pro Linux

  3. Čtení vstupního USB datového proudu na linuxu

  1. událost linux usb connect/disconnect

  2. Zvýšit rychlost dotazování USB na všech zařízeních v linuxu?

  3. Použití více USB webových kamer v Linuxu

  1. Vyvíjejte síťové aplikace pro ESP8266 pomocí Mongoose v Linuxu

  2. Jak vypálit soubor ISO na USB disk v Linuxu pomocí Etcher

  3. Analýza historie Bash v Linuxu