auditor

auditor암호화 해시 함수를 사용하여 빠른 무결성 감사를 위한 포렌식 도구입니다 .

이는 다른 인기 도구(fsum, hashdeep, sha256sum 등)와 유사하지만, 디지털 데이터 감사를 더 간단 하고 빠르게 만들어주는 기능이 추가되었습니다 .

auditor여러 해시 알고리즘을 지원합니다. 기본값은 이며 sha256, 2015년부터 NIST에서 권장하고 있습니다( NIST 해시 함수 정책 참조 ).

기본적으로, Logothash method 활성화되어 있지만, 이 모드는 비활성화할 수 있습니다.

무결성 체인

감사 프로세스는 무결성 정보를 저장하는 감사 파일에서 제공하는 무결성 체인auditor 개념을 기반으로 합니다 .

이 프로세스에 관련된 용어는 다음과 같습니다.
Audit_FullList: 처리된 각 원본 데이터 파일의 무결성 정보를 포함하는 감사 파일입니다. : 파일

Stamp의 실제 무결성 정보는 관련 작업을 수행할 때 항상 다시 계산되어 표시됩니다. : 생성 시 의 을 저장하는 감사 파일입니다 .Audit_FullListStamp

Audit_StampStampAudit_FullList

무결성 체인
그림 1 - 프로세스에 관련된 파일

무결성 체인은 다음 순서로 생성됩니다(기본 동작).

내부의 데이터 파일은 input_path처리되어 무결성 정보(해시, 크기, 상대 파일 경로 등)를 생성하여 .에 저장됩니다 Audit_FullList.

Audit_FullList또한 처리되어, 를 생성하고 Stamp, 이는 터미널에 인쇄되어 에 저장됩니다 Audit_Stamp.

무결성 체인 검사는 위의 프로세스의 역순Stamp 으로 수행되며, 파일을 다시 처리하고 감사 파일과 무결성을 검사합니다. 또한 다시 계산하여 터미널에 인쇄한 다음, 에 저장된 값과 비교하여 Audit_Stamp일치하는지 확인합니다.

감사 파일 생성을 진행하고 향후 무결성 체인 검증이 올바르고 안전하게 수행되도록 하려면 아래 단계를 따르세요.

  1. 데이터 파일을 특정 폴더( 라고 함 input_path)에 정리하세요. Auditor가 설치된 경우 명령 터미널을 열고 를 실행하세요 auditor hash input_path. 기본적으로 이 명령은 input_path 폴더의 루트에 Audit 파일을 생성합니다 Audit_FullList. Audit_Stamp(필요한 경우 이 설정을 변경할 수 있습니다.)
  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포렌식 감사의 첫 단계입니다. 파일 무결성을 검증할 수 있는 감사 파일을 생성합니다.

하위 명령 해시의 기본 사용법

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. 빠른 디스크(-z)를 기본 알고리즘과 함께 사용하여 감사 파일을 덮어씁니다(-o): (빠르게 진행하기 위해 SSD 디스크에 유용합니다):

    auditor hash input_path -o -z 
  3. 위와 동일하지만, strict 모드를 활성화하여 input_path에 있는 모든 파일이 해시되도록 합니다.

    auditor hash input_path -o -z --strict
  4. thash 메서드(-d)를 사용하지 않고 감사 파일을 덮어씁니다(-o):

    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의 문자 $는 name에 속하며, 올바르게 구문 분석하려면 앞에 문자 \로 이스케이프해야 합니다!

    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), fast-disk(-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기존 감사 파일을 보존해야 할 때 유용합니다. after hash 명령에서 사용하면 실수로 새 감사 파일이 생성되는 것을 방지할 수 있습니다 input_path.

하위 명령 잠금의 기본 사용법

auditor lock input_path

이렇게 하면:

  1. 생성 타임스탬프가 있는 _auditor_lock.txt파일 을 생성합니다 .input_path
  2. 잠긴 상태에서는 해시 하위 명령이 실행되지 않습니다 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. 위와 동일하지만, strict 모드를 활성화하여 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 형식과 호환됩니다.

)

