GNU/Linux >> Belajar Linux >  >> Linux

Tampilkan Riwayat Acara Perangkat USB Menggunakan Usbrip Di Linux

Panduan ini menjelaskan apa itu Usbrip program, cara melacak detail perangkat USB yang tersambung atau terputus dan juga cara menampilkan riwayat peristiwa perangkat USB menggunakan alat Usbrip di Linux.

Pengantar

Saat ini, perangkat USB lazim. Anda harus menggunakan banyak perangkat dengan konektor USB seperti flash drive, drive eksternal, mouse, keyboard, printer, pengisi daya ponsel sepanjang hari, setiap hari. Seperti setiap peristiwa lainnya, sejarah koneksi USB juga dilacak oleh OS Linux. Setiap kali Anda menyambungkan atau memutuskan sambungan perangkat USB, riwayat peristiwa perangkat USB dilacak dan disimpan dalam satu atau beberapa file berikut di sistem Linux Anda:

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

Anda dapat menelusuri file-file ini secara manual untuk mengetahui riwayat koneksi USB Anda atau menggunakan alat yang membantu mengatur artefak USB dengan mudah dalam format kolom-tabel yang rapi. Salah satu alat tersebut untuk melacak riwayat acara USB adalah Usbrip .

Tentang Usbrip

Usbrip adalah alat forensik baris perintah untuk melacak riwayat semua koneksi perangkat USB di Linux. Ini menganalisis data log sistem Anda menggunakan journelctl perintah atau dari file log seperti /var/log/syslog dan /var/log/messages dan menampilkan riwayat peristiwa USB yang dikumpulkan dalam output standar atau file.

Program usbrip melacak artefak perangkat USB dan mencantumkannya di bawah kolom berikut:

  1. Terhubung (tanggal &waktu)
  2. Tuan rumah
  3. VID (ID vendor)
  4. PID (ID produk)
  5. Produk
  6. Produsen
  7. Nomor Seri
  8. Pelabuhan
  9. Terputus" (tanggal &waktu)

Usbrip adalah alat sumber terbuka dan gratis yang ditulis dalam Python 3 . Bagi mereka yang bertanya-tanya, nama Usbrip berasal dari dua kata - USB dan Ripper . Ini bukan USB R.I.P.

Fitur usbrip

Usbrip memiliki beberapa fitur menarik. Saya ingin menyebutkan tiga fitur penting berikut.

1. Temukan akses USB yang tidak sah

Ini adalah tujuan utama dari alat Usbrip. Dengan menggunakan alat usbrip, kami dapat membuktikan bahwa perangkat USB terhubung ke sistem Linux tertentu, oleh pengguna tertentu, dalam interval waktu tertentu. Secara umum, kita dapat menggunakan Usbrip dalam kasus apa pun yang melibatkan perangkat USB.

Seperti yang sudah dinyatakan, Anda dapat mengekspor semua detail koneksi USB dalam JSON mengajukan. Mengapa kami membuang detailnya dalam file JSON? Sebab, kita bisa dengan mudah mencari “peristiwa pelanggaran”. Misalnya, kita bisa membuat file, katakanlah auth.json , dan simpan daftar perangkat USB resmi atau tepercaya dalam file tersebut.

auth.json File dapat digunakan untuk menyelidiki perangkat USB mana yang terhubung dan apakah itu perangkat resmi atau tidak. Dengan cara ini dimungkinkan untuk mengetahui apakah beberapa pengguna telah menyalin sesuatu dari sistem Anda tanpa izin Anda.

Harap diperhatikan bahwa jika Anda menginstal usbrip menggunakan skrip penginstal, auth.json file akan otomatis dibuat di lokasi /var/opt/usbrip/trusted/ pada saat pemasangan. Anda juga dapat membuatnya sendiri di lokasi mana pun yang Anda pilih.

2. Temukan detail perangkat USB

Jika Anda ingin mengetahui detail spesifikasi perangkat USB, Anda dapat dengan mudah mendapatkannya dengan menggunakan VID atau PID-nya. Usbbrip akan mengambil detail vendor, perangkat, dan antarmuka dari usb.ids database dipelihara di http://www.linux-usb.org/ .

