auditor

auditoradalah alat forensik untuk audit integritas cepat yang menggunakan fungsi hash kriptografi .

Mirip dengan alat populer lainnya (fsum, hashdeep, sha256sum, dll.), tetapi dengan fitur untuk membuat audit data digital lebih sederhana dan lebih cepat .

auditorMendukung beberapa algoritma hash. Default-nya adalah sha256, yang direkomendasikan oleh NIST sejak 2015 (lihat Kebijakan NIST tentang Fungsi Hash ).

Secara default, Logothash method diaktifkan, tetapi mode ini dapat dinonaktifkan.

Rantai Integritas

Proses audit yang digunakan auditordidasarkan pada konsep rantai integritas , yang disediakan oleh berkas audit yang menyimpan informasi integritas.

Istilah yang terlibat dalam proses ini adalah:
Audit_FullList: Merupakan berkas audit yang memuat informasi integritas setiap berkas data asli yang diproses.

Stamp: Merupakan informasi integritas sesungguhnya dari Audit_FullListberkas. Stampselalu dihitung ulang dan ditampilkan saat melakukan tindakan yang relevan.

Audit_Stamp: Merupakan berkas audit yang menyimpan Stamp, Audit_FullListsaat berkas itu dibuat.

Rantai Integritas
Gbr.1 - File yang terlibat dalam proses

Rantai integritas diproduksi dalam urutan berikut (dalam perilaku default):

File data di dalamnya input_pathdiproses dan menghasilkan informasi integritas (hash, ukuran, jalur file relatif, dll.) yang disimpan di Audit_FullList.

Audit_FullListjuga diproses, menghasilkan Stamp, yang dicetak di terminal dan disimpan di Audit_Stamp.

Pemeriksaan rantai integritas dilakukan dalam urutan terbalik dari proses di atas, memproses ulang berkas dan memeriksa integritas terhadap berkas audit. Stampjuga dihitung ulang, dicetak di terminal, dan dibandingkan dengan yang disimpan di Audit_Stamp, untuk memverifikasi apakah cocok.

Untuk melanjutkan pembuatan file audit dan memastikan bahwa verifikasi rantai integritas di masa mendatang dilakukan dengan benar dan aman, ikuti langkah-langkah di bawah ini:

  1. Atur berkas data Anda dalam folder tertentu (disebut input_path). Setelah auditor terpasang, buka terminal perintah dan jalankan auditor hash input_path. Secara default, perintah ini akan membuat berkas audit Audit_FullListdan Audit_Stampdi dalam root folder input_path. (Ini dapat diubah jika diperlukan.)
  2. Simpan semua data, termasuk berkas audit, dan cetak isinya Audit_Stampatau tanda tangani berkas ini secara digital .
    Jika Anda melewatkan langkah ini, siapa pun dapat mengubah data dan membuat berkas audit baru, sehingga membahayakan verifikasi integritas. Jika Anda tidak memiliki akses ke printer atau sertifikat digital saat ini, Anda dapat menggunakan otoritas penanda waktu gratis untuk menandatangani berkas secara daring, seperti freetsa.org (menggunakan Tanda Tangan Daring) .
  3. Secara opsional, Anda dapat membuat paket (seperti ZIP, TAR, atau wadah lain) yang berisi berkas data dan berkas audit. Buat beberapa salinan cadangan paket ini di media yang berbeda.
  4. Nantinya, ketika seseorang melakukan pemeriksaan dengan auditor check, rantai integritas yang dijelaskan di atas akan dijalankan. Di akhir proses, data integritas dari Audit_FullListdihitung ulang dan dicetak di terminal dan HARUS sama persis dengan nilai yang dicetak atau ditandatangani secara digital pada langkah sebelumnya. Jika tidak cocok, pemeriksaan integritas tidak valid .
  5. Anda juga dapat memverifikasi integritas setiap berkas data asli menggunakan data di Audit_FullList. Lihat contoh di bagian penggunaan auditor check.

Penggunaan

Lihat Manual Singkat di sini.

Dengan auditorterinstal di sistem Anda, Anda dapat menggunakannya sebagai berikut:

auditor subcommands: informasi
hash
lock
check
info
clone
chkcopy

hashIni adalah langkah pertama audit forensik. Proses ini menghasilkan berkas audit yang memungkinkan verifikasi integritas berkas.

Penggunaan dasar hash subperintah

auditor hash input_path

