auditor

auditorهي أداة جنائية للتدقيق السريع في سلامة البيانات والتي تستخدم وظائف التجزئة التشفيرية .

إنه مشابه لأدوات شائعة أخرى (fsum، hashdeep، sha256sum، وما إلى ذلك)، ولكنه يتميز بميزات تجعل تدقيق البيانات الرقمية أبسط وأسرع .

auditorيدعم العديد من خوارزميات التجزئة. الإعداد الافتراضي هو sha256، وهو ما توصي به NIST منذ عام ٢٠١٥ (انظر سياسة NIST لوظائف التجزئة ).

افتراضيا، Logothash method تم تمكينه، ولكن يمكن تعطيل هذا الوضع.

سلسلة النزاهة

تعتمد عملية التدقيق المستخدمة auditorعلى مفهوم سلسلة النزاهة ، والتي توفرها ملفات التدقيق التي تخزن معلومات النزاهة.

المصطلحات المشاركة في هذه العملية هي:
Audit_FullList: هو ملف التدقيق الذي يحتوي على معلومات سلامة كل ملف بيانات أصلي تمت معالجته.

Stamp: هي معلومات سلامة الملف الفعلية Audit_FullList. Stampيتم إعادة حسابها دائمًا وعرضها عند تنفيذ الإجراءات ذات الصلة.

Audit_Stamp: هو ملف التدقيق الذي يخزن Stamp، Audit_FullListعند إنشائه.

سلسلة النزاهة
الشكل 1 - الملفات المشاركة في العملية

يتم إنتاج سلسلة النزاهة بالترتيب التالي (في السلوك الافتراضي):

يتم معالجة ملفات البيانات الموجودة بالداخل input_pathوتوليد معلومات السلامة (التجزئة والحجم والمسار النسبي للملف وما إلى ذلك) التي يتم تخزينها في Audit_FullList.

Audit_FullListيتم أيضًا معالجة ذلك، وتوليده Stamp، والذي يتم طباعته في المحطة الطرفية وتخزينه في Audit_Stamp.

يتم إجراء فحص سلسلة النزاهة بالترتيب العكسي للعملية أعلاه، إعادة معالجة الملفات والتحقق من النزاهة مقابل ملفات التدقيق. Stampيتم أيضًا إعادة حساب سلسلة النزاهة وطباعتها في المحطة الطرفية ومقارنتها بتلك المخزنة في Audit_Stamp، للتحقق مما إذا كانت تتطابق.

للمتابعة في إنشاء ملفات التدقيق والتأكد من إجراء التحقق المستقبلي لسلسلة النزاهة بشكل صحيح وآمن، اتبع الخطوات التالية:

  1. نظّم ملفات بياناتك في مجلد مُحدّد (يُشار إليه باسم input_path). بعد تثبيت Auditor، افتح نافذة الأوامر وشغّل الأمر auditor hash input_path. افتراضيًا، سيُنشئ هذا الأمر ملفات التدقيق Audit_FullListداخل Audit_Stampجذر مجلد input_path. (يمكن تغيير هذا عند الحاجة).
  2. احفظ جميع البيانات، بما في ذلك ملفات التدقيق، واطبع محتويات هذا الملف Audit_Stampأو وقّعه رقميًا .
    إذا تخطيت هذه الخطوة، فقد يُغيّر أي شخص البيانات ويُنشئ ملفات تدقيق جديدة، مما يُعرّض سلامة البيانات للخطر. إذا لم يكن لديك طابعة أو شهادة رقمية حاليًا، يمكنك استخدام أداة ختم زمني مجانية لتوقيع الملف عبر الإنترنت، مثل freetsa.org (باستخدام التوقيع الإلكتروني) .
  3. اختياريًا، يمكنك إنشاء حزمة (مثل ZIP أو TAR أو أي حاوية أخرى) تتضمن ملفات بياناتك وملفات التدقيق. أنشئ نسخًا احتياطية متعددة من هذه الحزمة على وسائط تخزين مختلفة.
  4. لاحقًا، عند إجراء فحص باستخدام auditor check، يتم تنفيذ سلسلة السلامة الموضحة أعلاه. في نهاية العملية، Audit_FullListتُعاد حساب بيانات السلامة من وطباعتها في الجهاز، ويجب أن تتطابق تمامًا مع القيمة المطبوعة أو الموقعة رقميًا في الخطوة السابقة. في حال عدم التطابق، يكون فحص السلامة غير صالح .
  5. يمكنك أيضًا التحقق من سلامة ملفات البيانات الأصلية الفردية باستخدام البيانات الموجودة في Audit_FullList. راجع الأمثلة في قسم الاستخدام في auditor check.

