Saltar al contenido

YARA · Volexity threat-intel

VOLEXITY_Apt_Malware_Macos_Gimmick

Detects the macOS port of the GIMMICK malware.

APT / actorVolexity threat-intelBSD 2-Clause LicenseCompila con YARA-X
Autor
threatintel@volexity.com
Fecha
2021-10-18
Modificada
2024-08-02
Puntuación / Calidad
75 / 78

Qué detecta esta regla

Detects the macOS port of the GIMMICK malware.

Define 29 patrones (29 de texto, 0 hex, 0 regex).

Resumen generado a partir de los metadatos y la condición de la regla.

Código de la regla

apt-malware-macos-gimmick.yarBSD 2-Clause License
rule VOLEXITY_Apt_Malware_Macos_Gimmick : STORMBAMBOO FILE MEMORY
{
	meta:
		description = "Detects the macOS port of the GIMMICK malware."
		author = "threatintel@volexity.com"
		id = "3d485788-4aab-511b-a49e-5dc09d1950a9"
		date = "2021-10-18"
		modified = "2024-08-02"
		reference = "https://www.volexity.com/blog/2022/03/22/storm-cloud-on-the-horizon-gimmick-malware-strikes-at-macos/"
		source_url = "https://github.com/volexity/threat-intel/blob/3a9d0b52459877ee866a9a0ba06e60059b778c77/2022/2022-03-22 GIMMICK/indicators/yara.yar#L1-L59"
		license_url = "https://github.com/volexity/threat-intel/blob/3a9d0b52459877ee866a9a0ba06e60059b778c77/LICENSE.txt"
		hash = "2a9296ac999e78f6c0bee8aca8bfa4d4638aa30d9c8ccc65124b1cbfc9caab5f"
		logic_hash = "00fba9df2212874a45d44b3d098a7b76c97fcd53ff083c76b784d2b510a4a467"
		score = 75
		quality = 78
		tags = "STORMBAMBOO, FILE, MEMORY"
		os = "darwin"
		os_arch = "all"
		scan_context = "file,memory"
		severity = "critical"
		license = "See license at https://github.com/volexity/threat-intel/blob/main/LICENSE.txt"
		rule_id = 6022
		version = 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* )
}

Cadenas (29 patrones)

IdentificadorTipoValorModificadores
$s1texto"http://cgi1.apnic.net/cgi-bin/my-ip.php --connect-timeout 10 -m 20"wide ascii
$json1texto"base_json"ascii wide
$json2texto"down_json"ascii wide
$json3texto"upload_json"ascii wide
$json4texto"termin_json"ascii wide
$json5texto"request_json"ascii wide
$json6texto"online_json"ascii wide
$json7texto"work_json"ascii wide
$msg1texto"bash_pid: %d, FDS_CHILD: %d, FDS_PARENT: %d"ascii wide
$msg2texto"pid %d is dead"ascii wide
$msg3texto"exit with code %d"ascii wide
$msg4texto"recv signal %d"ascii wide
$cmd1texto"ReadCmdQueue"ascii wide
$cmd2texto"read_cmd_server_timer"ascii wide
$cmd3texto"enableProxys"ascii wide
$cmd4texto"result_block"ascii wide
$cmd5texto"createDirLock"ascii wide
$cmd6texto"proxyLock"ascii wide
$cmd7texto"createDirTmpItem"ascii wide
$cmd8texto"dowfileLock"ascii wide
$cmd9texto"downFileTmpItem"ascii wide
$cmd10texto"filePathTmpItem"ascii wide
$cmd11texto"uploadItems"ascii wide
$cmd12texto"downItems"ascii wide
$cmd13texto"failUploadItems"ascii wide
$cmd14texto"failDownItems"ascii wide
$cmd15texto"downloadCmds"ascii wide
$cmd16texto"uploadFiles"ascii wide
$cmd17texto"bash callback...."ascii wide

Condición

$s1 or 5 of ( $json* ) or 3 of ( $msg* ) or 9 of ( $cmd* )

En palabras sencillas (Heurística)

  • Deben coincidir al menos 5 patrones de ( $json* ).
  • Deben coincidir al menos 3 patrones de ( $msg* ).
  • Deben coincidir al menos 9 patrones de ( $cmd* ).
  • El patrón $s1 debe estar presente.

Prueba esta regla en tu navegador

Arrastra un archivo para escanearlo con esta regla usando YARA-X compilado a WebAssembly. No se sube nada.

Arrastra un archivo aquí o haz clic para elegirSe escanea en local con YARA-X. Archivos de hasta 200 MB.

Abrir en el editor

Referencias

Hashes de muestras

Hashes de las muestras que el autor lista en los metadatos de la regla (búscalos en tu plataforma de threat intelligence).

  • 2a9296ac999e78f6c0bee8aca8bfa4d4638aa30d9c8ccc65124b1cbfc9caab5f

Licencia y atribución

Autor: threatintel@volexity.com

Repositorio de origen: Volexity threat-intel @ 3a9d0b5245

Licencia: BSD 2-Clause License (indicada en los metadatos de la regla)

“See license at https://github.com/volexity/threat-intel/blob/main/LICENSE.txt”

Aviso de copyright: Copyright 2022 by Volexity, Inc.

Regla original

Obtenida a través de YARA Forge 20260927, que añade a los nombres el prefijo de la fuente y campos meta normalizados.

Id de la regla: 3d485788-4aab-511b-a49e-5dc09d1950a9

Metadatos

osdarwin
os_archall
scan_contextfile,memory
severitycritical
rule_id6022
version8

Etiquetas:STORMBAMBOOFILEMEMORY