Source: Jamf Threat Labs (blog Jamf). Contexte: publication du 14 janvier 2026 présentant des découvertes originales issues de l’ingénierie inverse d’un échantillon de Predator, en complément des travaux de Google Threat Intelligence Group (GTIG) de 2024.

Jamf expose une architecture de surveillance anti-analyse centrée sur la classe C++ CSWatcherSpawner::CSWatcherSpawner et sa fonction check_perform(), avec un système de codes d’erreur (301–311) qui envoie au C2 un diagnostic précis avant auto-nettoyage. Plusieurs codes sont mis en évidence (p. ex. 311 pour multi‑instances, 309 pour restriction géographique, 310 pour console active, 304 pour outils de sécurité), tandis que 302, 303, 305, 306 sont absents dans cet échantillon.

Les détections implémentées incluent: mode développeur iOS (sysctlbyname sur security.mac.amfi.developer_mode_status), jailbreak (vérifications de fichiers/dirs Cydia/APT et /bin/), restriction régionale (locale US/IL via NSLocale), console (comparaison du mtime de com.apple.diagnosticd.filter.plist avec l’heure de boot), multi‑instances (énumération des processus via sysctl et proc_pidpath pour /private/var/tmp/), et outils/processus sensibles (tcpdump, frida-server, netstat, sshd, checkra1nd, loader, McAfee, AvastMobileSecurity, NortonMobileSecurity).

Côté anti-forensique, Predator surveille en continu le répertoire CrashReporter via kqueue pour intercepter/supprimer les crash logs; un gestionnaire de crash tue spécifiquement mmaintenanced dès qu’un rapport contient « SystemMemory », afin d’entraver la collecte de dumps mémoire. Le malware met aussi en place un auto-nettoyage après rapport d’erreur et à l’extinction (notification Darwin « com.apple.springboard.deviceWillShutDown »).

Pour la furtivité visuelle, Predator injecte et hooke SpringBoard (méthodes de SBRecordingIndicatorManager) pour cacher les indicateurs d’enregistrement (points orange/vert) lors de l’usage micro/caméra. Des noms de classes internes révèlent l’architecture d’exploitation noyau, dont NSTaskROP::WithoutDeveloperMode. Une fonction is_corellium() est présente mais inactive dans cet échantillon.

IOCs et TTPs:

  • Fichiers/chemins surveillés ou utilisés:
    • /private/var/preferences/SystemConfiguration/preferences.plist (proxy)
    • /private/var/preferences/Logging/com.apple.diagnosticd.filter.plist (console)
    • /private/var/protected/trustd/private/TrustStore.sqlit
    • /private/var/tmp/ (staging et détection multi‑instances)
    • /private/var/mobile/Library/Logs/CrashReporter/ (surveillance kqueue)
    • Indicateurs jailbreak: /bin/bash, /private/var/tmp/cydia.log, /Applications/Cydia.app, /private/var/lib/apt/, /private/var/lib/cydia, /etc/apt, /private/var/stash, et vérification du contenu de /bin/
  • Processus détectés: tcpdump, frida-server, netstat, sshd, checkra1nd, loader, McAfee, AvastMobileSecurity, NortonMobileSecurity
  • Techniques: signalement C2 par codes d’erreur (301–311), évasion/anti‑analyse (détection mode dev, jailbreak, outils), anti‑forensique (suppression crash logs, kill de mmaintenanced), hooking SpringBoard pour masquer l’UI, persistences/cleanup orchestrés via notifications système et suppression de traces.

Article de type: publication de recherche technique visant à documenter en profondeur les mécanismes anti‑analyse et anti‑forensiques de Predator, avec un inventaire de détections, de codes d’erreur et de comportements de furtivité. 🔬

🧠 TTPs et IOCs détectés

TTP

T1027 - Obfuscated Files or Information, T1057 - Process Discovery, T1082 - System Information Discovery, T1107 - File Deletion, T1140 - Deobfuscate/Decode Files or Information, T1202 - Indirect Command Execution, T1211 - Exploitation for Defense Evasion, T1218 - System Binary Proxy Execution, T1222 - File and Directory Permissions Modification, T1480 - Execution Guardrails, T1497 - Virtualization/Sandbox Evasion, T1518 - Software Discovery, T1547 - Boot or Logon Autostart Execution, T1562 - Impair Defenses, T1564 - Hide Artifacts, T1574 - Hijack Execution Flow

IOC

/private/var/preferences/SystemConfiguration/preferences.plist, /private/var/preferences/Logging/com.apple.diagnosticd.filter.plist, /private/var/protected/trustd/private/TrustStore.sqlit, /private/var/tmp/, /private/var/mobile/Library/Logs/CrashReporter/, /bin/bash, /private/var/tmp/cydia.log, /Applications/Cydia.app, /private/var/lib/apt/, /private/var/lib/cydia, /etc/apt, /private/var/stash, tcpdump, frida-server, netstat, sshd, checkra1nd, loader, McAfee, AvastMobileSecurity, NortonMobileSecurity


🔗 Source originale : https://www.jamf.com/blog/predator-spyware-anti-analysis-techniques-ios-error-codes-detection/