الاستخدام

شاهد الدليل القصير هنا.

بعد auditorتثبيته على نظامك، يمكنك استخدامه على النحو التالي:

auditor subcommands: معلومات
hash
lock
check
info
clone
chkcopy

hashهي الخطوة الأولى في التدقيق الجنائي. تُنشئ ملفات تدقيق تسمح بالتحقق من سلامة الملفات.

الاستخدام الأساسي للأمر الفرعي hash

auditor hash input_path

هذا سوف:

  1. تجزئة الملفات input_pathباستخدام الخوارزمية الافتراضية ( sha256)
  2. إنشاء ملفات التدقيق (المسار الافتراضي: داخل جذر input_path):
    • Audit_FullList: يحتوي على بيانات سلامة الملفات (التجزئة، الحجم، الاسم) في input_path. الاسم الافتراضي: _auditor_hashes.txt
    • Audit_Stamp: يحتوي فقط على بيانات سلامة Audit_FullList. الاسم الافتراضي: _auditor_stamp.txt. هذا هو الملف الذي يجب طباعته أو توقيعه رقميًا لضمان التحقق من سلامة سلسلة البيانات بأكملها.
  3. إظهار بيانات سلامةAudit_FullList
  4. بعد ذلك hash، يمكنك تنفيذ checkأمر للتحقق من السلامة. لضمان التحقق من السلامة بشكل صحيح مستقبلًا، اقرأ قسم " سلسلة السلامة" واتبع النصائح الواردة فيه.

أمثلة أخرى:

  1. قم فقط بإنشاء التجزئات، ولكن لا تقم بإنشاء أي ملفات (-l)

    auditor hash input_path -l
  2. استبدل ملفات التدقيق (-o)، باستخدام القرص السريع (-z) مع الخوارزمية الافتراضية (مفيد مع أقراص SSD، ليكون سريعًا):

    auditor hash input_path -o -z 
  3. نفس ما ورد أعلاه، ولكن مع تمكين الوضع الصارم، للتأكد من أن جميع الملفات في input_path تم تجزئةها:

    auditor hash input_path -o -z --strict
  4. الكتابة فوق ملفات التدقيق (-o)، دون استخدام طريقة thash (-d):

    auditor hash input_path -o -d 
  5. قم باستبدال ملفات التدقيق (-o)، وقم بتضمين ملفات txt فقط (-i "**/*.txt") فقط في المجلد الجذر (-u 1) (العلم -i و-e يستخدمان نمط glob، راجع الملاحظات للتفاصيل).

    auditor hash input_path -o -i "**/*.txt" -u 1
  6. استبدال ملفات التدقيق (-o)، تضمين جميع الملفات، باستثناء ملفات txt (-e "**/*.txt")

    auditor hash input_path -o -e "**/*.txt" 
  7. استبدال ملفات التدقيق (-o)، تضمين الملفات التي تحمل اسم "file1.doc" فقط (-i "**/*/file1.doc") و"file2.xls" (-i "**/*/file2.xls")

    auditor hash input_path -o -i "**/*/file1.doc"  -i "**/*/file2.xls" 
  8. استبدل ملفات التدقيق (-o)، وقم بتضمين جميع الملفات، باستثناء الملفات الموجودة داخل المجلدين $RECYCLE.BIN و"معلومات وحدة تخزين النظام". ملاحظة: ينتمي الحرف $ في $RECYLE.BIN إلى الاسم، ويجب تجاوزه بعلامة char \ قبله، ليتم تحليله بشكل صحيح!

    auditor hash input_path -o -e "**/\$RECYCLE.BIN/**" -e "**/System Volume Information/**" 
  9. استبدال ملفات التدقيق (-o)، تضمين جميع ملفات txt (-i "**/*/*.txt")، باستثناء تلك الموجودة داخل الدليل المسمى folder1 (-e "**/*/folder1/*")

    auditor hash input_path -z -o -a blake3 -i "**/*/*.txt" -e "**/*/folder1/*" 
  10. استبدل ملفات التدقيق (-o)، واستخدم القرص السريع (-z) والخوارزمية 'blake3' (سريعة جدًا):

    auditor hash input_path -o -z -a blake3
  11. استبدل ملفات التدقيق (-o)، واستخدم blockSize 10MB ودالة التجزئة "whirlpool"

    auditor hash input_path -o -b 10MB -a whirlpool
)

