97 % des équipes de sécurité ignorent si leurs expositions sont exploitables. En faites-vous partie ?Lire le rapport
Filigran
Développement logicielRenseignement sur les menaces

Introduction de l'implémentation des règles de décroissance pour les Indicateurs dans OpenCTI

7 min de lecture
Introducing decay rules implementation for Indicators in OpenCTI

La Cyber Threat Intelligence est faite pour être utilisée. Pour être utile, elle doit être pertinente et en temps opportun. C'est pourquoi la gestion du cycle de vie des Indicateurs de Compromission (IoC) est si importante en cybersécurité. Mais les IoCs sont souvent reçus par milliers. Alors, comment les gérer tous pour les rendre pertinents dans un contexte temporel sensible ?

Pour répondre à cette problématique, nous avons introduit l'algorithme Score Decay dans OpenCTI 6.0 pour vous aider à gérer le cycle de vie de vos IoCs !


Les changements du cycle de vie des Indicateurs avec le nouvel algorithme de décroissance

Les IoCs indiquent que tout ce qui correspond à leur pattern est « malveillant », ou au moins pertinent concernant une menace. Cette malveillance/pertinence est représentée par les valeurs « score » et « valid_until » de l'IoC. Avant la version 6.0, le score d'un Indicateur dans OpenCTI ne pouvait changer que sur la base de nouvelles informations (mise à jour manuelle, nouvelles données de flux, playbook) mais pas dans le temps. C'était un modèle On/Off qui ne pouvait pas représenter l'évolution de la pertinence de l'IoC au fil du temps.

Avec les règles de décroissance activées, les Indicateurs peuvent maintenant voir leur score diminuer au fil du temps.

Sur la vue d'ensemble de l'Indicateur, un nouveau bouton est désormais présent à côté du score, appelé « Lifecycle ».

image

Score de l'Indicateur avec bouton lifecycle

Lorsque vous ouvrez la vue du cycle de vie de l'Indicateur, elle affiche la courbe représentant le cycle de vie de l'IoC. Un tableau liste tous les scores pertinents qui sont surveillés afin de pouvoir y réagir. Le dernier de ces scores est celui qui rend l'IoC révoqué en raison de son manque de pertinence.

image 1

Détails du cycle de vie de l'indicateur

La courbe est affichée pour le contexte, mais le score de l'Indicateur qui est visible sur la vue d'ensemble de l'Indicateur et stocké dans la base de données prendra les valeurs de score du tableau. Lorsque le moment d'un score stable est atteint, la plateforme met à jour le score de l'IoC et cette mise à jour peut être traitée de la même manière que lorsque le score est mis à jour manuellement dans l'interface utilisateur (dans les flux, dans les playbooks, dans les notificateurs).

Comment la plateforme OpenCTI sélectionne-t-elle une règle de décroissance pour un Indicateur ?

La plateforme CTI dispose de plusieurs règles de décroissance configurées par défaut, et les utilisateurs ayant accès aux paramètres peuvent en configurer de nouvelles comme expliqué dans la section Administration de cet article.

La sélection de la règle de décroissance est basée sur le « type d'observable principal » de l'Indicateur et un système de priorité.

Lorsqu'un nouvel Indicateur est créé, l'algorithme de décroissance :

  • Recherche les règles de décroissance basées sur le type d'observable principal de l'Indicateur (par exemple : Nom de domaine)
  • Sélectionne la règle de décroissance avec l'ordre le plus élevé
  • Si aucune règle n'existe pour le type d'observable principal, prend la règle de décroissance qui correspond à tous les types d'observables avec la priorité la plus élevée.

La règle de décroissance est sélectionnée lors de la création de l'Indicateur. Cela signifie que si un Indicateur est créé avec une règle de décroissance, puis que les paramètres de cette règle sont modifiés par la suite, les nouveaux paramètres ne sont pas appliqués sur l'Indicateur. Seuls les nouveaux Indicateurs qui correspondent à la règle auront les nouveaux paramètres.

Cela signifie également que les Indicateurs qui existent sur la plateforme avant la migration vers OpenCTI 6.0 n'auront pas de calcul rétroactif de la règle de décroissance. Veuillez noter que lorsqu'un Indicateur atteint la date « valid_until », les Indicateurs sont toujours révoqués. La diminution du score et le score de révocation avec la règle de décroissance fonctionnent ensemble avec le mécanisme de révocation.

