
Créez automatiquement des règles YARA à partir de documents malveillants.

Halogen est un outil permettant d'automatiser la création de règles yara basées sur les fichiers image intégrés dans un document malveillant. Cela peut aider les professionnels de la cybersécurité à rédiger des règles de détection pour les menaces malveillantes et également aider les intervenants à identifier la menace particulière à laquelle ils sont confrontés. Actuellement, Halogen est capable de créer des règles basées sur les fichiers JPG et 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
Nous avons inclus quelques fichiers de test contenant des images intégrées pour que vous puissiez tester cela. L'exécution de python3 halogen/halogen.py -d tests/ > /tmp/halogen_test.yara produira le fichier yara de test contenant toutes les images trouvées dans les fichiers du répertoire tests/.
Ensuite, vous pouvez exécuter yara -d /tmp/halogen_test.yara tests/ et observer quelles images correspondent à quels fichiers.
--png-idat vous pouvez commencer par le morceau IDAT trouvé dans un fichier PNG. Nous avons également réduit les octets retournés lors de la correspondance sur le morceau IDAT.--jpg-sos.--jpg-sof2sos, qui lit le marqueur de début de trame (SOF) jusqu'à ce que le SOS soit trouvé, puis lit 45 octets supplémentaires. Ceci est utile si le --jpg-sos standard vous donne des faux positifs.--jpg-jump qui lit les données d'image compressées et crée un saut hexadécimal dans la sortie yara s'il trouve des octets d'image répétés. Cela nous permet de correspondre au SOF et au SOS du fichier, ainsi qu'à certaines données plus uniques de l'image.Veuillez contribuer avec des pull requests en python3, et soumettez les bogues que vous trouvez en tant que issues.