Ini akan:

  1. File hash input_pathdengan algoritma default ( sha256)
  2. Hasilkan file audit (Jalur default: di dalam root input_path):
    • Audit_FullList: berisi data integritas (hash, ukuran, nama) file dalam input_path. Nama default: _auditor_hashes.txt
    • Audit_Stamp: hanya berisi data integritas Audit_FullList. Nama default: _auditor_stamp.txt. Ini adalah berkas yang perlu dicetak atau ditandatangani secara digital untuk memastikan pemeriksaan semua rantai integritas.
  3. Tampilkan data integritasAudit_FullList
  4. Setelah itu hash, Anda dapat menjalankan checkperintah untuk memverifikasi integritas. Untuk memastikan pemeriksaan integritas dengan benar di masa mendatang, baca bagian Rantai Integritas dan ikuti saran di sana.

Contoh lainnya:

  1. Cukup hasilkan hash, tetapi jangan membuat file apa pun (-l)

    auditor hash input_path -l
  2. Timpa berkas audit (-o), menggunakan disk cepat (-z) dengan algoritma default (berguna dengan disk SSD, agar cepat):

    auditor hash input_path -o -z 
  3. Sama seperti di atas, tetapi dengan mengaktifkan mode ketat, untuk memastikan bahwa SEMUA file di input_path di-hash:

    auditor hash input_path -o -z --strict
  4. Timpa file audit (-o), tanpa menggunakan metode thash (-d):

    auditor hash input_path -o -d 
  5. Timpa file audit (-o), sertakan hanya file txt (-i "**/*.txt") hanya di folder root (-u 1) (tanda -i dan -e menggunakan pola glob, lihat Catatan untuk detail).

    auditor hash input_path -o -i "**/*.txt" -u 1
  6. Timpa file audit (-o), sertakan semua file, kecuali file txt (-e "**/*.txt")

    auditor hash input_path -o -e "**/*.txt" 
  7. Timpa file audit (-o), sertakan hanya file dengan nama "file1.doc" (-i "**/*/file1.doc") dan "file2.xls" (-i "**/*/file2.xls")

    auditor hash input_path -o -i "**/*/file1.doc"  -i "**/*/file2.xls" 
  8. Timpa berkas audit (-o), sertakan SEMUA berkas, kecuali berkas di dalam folder $RECYCLE.BIN dan "Informasi Volume Sistem". Catatan: Karakter $ di $RECYLE.BIN merupakan karakter name dan perlu di-escape dengan karakter \ sebelumnya agar dapat diurai dengan benar!

    auditor hash input_path -o -e "**/\$RECYCLE.BIN/**" -e "**/System Volume Information/**" 
  9. Timpa file audit (-o), sertakan semua file txt (-i "**/*/*.txt"), kecuali yang ada di dalam dir bernama folder1 (-e "**/*/folder1/*")

    auditor hash input_path -z -o -a blake3 -i "**/*/*.txt" -e "**/*/folder1/*" 
  10. Timpa file audit (-o), gunakan fast-disk (-z) dan algoritma 'blake3' (sangat cepat):

    auditor hash input_path -o -z -a blake3
  11. Timpa file audit (-o), gunakan blockSize 10MB dan fungsi hash 'whirlpool'

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

lockBerguna ketika berkas audit yang ada harus dipertahankan. Ini dapat digunakan setelah perintah hash dan mencegah pembuatan berkas audit baru secara tidak sengaja di input_path.

Penggunaan dasar kunci subperintah

auditor lock input_path

Ini akan:

  1. _auditor_lock.txtBuat berkas input_path dengan stempel waktu pembuatan.
  2. Subperintah hash tidak akan dieksekusi pada yang input_pathterkunci.

Untuk membuka kunci input_path, Anda perlu menghapus file secara manual_auditor_lock.txt


)

checkIni adalah langkah kedua dari audit forensik. Langkah ini memeriksa integritas data menggunakan informasi dalam berkas audit dan dapat digunakan setelah hash dilakukan.

Penggunaan dasar subperintah Periksa

auditor check input_path

Ini akan:

  1. Dapatkan file audit (Jalur default: di dalam root input_path):
  2. Gunakan data integritas yang tercantum dalam Audit_Stampdan periksa terhadap Audit_FullList.
  3. Gunakan data integritas yang tercantum dalam Audit_FullListdan periksa terhadap file asli di input_path.
  4. Tampilkan data integritas yang dihitung ulang dari Audit_FullList.

