Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/sandflysecurity/sandfly-entropyscan
ФорензикаАнализ вредоносных программАнализ Бинарных ФайловРеагирование на Инциденты
GitHubsandflysecurity/sandfly-entropyscan

sandfly-entropyscan

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

Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Сайт
17026462 лет назадПроверено Kitploit
Поделиться

Что такое sandfly-entropyscan?

sandfly-entropyscan — это утилита для быстрого сканирования файлов или запущенных процессов и отчета об их энтропии (мере случайности) и о том, являются ли они исполняемыми файлами типа ELF для Linux/Unix. Некоторые вредоносные программы для Linux упакованы или зашифрованы и показывают очень высокую энтропию. Этот инструмент может быстро находить исполняемые файлы и процессы с высокой энтропией, которые часто являются вредоносными.

Особенности

  • Написан на Golang и переносим на множество архитектур без модификаций.
  • Автономный бинарный файл не требует зависимостей и может использоваться немедленно без загрузки каких-либо библиотек на подозрительные машины.
  • Не подвержен влиянию руткитов типа LD_PRELOAD, которые скрывают файлы.
  • Встроенное обнаружение PID для поиска скрытых/замаскированных процессов от некоторых типов руткитов загружаемых модулей ядра (LKM).
  • Генерирует энтропию, а также хэш-значения MD5, SHA1, SHA256 и SHA512 файлов.
  • Может использоваться в скриптах сканирования для автоматического обнаружения проблем.
  • Может использоваться специалистами по реагированию на инциденты для быстрого сканирования и выявления потенциальных вредоносных программ на хосте Linux.

Зачем сканировать энтропию?

Энтропия — это мера случайности. Для двоичных данных 0.0 означает «не случайно», а 8.0 — «идеально случайно». Хорошая криптография выглядит как случайный белый шум и будет близка к 8.0. Хорошее сжатие удаляет избыточные данные, делая их более случайными, чем несжатые, и обычно составляет 7.7 или выше.

Многие вредоносные исполняемые файлы упакованы, чтобы избежать обнаружения и усложнить обратную разработку. Большинство стандартных бинарных файлов Linux не упакованы, потому что они не пытаются скрыть свою сущность. Поиск файлов с высокой энтропией — хороший способ найти программы, которые могут быть вредоносными, просто по двум признакам: высокая энтропия и исполняемость.

Как это использовать?

Использование sandfly-entropyscan:

-csv вывод результатов в формате CSV (имя_файла, путь, энтропия, elf_file [true|false], MD5, SHA1, SHA256, SHA512)

-delim изменяет разделитель по умолчанию для CSV-файлов с "," на выбранный вами ("|" и т.д.)

-dir string имя каталога для анализа

-file string полный путь к одному файлу для анализа

-proc проверка запущенных процессов (по умолчанию только проверка ELF)

-elf проверять только исполняемые файлы ELF

-entropy float показывать любой файл/процесс с энтропией, большей или равной этому значению (мин. 0.0, макс. 8.0, по умолчанию 0 для отображения всех файлов)

-version показать версию и выйти

Примеры

Поиск любого исполняемого файла в /tmp:

sandfly-entropyscan -dir /tmp -elf

Поиск исполняемых файлов с высокой энтропией (7.7 и выше) (часто упакованных или зашифрованных) в /var/www:

sandfly-entropyscan -dir /var/www -elf -entropy 7.7

Генерация энтропии и криптографических хэшей всех запущенных процессов в формате CSV:

sandfly-entropyscan -proc -csv

Поиск любого процесса с энтропией выше 7.7, указывающей на то, что он, вероятно, упакован или зашифрован:

sandfly-entropyscan -proc -entropy 7.7

Генерация энтропии и криптографических хэш-значений всех файлов в /bin и вывод в формате CSV (например, для сохранения и сравнения хэшей):

sandfly-entropyscan -dir /bin -csv

Сканирование каталога на наличие всех файлов (ELF или нет) с энтропией выше 7.7: (потенциально большой список файлов, таких как сжатые, png, jpg, объектные файлы и т.д.)

sandfly-entropyscan -dir /path/to/dir -entropy 7.7

Быстрая проверка файла с генерацией энтропии, криптографических хэшей и отображением, является ли он исполняемым:

sandfly-entropyscan -file /dev/shm/suspicious_file

Варианты использования

Проводите выборочные проверки систем, в которых подозреваете наличие вредоносного ПО. Или автоматизируйте сканирование, чтобы получать вывод, если мы найдем что-то с высокой энтропией в неожиданном месте. Или просто помечайте любой исполняемый файл типа ELF, который находится в странном месте (например, в /tmp или в HTML-каталоге пользователя). Например:

Появился ли бинарный файл с высокой энтропией в каталоге /var/www? Возможно, кто-то разместил дроппер вредоносного ПО на вашем сайте:

sandfly-entropyscan -dir /var/www -elf -entropy 7.7

