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:
- Terhubung (tanggal &waktu)
- Tuan rumah
- VID (ID vendor)
- PID (ID produk)
- Produk
- Produsen
- Nomor Seri
- Pelabuhan
- 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.