Saltar al contenido

YARA · Signature Base (Florian Roth / Nextron)

SIGNATURE_BASE_SUSP_JS_NPM_Setupscript_Nov25

Detects suspicious JavaScript which exits silently and checks operating system

Sospechoso / huntingSignature Base (Florian Roth / Nextron)Detection Rule License 1.1Compila con YARA-X
Autor
Marius Benthin
Fecha
2025-11-24
Modificada
2025-12-15
Puntuación / Calidad
70 / 85

Qué detecta esta regla

Detects suspicious JavaScript which exits silently and checks operating system

Define 4 patrones (4 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

susp-js-npm-setupscript-nov25.yarDetection Rule License 1.1
rule SIGNATURE_BASE_SUSP_JS_NPM_Setupscript_Nov25 : FILE
{
	meta:
		description = "Detects suspicious JavaScript which exits silently and checks operating system"
		author = "Marius Benthin"
		id = "2d102efd-681a-5af1-b4fe-3489e5e7f8f2"
		date = "2025-11-24"
		modified = "2025-12-15"
		reference = "https://www.aikido.dev/blog/shai-hulud-strikes-again-hitting-zapier-ensdomains"
		source_url = "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/yara/mal_npm_supply_chain_nov25.yar#L43-L64"
		license_url = "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/LICENSE"
		hash = "a3894003ad1d293ba96d77881ccd2071446dc3f65f434669b49b3da92421901a"
		logic_hash = "b685f642d1d62200da973aad7fd7a2d606a098b92524aaebe5e2bb45c63f3155"
		score = 70
		quality = 85
		tags = "FILE"

	strings:
		$sa1 = "require('child_process')"
		$sa2 = "process.platform ==="
		$sb1 = "().catch((e"
		$sb2 = "process.exit(0)"

	condition:
		filesize < 100KB and all of ( $sa* ) and $sb1 in ( filesize - 50 .. filesize ) and $sb2 in ( filesize - 30 .. filesize )
}

Cadenas (4 patrones)

IdentificadorTipoValorModificadores
$sa1texto"require('child_process')"
$sa2texto"process.platform ==="
$sb1texto"().catch((e"
$sb2texto"process.exit(0)"

Condición

filesize < 100KB and all of ( $sa* ) and $sb1 in ( filesize - 50 .. filesize ) and $sb2 in ( filesize - 30 .. filesize )

En palabras sencillas (Heurística)

  • El archivo debe ocupar menos de 100KB (un límite barato que descarta archivos grandes).
  • Deben coincidir todos los patrones de ( $sa* ).
  • El patrón $sb1 debe estar en el rango filesize - 50 .. filesize.
  • El patrón $sb2 debe estar en el rango filesize - 30 .. filesize.

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).

  • a3894003ad1d293ba96d77881ccd2071446dc3f65f434669b49b3da92421901a

Licencia y atribución

Autor: Marius Benthin

Repositorio de origen: Signature Base (Florian Roth / Nextron) @ 94a1c48d7a

Licencia: Detection Rule License 1.1 (licencia del repositorio)

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: 2d102efd-681a-5af1-b4fe-3489e5e7f8f2

Etiquetas:FILE