YARA · Volexity threat-intel
VOLEXITY_Apt_Malware_Macos_Gimmick
Detects the macOS port of the GIMMICK malware.
- Auteur
- threatintel@volexity.com
- Date
- 2021-10-18
- Modifiée
- 2024-08-02
- Score / Qualité
- 75 / 78
Ce que détecte cette règle
Detects the macOS port of the GIMMICK malware.
Elle définit 29 motifs (29 texte, 0 hex, 0 regex).
Résumé généré à partir des métadonnées et de la condition de la règle.
Source de la règle
rule VOLEXITY_Apt_Malware_Macos_Gimmick : STORMBAMBOO FILE MEMORY
{
meta:
= "Detects the macOS port of the GIMMICK malware."
= "threatintel@volexity.com"
= "3d485788-4aab-511b-a49e-5dc09d1950a9"
= "2021-10-18"
= "2024-08-02"
= "https://www.volexity.com/blog/2022/03/22/storm-cloud-on-the-horizon-gimmick-malware-strikes-at-macos/"
= "https://github.com/volexity/threat-intel/blob/3a9d0b52459877ee866a9a0ba06e60059b778c77/2022/2022-03-22 GIMMICK/indicators/yara.yar#L1-L59"
= "https://github.com/volexity/threat-intel/blob/3a9d0b52459877ee866a9a0ba06e60059b778c77/LICENSE.txt"
= "2a9296ac999e78f6c0bee8aca8bfa4d4638aa30d9c8ccc65124b1cbfc9caab5f"
= "00fba9df2212874a45d44b3d098a7b76c97fcd53ff083c76b784d2b510a4a467"
= 75
= 78
= "STORMBAMBOO, FILE, MEMORY"
= "darwin"
= "all"
= "file,memory"
= "critical"
= "See license at https://github.com/volexity/threat-intel/blob/main/LICENSE.txt"
= 6022
= 8
strings:
$s1 = "http://cgi1.apnic.net/cgi-bin/my-ip.php --connect-timeout 10 -m 20" wide ascii
$json1 = "base_json" ascii wide
$json2 = "down_json" ascii wide
$json3 = "upload_json" ascii wide
$json4 = "termin_json" ascii wide
$json5 = "request_json" ascii wide
$json6 = "online_json" ascii wide
$json7 = "work_json" ascii wide
$msg1 = "bash_pid: %d, FDS_CHILD: %d, FDS_PARENT: %d" ascii wide
$msg2 = "pid %d is dead" ascii wide
$msg3 = "exit with code %d" ascii wide
$msg4 = "recv signal %d" ascii wide
$cmd1 = "ReadCmdQueue" ascii wide
$cmd2 = "read_cmd_server_timer" ascii wide
$cmd3 = "enableProxys" ascii wide
$cmd4 = "result_block" ascii wide
$cmd5 = "createDirLock" ascii wide
$cmd6 = "proxyLock" ascii wide
$cmd7 = "createDirTmpItem" ascii wide
$cmd8 = "dowfileLock" ascii wide
$cmd9 = "downFileTmpItem" ascii wide
$cmd10 = "filePathTmpItem" ascii wide
$cmd11 = "uploadItems" ascii wide
$cmd12 = "downItems" ascii wide
$cmd13 = "failUploadItems" ascii wide
$cmd14 = "failDownItems" ascii wide
$cmd15 = "downloadCmds" ascii wide
$cmd16 = "uploadFiles" ascii wide
$cmd17 = "bash callback...." ascii wide
condition:
$s1 or 5 of ( $json* ) or 3 of ( $msg* ) or 9 of ( $cmd* )
}
Chaînes (29 motifs)
| Identifiant | Type | Valeur | Modificateurs |
|---|---|---|---|
| $s1 | texte | "http://cgi1.apnic.net/cgi-bin/my-ip.php --connect-timeout 10 -m 20" | wide ascii |
| $json1 | texte | "base_json" | ascii wide |
| $json2 | texte | "down_json" | ascii wide |
| $json3 | texte | "upload_json" | ascii wide |
| $json4 | texte | "termin_json" | ascii wide |
| $json5 | texte | "request_json" | ascii wide |
| $json6 | texte | "online_json" | ascii wide |
| $json7 | texte | "work_json" | ascii wide |
| $msg1 | texte | "bash_pid: %d, FDS_CHILD: %d, FDS_PARENT: %d" | ascii wide |
| $msg2 | texte | "pid %d is dead" | ascii wide |
| $msg3 | texte | "exit with code %d" | ascii wide |
| $msg4 | texte | "recv signal %d" | ascii wide |
| $cmd1 | texte | "ReadCmdQueue" | ascii wide |
| $cmd2 | texte | "read_cmd_server_timer" | ascii wide |
| $cmd3 | texte | "enableProxys" | ascii wide |
| $cmd4 | texte | "result_block" | ascii wide |
| $cmd5 | texte | "createDirLock" | ascii wide |
| $cmd6 | texte | "proxyLock" | ascii wide |
| $cmd7 | texte | "createDirTmpItem" | ascii wide |
| $cmd8 | texte | "dowfileLock" | ascii wide |
| $cmd9 | texte | "downFileTmpItem" | ascii wide |
| $cmd10 | texte | "filePathTmpItem" | ascii wide |
| $cmd11 | texte | "uploadItems" | ascii wide |
| $cmd12 | texte | "downItems" | ascii wide |
| $cmd13 | texte | "failUploadItems" | ascii wide |
| $cmd14 | texte | "failDownItems" | ascii wide |
| $cmd15 | texte | "downloadCmds" | ascii wide |
| $cmd16 | texte | "uploadFiles" | ascii wide |
| $cmd17 | texte | "bash callback...." | ascii wide |
Condition
$s1 or 5 of ( $json* ) or 3 of ( $msg* ) or 9 of ( $cmd* )En clair (Heuristique)
- Au moins 5 motifs de ( $json* ) doivent être trouvés.
- Au moins 3 motifs de ( $msg* ) doivent être trouvés.
- Au moins 9 motifs de ( $cmd* ) doivent être trouvés.
- Le motif $s1 doit être présent.
Tester cette règle dans votre navigateur
Déposez un fichier pour le scanner avec cette règle grâce à YARA-X compilé en WebAssembly. Rien n’est envoyé.
Hashes d’échantillons
Hashes des échantillons listés par l’auteur dans les métadonnées de la règle (à rechercher dans votre plateforme de threat intelligence).
- 2a9296ac999e78f6c0bee8aca8bfa4d4638aa30d9c8ccc65124b1cbfc9caab5f
Licence et attribution
Auteur : threatintel@volexity.com
Dépôt source : Volexity threat-intel @ 3a9d0b5245
Licence : BSD 2-Clause License (indiquée dans les métadonnées de la règle)
“See license at https://github.com/volexity/threat-intel/blob/main/LICENSE.txt”
Mention de copyright : Copyright 2022 by Volexity, Inc.
Reprise via YARA Forge 20260927, qui préfixe les noms de règles par la source et ajoute des champs meta normalisés.
Identifiant de règle: 3d485788-4aab-511b-a49e-5dc09d1950a9
Métadonnées
| os | darwin |
|---|---|
| os_arch | all |
| scan_context | file,memory |
| severity | critical |
| rule_id | 6022 |
| version | 8 |
Règles liées
- APT / acteurVolexity threat-intel· threatintel@volexity.com· 2023-07-21
- APT / acteurVolexity threat-intel· threatintel@volexity.com· 2023-08-17
- APT / acteurVolexity threat-intel· threatintel@volexity.com· 2024-02-23
- APT / acteurVolexity threat-intel· threatintel@volexity.com· 2024-02-23
- APT / acteurVolexity threat-intel· threatintel@volexity.com· 2023-07-24
- APT / acteurVolexity threat-intel· threatintel@volexity.com· 2020-03-16
- APT / acteurVolexity threat-intel· threatintel@volexity.com· 2024-07-30
- APT / acteurVolexity threat-intel· threatintel@volexity.com· 2023-03-30