auditor

auditorkriptografik karma fonksiyonlarını kullanan hızlı bütünlük denetimi için bir adli araçtır .

Diğer popüler araçlara (fsum, hashdeep, sha256sum vb.) benzerdir, ancak dijital veri denetimini daha basit ve hızlı hale getiren özelliklere sahiptir .

auditorÇeşitli karma algoritmalarını destekler. Varsayılan değer sha256, NIST tarafından 2015'ten beri önerilen değerdir (bkz. NIST Karma Fonksiyonları Politikası ).

Varsayılan olarak, Logothash method etkinleştirilmiştir, ancak bu mod devre dışı bırakılabilir.

Dürüstlük Zinciri

Kullanılan denetim süreci, bütünlük bilgilerini depolayan denetim dosyaları tarafından sağlanan bütünlük zinciriauditor kavramına dayanmaktadır .

Bu süreçte yer alan terimler şunlardır:
Audit_FullList: İşlenen her orijinal veri dosyasının bütünlük bilgilerini içeren denetim dosyasıdır.

Stamp: Dosyanın gerçek bütünlük bilgileridir Audit_FullList. Stampİlgili eylemler gerçekleştirilirken her zaman yeniden hesaplanır ve gösterilir. : Oluşturulduğunda depolanan

Audit_Stampdenetim dosyasıdır .StampAudit_FullList

Dürüstlük Zinciri
Şekil 1 - İşleme dahil olan dosyalar

Bütünlük zinciri aşağıdaki sırayla üretilir (varsayılan davranışta):

İçerisindeki veri dosyaları input_pathişlenir ve . içinde saklanan bütünlük bilgileri (karma, boyut, göreceli dosya yolu, vb.) üretilir Audit_FullList.

Audit_FullListAyrıca işlenerek üretilir ve Stampterminalde yazdırılır ve 'de saklanır Audit_Stamp.

Bütünlük zincirinin kontrolü, yukarıdaki işlemin tersi sırayla , yani dosyaların yeniden işlenmesi ve denetim dosyalarına göre bütünlüğün kontrol edilmesiyle yapılır. Ayrıca, yeniden hesaplanır, terminalde yazdırılır ve eşleşip eşleşmediğini doğrulamak için Stampdepolananla karşılaştırılır .Audit_Stamp

Denetim dosyalarının oluşturulmasına devam etmek ve bütünlük zincirinin gelecekteki doğrulamasının doğru ve güvenli bir şekilde gerçekleştirilmesini sağlamak için aşağıdaki adımları izleyin:

  1. Veri dosyalarınızı belirli bir klasörde (olarak adlandırılır input_path) düzenleyin. Audit yüklüyken bir komut terminali açın ve komutunu çalıştırın . Varsayılan olarak, bu komut denetim dosyalarını ve input_path klasörünün kök dizinini auditor hash input_patholuşturur . (Gerekirse bu değiştirilebilir.) Audit_FullListAudit_Stamp
  2. Denetim dosyaları da dahil olmak üzere tüm verileri kaydedin ve bu dosyanın içeriğini yazdırınAudit_Stamp veya dijital olarak imzalayın .
    Bu adımı atlarsanız, herhangi biri verileri değiştirebilir ve yeni denetim dosyaları oluşturarak bütünlük doğrulamasını tehlikeye atabilir. Şu anda bir yazıcıya veya dijital sertifikaya erişiminiz yoksa, dosyayı çevrimiçi olarak imzalamak için freetsa.org gibi ücretsiz bir zaman damgası yetkilisi kullanabilirsiniz (Çevrimiçi İmza kullanarak) .
  3. İsteğe bağlı olarak, hem veri dosyalarınızı hem de denetim dosyalarınızı içeren bir paket (örneğin ZIP, TAR veya başka bir kapsayıcı) oluşturabilirsiniz. Bu paketin farklı ortamlarda birden fazla yedek kopyasını oluşturun.
  4. Daha sonra, birisi ile bir kontrol gerçekleştirdiğinde auditor check, yukarıda açıklanan bütünlük zinciri yürütülür. İşlemin sonunda, bütünlük verileri Audit_FullListyeniden hesaplanır ve terminalde yazdırılır ve bir önceki adımda yazdırılan veya dijital olarak imzalanan değerle tam olarak eşleşmesi GEREKİR. Eşleşmiyorsa, bütünlük kontrolü geçersizdir .
  5. Ayrıca, içindeki verileri kullanarak bireysel orijinal veri dosyalarının bütünlüğünü de doğrulayabilirsiniz Audit_FullList. Kullanım bölümündeki örneklere bakın auditor check.

