Event Triggered Execution: LC_LOAD_DYLIB Addition

Adversaries may establish persistence by executing malicious content triggered by the execution of tainted binaries. Mach-O binaries have a series of headers that are used to perform certain operations when a binary is loaded. The LC_LOAD_DYLIB header in a Mach-O binary tells macOS and OS X which dynamic libraries (dylibs) to load during execution time. These can be added ad-hoc to the compiled binary as long as adjustments are made to the rest of the fields and dependencies. [1] There are tools available to perform these changes.

Adversaries may modify Mach-O binary headers to load and execute malicious dylibs every time the binary is executed. Although any changes will invalidate digital signatures on binaries because the binary is being modified, this can be remediated by simply removing the LC_CODE_SIGNATURE command from the binary so that the signature isn’t checked at load time. [2]

Angreifer können eine Persistenz herstellen, indem sie bösartige Inhalte ausführen, die durch die Ausführung verdorbener Binärdateien ausgelöst werden. Mach-O Binärdateien verfügen über eine Reihe von Headern, die beim Laden einer Binärdatei zur Ausführung bestimmter Operationen verwendet werden. Der Header LC_LOAD_DYLIB in einer Mach-O-Binärdatei teilt macOS und OS X mit, welche dynamischen Bibliotheken (Dylibs) während der Ausführung geladen werden sollen. Diese können der kompilierten Binärdatei ad-hoc hinzugefügt werden, solange die übrigen Felder und Abhängigkeiten angepasst werden. (Zitat: Writing Bad Malware for OSX) Es gibt Tools, mit denen Sie diese Änderungen vornehmen können.

Angreifer können die Header von Mach-O-Binärdateien so verändern, dass bei jeder Ausführung der Binärdatei bösartige Dylibs geladen und ausgeführt werden. Obwohl alle Änderungen digitale Signaturen von Binärdateien ungültig machen, weil die Binärdatei verändert wird, kann dies durch einfaches Entfernen des Befehls LC_CODE_SIGNATURE aus der Binärdatei behoben werden, so dass die Signatur beim Laden nicht überprüft wird. (Zitat: Persistenz von Malware unter OS X)

Les adversaires peuvent établir la persistance en exécutant un contenu malveillant déclenché par l'exécution de binaires entachés. Les binaires Mach-O possèdent une série d'en-têtes qui sont utilisés pour effectuer certaines opérations lorsqu'un binaire est chargé. L'en-tête LC_LOAD_DYLIB d'un binaire Mach-O indique à macOS et OS X les bibliothèques dynamiques (dylibs) à charger lors de l'exécution. Celles-ci peuvent être ajoutées ad-hoc au binaire compilé, à condition que des ajustements soient apportés au reste des champs et dépendances. (Citation : Writing Bad Malware for OSX) Il existe des outils pour effectuer ces modifications.

Les adversaires peuvent modifier les en-têtes des binaires Mach-O pour charger et exécuter des dylibs malveillants à chaque fois que le binaire est exécuté. Bien que toute modification invalide les signatures numériques des binaires parce que le binaire est modifié, il est possible d'y remédier en supprimant simplement la commande LC_CODE_SIGNATURE du binaire afin que la signature ne soit pas vérifiée au moment du chargement. (Citation : Persistance des logiciels malveillants sur OS X)

Gli avversari possono stabilire la persistenza eseguendo contenuti malevoli innescati dall'esecuzione di binari contaminati. I binari Mach-O hanno una serie di intestazioni che vengono utilizzate per eseguire determinate operazioni quando un binario viene caricato. L'intestazione LC_LOAD_DYLIB in un binario Mach-O dice a macOS e OS X quali librerie dinamiche (dylibs) caricare durante l'esecuzione. Queste possono essere aggiunte ad-hoc al binario compilato, purché si facciano aggiustamenti al resto dei campi e delle dipendenze. (Citazione: Scrivere cattivo malware per OSX) Esistono strumenti per eseguire queste modifiche.

Gli avversari possono modificare le intestazioni dei binari Mach-O per caricare ed eseguire dylibs malevoli ogni volta che il binario viene eseguito. Anche se qualsiasi modifica invaliderà le firme digitali sui binari perché il binario viene modificato, si può rimediare semplicemente rimuovendo il comando LC_CODE_SIGNATURE dal binario in modo che la firma non venga controllata al momento del caricamento. (Citazione: Persistenza del malware su OS X)

Login
ID: T1546.006
Sub-technique of:  T1546
Platforms: macOS
Permissions Required: User
Version: 1.0
Created: 24 January 2020
Last Modified: 30 March 2021
Translations:  DE FR IT EN
Provided by LAYER 8

Mitigations

ID Mitigation Description
M1047 Audit

Binaries can also be baselined for what dynamic libraries they require, and if an app requires a new dynamic library that wasn\u2019t included as part of an update, it should be investigated.

M1045 Code Signing

Enforce that all binaries be signed by the correct Apple Developer IDs.

M1038 Execution Prevention

Allow applications via known hashes.

Detection

ID Data Source Data Component
DS0017 Command Command Execution
DS0022 File File Metadata
File Modification
DS0011 Module Module Load
DS0009 Process Process Creation

Monitor processes for those that may be used to modify binary headers. Monitor file systems for changes to application binaries and invalid checksums/signatures. Changes to binaries that do not line up with application updates or patches are also extremely suspicious.

Überwachen Sie Prozesse, die zur Änderung von Binär-Headern verwendet werden können. Überwachen Sie Dateisysteme auf Änderungen an Anwendungsbinärdateien und ungültige Prüfsummen/Signaturen. Änderungen an Binärdateien, die nicht mit Anwendungsupdates oder Patches übereinstimmen, sind ebenfalls äusserst verdächtig.

Surveillez les processus pour ceux qui peuvent être utilisés pour modifier les en-têtes binaires. Surveillez les systèmes de fichiers pour détecter les modifications apportées aux binaires des applications et les sommes de contrôle/signatures invalides. Les modifications apportées aux binaires qui ne correspondent pas aux mises à jour ou aux correctifs des applications sont également extrêmement suspectes.

Monitorare i processi per quelli che possono essere usati per modificare le intestazioni binarie. Monitorare i file system alla ricerca di modifiche ai binari dell'applicazione e di checksum/firme non validi. Anche i cambiamenti ai binari che non si allineano con gli aggiornamenti o le patch delle applicazioni sono estremamente sospetti.

References