Introduction
Ce document décrit comment créer des détections personnalisées - Avancé en utilisant ClamAV sigtool.exe sur Windows.
À propos des détections personnalisées avancées
Les détections personnalisées avancées sont semblables aux signatures antivirus traditionnelles, mais elles sont écrites par l'utilisateur. Afin de détecter les programmes malveillants et autres menaces basées sur des fichiers, ClamAV s'appuie sur des signatures pour différencier les fichiers propres et malveillants/indésirables. Les signatures ClamAV sont principalement basées sur du texte et sont conformes à l'un des formats de signature spécifiques à ClamAV associés à une méthode de détection donnée. Ces signatures peuvent inspecter divers aspects d'un fichier et ont différents formats de signature. Voici quelques-uns des formats de signature disponibles :
· Signatures MD5
· MD5, signatures basées sur les sections PE
· Signatures basées sur le corps du fichier
· Format de signature étendu (décalages, caractères génériques, expressions régulières)
· Signatures logiques
· Signatures d'icônes
Le projet ClamAV distribue une collection de signatures sous la forme de fichiers CVD (ClamAV Virus Database). Le format de fichier CVD fournit un conteneur signé numériquement qui encapsule les signatures et garantit qu'elles ne peuvent pas être modifiées par un tiers malveillant. Ce jeu de signatures est activement mis à jour par Cisco Talos et peut être téléchargé à l'aide de l'application Fresclam fournie avec ClamAV
Pourquoi ClamAV
Nous utilisons ACD pour faire correspondre des détections/attributs de fichier complexes qui ne peuvent pas être détectés à l'aide de hachages SHA256 comme ceux des exemples ci-dessous :
Format de contenu de signature basé sur le corps
ClamAV stocke toutes les signatures basées sur le corps (basées sur le contenu) dans un format hexadécimal, à l'exception de la prise en charge des règles ClamAV YARA. Par signature hexadécimale, nous entendons un fragment du corps du programme malveillant converti en une chaîne hexadécimale qui peut être étendue à l'aide de divers caractères génériques.
Les signatures logiques permettent de combiner plusieurs signatures au format étendu à l'aide d'opérateurs logiques. Ils peuvent fournir à la fois une correspondance de modèle plus détaillée et plus flexible.
- Format de signature étendu
Le format de signature étendue est ClamAV le type de signature basé sur le corps le plus basique depuis la désapprobation du format de base de données .db d'origine.
Les signatures étendues permettent de spécifier des informations supplémentaires au-delà du simple contenu hexadécimal, comme un fichier de type « cible », un décalage de virus ou un niveau de fonctionnalité du moteur (FLEVEL), ce qui rend la détection plus fiable
Signatures d'hameçonnage
ClamAV peut détecter des liens HTML qui semblent suspects lorsque le texte affiché est une URL qui est un domaine différent que dans l'URL réelle. Malheureusement, il est assez courant pour une entreprise de sous-traiter des services Web et d'utiliser le texte d'affichage de lien HTML pour le faire ressembler à un lien vers le site Web de l'entreprise. Comme cette pratique est courante, ClamAV ne procède à des contrôles d'hameçonnage que pour des sites Web spécifiques qui sont fréquemment ciblés par des campagnes d'hameçonnage
Signatures Bytecode
Les signatures Bytecode sont le moyen par lequel une mise en correspondance plus complexe peut être effectuée en écrivant du code C pour analyser le contenu d'échantillon à différentes étapes de l'extraction de fichier.
Signatures basées sur les métadonnées du conteneur
ClamAV 0.96 permet de créer des signatures génériques correspondant à des fichiers stockés dans différents types de conteneurs qui répondent à des conditions spécifiques. Le format de signature est le suivant :
VirusName:ContainerType:ContainerSize:FileNameREGEX:
FileSizeInContainer:FileSizeReal:IsEncrypted:FilePos:
Res1:Res2[:MinFL[:MaxFL]]
où les champs correspondants sont :
VirusName : nom du virus à afficher lorsque la signature correspond.
ContainerType : type de fichier contenant le fichier cible. Exemple :
CL_TYPE_ZIP,
CL_TYPE_RAR,
ARJ_TYPE_CL,
CL_TYPE_MSCAB,
CL_TYPE_7Z,
CL_TYPE_MAIL,
CL_TYPE_POSIX_TAR,
CL_TYPE_OLD_TAR,
CL_TYPE_CPIO_OLD,
CL_TYPE_CPIO_ODC,
CL_TYPE_CPIO_NEWC,
CL_TYPE_CPIO_CRC
etc.
Ce document se concentre sur les signatures de hachage.
Remarque : le moyen le plus simple de créer des signatures pour ClamAV est d'utiliser des checksum de hachage de fichier, mais cette méthode ne peut être utilisée que contre les programmes malveillants statiques.
Attention : Veuillez noter que les informations contenues dans ce document sont sujettes à modification avec les nouvelles versions de ClamAV. Toujours corréler et vérifier avec le guide officiel pour ClamAV.
Pour plus d'informations sur les formats de signature, consultez le site Web de ClamAV
Ces signatures sont compilées dans un fichier qui est téléchargé sur le terminal. Afin de créer des détections personnalisées avancées, accédez à Contrôle des attaques > Avancé. Cliquez sur Créer un jeu de signatures pour créer un nouveau jeu de détection personnalisée avancée, donnez-lui un nom, puis cliquez sur Créer.
Après avoir créé le jeu de détection personnalisée avancée, cliquez sur Modifier et vous pouvez voir le lien Ajouter une signature. Entrez le nom de votre signature et cliquez sur Créer.
Une fois que toutes vos signatures sont répertoriées, sélectionnez Créer une base de données à partir du jeu de signatures. Si vous ajoutez par inadvertance une signature que vous ne vouliez pas, vous pouvez la supprimer en cliquant sur Supprimer.
Avertissement : chaque fois que vous ajoutez ou supprimez une signature, vous DEVEZ cliquer sur Créer une base de données à partir d'un jeu de signatures
Remarque : lorsque vous créez une détection personnalisée avancée pour un fichier, celui-ci est mis en cache pendant une heure. Si un fichier est ajouté à un jeu de détection personnalisé avancé, le temps de cache doit expirer avant que la détection ne prenne effet. Par exemple, si vous ajoutez une détection personnalisée avancée pour un fichier inconnu 5 minutes après sa mise en cache, la détection ne prendra pas effet avant 55 minutes.
Avertissement : les détections personnalisées avancées fonctionnent uniquement sur les fichiers dont la disposition est inconnue.
Comment créer des détections personnalisées - Avancé avec sigtool.exe
Étape 1 : Tout d'abord, nous devons obtenir le sigtool en naviguant vers le site Web ClamAV téléchargements
Dans mon cas, je télécharge le paquet ZIP clamav-1.1.0.win.x64.zip
Étape 2 : Décompressez le fichier à l'emplacement souhaité. Dans mon cas, j'ai utilisé C:/ClamAV
Notez les dossiers et fichiers mis en surbrillance.
clamscan.exe - est un outil de ligne de commande qui est utilisé pour analyser les fichiers et/ou les répertoires à la recherche de virus. Contrairement à clamdscan, clamscan ne nécessite pas d'instance de clamd active pour fonctionner. Au lieu de cela, clamscan peut créer un nouveau moteur et charger dans la base de données de virus chaque fois qu'il est exécuté. Il va analyser les fichiers et/ou les répertoires spécifiés sur la ligne de commande, créer un rapport d'analyse et quitter.
sigtool.exe - Outil qui crée et met en forme la signature et l'écriture dans le fichier *.hdb. L'extension hdb fait référence aux signatures basées sur le hachage. sigtool extrait libclamav et fournit des raccourcis pour effectuer des tâches que clamscan effectue en arrière-plan. Elles peuvent s'avérer très utiles lors de l'écriture d'une signature ou de la tentative d'obtention d'informations sur une signature qui peut entraîner des problèmes de performances ou de FP.
VirusVault : il s'agit de mon propre dossier créé pour supprimer les fichiers pour lesquels je voulais créer une signature personnalisée.
VirusRV.hdb - Ce fichier contient des signatures formatées. J'ai nommé ce fichier VirusRV mais vous pouvez utiliser n'importe quel nom significatif.
Étape 3a : Lancez la ligne CMD et naviguez jusqu'à l'emplacement où vous avez précédemment décompressé votre ClamAV.
Étape 3b Exécutez cette ligne.
C:\ClamAV>sigtool —md5 emplacement-du-fichier-personnalisé > nom-du-fichier-de-sortie.hdb
Vous pouvez modifier le nom (par défaut sigtool utilise le nom du fichier) et le placer dans un fichier *.hdb. Un seul fichier de base de données peut inclure un nombre illimité de signatures. Pour les charger automatiquement chaque fois que clamscan/clamd démarre, il suffit de copier le ou les fichiers de base de données dans le répertoire local de la base de données des virus (par exemple /usr/local/share/clamav).
C:\ClamAV>sigtool --md5 C:\ClamAV\VirusVault\TestVirusRV.exe > VirusRV.hdb
Dans ce cas, la signature est créée pour le fichier nommé TestVirusRV.exe, puis la signature est écrite dans le fichier nommé VirusRV.hdb
Remarque : si vous souhaitez créer une signature basée sur la valeur SHA, le fichier correspondant est enregistré sous le nom *.hsb
C:\ClamAV>sigtool --md5 C:\ClamAV\VirusVault\TestVirusRV.exe > VirusRVsha256.hsb
Attention : les signatures basées sur le hachage ne doivent pas être utilisées pour les fichiers texte, HTML et toute autre donnée qui est prétraitée en interne avant la mise en correspondance de modèle. Si vous voulez vraiment utiliser une signature de hachage dans un tel cas, exécutez clamscan avec —debug et —leave-temps et créez une signature pour un fichier prétraité laissé dans /tmp. Gardez à l'esprit qu'une signature de hachage cessera de correspondre dès qu'un seul octet changera dans le fichier cible. Plus d'informations ici
Ces indicateurs sigtool peuvent être particulièrement utiles pour l'écriture de signature :
—md5 / —sha1 / —sha256 : Générez le hachage MD5/SHA1/SHA256 et calculez la taille du fichier, en affichant les deux sous la forme d'une signature .hdb/.hsb correctement formatée
Noms des signatures
Les signatures ClamAV ne doivent utiliser que des caractères alphanumériques, des tirets (-), des points (.), des traits de soulignement (_) pour délimiter les mots. N'utilisez jamais d'espace, d'apostrophe, de deux-points, de point-virgule ou de guillemet.
Les noms de signatures ClamAV trouvés dans les bases de données de signatures officielles utilisent généralement le format suivant :
{platform}.{category}.{name}-{signature id}-{revision}
Les conventions d'appellation des bases de données tierces varient. Vous trouverez ici les directives de Cisco-Talos pour nommer les signatures de la base de données officielle.
Conseil : Si vous voulez créer plusieurs signatures sur les fichiers situés dans le répertoire que vous avez créé précédemment dans mon cas, j'ai nommé mon VirusVault, vous pouvez exécuter la commande en utilisant le caractère générique. Dans ce cas, j'ai exécuté le mien comme :
C:\ClamAV>sigtool —md5 C:\ClamAV\VirusVault\générique\ > VirusRV.hdb
C:\ClamAV>sigtool --md5 C:\ClamAV\VirusVault\*\ > VirusRV.hdb
Qui a créé une signature pour chaque fichier situé dans le répertoire VirusVault
Étape 4 : vérifiez la signature en exécutant cette commande.
C:\ClamAV>clamscan -d VirusRV.hdb C:\ClamAV\VirusVault\TestVirusRV.exe
Pour vérifier toutes les signatures, vous pouvez à nouveau utiliser un masque générique.
C:\ClamAV>clamscan -d VirusRV.hdb C:\ClamAV\VirusVault\*\
Étape 5 : ouvrez le fichier *.hdb nouvellement créé et copiez la signature créée, puis accédez à votre console de point d'extrémité sécurisé sous Contrôle des attaques > Avancé et cliquez sur Modifier. Le lien Ajouter une signature s'affiche.
Étape 6 : Assurez-vous que vous cliquez sur Créer une base de données à partir d'un jeu de signatures, puis appliquez les nouvelles détections personnalisées à votre stratégie.
Étape 7 : synchronisez votre stratégie sur votre terminal et testez votre nouvelle signature à l'aide d'une analyse manuelle. Vous pouvez voir des résultats comme ceux répertoriés ci-dessous.
Analyse manuelle
Détections dans la console Secure Endpoint
Événement développé
Configuration requise pour enregistrer la signature dans Secure Endpoint Console
Si vous n'avez que le hachage MD5 et que vous ne connaissez pas la taille du fichier, vous pouvez toujours créer un jeu de signatures, mais vous devez utiliser ces règles :
R : MD5 ne peut pas contenir toutes les lettres majuscules
Hachage MD5 correct :
5b852928a129d63dc5c895bd62cf2ab7
Hachage MD5 incorrect :
5B852928A129D63DC5C895BD62CF2AB7
Erreur dans la console Secure Endpoint avec TOUTES les lettres majuscules
B : Vous devez utiliser des majuscules pour nommer et il peut s'agir de votre propre nom.
Nom correct :
Dm-launcher.msi
Nom incorrect :
dm-launcher.msi
C : Vous pouvez utiliser un caractère générique pour la taille, mais vous devez utiliser : 73 pour le niveau minimum
Caractère générique correct :
5b852928a129d63dc5c895bd62cf2ab7:*:dm-launcher.msi:73
Caractère générique incorrect :
5b852928a129d63dc5c895bd62cf2ab7:*:dm-launcher.msi
Erreur dans la console Secure Endpoint pour tous les noms en minuscules et aucun FLEVEL spécifié
Remarque : signatures de hachage de taille inconnue - ClamAV 0.98 a également ajouté la prise en charge des signatures de hachage dont la taille n'est pas connue mais le hachage l'est. Il est beaucoup plus efficace d'utiliser des signatures de tailles spécifiques, soyez donc prudent lorsque vous utilisez cette fonctionnalité. Dans ce cas, le caractère '*' peut être utilisé dans le champ de taille. Pour garantir une compatibilité descendante correcte avec les versions antérieures de ClamAV, ces signatures doivent avoir un niveau fonctionnel minimum de 73 ou plus. Les signatures qui utilisent la taille générique sans ce niveau défini sont rejetées comme étant mal formées.