3. Cadangkan acara USB

Jika Anda telah menginstal Usbrip secara manual dengan -s (--storages ), Anda dapat secara otomatis mencadangkan acara USB dengan penjadwal crontab.

Sekarang mari kita lihat cara menginstal dan menggunakan Usbrip di Linux untuk mengumpulkan peristiwa koneksi USB.

Instal Usbrip di Linux

Karena Usbrip ditulis dengan Python, kita dapat menginstalnya menggunakan Pip pengelola paket.

$ pip install usbrip

Jika Anda menginstal usbrip dengan pip, beberapa fitur tidak akan tersedia. Untuk mendapatkan semua fitur, Anda harus menginstal usbrip secara manual menggunakan skrip penginstalnya yang disebut install.sh .

Pertama, pastikan Anda telah menginstal prasyarat yang diperlukan:

  • python3-venv
  • p7zip

Di Debian, Ubuntu dan turunannya, Anda dapat menginstalnya seperti yang ditunjukkan di bawah ini:

$ sudo apt install python3-venv p7zip-full

Repositori git clone usbrip:

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

Perintah di atas akan mengkloning isi repositori usbrip dan menyimpannya di direktori bernama "usbrip" di direktori Anda saat ini.

Cd ke direktori usbrip:

$ cd usbrip

Jadikan skrip penginstal sebagai executable:

$ chmod +x ./installers/install.sh

Dan terakhir instal menggunakan perintah:

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

Di sini, kami menggunakan -s tandai untuk mengaktifkan modul penyimpanan. Ini tidak hanya akan menginstal program usbrip, tetapi juga membuat daftar penyimpanan perangkat USB tepercaya, riwayat, dan pelanggaran. Catat kata sandi rahasia Anda. Anda mungkin membutuhkannya nanti.

Setelah penginstalan selesai, Anda dapat menghapus direktori kloning:

$ cd
$ rm -r usbrip/

Tampilkan riwayat acara perangkat USB menggunakan Usbrip di Linux

Sebelum mulai menggunakannya, beri tahu kami daftar opsi umum dan tanda yang tersedia.

1. Mendapatkan bantuan

Untuk melihat bagian bantuan program Usbrip, cukup jalankan:

$ usbrip --help

Contoh keluaran:

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

Seperti yang Anda lihat, ada empat perintah utama, yaitu banner , events , storage , dan ids .

Untuk melihat daftar sub-perintah untuk perintah utama tertentu, jalankan:

$ usbrip <command> --help

Contoh:

$ usbrip events --help

Untuk membuat daftar semua sakelar yang terkait dengan sub-perintah tertentu, misalnya events , jalankan:

$ usbrip events genauth --help

2. Lihat riwayat koneksi perangkat USB

Untuk menampilkan riwayat koneksi perangkat USB, jalankan:

$ usbrip events history

Anda akan ditanya apakah Anda ingin menampilkan riwayat peristiwa USB dalam output standar atau dalam file JSON. Jika Anda ingin menampilkan output, cukup tekan ENTER (yang merupakan default) atau ketik nomor 2 untuk menyimpannya dalam file JSON.