Contoh lainnya:

  1. Periksa dalam mode disk cepat (-z), menggunakan berkas audit default.

    auditor check input_path -z 
  2. Sama seperti di atas, tetapi dengan mengaktifkan mode ketat, untuk memastikan bahwa SEMUA file di input_path diverifikasi.

    auditor check input_path -z --strict
  3. Periksa hanya file txt (-i "**/*.txt"), menggunakan file audit default (tanda -i dan -e menggunakan pola glob, lihat Catatan untuk detail).

    auditor check input_path -i "**/*.txt"
  4. Periksa dalam mode senyap (-q) dan berhenti pada kesalahan pertama (-x), menggunakan berkas audit default.

    auditor check input_path -q -x
  5. Periksa F:\data_path menggunakan file audit dengan nama tertentu. (-f ke <Audit_FullList> dan -s ke <Audit_Stamp>)

    auditor check F:\data_path -f C:\other_path\personal_fullList.txt -s C:\other_path\personal_stamp.txt -q -x 
  6. Periksa integritas hanya satu file di <input_path> terhadap beberapa file audit

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

Catatan: Pemeriksaan auditor kompatibel dengan format fsum.

)

clonedigunakan untuk menyalin data ke dalam input_pathdan dest_pathsekaligus memverifikasi integritas data yang disalin.

Penggunaan dasar subperintah clone

auditor clone input_path dest_path

Ini akan:

  1. Dapatkan file dari input_path, hasilkan data integritas (hash, ukuran, nama);
  2. Salin file ke dest_path;
  3. Periksa integritas file dest_pathterhadap integritas data yang dihasilkan dalam input_path.
  4. Jika berkas audit TIDAK ada, Anda dapat membuatnya di input_pathdan/atau dest_pathdengan opsi -g. Jika berkas audit ada, Anda tidak dapat membuatnya.

Jika terjadi kesalahan, ia akan mencoba lagi (standarnya adalah 3 kali, yang dapat diubah.)

Contoh lainnya:

  1. Dalam mode cakram cepat (-z).

    auditor clone input_path dest_path -z 
  2. Sama seperti di atas, tetapi dengan mengaktifkan mode ketat, untuk memastikan bahwa SEMUA file di input_path dikloning:

    auditor clone input_path dest_path --strict
  3. Dalam mode senyap (-q) dan berhenti pada kesalahan pertama (-x).

    auditor clone input_path dest_path -q -x
  4. Kloning dengan pembuatan file audit di input_path dan dest_path (Lihat Catatan!).

    auditor clone input_path dest_path -g both 
  5. Kloning dengan pembuatan file audit hanya di dest_path.

    auditor clone input_path dest_path -g dest 
  6. Kloning dengan pembuatan file audit hanya di input_path.

    auditor clone input_path dest_path -g input 
  7. Anda dapat menggunakan -i dan/atau -e untuk menyertakan atau mengecualikan file proses (Tidak dapat digunakan dengan --strict).

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

Catatan: Untuk membuat berkas audit, input_pathtidak boleh ada berkas audit (Audit_FullList dan Audit_Stamp)! Hal ini untuk mencegah kebingungan dengan berkas audit yang sudah ada.

Lihat semua opsi dengan auditor clone --help

)


chkcopydigunakan untuk memeriksa data di dalam input_pathterhadap file audit dan menyalin ke dest_path, dan pada saat yang sama memverifikasi integritas data yang disalin di dest_path.

Penggunaan dasar subperintah chkcopy

auditor chkcopy input_path dest_path

Ini akan:

  1. Mendapatkan berkas dari input_pathdan memeriksa integritas data dari berkas audit;
  2. Salin file ke dest_path;
  3. Periksa integritas file terhadap dest_pathdata integritas dari file audit.
  4. Catatan: chkcopy tidak menghasilkan berkas audit!

Jika terjadi kesalahan, ia akan mencoba lagi (standarnya adalah 3 kali, yang dapat diubah.)

Contoh lainnya:

  1. Dalam mode disk cepat (-z) ke disk cepat seperti ssd, m.2, dll.

    auditor chkcopy input_path dest_path -z 
  2. Sama seperti di atas, tetapi dengan mengaktifkan mode ketat, untuk memastikan bahwa SEMUA file di input_path diperiksa dan disalin:

    auditor chkcopy input_path dest_path --strict
  3. Dalam mode senyap (-q) dan berhenti pada kesalahan pertama (-x).

    auditor chkcopy input_path dest_path -q -x
  4. Anda dapat menggunakan -i dan/atau -e untuk menyertakan atau mengecualikan file proses (Tidak dapat digunakan dengan --strict).

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