Cette conception du moteur de règles de décroissance des Indicateurs est faite pour des raisons de performance, étant donné qu'une plateforme OpenCTI peut avoir des millions d'Indicateurs existants.

Que se passe-t-il si le score est mis à jour par l'interface utilisateur ou les connecteurs ?

Vous pourriez voir certaines courbes de cycle de vie d'Indicateurs qui ne commencent pas à partir du score de l'Indicateur à la création. La raison est que lorsque le score est mis à jour manuellement dans l'interface utilisateur ou à partir de connecteurs/flux, ce nouveau score est pris comme score de départ pour le calcul de la décroissance, et les dates de scores stables et les dates de révocation sont calculées à nouveau. Pour maintenir la compréhension du cycle de vie complet de l'Indicateur, les scores que cet Indicateur a pu avoir avant cette mise à jour sont conservés et affichés dans le tableau.

image 3

Détails du cycle de vie avec mise à jour du score

Par exemple, dans cette capture d'écran, le score de l'Indicateur à la création était de 79 le 9 mars 2024, mais pour une raison quelconque, il a été mis à jour par un utilisateur à 96 le 12 mars 2024. Par conséquent, les dates du prochain score stable et du score de révocation ont été calculées à nouveau, à partir du 12 mars 2024.

Administration de l'algorithme et des règles de décroissance

Pour les administrateurs, les règles de décroissance peuvent être configurées dans « Settings > Customization > Decay rules ».

image 2

Administration des règles de décroissance

Nous fournissons quatre règles de décroissance intégrées qui sont appliquées par défaut.

La dernière règle, avec la priorité la plus basse, est la règle qui est appliquée quand aucune autre règle ne correspond.

Les règles intégrées sont spéciales : il n'est pas possible de modifier leurs paramètres, de les désactiver ou de les supprimer. Leurs ordres de priorité sont définis à 0 et 1. Si vous souhaitez appliquer d'autres règles, vous pouvez simplement les créer avec vos propres paramètres et définir un ordre de priorité plus élevé (au moins 2).

image 4

Exemple de règle de décroissance avec diminution rapide du score

image 5

Exemple de règle de décroissance avec diminution lente du score

Lors de la création d'une nouvelle règle, les paramètres sont :

  • Type d'observable principal : Les Indicateurs qui ont l'un des types d'observables de cette liste lors de la création correspondront à la règle. Une liste vide signifie que la règle correspondra à n'importe quel Indicateur.
  • Durée de vie (en jours) : c'est la durée en jours que le score prendra pour atteindre zéro en suivant la courbe de l'algorithme.
  • Facteur de décroissance : ce paramètre définit la forme de la courbe de l'algorithme de décroissance. Une valeur inférieure à 0,33 indique une diminution lente au début, tandis qu'une valeur supérieure à 0,33 indique une diminution plus rapide.
  • Point de réaction : c'est le score qui déclenchera une mise à jour du score de l'Indicateur dans la base de données afin d'y réagir.
  • Score de révocation : c'est le score qui déclenchera une révocation de l'Indicateur. L'indicateur est révoqué au premier événement : soit lors de l'atteinte de ce score de révocation, soit lorsque la date de validité est atteinte.
  • Ordre : ce paramètre représente l'ordre de priorité. Si l'observable principal de l'Indicateur correspond à plusieurs règles, la règle avec la priorité la plus élevée est prise. Lorsque deux règles correspondent avec la même priorité, l'une d'entre elles est sélectionnée aléatoirement.

Prochaines étapes pour la fonctionnalité de décroissance

À l'avenir, nous souhaitons améliorer davantage la fonctionnalité de décroissance ! Par exemple, ce pourrait être une excellente idée de prendre en compte dans l'évolution du score lorsqu'un sighting est ajouté à un Indicateur. Il pourrait également être intéressant de définir des filtres plus précis, basés sur d'autres propriétés comme les marquages.

Faites-nous savoir ce que vous en pensez sur notre canal Slack communautaire !

Documentation de référence :
Utilisation : https://docs.opencti.io/latest/usage/indicators-lifecycle
Administration : https://docs.opencti.io/latest/administration/decay-rules/
Configuration des managers : https://docs.opencti.io/latest/deployment/configuration/#engines-schedules-and-managers

Lire la suite

Explorez des sujets et analyses associés