Kullanım

Kısa Kılavuzu burada görebilirsiniz.

Sisteminize kurduktan sonra auditoraşağıdaki şekilde kullanabilirsiniz:

auditor subcommands: bilgi
hash
lock
check
info
clone
chkcopy

hashAdli denetimin ilk adımıdır. Dosya bütünlüğünün doğrulanmasına olanak tanıyan denetim dosyaları oluşturur.

Alt komut karma işleminin temel kullanımı

auditor hash input_path

Bu:

  1. input_pathVarsayılan algoritma ile dosyaları karıştırın ( sha256)
  2. Denetim dosyalarını oluştur (Varsayılan yol: kök dizinin içinde input_path):
    • Audit_FullList: . içindeki dosyaların bütünlük verilerini (karma, boyut, ad) içerir input_path. Varsayılan ad: _auditor_hashes.txt
    • Audit_Stamp: yalnızca 'nin bütünlük verilerini içerir Audit_FullList. Varsayılan ad: _auditor_stamp.txt. Bu, tüm bütünlük zincirinin kontrolünü sağlamak için yazdırılması veya dijital olarak imzalanması gereken dosyadır.
  3. Bütünlük verilerini gösterAudit_FullList
  4. Ardından hash, bütünlüğü doğrulamak için komut verebilirsiniz check. Gelecekte bütünlük kontrolünü doğru bir şekilde sağlamak için Bütünlük Zinciri bölümünü okuyun ve oradaki tavsiyeleri izleyin.

Diğer örnekler:

  1. Sadece karma değerleri üretin, ancak herhangi bir dosya oluşturmayın (-l)

    auditor hash input_path -l
  2. Varsayılan algoritmayla hızlı bir disk (-z) kullanarak denetim dosyalarının üzerine yaz (-o) (SSD disklerde hızlı olması açısından kullanışlıdır):

    auditor hash input_path -o -z 
  3. Yukarıdakiyle aynı, ancak input_path'deki TÜM dosyaların karıştırıldığından emin olmak için sıkı mod etkinleştirilmiş:

    auditor hash input_path -o -z --strict
  4. Thash metodunu (-d) kullanmadan denetim dosyalarının üzerine yaz (-o):

    auditor hash input_path -o -d 
  5. Denetim dosyalarının üzerine yaz (-o), yalnızca kök klasördeki (-u 1) yalnızca txt dosyalarını ekle (-i "**/*.txt") (işaret -i ve -e glob desenini kullanır, Ayrıntılar için Notlar bölümüne bakın).

    auditor hash input_path -o -i "**/*.txt" -u 1
  6. Denetim dosyalarının üzerine yaz (-o), txt dosyaları hariç tüm dosyaları dahil et (-e "**/*.txt")

    auditor hash input_path -o -e "**/*.txt" 
  7. Denetim dosyalarının üzerine yaz (-o), yalnızca "file1.doc" (-i "**/*/file1.doc") ve "file2.xls" (-i "**/*/file2.xls") adlı dosyaları dahil et

    auditor hash input_path -o -i "**/*/file1.doc"  -i "**/*/file2.xls" 
  8. Denetim dosyalarının üzerine yaz (-o), $RECYCLE.BIN ve "Sistem Birim Bilgileri" klasörleri içindeki dosyalar hariç TÜM dosyaları dahil et. Dikkat! $RECYLE.BIN içindeki $ karakteri name'e aittir ve doğru şekilde ayrıştırılabilmesi için önüne bir \ karakteri eklenmesi gerekir!

    auditor hash input_path -o -e "**/\$RECYCLE.BIN/**" -e "**/System Volume Information/**" 
  9. Denetim dosyalarının üzerine yaz (-o), tüm txt dosyalarını dahil et (-i "**/*/*.txt"), folder1 adlı dizin hariç (-e "**/*/folder1/*")

    auditor hash input_path -z -o -a blake3 -i "**/*/*.txt" -e "**/*/folder1/*" 
  10. Denetim dosyalarının üzerine yaz (-o), hızlı disk (-z) ve 'blake3' algoritmasını kullan (çok hızlı):

    auditor hash input_path -o -z -a blake3
  11. Denetim dosyalarının üzerine yaz (-o), blockSize 10MB ve 'whirlpool' karma işlevini kullan

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