Catatan: input_path harus memiliki file audit (Audit_FullList / Audit_Stamp)!

)

infoTidak melakukan pemeriksaan integritas hash. Alat ini hanya menguji berkas audit dan isinya input_path, serta menampilkan informasi yang berguna. Dapat digunakan setelah hash dilakukan.

Contoh Info Forensik

auditor info input_path

Ini akan:

  1. Dapatkan file audit (Jalur default: di dalam root input_path):
  2. Verifikasi apakah file audit Audit_Stampada Audit_FullList.
  3. Verifikasi apakah file yang tercantum dalam Audit_Stampdan Audit_FullListada dan ukuran yang tercantum sama dengan yang ada di input_path.
  4. Verifikasi apakah semua file input_pathtercantum dalam Audit_FullList.
  5. Hitung ulang data integritas Audit_FullList dan periksa terhadap file auditAudit_Stamp
  6. Berikan laporan ukuran file dan semua input_path.
)

Catatan

1: Di Windows PowerShell, path dengan nama yang mengandung spasi harus diapit tanda kutip tanpa akhiran tunggal \. Jika diinginkan, gunakan garis miring terbalik ganda di akhiran \\. Hal ini karena garis miring terbalik tunggal lolos dari tanda kutip akhir, dan terminal tidak dapat menginterpretasikan path dengan benar.

Ini Berhasil: "C:\My Data Path" atau"C:\My Data Path\\"

Ini gagal: "C:\My Data Path\"

2: Bendera -i dan -e (pola penyertaan dan pengecualian) menggunakan sintaksis glob. Lihat panduan singkatnya di sini!

Unduh

Unduh dan data integritas biner (di dalam zip):

Penafian: Versi ini auditordisediakan sebagai perangkat lunak tahap pengembangan, TANPA jaminan atau dukungan apa pun , dan gratis hanya untuk penggunaan non-komersial . Gunakan dengan risiko Anda sendiri.

Lisensi: Versi ini auditordilisensikan hanya untuk penggunaan non-komersial . Silakan tinjau ketentuan lisensi lengkap untuk detailnya.

Tambahan

Format file Audit

Format berkas audit sederhana. Setiap baris berisi:

hash_value ?ALGORITHM[<THASH-BlockSize>]|file_size[:hex]*relative_filepath
di mana [ ] bersifat opsional:

hash_value: nilai hash.

ALGORITHM[<THASH-BlockSize>]: ALGORITMA digunakan untuk hash, disimpan dalam huruf kapital untuk menjaga kompatibilitas dengan beberapa alat lain. Parameter dengan <THASH-BlockSize> bersifat opsional, menunjukkan bahwa metode thash dan BlockSize digunakan. BlockSize harus dalam KB, MB, GB, atau TB. Contoh: 10MB.

file_size: Ukuran file asli saat di-hash. Berguna dalam pemeriksaan, untuk meningkatkan kecepatan ketika ukurannya tidak sesuai. Mengapa melakukan hash pada file besar jika sudah diketahui ukurannya tidak sesuai dengan aslinya?

[:hex]: Bendera opsional untuk menunjukkan bahwa jalur berkas dalam format heksadesimal. Hal ini diperlukan karena karakter seperti '\n', '\r', atau '\0' diizinkan di beberapa OS, dan heksadesimal menghindari masalah dalam pemformatan hasil.

relative_filepath: Jalur file relatif dari file yang di-hash.

Contoh 1: menggunakan metode thashdengan algoritma sha256 dan BlockSize 50MB :

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

Contoh 2: menggunakan metode normal, hanya dengan algoritma blake3, dengan jalur file dalam format hex.

7357b67824d086dc53f5e1ded565f500456bea1812783f1fbcddc08fddc3944c ?BLAKE3|2233:hex*1aCb344356e4e2b2b6

Format lain dapat diimplementasikan di masa mendatang.



Tolok ukur

Menggunakan hyperfine , pengujian antara auditor, fsum, rhash dan hashdeep64 dilakukan dan hasilnya ditunjukkan di bawah ini.

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
Punya saran atau menemukan bug? Hubungi kami di: [email protected]