
Automatisch YARA-Regeln aus schädlichen Dokumenten erstellen.

Halogen ist ein Tool zur Automatisierung der Erstellung von YARA-Regeln basierend auf den in einem bösartigen Dokument eingebetteten Bilddateien. Dies kann Fachleuten für Cybersicherheit bei der Erstellung von Erkennungsregeln für bösartige Bedrohungen helfen und Einsatzkräften dabei, die jeweilige Bedrohung zu identifizieren. Derzeit kann Halogen Regeln basierend auf JPG- und PNG-Dateien erstellen.

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
Wir haben einige Testdokumentdateien mit eingebetteten Bildern beigefügt, damit Sie dies ausprobieren können. Das Ausführen von python3 halogen/halogen.py -d tests/ > /tmp/halogen_test.yara erzeugt die Test-YARA-Datei, die alle in den Dateien im Verzeichnis tests/ gefundenen Bilder enthält.
Von hier aus können Sie yara -d /tmp/halogen_test.yara tests/ ausführen und beobachten, welche Bilder zu welchen Dateien passen.
--png-idat am IDAT-Chunk innerhalb einer PNG-Datei beginnen. Wir haben auch die Anzahl der zurückgegebenen Bytes beim Abgleich des IDAT-Chunks reduziert.--jpg-sos-Flag verwenden.--jpg-sof2sos-Flag hinzugefügt, das den Start-of-Frame-Marker (SOF) liest, bis der SOS gefunden wird, und dann weitere 45 Bytes liest. Dies ist nützlich, wenn der Standard---jpg-sos falsch positive Ergebnisse liefert.--jpg-jump-Flag hinzugefügt, das die komprimierten Bilddaten liest und einen Hex-Sprung in der YARA-Ausgabe erstellt, wenn sich wiederholende Bildbytes gefunden werden. Dies ermöglicht es, auf den SOF und SOS der Datei sowie auf einige der einzigartigeren Daten im Bild zuzugreifen.Bitte reichen Sie Pull-Requests in Python3 ein und melden Sie alle gefundenen Fehler als Issues.