Nach Angaben von Jamf Threat Labs beginnt die Infektion auf einer Lookalike-Seite unter „maccyapp[.]com“, die die legitime Maccy-Seite „maccy[.]app“ nachahmt. Verteilt wird die Malware in Form eines Disk-Images, das eine kompilierte AppleScript-Datei namens „Maccy.scpt“ enthält. Diese Datei startet einen in sich geschlossenen JavaScript-for-Automation-Downloader, der den eigentlichen Stealer mithilfe nativer Objective-C-APIs nachlädt und vorbereitet.
Besonders ist laut Jamf die Art, wie die erste Stufe ausgeführt wird. Wird die Datei im Script Editor geöffnet, blendet sie Anweisungen ein, sie per Tastenkombination „⌘ + R“ oder über die Schaltfläche „Ausführen“ zu starten. Die schädliche Logik liegt dabei unter einem großen Block leerer Zeilen verborgen. Sicherheitsforscher Thijs Xhaflaire weist darauf hin, dass diese Methode selbst dann funktioniert, wenn die Datei noch das Attribut „com.apple.quarantine“ trägt. Gerade das mache den Ansatz für Angreifer attraktiv, während Apple die Schutzmechanismen von Gatekeeper und Terminal weiter verschärfe.
Der AppleScript-Dropper ist zudem an seine Umgebung angepasst. Er setzt die Ausführung nur fort, nachdem er den Host fingerabdruckartig erfasst hat und festgestellt wurde, dass das System auf Apple Silicon läuft. Dafür leitet das Skript aus Merkmalen wie CPU-Architektur, Gebietsschema, Tastaturlayout und Zeitzone einen Schlüssel ab. Mit diesem wird eine verschlüsselte Konfiguration entschlüsselt, die unter anderem die URL der Nutzlast und den Installationspfad enthält.
Auf Intel-basierten Macs funktioniert dieser Schritt laut Jamf nicht: Dort weicht der abgeleitete Schlüssel ab, die Konfiguration lässt sich nicht entschlüsseln und der Dropper beendet sich. Außerdem vermeidet das Skript die Ausführung in Sandbox- und Analyseumgebungen sowie auf Systemen, deren Zeitzone, Systemgebietsschema und Tastatureingabe auf Länder in Osteuropa verweisen, darunter Russland, Belarus, Kasachstan, Armenien, Aserbaidschan, Kirgisistan, Moldau, Tadschikistan, Usbekistan, Turkmenistan und Georgien.
Sind diese Prüfungen bestanden, lädt das Skript von einem externen Server eine in Rust geschriebene Mach-O-Binärdatei nach, die sich als Finder ausgibt. Diese zweite Stufe sammelt Daten aus Webbrowsern, Erweiterungen für Kryptowallets, dem iCloud-Schlüsselbund und aus der Zwischenablage. Die erfassten Informationen werden verschlüsselt und per ausgehender HTTP-Anfrage an die vom Angreifer kontrollierte Infrastruktur „avenger-sync[.]live“ exfiltriert.
Hinzu kommt ein gezielter Mechanismus zum Abgreifen des Systempassworts. Der Stealer versucht laut Jamf, den Nutzer zur Gewährung eines vollständigen Dateisystemzugriffs zu bewegen, und zeigt anschließend einen nativen Passwortdialog an. Das eingegebene Passwort wird über die PAM-API lokal geprüft. Ist es falsch, fordert die Malware zur erneuten Eingabe auf und wiederholt diesen Ablauf so lange, bis das korrekte Passwort vorliegt.
Sobald ein gültiges Passwort erfasst wurde, erscheint nach Angaben von Jamf ein zweiter, gefälschter Hinweis: „Maccy ist beschädigt und kann nicht geöffnet werden. Sie sollten es in den Papierkorb bewegen.“ Die Warnung ahmt eine echte Gatekeeper-Meldung nach, dient laut Jamf aber nur als Täuschung. Zu diesem Zeitpunkt sei die Schadsoftware bereits ausgeführt worden, habe das Passwort erfasst und Persistenz eingerichtet.
Auch die Persistenz selbst ist in der Rust-Komponente verankert. Sie enthält zusätzlich ein kleines arm64-Mach-O, das sich als macOS-Systemeinstellungen ausgibt und für die Einrichtung der dauerhaften Verankerung genutzt wird.
Die Entdeckung hat auch den Maccy-Entwickler Alex Rodionov zu einer Warnung veranlasst. Auf der Projektwebseite und im GitHub-Repository heißt es, man solle sich vor gefälschten Webseiten hüten, die Maccy imitieren. Als Beispiele nennt Rodionov „maccyapp[.]net“ und „maccyapp[.]com“. „maccy.app“ sei die einzige offizielle Webseite.