lockيُفيد عند الحاجة إلى حفظ ملفات التدقيق الحالية. يُمكن استخدامه في أمر التجزئة بعد التجزئة، ويمنع إنشاء ملفات تدقيق جديدة عن طريق الخطأ في input_path.

الاستخدام الأساسي لقفل الأمر الفرعي

auditor lock input_path

هذا سوف:

  1. _auditor_lock.txtإنشاء ملف input_path مع ختم زمني للإنشاء.
  2. لن يتم تنفيذ الأمر الفرعي Hash على input_pathالقفل.

لإلغاء القفل input_path، يجب عليك حذف الملف يدويًا_auditor_lock.txt


)

checkهي الخطوة الثانية من التدقيق الجنائي. يتم فيها التحقق من سلامة البيانات باستخدام المعلومات الموجودة في ملفات التدقيق، ويمكن استخدامها بعد إجراء التجزئة.

الاستخدام الأساسي للأمر الفرعي Check

auditor check input_path

هذا سوف:

  1. الحصول على ملفات التدقيق (المسار الافتراضي: داخل جذر input_path):
  2. استخدم بيانات النزاهة المدرجة في Audit_Stampوتحقق منها Audit_FullList.
  3. استخدم بيانات السلامة المدرجة في الملف Audit_FullListوتحقق منها باستخدام الملفات الأصلية الموجودة في input_path.
  4. إظهار بيانات سلامة إعادة الحساب لـ Audit_FullList.

أمثلة أخرى:

  1. قم بالتحقق في وضع القرص السريع (-z)، باستخدام ملفات التدقيق الافتراضية.

    auditor check input_path -z 
  2. نفس ما ورد أعلاه، ولكن مع تمكين الوضع الصارم، للتأكد من التحقق من جميع الملفات الموجودة في input_path.

    auditor check input_path -z --strict
  3. قم بالتحقق من ملفات txt فقط (-i "**/*.txt")، باستخدام ملفات التدقيق الافتراضية (العلامة -i و-e لاستخدام نمط glob، راجع الملاحظات للتفاصيل).

    auditor check input_path -i "**/*.txt"
  4. قم بإجراء فحص في الوضع الهادئ (-q) وأوقف عند أول خطأ (-x)، باستخدام ملفات التدقيق الافتراضية.

    auditor check input_path -q -x
  5. التحقق من F:\data_path باستخدام ملفات التدقيق بأسماء محددة. (-f إلى <Audit_FullList> و-s إلى <Audit_Stamp>)

    auditor check F:\data_path -f C:\other_path\personal_fullList.txt -s C:\other_path\personal_stamp.txt -q -x 
  6. التحقق من سلامة ملف واحد فقط في <input_path> مقابل بعض ملفات التدقيق

    auditor check F:\data_path\file1.txt -f C:\other_path\some_audit.txt -q -x 

ملحوظة: فحص المدقق متوافق مع تنسيق fsum.

)

cloneيتم استخدامه لنسخ البيانات داخل الجهاز input_pathوفي dest_pathنفس الوقت التحقق من سلامة البيانات المنسوخة.

الاستخدام الأساسي لاستنساخ الأمر الفرعي

auditor clone input_path dest_path

هذا سوف:

  1. الحصول على الملفات من input_path، إنشاء بيانات السلامة (التجزئة، الحجم، الاسم)؛
  2. نسخ الملفات إلى dest_path؛
  3. التحقق من سلامة الملفات dest_pathمقابل بيانات السلامة التي تم إنشاؤها في input_path.
  4. إذا لم تكن ملفات التدقيق موجودة، يمكنك إنشاؤها input_pathباستخدام dest_pathالخيار -g. أما إذا كانت ملفات التدقيق موجودة، فلا يمكنك إنشاؤها.

في حالة حدوث خطأ، سيتم إعادة المحاولة (الافتراضي هو 3 مرات، ويمكن تغيير ذلك.)

