
تتبع تاريخ أحداث USB على GNU/Linux
usbrip (موروث من "USB Ripper"، وليس "USB R.I.P.") هو أداة بسيطة للأدلة الجنائية بواجهة سطر أوامر تتيح لك تتبع أثر أجهزة USB (أي سجل أحداث USB) على أجهزة لينكس.
جدول المحتويات:
usbrip هو برنامج صغير يحلل بيانات سجلات لينكس: مخرجات 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"، مثال "Jan 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 كجذر. كلمات مرور التخزين محفوظة في /var/opt/usbrip/usbrip.ini ولا يمكن الوصول إليها إلا من قبل الجذر بشكل افتراضي.
لتثبيت 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 المسارات التالية:
/opt/usbrip/ – الدليل الرئيسي للمشروع./var/opt/usbrip/log/ – سجلات cron لـ usbrip./var/opt/usbrip/storage/ – مخازن أحداث USB (history.7z و violations.7z، يتم إنشاؤها أثناء عملية التثبيت)./var/opt/usbrip/trusted/ – قوائم أجهزة USB الموثوقة (auth.json، يتم إنشاؤها أثناء عملية التثبيت)./var/opt/usbrip/usbrip.ini – ملف تكوين usbrip (يحتوي على كلمات مرور لمخازن 7-Zip)./usr/local/bin/usbrip – رابط رمزي إلى السكريبت /opt/usbrip/venv/bin/usbrip.يمكن تعيين مهام cron على النحو التالي:
~/usbrip$ sudo crontab -l > tmpcron && echo "" >> tmpcron
~/usbrip$ cat usbrip/cron/usbrip.cron | tee -a tmpcron
~/usbrip$ sudo crontab tmpcron
~/usbrip$ rm tmpcron
uninstall.shيقوم السكريبت installers/uninstall.sh بإزالة usbrip وجميع آثار التثبيت من نظامك.
لإلغاء تثبيت usbrip استخدم:
~/usbrip$ sudo installers/uninstall.sh [-a/--all]
-a، لا يتم حذف دليل مشروع usbrip فحسب، بل يتم أيضًا حذف جميع المخازن وسجلات usbrip.لا تنس إزالة مهمة cron إذا كنت قد قمت بإعدادها.