auditor— это криминалистический
инструмент для быстрого аудита целостности, использующий
криптографические хеш-функции
.
Он похож на другие популярные инструменты (fsum, hashdeep, sha256sum и т. д.), но с функциями, которые упрощают и ускоряют аудит цифровых данных .
auditorПоддерживает несколько
алгоритмов хеширования. По умолчанию используется
sha256, рекомендованный NIST с 2015
года (см.
Политику NIST в отношении хеш-функций
).
По умолчанию,
thash
method
включен, но этот режим можно отключить.
Используемый процесс аудита
auditorоснован на концепции
цепочки целостности , представленной файлами аудита, в которых
хранится информация о целостности.
Термины, задействованные в этом процессе: Audit_FullList: содержит ли файл аудита информацию о целостности каждого
обработанного исходного файла данных.
Stamp: содержит ли файл аудита
информацию о фактической целостности
Audit_FullListфайла.
Stampвсегда пересчитывается и
отображается при выполнении соответствующих действий.
Audit_Stamp: хранит ли файл аудита
информацию Stampо
Audit_FullList, когда он был создан.
Цепочка целостности создается в следующем порядке (поведение по умолчанию):
Файлы данных внутри
input_pathобрабатываются и генерируют
информацию о целостности (хэш, размер, относительный путь к файлу и т.
д.), которая сохраняется в
Audit_FullList.
Audit_FullListтакже обрабатывается,
генерируется Stamp, который печатается на
терминале и сохраняется в Audit_Stamp.
Проверка цепочки целостности выполняется в
порядке, обратном описанному выше процессу, путем повторной
обработки файлов и проверки целостности по файлам аудита.
Stampтакже пересчитывается, выводится на
терминал и сравнивается с сохраненным в
Audit_Stamp, чтобы проверить, совпадает
ли он.
Чтобы приступить к созданию файлов аудита и гарантировать, что будущая проверка цепочки целостности будет проводиться правильно и безопасно, выполните следующие действия:
input_path). После установки Auditor
откройте командный терминал и выполните команду
auditor hash input_path. По умолчанию
эта команда создаст файлы аудита
Audit_FullListв
Audit_Stampкорневой папке input_path.
(При необходимости это можно изменить.)
Audit_Stampили подпишите его
цифровой подписью .
auditor check, выполняется описанная
выше цепочка проверки целостности. В конце процесса данные о
целостности из
Audit_FullListпересчитываются и
выводятся на терминал.
Они ДОЛЖНЫ точно совпадать со значением, выведенным на печать или
подписанным цифровой подписью на предыдущем этапе.
Если они не совпадают, проверка целостности недействительна .
Audit_FullList. См. примеры в разделе
использования auditor check.
Краткое руководство можно посмотреть здесь.
Установив auditorего в свою систему, вы
можете использовать его следующим образом:
auditor subcommands:
hashЭто первый этап судебной экспертизы. Он создаёт файлы аудита,
позволяющие проверить целостность файлов.
auditor hash input_path
Это позволит:
input_pathс
помощью алгоритма по умолчанию (
sha256)
input_path):
Audit_FullList: содержит данные
о целостности (хэш, размер, имя) файлов в
input_path. Имя по умолчанию:
_auditor_hashes.txt
Audit_Stamp: содержит только
данные о целостности
Audit_FullList. Имя по
умолчанию:
_auditor_stamp.txt.Это файл,
который необходимо распечатать или подписать цифровой
подписью, чтобы обеспечить проверку всей цепочки целостности.
Audit_FullList
После этого hashвы можете
выполнить checkкоманду проверки
целостности. Чтобы обеспечить надлежащую проверку целостности в
будущем, прочтите раздел «
Цепочка целостности» и следуйте приведенным
там советам.
Просто генерировать хеши, но не создавать никаких файлов (-l)
auditor hash input_path -l
Перезаписать файлы аудита (-o), используя быстрый диск (-z) с алгоритмом по умолчанию (полезно для SSD-дисков, чтобы ускорить):
auditor hash input_path -o -z
То же, что и выше, но с включенным строгим режимом, чтобы гарантировать хеширование ВСЕХ файлов в input_path:
auditor hash input_path -o -z --strict
Перезаписать файлы аудита (-o) без использования метода thash (-d):
auditor hash input_path -o -d
Перезаписать файлы аудита (-o), включить только файлы txt (-i "**/*.txt") только в корневой папке (-u 1) (флаги -i и -e используют шаблон glob, см. Примечания к подробностям).
auditor hash input_path -o -i "**/*.txt" -u 1
Перезаписать файлы аудита (-o), включить все файлы, кроме txt-файлов (-e "**/*.txt")
auditor hash input_path -o -e "**/*.txt"
Перезаписать файлы аудита (-o), включить только файлы с именем «file1.doc» (-i «**/*/file1.doc») и «file2.xls» (-i «**/*/file2.xls»)
auditor hash input_path -o -i "**/*/file1.doc" -i "**/*/file2.xls"
Перезаписать файлы аудита (-o), включая ВСЕ файлы, кроме файлов в папках $RECYCLE.BIN и "System Volume Information". Примечание. Символ $ в $RECYLE.BIN принадлежит имени, и для корректного анализа его необходимо экранировать символом \.
auditor hash input_path -o -e "**/\$RECYCLE.BIN/**" -e "**/System Volume Information/**"
Перезаписать файлы аудита (-o), включить все текстовые файлы (-i "**/*/*.txt"), за исключением тех, что находятся внутри каталога с именем folder1 (-e "**/*/folder1/*")
auditor hash input_path -z -o -a blake3 -i "**/*/*.txt" -e "**/*/folder1/*"
Перезаписать файлы аудита (-o), использовать быстрый диск (-z) и алгоритм 'blake3' (очень быстро):
auditor hash input_path -o -z -a blake3
Перезаписать файлы аудита (-o), использовать blockSize 10 МБ и хэш-функцию «whirlpool»
auditor hash input_path -o -b 10MB -a whirlpool
lockПолезно, когда необходимо сохранить существующие файлы аудита. Его
можно использовать после команды hash и предотвратить
случайное создание новых файлов аудита в
input_path.
auditor lock input_path
Это позволит:
_auditor_lock.txtСоздайте файл
input_path
с отметкой времени создания.
input_pathзаблокированным объектом.
Чтобы разблокировать input_path, вам
нужно вручную удалить файл._auditor_lock.txt
checkЭто второй этап судебной экспертизы. Он проверяет целостность
данных, используя информацию из файлов аудита, и может быть
использован после хэширования.
auditor check input_path
Это позволит:
input_path):
Audit_Stampи сверяйте с ними
Audit_FullList.
Audit_FullListи сверьте их с
исходными файлами в формате
input_path.
Audit_FullList.
Проверьте в режиме быстрого диска (-z), используя файлы аудита по умолчанию.
auditor check input_path -z
То же, что и выше, но с включенным строгим режимом, чтобы гарантировать проверку ВСЕХ файлов в input_path.
auditor check input_path -z --strict
Проверять только текстовые файлы (-i "**/*.txt"), используя файлы аудита по умолчанию (флаги -i и -e используют шаблон glob, см. Примечания к подробностям).
auditor check input_path -i "**/*.txt"
Проверка в тихом режиме (-q) и остановка при первой ошибке (-x) с использованием файлов аудита по умолчанию.
auditor check input_path -q -x
Проверьте 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
Проверьте целостность только одного файла в <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
Это позволит:
input_path,
сгенерировать данные о целостности (хэш, размер, имя);
dest_path;
dest_pathданные о целостности с
данными, созданными в input_path.
input_pathи/или с
dest_pathпомощью параметра -g. Если
файлы аудита существуют, вы не сможете их создать.
В случае ошибки будет предпринята повторная попытка (по умолчанию 3 раза, это можно изменить).
В режиме быстрого диска (-z).
auditor clone input_path dest_path -z
То же, что и выше, но с включенным строгим режимом, чтобы гарантировать клонирование ВСЕХ файлов в input_path:
auditor clone input_path dest_path --strict
В тихом режиме (-q) и остановка при первой ошибке (-x).
auditor clone input_path dest_path -q -x
Клонирование с генерацией файлов аудита как в input_path, так и в dest_path (см. примечания!).
auditor clone input_path dest_path -g both
Клонирование с генерацией файлов аудита только в dest_path.
auditor clone input_path dest_path -g dest
Клонирование с генерацией файлов аудита только в input_path.
auditor clone input_path dest_path -g input
Вы можете использовать -i и/или -e для включения или исключения файлов процесса (нельзя использовать с --strict).
auditor clone input_path dest_path -q -x -i "**/*.txt" -e "**/dir1/**/*
Примечания: Для создания файлов аудита
input_pathне должно быть файлов
аудита (Audit_FullList и Audit_Stamp)! Это сделано для
предотвращения путаницы с существующими файлами аудита.
Просмотреть все параметры с помощью auditor clone --help
)
chkcopyиспользуется для проверки данных внутри
input_pathпо файлам аудита и
копирования в dest_path, а также для
проверки целостности скопированных данных в
dest_path.
auditor chkcopy input_path dest_path
Это позволит:
input_pathи
проверять целостность данных из файлов аудита;
dest_path;
dest_pathсверив ее с данными о
целостности из файлов аудита.
В случае ошибки будет предпринята повторная попытка (по умолчанию 3 раза, это можно изменить).
В режиме быстрого диска (-z) для быстрых дисков, таких как SSD, M.2 и т. д.
auditor chkcopy input_path dest_path -z
То же, что и выше, но с включенным строгим режимом, чтобы гарантировать проверку и копирование ВСЕХ файлов в input_path:
auditor chkcopy input_path dest_path --strict
В тихом режиме (-q) и остановка при первой ошибке (-x).
auditor chkcopy input_path dest_path -q -x
Вы можете использовать -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
Это позволит:
input_path):
Audit_Stampи
Audit_FullListналичие файлов
аудита.
Audit_Stampи
Audit_FullList, и соответствует ли
указанный размер файлу в
input_path.
input_pathперечислены в
Audit_FullList.
Audit_FullList и сверить их с
файлом аудитаAudit_Stamp
\. При желании используйте
двойной обратный слеш в завершающем символе
\\. Это связано с тем, что
одинарный обратный слеш экранирует завершающие кавычки, и терминал не
может правильно интерпретировать путь.
Это работает:
"C:\My Data Path" или"C:\My Data Path\\"
Это не удается:
"C:\My Data Path\"
Загрузка и данные о целостности двоичных файлов (внутри zip-архива):
Отказ от ответственности: эта версия
auditorпредоставляется как программное
обеспечение на стадии разработки, БЕЗ
каких-либо гарантий или поддержки и бесплатна
только для некоммерческого использования . Используйте
её на свой страх и риск.
Лицензия: Эта версия
auditorлицензирована
только для некоммерческого использования . Подробности
см. в
полных условиях лицензии .
Формат файлов аудита прост. Каждая строка содержит:
hash_value ?ALGORITHM[<THASH-BlockSize>]|file_size[:hex]*relative_filepath
где [ ] необязательны:
hash_value: значение хэша.
ALGORITHM[<THASH-BlockSize>]: АЛГОРИТМ, используемый для хеширования, записанный заглавными буквами
для обеспечения совместимости с некоторыми другими инструментами.
Параметр <THASH-BlockSize> необязателен и указывает на
использование метода thash и размера блока. Размер блока должен быть
указан в КБ, МБ, ГБ или ТБ. Например: 10 МБ.
file_size: Размер исходного файла
после хеширования. Полезно для проверки, чтобы повысить скорость, если
размер не совпадает. Зачем хешировать большой файл, если уже известно,
что его размер не совпадает с исходным?
[:hex]: Необязательный флаг,
указывающий, что пути к файлам представлены в шестнадцатеричном формате.
Это необходимо, поскольку символы '\n', '\r' или '\0' разрешены в
некоторых ОС, а шестнадцатеричный формат позволяет избежать проблем с
форматированием результатов.
relative_filepath: Относительный
путь к хэшированному файлу.
Пример 1: использование метода thashс алгоритмом sha256 и BlockSize 50MB:
281d5d93464f1165ea7c403ca99d63ff4bf9a360864f8df4bd0e8e6c03774e98 ?SHA256<THASH-50MB>|500000*file_hashed.bin
Пример 2: использование обычного метода, только с алгоритмом blake3, с путем к файлу в шестнадцатеричном формате.
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 using Data Source 1:
Data Source 2
Benchmarks using Data Source 2: