Skip to main content

[SOC] YARA

Introduction

Le YARA est un langage pour écrire des règles de détection de malware.

Il s'agit d'un langage simple et descriptif qui est adopté par le grand public.

Il est découpé par section qui ont chacune leur utilité. 

image.png

Source

Cuckoosandbox - Sandbox pour tester vos règles Yara PEfile - Scan les exécutables Windows PE

Annexes

    Github - Awesome Yara

    Anatomie d'une règle

    image.png

    Manuel

    Meta

    Cette section permet de donner des informations complémentaires qui ne seront pas interprêtés comme le ferait un commentaire dans du code.

    Par exemple on peut utiliser le mot-clé desc, pour donner une description à notre règle afin qu'elle soit plus explicite pour les utilisateurs.

    Strings

    Cette section permet de détecter des chaînes de caractères présente dans les fichiers.

    Voici un exemple d'utilisation :

    rule helloworld_checker{
    	strings:
    		$hello_world = "Hello World!"
    
    	condition:
    		$hello_world
    }

    On peut aussi détecter des chaînes multiples :

    rule helloworld_checker{
    	strings:
    		$hello_world = "Hello World!"
    		$hello_world_lowercase = "hello world"
    		$hello_world_uppercase = "HELLO WORLD"
    
    	condition:
    		any of them
    }

    Opérateurs

    Comme dans les langages de programmation traditionnels, on peut utiliser des opérateurs pour nos conditions :

    rule helloworld_checker{
    	strings:
    		$hello_world = "Hello World!"
    
    	condition:
            #hello_world <= 10
    }
    Opérateurs
    Descriptions
    <=
    Plus petit ou égal
    >=
    Plus grand ou égal
    !=
    Différent de

    Combinaison

    On peut utiliser les mot-clés suivants pour combiner nos conditions :

    Mot-clés
    Descriptions
    and
    Les deux conditions doivent être valides
    or
    Au moins l'une des deux conditions doit être valide
    not
    Inverse la condition (true devient false et false devient true)

    Voici un exemple pour vérifier si la chaîne est présente et si la taille du fichier est inférieure à 10KB :

    rule helloworld_checker{
    	strings:
    		$hello_world = "Hello World!" 
            
            condition:
    	        $hello_world and filesize < 10KB 
    }

    Scanners d'IOC basés sur Yara

      Loki THOR Fenrir YAYA

      Loki