Saya menggunakan output default, maka saya mendapatkan output panjang ini:

                   
         _     {{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

Secara default, Usbrip akan menampilkan hasilnya dalam format kolom tabel. Karena jendela Terminal saya terlalu kecil untuk menampilkan tabel dengan benar, output ditampilkan dalam format daftar. Jika Anda ingin memaksa Usbrip untuk menampilkan hasilnya dalam format kolom tabel, tambahkan -t bendera:

$ usbrip events history -t

Anda dapat menyesuaikan output sesuai keinginan Anda. Dalam contoh berikut, saya menggunakan -q/--quiet bendera untuk menyembunyikan spanduk dan informasi pengguna lainnya, -l/--list untuk menampilkan output dalam format daftar dan -n/--number untuk menampilkan jumlah keluaran tertentu.

$ usbrip events history -ql -n 2

Perintah di atas hanya akan menampilkan 2 latest terbaru Peristiwa riwayat USB tanpa spanduk, pesan info, dan permintaan interaksi pengguna.

Contoh keluaran:

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. Simpan riwayat acara USB dalam file

Alih-alih menampilkan riwayat acara dalam output standar, kita dapat menyimpannya dalam file dengan format JSON.

Untuk melakukannya, jalankan perintah untuk menampilkan riwayat acara USB:

$ usbrip events history

Ketik 2 ketika Anda diminta untuk memilih bagaimana Anda ingin menyimpan output. Anda akan diminta lagi untuk memasukkan lokasi nama file output. Cukup masukkan lokasi pilihan Anda atau tekan ENTER untuk menyimpannya ke file default bernama history.json di $HOME direktori.

                      
         _     {{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

Anda dapat melihat file ini kapan saja menggunakan perintah:

$ usbrip events open history.json

4. Tampilkan riwayat acara perangkat USB eksternal

Untuk menampilkan riwayat koneksi perangkat eksternal, gunakan -e , --external bendera:

$ usbrip events history -q -e

5. Tampilkan riwayat acara USB antara jangka waktu tertentu

Kita bisa menggunakan -d , --date tandai untuk melihat riwayat peristiwa perangkat USB antara periode waktu tertentu. Misalnya, perintah ini menampilkan riwayat peristiwa yang telah terjadi antara Januari 2021 hingga Maret 2021:

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

6. Tampilkan informasi tertentu saja

Anda mungkin tertarik untuk melihat kejadian spesifik dari koneksi USB. Misalnya, perintah berikut akan memberi Anda rincian kolom yaitu Connected, Disconnected, Serial dan Product name only:

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

Di sini, -n 20 option digunakan untuk menampilkan 20 record terbaru.

7. Cari detail perangkat USB tertentu

Anda mungkin tertarik untuk melihat riwayat acara perangkat tertentu. Jika demikian, Anda dapat menggunakan --manufact tandai untuk melihat detail seperti itu:

Dalam contoh berikut, saya telah menampilkan 15 peristiwa terkini dari penerima nirkabel Logitech saya. Saya juga mencantumkan detail hanya 4 kolom yaitu Connected, Disconnected, Serial dan Product.

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

Demikian pula, Anda dapat memfilter acara USB dengan menggabungkan banyak bidang seperti PID, VID, port, nama host, no serial, dll.

8. Buat daftar perangkat USB tepercaya

Untuk membuat daftar perangkat USB resmi, gunakan authgen pilihan:

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

Perintah ini akan menghasilkan daftar perangkat USB tepercaya sebagai file JSON bernama auth.json berisi 10 perangkat pertama yang terhubung pada 29 Maret 2021. Selain itu, file ini hanya akan berisi detail atribut VID dan PID.

9. Telusuri pelanggaran

Jika Anda ingin memeriksa akses USB yang tidak sah, cukup cari melalui auth.json file yang kita buat sebelumnya.

$ sudo usbrip events violations ~/auth.json

Anda juga dapat memfilter output sesuai keinginan Anda.

Contoh:

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

Perintah ini akan mencari riwayat peristiwa dari perangkat USB eksternal untuk pelanggaran berdasarkan daftar perangkat USB tepercaya (~/auth.json) dengan atribut "PID", membatasi peristiwa yang dihasilkan ke peristiwa yang memiliki "ostechnix" sebagai nama host, " Logitech" sebagai produsen, "0123456789" sebagai nomor seri dan menampilkan output sebagai tabel dengan kolom "Terhubung", "Terputus".

Jika perangkat USB muncul di riwayat tetapi tidak di auth.json file, kita dapat mengatakan bahwa ada peristiwa pelanggaran.

Untuk detail penggunaan lebih lanjut, lihat halaman GitHub proyek yang diberikan di bawah ini.


Linux
  1. Kembangkan Aplikasi Jaringan untuk ESP8266 menggunakan Mongoose di Linux

  2. Mengurai riwayat Bash di Linux

  3. Menggunakan pengubah kata dengan riwayat Bash di Linux

  1. Sejarah baris perintah di Linux

  2. Perintah sejarah Linux

  3. Mensimulasikan acara Key Press menggunakan Python untuk Linux

  1. Debug Linux menggunakan ProcDump

  2. Membaca aliran input USB di linux

  3. acara koneksi/putuskan koneksi usb linux