Aller au contenu

YARA · Signature Base (Florian Roth / Nextron)

SIGNATURE_BASE_SUSP_JS_NPM_Setupscript_Nov25

Detects suspicious JavaScript which exits silently and checks operating system

Suspect / chasseSignature Base (Florian Roth / Nextron)Detection Rule License 1.1Compile avec YARA-X
Auteur
Marius Benthin
Date
2025-11-24
Modifiée
2025-12-15
Score / Qualité
70 / 85

Ce que détecte cette règle

Detects suspicious JavaScript which exits silently and checks operating system

Elle définit 4 motifs (4 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

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

Chaînes (4 motifs)

IdentifiantTypeValeurModificateurs
$sa1texte"require('child_process')"
$sa2texte"process.platform ==="
$sb1texte"().catch((e"
$sb2texte"process.exit(0)"

Condition

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

En clair (Heuristique)

  • Le fichier doit faire moins de 100KB (garde-fou peu coûteux qui écarte les gros fichiers).
  • Tous les motifs de ( $sa* ) doivent être trouvés.
  • Le motif $sb1 doit se trouver dans la plage filesize - 50 .. filesize.
  • Le motif $sb2 doit se trouver dans la plage filesize - 30 .. filesize.

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

Déposez un fichier ici ou cliquez pour choisirScanné localement avec YARA-X. Fichiers jusqu’à 200 Mo.

Ouvrir dans l’éditeur

Références

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

  • a3894003ad1d293ba96d77881ccd2071446dc3f65f434669b49b3da92421901a

Licence et attribution

Auteur : Marius Benthin

Dépôt source : Signature Base (Florian Roth / Nextron) @ 94a1c48d7a

Licence : Detection Rule License 1.1 (licence du dépôt)

Règle d’origine

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

Tags:FILE