Настройте задание cron для сканирования каталогов /tmp, /var/tmp и /dev/shm на наличие любых исполняемых файлов, независимо от их энтропии. Исполняемые файлы во временных каталогах часто могут быть дропперами вредоносного ПО.

sandfly-entropyscan -dir /tmp -elf

sandfly-entropyscan -dir /var/tmp -elf

sandfly-entropyscan -dir /dev/shm -elf

Настройте еще одно cron-задание или автоматическую проверку безопасности для выборочной проверки систем на наличие сильно сжатых или зашифрованных бинарных файлов, которые выполняются:

sandfly-entropyscan -proc -entropy 7.7

Сборка

  • Установите последнюю версию golang (www.golang.org)
  • Клонируйте репозиторий:

git clone https://github.com/sandflysecurity/sandfly-entropyscan.git

  • Перейдите в каталог репозитория и соберите:

go build

  • Запустите бинарный файл с вашими параметрами:

./sandfly-entropyscan

Скрипты сборки

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

build.sh — сборка для текущей ОС, на которой вы выполняете скрипт.

Обнаружение ELF

Мы используем простой метод для определения, является ли файл исполняемым типом ELF. Мы можем обнаруживать файлы формата ELF для нескольких платформ. Даже если вредоносное ПО содержит бинарные файлы-дропперы для Intel/AMD, MIPS и Arm, мы все равно сможем их обнаружить.

Ложные срабатывания

Возможно срабатывание на легитимный бинарный файл с высокой энтропией из-за того, как он был скомпилирован, или потому что он был упакован по легитимным причинам. Другие файлы, такие как .zip, .gz, .png, .jpg и подобные, также имеют очень высокую энтропию, поскольку они являются сжатыми форматами. Сжатие удаляет избыточность в файле, что делает его более случайным и увеличивает энтропию.

В Linux вы можете обнаружить, что некоторые типы библиотек (.so файлы) отмечаются при сканировании каталогов библиотек.

Однако, по нашему опыту, исполняемые бинарные файлы с высокой энтропией часто являются вредоносными. Это особенно верно, если они находятся в областях, где исполняемые файлы обычно не должны быть (например, в каталогах tmp или html).

Производительность

Расчет энтропии требует чтения всех байтов файла и их подсчета для получения конечного числа. Это может потреблять много процессорного времени и операций ввода-вывода, особенно для очень больших файловых систем или очень больших файлов. Программа имеет внутренний предел: она не будет вычислять энтропию для файлов размером более 2 ГБ, а также не будет пытаться вычислить энтропию для файлов, не являющихся обычными файлами (например, не будет пытаться вычислить энтропию для устройств типа /dev/zero).

Затем мы вычисляем хэши MD5, SHA1, SHA256 и SHA512. Каждый из них требует повторного прохода по файлу. Скорость работы адекватна на современных системах, но если вы сканируете очень большую файловую систему, это может занять некоторое время.

Если вы укажете программе проверять только файлы ELF, то вычисления энтропии/хэшей не будут выполняться, если файл не является типом ELF, что сэкономит много времени (например, будут игнорироваться массивные файлы баз данных, которые не являются исполняемыми).

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

Реагирование на инциденты

Для специалистов по реагированию на инциденты запуск sandfly-entropyscan против всего корневого каталога "/" может быть хорошей идеей, чтобы быстро получить список вероятных упакованных кандидатов для расследования. Это вызовет пиковую нагрузку на процессор и дисковый ввод-вывод. Однако, вероятно, вам уже все равно на этом этапе, так как система к моменту обнаружения администраторами майнила криптовалюту уже 598 часов.

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

Тестирование

Есть скрипт с именем scripts/testfiles.sh, который создаст два файла. Один будет заполнен случайными данными, а другой — не случайными вовсе. При запуске скрипта он создаст файлы и запустит sandfly-entropyscan в режиме обнаружения исполняемых файлов. Вы должны увидеть два файла. Один с очень высокой энтропией (на уровне или около 8.0) и один, полный неслучайных данных, с энтропией около 0.00 (низкая энтропия). Пример:

./testfiles.sh

Creating high entropy random executable-like file in current directory.

Creating low entropy executable-like file in current directory.

high.entropy.test, entropy: 8.00, elf: true

low.entropy.test, entropy: 0.00, elf: true

Вы также можете загрузить утилиту upx и сжать исполняемый файл, чтобы увидеть, какие значения она возвращает.

Безопасность Linux без агентов

Sandfly Security создает платформу обнаружения конечных точек и реагирования на инциденты (EDR) для Linux без использования агентов. Автоматизированные проверки энтропии — лишь одна из тысяч вещей, которые мы ищем для обнаружения злоумышленников без загрузки какого-либо программного обеспечения на ваши конечные точки Linux.

Получите бесплатную лицензию и узнайте больше ниже:

https://www.sandflysecurity.com @SandflySecurity

Скачать инструмент