Dans le blog précédent, nous avons abordé les différentes méthodes de détection et leur impact en cybersécurité. Nous avons ensuite approfondi l’une des premières techniques connues : la détection par signature. Bien que cette méthode soit puissante et offre une forte assurance de détection, elle reste insuffisante dans un paysage cyber en constante évolution, où les attaquants développent sans cesse de nouvelles techniques d’évasion.
Aujourd’hui, nous allons explorer en détail une autre technique de détection, qui, contrairement à la détection par signature, se concentre davantage sur l’analyse des caractéristiques spécifiques des fichiers suspects. Il s’agit des règles YARA, une approche efficace permettant d’identifier des menaces en se basant sur des modèles comportementaux et structurels. Alors, plongeons ensemble dans l’univers des règles YARA et découvrons comment elles peuvent renforcer la détection des menaces !
Les règles YARA permettent de classer et d’identifier des échantillons de malwares en créant des descriptions de familles de malwares basées sur des modèles textuels ou binaires.
Les règles YARA (Yet Another Recursive Acronym) identifient des motifs récurrents susceptibles d’apparaître dans les logiciels malveillants ou les familles de logiciels malveillants, et donc indiquer la présence de ce type de logiciels. Lorsqu’une règle détecte une caractéristique ou un motif révélateur d’un logiciel malveillant, elle peut alerter un intervenant approprié qui peut alors isoler ou supprimer la menace.
Les règles YARA sont un outil essentiel dans l’analyse et la détection des menaces. Elles fonctionnent comme un langage de programmation spécialisé, permettant de définir des modèles spécifiques à un malware (comme des chaînes de texte, des signatures binaires ou des séquences de code). Concrètement, chaque règle établit un ensemble de variables contenant des motifs caractéristiques retrouvés dans un sample malveillant.
Lorsqu’une règle est appliquée à un fichier ou un processus, elle évalue si certaines ou toutes les conditions définies sont remplies. Si tel est le cas, la règle permet d’identifier avec précision la présence d’un malware. Grâce à cette approche flexible et personnalisable, YARA s’impose comme un atout incontournable pour les analystes en cybersécurité, notamment dans la chasse aux menaces et l’investigation numérique.
Note: en cybersécurité, un sample (ou échantillon) désigne un fichier unique suspect ou confirmé comme malveillant (un malware spécifique, par exemple un exécutable ou un script infecté), utilisé pour l’analyse et la détection des menaces.
Pour élaborer une règle YARA utile et personnalisée, on doit connaître les différents éléments qui peuvent être utilisés.
Toutes les règles YARA doivent commencer par le mot-clé rule, suivi d’un identificateur, c’est-à-dire le nom unique donné à votre règle. L’identificateur est sensible à la casse et ne peut pas contenir d’espace, commencer par une valeur numérique, ni inclure l’un des mots-clés réservés répertoriés dans la documentation sur l’écriture des règles YARA.
Par exemple, le nom de la règle suivante est valide :
Dans cet exemple, my_first_yara_rule est un identificateur valide car il respecte toutes les règles de nommage et ne contient aucun mot-clé réservé.
Les métadonnées sont optionnelles et n’affectent pas ce que la règle YARA va rechercher, mais elles fournissent des informations utiles sur la règle elle-même. La section des métadonnées est définie par le mot-clé meta. Les métadonnées peuvent inclure :
Dans cet exemple, les métadonnées contiennent des informations telles que l’auteur, la date, la version, la référence, la description et les hachages des samples. Ces informations ne modifient pas le comportement de la règle, mais elles permettent de mieux organiser et comprendre le contexte de la règle YARA.
La section strings (chaînes) sert à déclarer une variable et à définir sa valeur. Les variables sont décrites à l’aide du symbole $, suivi de leur nom. Elles sont sensibles à la casse et ne doivent pas contenir d’espace ni commencer par une valeur numérique.
La section condition est l’élément clé d’une règle YARA. Elle définit les critères de détection qu’un fichier ou un processus doit remplir pour être identifié comme correspondant à la règle.
Elle permet d’évaluer la présence des chaînes déclarées dans strings, d’appliquer des opérateurs logiques (AND, OR, NOT), d’effectuer des comparaisons numériques, ou encore d’utiliser des fonctions intégrées pour une analyse plus avancée.
Dans cet exemple, la section condition définit les critères de détection du fichier analysé :
Ces conditions permettent une détection plus précise, en combinant analyse de taille et présence de motifs spécifiques.
Maintenant que nous avons créé notre règle YARA, il est temps de découvrir comment l’utiliser pour identifier des indicateurs de compromission dans un fichier. Pour ce faire, nous avons créé un fichier nommé malicious.txt, dont le contenu est illustré dans la capture suivante :
Ensuite, pour lancer l’analyse, il suffit d’ouvrir une invite de commandes (cmd), de se placer dans le dossier contenant rule.yara et malicious.txt, puis d’exécuter la commande suivante :
Comme vous pouvez le voir, YARA a détecté les occurrences des chaînes définies dans la règle, indiquant ainsi la présence des motifs recherchés dans le fichier analysé.
YARA est sans doute l’un des outils les plus puissants pour la détection de malwares, mais il a ses limites. Par exemple, lorsqu’un malware utilise des techniques d’obfuscation ou de chiffrement, YARA peut avoir du mal à repérer ses signatures. Si un fichier est chiffré ou compressé, les chaînes de texte ou les motifs binaires habituellement recherchés ne seront tout simplement pas visibles. Cela signifie que YARA, qui se base sur des motifs spécifiques, ne pourra pas détecter le malware aussi efficacement dans ces cas-là.
Même si YARA reste un excellent outil pour la détection des malwares, il n’est pas toujours suffisant, surtout dans des scénarios où l’obfuscation ou le chiffrement est utilisé pour dissimuler les signatures. Dans ces cas-là, YARA doit être accompagné d’autres solutions pour être plus efficace. C’est là qu’interviennent des outils comme les règles Sigma, que nous verrons plus en détail dans la troisième partie de ce blog.