lockMevcut denetim dosyalarının korunması gerektiğinde kullanışlıdır. After hash komutunda kullanılabilir ve . 'de yanlışlıkla yeni denetim dosyalarının oluşturulmasını önleyebilir input_path.

Alt komut kilidinin temel kullanımı

auditor lock input_path

Bu:

  1. _auditor_lock.txtOluşturma zaman damgası olan bir dosya oluşturun input_path .
  2. Kilitli bir dosya üzerinde hash alt komutu çalıştırılmayacaktır input_path.

Kilidi açmak için input_pathdosyayı manuel olarak silmeniz gerekir_auditor_lock.txt


)

checkAdli denetimin ikinci adımıdır. Denetim dosyalarındaki bilgileri kullanarak verilerin bütünlüğünü kontrol eder ve karma işlemi gerçekleştirildikten sonra kullanılabilir.

Alt komut Kontrolü'nün temel kullanımı

auditor check input_path

Bu:

  1. Denetim dosyalarını al (Varsayılan yol: kök dizinin içinde input_path):
  2. Listelenen bütünlük verilerini kullanın Audit_Stampve bunlarla karşılaştırın Audit_FullList.
  3. Listelenen bütünlük verilerini kullanın Audit_FullListve orijinal dosyalarla karşılaştırın input_path.
  4. Yeniden hesaplanan bütünlük verilerini göster Audit_FullList.

Diğer örnekler:

  1. Varsayılan denetim dosyalarını kullanarak hızlı disk modunda (-z) kontrol edin.

    auditor check input_path -z 
  2. Yukarıdakiyle aynı, ancak input_path'deki TÜM dosyaların doğrulandığından emin olmak için sıkı mod etkinleştirildi.

    auditor check input_path -z --strict
  3. Yalnızca txt dosyalarını (-i "**/*.txt"), varsayılan denetim dosyalarını kullanarak kontrol edin (işaret -i ve -e glob desenini kullanır, Ayrıntılar için Notlar bölümüne bakın).

    auditor check input_path -i "**/*.txt"
  4. Sessiz modda kontrol et (-q) ve ilk hatada dur (-x), varsayılan denetim dosyalarını kullan.

    auditor check input_path -q -x
  5. Belirli adlara sahip denetim dosyalarını kullanarak F:\data_path'i kontrol edin. (-f <Audit_FullList> için ve -s <Audit_Stamp> için)

    auditor check F:\data_path -f C:\other_path\personal_fullList.txt -s C:\other_path\personal_stamp.txt -q -x 
  6. <input_path> içindeki yalnızca bir dosyanın bütünlüğünü bazı denetim dosyalarına karşı denetle

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

Not: Denetçi denetimi fsum formatıyla uyumludur.

)

cloneinput_pathİçerisindeki verileri kopyalamak dest_pathve aynı zamanda kopyalanan verilerin bütünlüğünü doğrulamak için kullanılır .

Alt komut klonunun temel kullanımı

auditor clone input_path dest_path

