Aller au contenu

YARA sur VirusTotal : Livehunt et Retrohunt

YARA sur VirusTotal : règles crowdsourcées, Livehunt sur les nouvelles soumissions, Retrohunt sur l’historique, module vt, et tester ses règles en local d’abord.

Publié le 3 min de lecture

VirusTotal, berceau de YARA, est aussi l’un des principaux endroits où les règles YARA tournent à grande échelle. Ses fonctions de chasse permettent d’appliquer des règles au flux continu de fichiers soumis et à une fenêtre de soumissions passées. Ce guide résume leur lien avec les règles que vous écrivez et testez en local. Les noms et limites des fonctionnalités relèvent de VirusTotal ; consultez sa documentation pour votre abonnement.

Règles YARA crowdsourcées

VirusTotal exécute aussi une sélection de jeux de règles publics sur chaque fichier et affiche les règles « crowdsourced » correspondantes dans les rapports, avec un lien vers leur source. Beaucoup proviennent des mêmes dépôts que ceux de cette bibliothèque.

Livehunt

Livehunt applique vos règles aux nouveaux fichiers dès leur soumission et vous notifie des correspondances. Usages typiques :

  • suivre une famille de malwares ou l’outillage d’un acteur dans le temps ;
  • guetter de nouvelles variantes d’un échantillon issu de votre incident ;
  • surveiller des fichiers qui mentionnent votre organisation, vos domaines ou vos certificats de signature.

Livehunt tourne sur un volume énorme : il récompense les mêmes qualités que toute règle de production — bons atomes, garde-fous peu coûteux, pas de boucle sur tout le fichier (voir performance).

Retrohunt

Retrohunt applique des règles aux fichiers soumis dans le passé, dans une fenêtre de rétention. C’est l’étape naturelle après avoir écrit une règle à partir d’un échantillon d’incident : « est-ce déjà apparu, et où ? ». Les résultats révèlent souvent des versions plus anciennes, des outils liés ou une activité antérieure de la campagne. VirusTotal utilise YARA-X en production pour ces fonctions : une règle qui compile proprement avec YARA-X — comme dans l’éditeur — s’y comporte comme prévu.

Le module vt

Dans Livehunt, le module vt expose des métadonnées sur la soumission — informations sur le fichier, sur la manière dont il a été soumis, résultats d’analyses de VirusTotal — pour combiner motifs de contenu et contexte. Hors de VirusTotal, le module compile mais ses champs sont indéfinis : les conditions qui en dépendent sont fausses. Séparez clairement la logique de contenu de la logique vt, pour que la partie contenu reste testable en local.

import "vt"

rule VT_Context_Example
{
    meta:
        description = "Contrôle de contenu qui compile aussi en local ; les champs vt ne sont renseignés que sur VirusTotal"
    strings:
        $a = "ExampleImplantConfig" ascii
    condition:
        $a and filesize < 5MB
}

Différences avec un scan local

  • Corpus : VirusTotal voit des fichiers du monde entier ; une règle muette sur votre goodware peut toucher un logiciel légitime ailleurs. Attendez-vous à un peu de bruit et affinez.
  • Volume et quotas : notifications et jobs Retrohunt sont limités par votre offre. Des règles précises économisent les deux.
  • Contexte : les métadonnées du module vt n’ont pas d’équivalent local.
  • Moteur : la chasse tourne sur YARA-X ; évitez les fonctionnalités propres à YARA 4.x.

Bonnes pratiques

  1. Développez et testez la partie contenu en local : l’éditeur en ligne compile avec YARA-X et teste sur des échantillons sans les envoyer.
  2. Vérifiez la performance avec le linter avant de déployer une règle de chasse.
  3. Commencez Livehunt de façon étroite puis élargissez ; lancez Retrohunt avec la version la plus spécifique d’une règle.
  4. Documentez chaque règle de chasse (objectif, responsable, date) pour pouvoir retirer les notifications devenues inutiles.
  5. Respectez les licences des règles publiques que vous réutilisez (voir jeux de règles publics).

yararules.org est un projet indépendant, non affilié à VirusTotal ni à Google.

FAQ

Qu’est-ce que Livehunt ?
Une fonctionnalité de VirusTotal qui applique vos règles YARA aux fichiers au moment de leur soumission et vous notifie en cas de correspondance.
Qu’est-ce que Retrohunt ?
Une fonctionnalité de VirusTotal qui exécute des règles YARA sur une fenêtre de fichiers déjà soumis, pour retrouver des échantillons plus anciens d’une famille.
Peut-on utiliser le module vt hors de VirusTotal ?
Il compile avec YARA-X, mais ses champs ne sont renseignés que par l’infrastructure de VirusTotal. En local, ils sont indéfinis et les conditions qui en dépendent ne correspondent pas.