Dans un article précédent, j’ai expliqué comment vous pouvez utiliser STIX, TAXII et CybOX pour partager des informations sur les menaces.
L’un des éléments clés de la bonne utilisation des informations sur les cybermenaces nécessite que ces informations soient exploitables, ou du moins utilisables. Les informations partagées doivent être exactes, complètes et pertinentes pour votre environnement.
CybOX fournit une structure commune pour représenter les cyber observables dans et parmi les domaines opérationnels de la cybersécurité des entreprises. CybOX peut contenir des hachages, des chaînes ou des clés de registre. Les informations fournies via le système peuvent être utilisées pour vérifier la présence de logiciels malveillants dans votre environnement. YARA est l’une des alternatives à l’utilisation de CyBOX, mais les deux ne s’excluent pas mutuellement.
Qu’Est-Ce Que YARA ?
YARA est un outil conçu pour aider les chercheurs en malware à identifier et classer les échantillons de malware. Il a été appelé le couteau suisse correspondant aux modèles pour les chercheurs en sécurité (et tout le monde). Il est multiplateforme et peut être utilisé à partir de son interface de ligne de commande ou via vos propres scripts Python.
L’outil vous permet de détecter les logiciels malveillants par signature, quelque chose de similaire à ce que les solutions antivirus peuvent faire pour vous.
Comment L’Utilisez-Vous?
Pour utiliser cette méthode, vous avez besoin d’une règle et d’un fichier que vous souhaitez vérifier. Par exemple, pour l’exécuter à partir de la ligne de commande, vous utiliseriez :
Cela sortira si la règle donnée correspond au fichier fourni. Si vous ne voyez pas la sortie et que vous n’avez pas utilisé l’option de négation, cela signifie qu’aucune règle n’a correspondu.
Vous pouvez le démarrer avec un certain nombre de commutateurs de configuration; ce sont les deux plus importants :
- – n : Imprimer uniquement les règles non satisfaites (nier).
- – r : recherche récursive dans les répertoires.
Règles
Une règle est un ensemble de chaînes et d’une certaine forme de logique, écrit dans des expressions booléennes.
Il existe un support pour trois types de chaînes différents:
- Chaînes hexadécimales, utiles pour définir des octets bruts ;
- Chaînes de texte ;
- Expressions régulières.
Les conditions sont des expressions booléennes que vous reconnaîtrez dans les langages de programmation ordinaires. Ils peuvent travailler sur n’importe laquelle des chaînes données, mais également sur des variables intégrées spéciales, telles que la taille du fichier, ou sur des variables externes que vous définissez en dehors de la règle. Il existe également un support pour l’utilisation de modules, tels que Cuckoo, pour étendre les fonctionnalités que vous pouvez utiliser dans les conditions.
Vous bénéficierez le plus de YARA si vous lui fournissez un bon ensemble de règles. Vous pouvez écrire vos propres règles ou les obtenir auprès d’un autre fournisseur.
Écrivez vos propres règles
Écrire vos propres règles n’est pas si difficile si vous prenez ces directives en considération:
- Les critères que vous utilisez pour faire correspondre doivent être une partie nécessaire du comportement du logiciel malveillant.
- Les critères doivent être suffisants pour distinguer la famille de logiciels malveillants testée des autres familles de logiciels malveillants.
- Les critères doivent être communs à différents échantillons.
Une fois que vous avez analysé le logiciel malveillant et extrait des données utiles et reconnaissables, vous pouvez ensuite transformer les informations en chaînes YARA et les combiner avec une certaine forme de logique.
Obtenir des règles À Partir de Sources externes
Étant donné que YARA utilise des signatures similaires aux solutions antivirus, il serait logique de réutiliser ces signatures en tant que base de données de règles. Avec l’utilisation du script clamav_to_yara.py , vous pouvez convertir la base de données de signatures ClamAV en votre propre jeu de règles.
Une autre source de règles est le référentiel Github YaraRules. Il s’agit d’un ensemble de règles sous licence GNU-GPLv2 maintenu par un groupe de chercheurs en sécurité informatique. Les règles sont stockées dans différentes catégories — règles visant à détecter les techniques d’anti-débogage et d’anti-visualisation, les documents malveillants, les packers, etc. – et fréquemment mis à jour. Vous pouvez les obtenir en clonant le référentiel Github.
Certaines plates-formes de partage de renseignements sur les menaces, telles que MISP et ThreatConnect, prennent également en charge YARA. Cela vous permet de créer des règles basées sur vos propres informations de menace collectées.
Générer automatiquement des règles
Avec l’utilisation du générateur de règles de Joe Sandbox, vous pouvez créer des signatures pour Windows à partir de données de comportement statiques et dynamiques. Notez que les mêmes règles s’appliquent que lors de l’utilisation de sandbox d’analyse de logiciels malveillants en ligne gratuits. Vous téléchargez vos fichiers vers un service cloud externe, ce qui ne devrait pas être fait avec des fichiers ou des données sensibles contenant une quelconque forme d’informations d’identification de l’utilisateur.
Cas d’utilisation supplémentaires
J’ai mentionné précédemment que vous pouvez convertir la base de données ClamAV en un ensemble de règles utilisable. Cela va aussi dans l’autre sens. Supposons que vous ayez un ensemble de règles détaillées. Vous pouvez configurer ClamAV pour étendre son ensemble de fonctionnalités avec vos règles fournies et prendre en charge YARA. Cela vous permet de faire correspondre les règles sur les fichiers compressés ou emballés. L’API privée VirusTotal dispose également d’une fonctionnalité avec laquelle vous pouvez entrer vos propres règles et les déclencher lorsqu’un échantillon correspondant est téléchargé.
La protection basée sur la signature n’est pas suffisante
Se fier uniquement à la protection basée sur la signature n’est plus suffisant. Les attaquants ont développé des contre-mesures qu’ils peuvent utiliser pour contourner cette méthode. Avec l’utilisation de divers services de cryptage, packers et polymorphisme, ils peuvent facilement générer des logiciels malveillants suffisamment différents pour qu’ils ne correspondent plus aux signatures existantes. Il faut ensuite un certain temps avant que la nouvelle saveur soit ramassée et qu’une signature soit partagée.
Ces inconvénients ne rendent pas la détection basée sur les signatures obsolète. La communauté de la sécurité est forte pour partager de nouveaux indicateurs de menace, de sorte que ces types d’outils s’avéreront toujours un atout important pour votre arsenal.
Conclusion
Bien que la détection basée sur les signatures avec YARA ait ses limites, c’est un moyen facile à utiliser et assez simple de détecter les logiciels malveillants dans votre environnement. Il ne serait pas sage de s’en fier à lui comme seule mesure de protection contre les menaces, mais compte tenu de son utilisation simple, passer à côté de cet outil ne serait pas non plus une bonne idée.