Bu:

  1. Dosyaları al input_path, bütünlük verilerini (karma, boyut, ad) üret;
  2. Dosyaları şuraya kopyala dest_path;
  3. Dosyaların bütünlüğünü, . dest_pathdosyasında oluşturulan bütünlük verileriyle karşılaştırarak kontrol edin input_path.
  4. input_pathDenetim dosyaları mevcut DEĞİLSE, bunları ve/veya -g seçeneğiyle oluşturabilirsiniz dest_path. Denetim dosyaları mevcutsa, bunları oluşturamazsınız.

Hata durumunda tekrar denenecektir (Varsayılan 3 defadır, değiştirilebilir.)

Diğer örnekler:

  1. Hızlı disk modunda (-z).

    auditor clone input_path dest_path -z 
  2. Yukarıdakiyle aynı, ancak input_path'deki TÜM dosyaların klonlandığından emin olmak için sıkı mod etkinleştirilmiş:

    auditor clone input_path dest_path --strict
  3. Sessiz modda (-q) ve ilk hatada dur (-x).

    auditor clone input_path dest_path -q -x
  4. Hem input_path hem de dest_path'de denetim dosyalarının oluşturulmasıyla klonlama (Notlara bakın!).

    auditor clone input_path dest_path -g both 
  5. Sadece dest_path'de denetim dosyalarının oluşturulmasıyla klonlama.

    auditor clone input_path dest_path -g dest 
  6. Sadece input_path'de denetim dosyalarının oluşturulmasıyla klonlama.

    auditor clone input_path dest_path -g input 
  7. İşlem dosyalarını dahil etmek veya hariç tutmak için -i ve/veya -e seçeneğini kullanabilirsiniz (--strict ile kullanılamaz).

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

Notlar: Denetim dosyaları oluşturmak için input_pathdenetim dosyalarına (Audit_FullList ve Audit_Stamp) sahip olamazsınız! Bu, mevcut denetim dosyalarıyla karışıklığı önlemek içindir.

Auditor clone --help ile tüm seçenekleri görün

)


chkcopyinput_path, içindeki verileri denetim dosyalarıyla karşılaştırıp 'e kopyalamak dest_pathve aynı zamanda kopyalanan verilerin bütünlüğünü doğrulamak için kullanılır dest_path.

chkcopy alt komutunun temel kullanımı

auditor chkcopy input_path dest_path

Bu:

  1. Denetim dosyalarından dosyaları alın input_pathve bütünlük verileriyle karşılaştırın;
  2. Dosyaları şuraya kopyala dest_path;
  3. Dosyaların bütünlüğünü dest_pathdenetim dosyalarındaki bütünlük verileriyle karşılaştırarak kontrol edin.
  4. Not: chkcopy denetim dosyaları oluşturmaz!

Hata durumunda tekrar denenecektir (Varsayılan 3 defadır, değiştirilebilir.)

Diğer örnekler:

  1. Hızlı disk modunda (-z) ssd, m.2 vb. gibi hızlı diskler için.

    auditor chkcopy input_path dest_path -z 
  2. Yukarıdakiyle aynı, ancak input_path'deki TÜM dosyaların kontrol edildiğinden ve kopyalandığından emin olmak için sıkı mod etkinleştirilmiş:

    auditor chkcopy input_path dest_path --strict
  3. Sessiz modda (-q) ve ilk hatada dur (-x).

    auditor chkcopy input_path dest_path -q -x
  4. İşlem dosyalarını dahil etmek veya hariç tutmak için -i ve/veya -e seçeneğini kullanabilirsiniz (--strict ile kullanılamaz).

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

Not: input_path Denetim dosyalarının (Audit_FullList / Audit_Stamp) olması zorunludur!

)

infoKarma bütünlük kontrolü yapmaz. Yalnızca denetim dosyalarını ve içeriklerini test eder input_pathve faydalı bilgiler gösterir. Karma işlemi gerçekleştirildikten sonra kullanılabilir.

Adli Bilgi Örneği

auditor info input_path

