
Cria automaticamente regras YARA a partir de documentos maliciosos.

Halogen é uma ferramenta para automatizar a criação de regras yara baseadas nos arquivos de imagem embutidos em um documento malicioso. Isso pode ajudar profissionais de cibersegurança a escrever regras de detecção para ameaças maliciosas, bem como ajudar respondedores a identificar com qual ameaça específica estão lidando. Atualmente, o Halogen é capaz de criar regras baseadas em arquivos JPG e 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
Incluímos alguns arquivos de documento de teste com imagens embutidas para você testar isso. Executar python3 halogen/halogen.py -d tests/ > /tmp/halogen_test.yara produzirá o arquivo yara de teste contendo todas as imagens encontradas nos arquivos dentro do diretório tests/.
A partir daqui você pode executar yara -d /tmp/halogen_test.yara tests/ e observar quais imagens correspondem a quais arquivos.
--png-idat você pode começar no chunk IDAT encontrado dentro de um arquivo PNG. Também reduzimos os bytes retornados ao corresponder no chunk IDAT.--jpg-sos.--jpg-sof2sos, que lê o marcador Start of Frame (SOF) até que o SOS seja encontrado, e então lê mais 45 bytes. Isso é útil se o --jpg-sos padrão estiver dando falsos positivos.--jpg-jump que lê os dados de imagem compactados e cria um salto hexadecimal na saída yara se encontrar bytes de imagem repetidos. Isso nos permite corresponder no SOF e SOS do arquivo, bem como em alguns dos dados mais exclusivos da imagem.Por favor, contribua com pull requests em python3, e envie quaisquer bugs que você encontrar como issues.