cloneinput_path데이터를 내부 로 복사 dest_path하고 동시에 복사된 데이터의 무결성을 검증하는 데 사용됩니다 .

하위 명령 clone의 기본 사용법

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. 위와 동일하지만, strict 모드를 활성화하여 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)을 사용할 수 없습니다! 이는 기존 감사 파일과의 혼동을 방지하기 위한 조치입니다.

audit clone --help를 사용하여 모든 옵션을 확인하세요.

)


chkcopyinput_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. 위와 동일하지만, strict 모드를 활성화하여 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. 파일 크기와 모든 input_path에 대한 보고서를 제공합니다.
)

노트

1: Windows PowerShell에서 이름에 공백이 포함된 경로는 따옴표로 묶어야 하며 \, .로 끝나는 부분은 생략해야 합니다. 원하는 경우 .로 끝나는 부분에 백슬래시를 두 개 사용할 수 있습니다 \\. 백슬래시가 따옴표를 이스케이프 처리하여 터미널이 경로를 올바르게 해석할 수 없기 때문입니다.

이것은 작동합니다: "C:\My Data Path" 또는"C:\My Data Path\\"

실패합니다: "C:\My Data Path\"

2: 플래그 -i 및 -e(패턴 포함 및 제외)는 glob 구문을 사용합니다. 간략한 설명서는 여기에서 확인하세요!

다운로드

바이너리의 다운로드 및 무결성 데이터(zip 파일 내부):

면책 조항: 이 버전은 auditor개발 단계의 소프트웨어로 제공되며, 어떠한 종류의 보증이나 지원도 제공되지 않습니다 . 비상업적 용도로만 무료로 제공됩니다 . 사용에 따른 모든 책임은 사용자에게 있습니다.

라이선스: 이 버전은 비상업적 용도로만auditor 라이선스가 부여됩니다 . 자세한 내용은 전체 라이선스 약관을 참조하세요 .

추가 기능

감사 파일 형식

감사 파일의 형식은 간단합니다. 각 줄에는 다음이 포함됩니다.

hash_value ?ALGORITHM[<THASH-BlockSize>]|file_size[:hex]*relative_filepath
여기서 [ ]는 선택 사항입니다.

hash_value: 해시 값.

ALGORITHM[<THASH-BlockSize>]: 해싱에 사용되는 알고리즘으로, 다른 도구와의 호환성을 유지하기 위해 대문자로 저장됩니다. <THASH-BlockSize> 매개변수는 선택 사항이며, 해싱 방법과 BlockSize가 사용되었음을 나타냅니다. BlockSize는 KB, MB, GB 또는 TB 단위여야 합니다. 예: 10MB.

file_size: 해시된 원본 파일의 파일 크기입니다. 크기가 일치하지 않을 때 속도를 향상시키기 위해 검사에 유용합니다. 크기가 원본과 일치하지 않는다는 것을 이미 알고 있는데 왜 큰 파일을 해시할까요?

[:hex]: 파일 경로가 16진수 형식임을 나타내는 선택적 플래그입니다. 일부 OS에서는 '\n', '\r' 또는 '\0'과 같은 문자가 허용되며, 16진수를 사용하면 결과 형식 지정 시 문제가 발생하지 않기 때문에 이 플래그가 필요합니다.

relative_filepath: 해시된 파일의 상대적 파일 경로입니다.

예제 1: 메서드 사용 thash알고리즘 sha256 및 BlockSize 50MB:

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

예제 2: 일반적인 방법을 사용하고, 알고리즘 blake3만 사용하고, 파일 경로를 16진수 형식으로 지정합니다.

7357b67824d086dc53f5e1ded565f500456bea1812783f1fbcddc08fddc3944c ?BLAKE3|2233:hex*1aCb344356e4e2b2b6

다른 형식도 향후 구현될 수 있습니다.



벤치마크

초미세한 것을 사용하여 테스트합니다. 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]