Bu:

  1. Denetim dosyalarını al (Varsayılan yol: kök dizinin içinde input_path):
  2. Denetim dosyalarının mevcut olup Audit_Stampolmadığını doğrulayın Audit_FullList.
  3. Listelenen dosyaların var olup olmadığını Audit_Stampve Audit_FullListlistelenen boyutların . dosyasındakiyle aynı olup olmadığını doğrulayın input_path.
  4. Tüm dosyaların listelendiğini input_pathdoğrulayın Audit_FullList.
  5. Denetim dosyasının bütünlük verilerini yeniden hesaplayın Audit_FullList ve kontrol edinAudit_Stamp
  6. Dosyaların ve tüm input_path'lerin boyutunun raporunu verin.
)

Notlar

1: Windows PowerShell'de, boşluk içeren adlara sahip yollar, tek son eki olmadan tırnak işaretleri içine alınmalıdır \. İsterseniz, son ekinde çift ters eğik çizgi kullanın \\. Bunun nedeni, tek ters eğik çizginin son tırnak işaretlerini atlaması ve terminalin yolu doğru şekilde yorumlayamamasıdır.

Bu işe yarıyor: "C:\My Data Path" veya"C:\My Data Path\\"

Bu başarısız olur: "C:\My Data Path\"

2: -i ve -e (Desenleri dahil etme ve hariç tutma) bayrakları glob sözdizimini kullanır. Kısa bir kılavuza buradan ulaşabilirsiniz!

İndirmek

İkili dosyaların indirilmesi ve bütünlük verileri (zip içinde):

Yasal Uyarı: Bu sürüm , herhangi bir garanti veya destek olmaksızınauditor , geliştirme aşamasındaki bir yazılım olarak sunulmaktadır ve yalnızca ticari olmayan kullanım için ücretsizdir . Kullanımı kendi sorumluluğunuzdadır.

Lisans: Bu sürüm yalnızca ticari olmayan kullanımauditor için lisanslanmıştır . Ayrıntılar için lütfen tam lisans koşullarını inceleyin .

Ekstralar

Denetim dosyalarının formatı

Denetim dosyalarının formatı basittir. Her satır şunları içerir:

hash_value ?ALGORITHM[<THASH-BlockSize>]|file_size[:hex]*relative_filepath
burada [ ] isteğe bağlıdır:

hash_value: karma değeri.

ALGORITHM[<THASH-BlockSize>]: Karma işlemi için kullanılan ALGORİTMA, diğer bazı araçlarla uyumluluğu korumak için büyük harflerle saklanır. <THASH-BlockSize> parametresi isteğe bağlıdır ve thash yöntemi ve BlockSize'ın kullanıldığını gösterir. BlockSize, KB, MB, GB veya TB cinsinden olmalıdır. Örn: 10 MB.

file_size: Orijinal dosyanın boyutu, hash işlemi uygulandığında. Boyut eşleşmediğinde hızı artırmak için kontrolde kullanışlıdır. Boyutunun orijinaliyle eşleşmediği zaten bilinen büyük bir dosyaya neden hash işlemi uygulanır?

[:hex]: Dosya yollarının onaltılık biçimde olduğunu belirten isteğe bağlı bayrak. Bu gereklidir çünkü bazı işletim sistemlerinde '\n', '\r' veya '\0' gibi char'lara izin verilir ve onaltılık biçim, sonuçların biçimlendirilmesiyle ilgili sorunları önler.

relative_filepath: Karma dosyanın bağıl dosya yolu.

Örnek 1: yöntemi kullanma thashsha256 algoritması ve BlockSize 50MB ile:

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

Örnek 2: Normal metodu kullanarak, sadece blake3 algoritmasıyla, dosya yolunu hex formatında kullanarak.

7357b67824d086dc53f5e1ded565f500456bea1812783f1fbcddc08fddc3944c ?BLAKE3|2233:hex*1aCb344356e4e2b2b6

Gelecekte başka formatlar da uygulanabilir.



Ölçütler

Hyperfine kullanarak , testler arasında auditor, fsum, rhash ve hashdeep64 gerçekleştirildi ve sonuçlar aşağıda gösterildi.

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
Önerileriniz mi var veya bir hata mı buldunuz? Bizimle şu adresten iletişime geçin: iletiş[email protected]