أمثلة أخرى:

  1. في وضع القرص السريع (-z).

    auditor clone input_path dest_path -z 
  2. نفس ما ورد أعلاه، ولكن مع تمكين الوضع الصارم، للتأكد من استنساخ كافة الملفات الموجودة في input_path:

    auditor clone input_path dest_path --strict
  3. في الوضع الهادئ (-q) والتوقف عند الخطأ الأول (-x).

    auditor clone input_path dest_path -q -x
  4. الاستنساخ مع إنشاء ملفات التدقيق في كل من input_path وdest_path (راجع الملاحظات!).

    auditor clone input_path dest_path -g both 
  5. الاستنساخ مع إنشاء ملفات التدقيق فقط في dest_path.

    auditor clone input_path dest_path -g dest 
  6. الاستنساخ مع إنشاء ملفات التدقيق فقط في input_path.

    auditor clone input_path dest_path -g input 
  7. يمكنك استخدام -i و/أو -e لتضمين أو استبعاد ملفات العملية (لا يمكن استخدامها مع --strict).

    auditor clone input_path dest_path -q -x -i "**/*.txt" -e "**/dir1/**/*

ملاحظة: لإنشاء ملفات تدقيق، input_pathلا يُسمح باستخدام ملفات تدقيق (Audit_FullList وAudit_Stamp)! هذا لتجنب أي لبس مع ملفات التدقيق الموجودة.

انظر جميع الخيارات مع نسخة المدقق --help

)


chkcopyيتم استخدامه للتحقق من البيانات الموجودة داخل input_pathملفات التدقيق ونسخها إلى dest_path، وفي نفس الوقت التحقق من سلامة البيانات المنسوخة في dest_path.

الاستخدام الأساسي للأمر الفرعي chkcopy

auditor chkcopy input_path dest_path

هذا سوف:

  1. الحصول على الملفات من input_pathملفات التدقيق والتحقق من سلامة البيانات منها؛
  2. نسخ الملفات إلى dest_path؛
  3. التحقق من سلامة الملفات dest_pathمقابل بيانات السلامة من ملفات التدقيق.
  4. ملاحظة: chkcopy لا يولد ملفات التدقيق!

في حالة حدوث خطأ، سيتم إعادة المحاولة (الافتراضي هو 3 مرات، ويمكن تغيير ذلك.)

أمثلة أخرى:

  1. في وضع القرص السريع (-z) للأقراص السريعة مثل SSD، وM.2، وما إلى ذلك.

    auditor chkcopy input_path dest_path -z 
  2. نفس ما ورد أعلاه، ولكن مع تمكين الوضع الصارم، للتأكد من فحص جميع الملفات الموجودة في input_path ونسخها:

    auditor chkcopy input_path dest_path --strict
  3. في الوضع الهادئ (-q) والتوقف عند الخطأ الأول (-x).

    auditor chkcopy input_path dest_path -q -x
  4. يمكنك استخدام -i و/أو -e لتضمين أو استبعاد ملفات العملية (لا يمكن استخدامها مع --strict).

    auditor clone input_path dest_path -q -x -i "**/*.txt" -e "**/dir1/**/*

ملاحظة: input_path يجب أن يكون لديك ملفات التدقيق (Audit_FullList / Audit_Stamp)!

)

infoلا يُجري فحصًا لسلامة التجزئة. إنه يختبر ملفات التدقيق ومحتوياتها فقط، input_pathويُظهر معلومات مفيدة. يُمكن استخدامه بعد إجراء التجزئة.

مثال على المعلومات الجنائية

auditor info input_path

هذا سوف:

  1. الحصول على ملفات التدقيق (المسار الافتراضي: داخل جذر input_path):
  2. Audit_Stampالتحقق من وجود ملفات التدقيق Audit_FullList.
  3. تحقق مما إذا كانت الملفات المدرجة في Audit_Stampو Audit_FullListموجودة والحجم المدرج هو نفسه الموجود في input_path.
  4. input_pathتأكد من إدراج جميع الملفات الموجودة في Audit_FullList.
  5. إعادة حساب بيانات السلامة Audit_FullList والتحقق منها في ملف التدقيقAudit_Stamp
  6. إعطاء تقرير عن حجم الملفات وجميع مسارات الإدخال.
)

