
Автоматически создавать правила YARA из вредоносных документов.

Halogen — это инструмент для автоматизации создания правил YARA на основе файлов изображений, встроенных в вредоносные документы. Он помогает специалистам по кибербезопасности писать правила обнаружения для вредоносных угроз, а также способствует идентификации конкретной угрозы, с которой они имеют дело. В настоящее время Halogen может создавать правила на основе файлов JPG и PNG.

python3 halogen.py -h
usage: halogen.py [-h] [-f FILE] [-d DIR] [-n NAME] [--png-idat] [--jpg-sos] [--jpg-sof2sos] [--jpg-jump] [-c CONTAINER] [--clam] [--rprefix RPREFIX]
Halogen: Automatically create yara rules based on images embedded in office documents.
optional arguments:
-h, --help show this help message and exit
-f FILE, --file FILE File to parse
-d DIR, --directory DIR
directory to scan for image files.
-n NAME, --rule-name NAME
specify a custom name for the rule file
--png-idat For PNG matches, instead of starting with the PNG file header, start with the IDAT chunk.
--jpg-sos For JPG matches, skip over the header and look for the Start of Scan marker, and begin the match there.
--jpg-sof2sos for JPG matches, skip over the header and match the SOF all the way to the SOS + 45 bytes of the data within the SOS.
--jpg-jump for JPG matches, skip over the header and identify the sof, the sos and then read the actual image data take that data and look for repeated bytes. Skip those bytes and then
create 45 bytes of raw image data.
-c CONTAINER, --container CONTAINER
specify a clamav container type defaults to CL_TYPE_MSOLE2, CL_TYPE_OOXML_WORD, CL_TYPE_OOXML_XL, CL_TYPE_OOXML_PPT
--clam generate a clam rule instead of a yara rule
--rprefix RPREFIX specify a clamav ruleset prefix
Мы включили несколько тестовых файлов документов со встроенными изображениями, чтобы вы могли опробовать инструмент. Выполнение команды python3 halogen/halogen.py -d tests/ > /tmp/halogen_test.yara создаст тестовый файл YARA, содержащий все изображения, найденные в файлах внутри каталога tests/.
После этого вы можете запустить yara -d /tmp/halogen_test.yara tests/ и посмотреть, какие изображения соответствуют каким файлам.
--png-idat начать с блока IDAT, найденного внутри PNG-файла. Мы также уменьшили количество байтов, возвращаемых при совпадении по блоку IDAT.--jpg-sos.--jpg-sof2sos, который читает маркер начала кадра (SOF) до тех пор, пока не будет найден SOS, а затем считывает дополнительные 45 байт. Это полезно, если стандартный --jpg-sos даёт ложные срабатывания.--jpg-jump, который считывает сжатые данные изображения и создаёт «прыжок» в шестнадцатеричном представлении в выводе YARA, если находит повторяющиеся байты изображения. Это позволяет нам сопоставлять SOF и SOS файла, а также некоторые более уникальные данные изображения.Пожалуйста, отправляйте pull request'ы на Python 3 и сообщайте о любых найденных ошибках в разделе Issues.