Размытый хеш файла

Вопрос или проблема

Мог бы кто-нибудь объяснить мне это: когда вы используете алгоритм нечеткого хеширования (ssdeep, tlsh, sdhash… или любой другой) для вычисления хеш-значения файла, вычисляется ли хеш на основе всего файла (например, PDF-файл состоит из словаря завершающих элементов, центрального каталога и т.д.), так что учитываются ли эти элементы? Или хеш вычисляется только на основе содержимого файла (но в случае PDF-файла содержимое сжато и хранится в бинарном файле вместе со всей остальной информацией, так как алгоритм может “извлечь” содержимое файла в таком случае?

Ни один из трех упомянутых вами алгоритмов не имеет ничего специфического для форматов файлов в своей документации, что предполагает, что они просто обрабатывают ввод как неструктурированный бинарный поток.

Конечно, при использовании этих алгоритмов можно предобработать ввод и применять хеши к извлеченной информации, например, не применяя хеш к полному письму, а только к вложениям и текстам.

Ответ или решение

Фразовый хеш (или "нечеткий хеш") представляет собой алгоритм, который используется для сравнения и поиска похожих файлов, позволяя обнаружить изменения в их содержимом, даже если файлы были частично изменены. Примеры таких алгоритмов включают ssdeep, tlsh и sdhash.

Когда вы рассчитываете хеш-функцию для файла с помощью одного из этих алгоритмов, важно понимать, что они работают с входными данными как с неструктурированным бинарным потоком. Это означает, что алгоритмы не ориентируются на определенные элементы формата файла, такие как трейлеры PDF или центральные директории ZIP. В результате, алгоритмы будут учитывать весь файл в его бинарном представлении, что приводит к следующему:

  1. Обработка всего файла: Алгоритмы фразового хеширования применяются ко всему содержимому файла, включая служебную информацию и метаданные. Например, в случае PDF-файла хеш будет рассчитан на основе всего файла, включая заголовки, трейлеры и другие элементы, которые не являются основным содержимым.

  2. Компрессия и бинарное представление: Если файл содержит сжатое или зашифрованное содержимое, алгоритмы не "извлекают" данные в традиционном смысле. Вместо этого они обрабатывают зашифрованные или сжатые данные как единый блок бинарной информации. Это важно, поскольку хеш-функции не предназначены для распаковки или декодирования содержимого.

  3. Предварительная обработка: В некоторых случаях целесообразно предварительно обрабатывать файл перед применением фразового хеширования. Например, можно извлечь текстовые данные или аттачи из документа, а затем уже к ним применить хеш. Это позволяет сосредоточиться на более релевантной информации, однако не всегда необходимо.

  4. Сравнение: Результаты фразового хеширования позволяют сравнивать файлы и определять их схожесть, даже если они имеют разные хеши (отличающиеся в результате изменений в служебной информации или метаданных). Это делает фразовый хеш полезным инструментом для детектирования модификаций и анализа на наличие похожих файлов.

Таким образом, алгоритмы фразового хеширования не принимают во внимание специфику формата файла и обрабатывают всю его структуру в качестве неструктурированных данных. При необходимости можно использовать подходы предварительной обработки, чтобы сфокусироваться исключительно на содержимом файла, что может быть полезно в определенных сценариях анализа.

Оцените материал
Добавить комментарий

Капча загружается...