TLSH (Trend Micro Locality Sensitive Hash)

TLSH (Trend Micro Locality Sensitive Hash) - это алгоритм нечёткого хеширования (fuzzy hashing), разработанный компанией Trend Micro для анализа схожести файлов и данных, особенно в контексте кибербезопасности и цифровой криптографии.

Основные принципы работы

  • Нечёткое хеширование: В отличие от традиционных хешей (например: SHA-256), TLSH генерирует хеш-значения, которые позволяют оценивать степень схожести файлов. Чем меньше "расстояние" между хешами, тем более похожи исходные данные.
  • Минимальный размер данных: Для генерации хеша требуется минимум 50 байт (в "консервативном" режиме - 256 байт).
  • Формат хеша: Результат представляет собой строку из 70 шестнадцатеричных символов с префиксом T1 (в новых версиях), что упрощает версионную совместимость.

Применение в кибербезопасности

  • Обнаружение схожих вредоносных файлов: TLSH используется для кластеризации malware, выявления модифицированных версий одного и того же вредоносного ПО.
  • Белые списки (whitelisting): Помогает идентифицировать легитимное ПО, даже если оно было обновлено или слегка изменено, снижая количество ложных срабатываний.
  • Быстрый поиск: Благодаря использованию деревьев (например: HAC-T), алгоритм обеспечивает быстрое сравнение хешей даже в больших наборах данных (например: миллионы записей).

Преимущества перед другими алгоритмами

  • Устойчивость к атакам: TLSH сложнее обмануть, чем SSDEEP или SDHASH, благодаря использованию k-skip-ngrams и другим методам.
  • Фиксированный размер хеша: В отличие от SSDEEP, TLSH всегда выдаёт хеш одинаковой длины, что упрощает хранение и обработку.
  • Поддержка кластеризации: Алгоритм оптимизирован для масштабируемой кластеризации, что полезно при анализе больших наборов данных (например: Malware Bazaar).

Технические детали

  • Расстояние между хешами: Измеряется по шкале от 0 (идентичные файлы) до нескольких тысяч (совершенно разные). Например, значение 55 считается порогом для определения схожести.
  • Использование в Python: Существует библиотека py-tlsh, позволяющая легко интегрировать TLSH в скрипты для анализа данных.
  • GIT репозиторий: https://github.com/trendmicro/tlsh

Примеры использования

  • VirusTotal и Malware Bazaar: TLSH применяется для анализа вредоносных образцов.
  • Uber: Использовал LSH-подход (к которому относится TLSH) для оптимизации маршрутов и устранения несоответствий в GPS-данных.

Заключение

TLSH - это мощный инструмент для анализа схожести данных, особенно востребованный в антивирусных решениях, цифровой криминалистике и системах whitelisting. Его ключевые преимущества — скорость, устойчивость к атакам и возможность масштабирования