ملحوظات

١: في ويندوز باور شيل، يجب وضع المسارات التي تحتوي أسماؤها على مسافات بين علامتي اقتباس دون استخدام النهاية المفردة \. إذا أردت، استخدم الشرطة المائلة العكسية المزدوجة في النهاية \\. هذا لأن الشرطة المائلة العكسية المفردة تتخطى علامات الاقتباس النهائية، ولا يستطيع الطرفية تفسير المسار بشكل صحيح.

هذا يعمل: "C:\My Data Path" أو"C:\My Data Path\\"

هذا يفشل: "C:\My Data Path\"

٢: يستخدم العلمان -i و-e (أنماط التضمين والاستبعاد) صيغة glob. اطلع على دليل مختصر هنا!

تحميل

تنزيل بيانات سلامة الملفات الثنائية (داخل ملف zip):

إخلاء المسؤولية: هذا الإصدار auditorمُقدّم كبرنامج في مرحلة التطوير، دون أي ضمان أو دعم من أي نوع ، وهو مجاني للاستخدام غير التجاري فقط . استخدمه على مسؤوليتك الخاصة.

الترخيص: هذا الإصدار auditorمُرخّص للاستخدام غير التجاري فقط . يُرجى مراجعة شروط الترخيص الكاملة لمزيد من التفاصيل.

إضافات

تنسيق ملفات التدقيق

تنسيق ملفات التدقيق بسيط. يحتوي كل سطر على:

hash_value ?ALGORITHM[<THASH-BlockSize>]|file_size[:hex]*relative_filepath
حيث [ ] اختيارية:

hash_value:قيمة التجزئة.

ALGORITHM[<THASH-BlockSize>]:الخوارزمية المستخدمة للتجزئة، تُخزَّن بأحرف كبيرة لضمان التوافق مع أدوات أخرى. معامل <THASH-BlockSize> اختياري، ويشير إلى استخدام طريقة التجزئة وحجم الكتلة. يجب أن يكون حجم الكتلة بالكيلوبايت، أو الميجابايت، أو الجيجابايت، أو التيرابايت. مثال: 10 ميجابايت.

file_sizeحجم الملف الأصلي عند تجزئته. مفيد للتحقق، لتحسين السرعة عند عدم تطابق الحجم. لماذا تُجزأ ملفات كبيرة الحجم مع العلم أن حجمها لا يتطابق مع حجم الملف الأصلي؟

[:hex]علامة اختيارية للإشارة إلى أن مسارات الملفات بتنسيق سداسي عشري. هذا ضروري لأن بعض أنظمة التشغيل تسمح باستخدام أحرف مثل '\n' أو '\r' أو '\0'، كما أن التنسيق السداسي عشري يجنب مشاكل تنسيق النتائج.

relative_filepath:المسار النسبي للملف المجزأ.

المثال 1: استخدام الطريقة thashمع خوارزمية sha256 وحجم الكتلة 50 ميجابايت:

281d5d93464f1165ea7c403ca99d63ff4bf9a360864f8df4bd0e8e6c03774e98 ?SHA256<THASH-50MB>|500000*file_hashed.bin

المثال 2: استخدام الطريقة العادية، فقط مع الخوارزمية blake3، مع مسار الملف بتنسيق سداسي عشري.

7357b67824d086dc53f5e1ded565f500456bea1812783f1fbcddc08fddc3944c ?BLAKE3|2233:hex*1aCb344356e4e2b2b6

يمكن تنفيذ تنسيقات أخرى في المستقبل.



المعايير

باستخدام hyperfine ، الاختبارات بين auditorتم إجراء fsum وrhash وhashdeep64 وتم عرض النتائج أدناه.

Machine configs:
S.O.: Windows 11 Home 64bits
Processor: AMD Ryzen 7 (7800X3D 4.20 GHz)
RAM: 64 GB of RAM (Corsair Vengeance DDR5 64GB - 5200MHz)
Disk: SSD M.2 2TB (Corsair MP600 Pro NVMe)

Data Source 1:
Benchmarks
Benchmarks using Data Source 1: Benchmarks
Data Source 2
Benchmarks
Benchmarks using Data Source 2: Benchmarks
هل لديك اقتراحات أو وجدتَ خطأً؟ تواصل معنا على: [email protected]