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

Changement majeur : évolution de la façon dont les Connecteurs, Streams et Feeds importent les données dans OpenCTI

8 min de lecture
Breaking change: evolution of the way Connector, Streams and Feeds import data in OpenCTI

Veuillez noter : Un changement dans la façon dont les Connecteurs, Feeds et Streams utiliseront le Niveau de Confiance lors de l'importation de données nécessitera une action spécifique des administrateurs de plateforme avant la mise à niveau vers la prochaine version majeure.


Comment les Connecteurs, Feeds et Streams utilisent actuellement le Niveau de Confiance

Dans OpenCTI, le mécanisme de « déduplication » empêche la duplication d'un même Objet lorsqu'il est créé à partir de différentes sources ou utilisateurs. Cela permet de maintenir une cohérence maximale des données dans le temps.

Ce mécanisme s'appuie sur l'attribut Niveau de Confiance de chaque Objet STIX, ainsi que sur des clés d'identification pour chaque Objet. Si un Objet est créé avec les mêmes clés d'identification qu'un Objet existant, il ne remplacera l'Objet existant que si le Niveau de Confiance du nouvel Objet est supérieur ou égal à celui de l'Objet existant.

Les Connecteurs ont un Niveau de Confiance dans leur fichier de configuration qui peut être utilisé à des fins de déduplication. Par conséquent, si un Connecteur importe un Objet déjà existant dans la plateforme, il ne remplacera l'Objet existant que si son Niveau de Confiance est supérieur ou égal.

image

Limites actuelles

Ce mécanisme de déduplication, bien que puissant, présente encore des limites :

  • Il n'est pas possible d'associer un Niveau de Confiance à un stream OCTI Live ou à un Feed TAXII/RSS. Vous n'avez d'autre choix que d'utiliser le Niveau de Confiance défini par la source du stream ou du feed. Si la source a défini un Niveau de Confiance de 100 sur un Objet, il écrasera celui existant dans votre plateforme, même si vous l'estimez hautement.
  • Les Connecteurs ont un Niveau de Confiance dans leur configuration qui peut être utilisé lors de l'importation de données, si le connecteur a été programmé en conséquence… Sinon, la limitation expliquée au point précédent s'applique.
  • Le Niveau de Confiance n'est pas obligatoire lorsqu'un Objet est créé via des Connecteurs, streams ou feeds, ce qui entraîne une incohérence dans les plateformes.

Un Niveau de Confiance pour chaque Utilisateur pour vous donner plus de contrôle

Pour remédier à ces limites, un attribut « Niveau de Confiance Max » sera mis en œuvre pour chaque Groupe et Utilisateur dans la plateforme lors de la prochaine version majeure.

Les Connecteurs, Feeds et OCTI Live Streams peuvent être associés à un utilisateur. C'est la meilleure pratique actuelle pour pouvoir suivre ce qu'ils font sur les données de la plateforme. Après la version majeure, les Connecteurs, Feeds et OCTI Live Streams auront besoin d'un utilisateur associé pour fonctionner et importer leurs données avec le « Niveau de Confiance Max » de leur Utilisateur comme seuil.

En tant qu'administrateur de plateforme, vous aurez alors un contrôle complet sur l'impact des données importées sur le contenu existant de votre plateforme.

De plus, vous aurez également la possibilité d'ajuster la capacité de modification des connaissances des Utilisateurs. Les Utilisateurs ne pourront plus modifier un Objet s'il a un Niveau de Confiance supérieur à leur propre Niveau de Confiance maximum.

Que faire avant votre mise à niveau vers la prochaine version majeure ?

Si l'administrateur de votre plateforme n'agit pas avant la mise à niveau vers la prochaine version majeure, chaque utilisateur de votre plateforme sera considéré comme n'ayant pas de niveau de confiance maximum. Les Utilisateurs ne pourront plus modifier les données, et les Connecteurs, Feeds et streams OCTI ne pourront plus créer ni mettre à jour les données non plus. En adoptant cette stratégie de migration, nous voulons éviter toute perte et modification non désirée de données et faciliter le travail de l'administrateur de plateforme.

Pour éviter cela, l'administrateur de plateforme devra définir un Niveau de Confiance maximum pour chaque Groupe dans la plateforme. De plus, si vous travaillez avec des connecteurs important des données externes et souhaitez qu'ils fonctionnent exactement comme avant, vous devez définir un niveau de confiance maximum pour leur utilisateur respectif égal au niveau de confiance actuellement défini dans le fichier de configuration du connecteur, car ce dernier ne sera plus utilisé.

Afin de faciliter ce travail, nous avons effectué une version mineure (5.12.24) permettant de définir le niveau de confiance maximum des Utilisateurs et Groupes avant la prochaine version majeure. Jusqu'à la prochaine version majeure, cet attribut n'affectera rien dans votre plateforme. Le niveau de confiance maximum « effectif » de l'utilisateur sera la valeur la plus élevée parmi les niveaux de confiance maximum des Groupes dont l'utilisateur fait partie. Bien sûr, si les utilisateurs ont un niveau de confiance maximum spécifique défini, il remplacera la valeur héritée de leurs Groupes et sera utilisé à la place.

Nous vous recommandons très vivement de mettre à niveau votre plateforme vers la version 5.12.24 avant de passer à la prochaine version majeure pour vous donner le temps de définir votre politique de niveau de confiance et de la définir avec le nouvel attribut de niveau de confiance maximum des Groupes.

Comme toujours, une bonne pratique importante consiste à effectuer une sauvegarde des données avant de mettre à jour votre plateforme.

Cas d'usage de GentleCorp

Très bien ! vous savez maintenant tout ce qui va se passer. Vous savez que vous devez définir le niveau de confiance maximum pour les Groupes de votre plateforme.

Mais… quelle valeur devriez-vous définir pour chaque groupe ?

C'est une excellente question et la réponse dépendra profondément des différentes sources de données que vous utilisez, et de la diversité d'utilisation de la plateforme par vos utilisateurs.

GentleCorp utilise OpenCTI quotidiennement pour gérer ses Connaissances CTI depuis la collecte de données jusqu'à la diffusion des connaissances aux équipes locales de sécurité de l'information.

Les utilisateurs sont organisés en 4 groupes :

  • Connecteurs : un groupe contenant tous les utilisateurs qui permettent aux connecteurs externes de créer des connaissances dans la plateforme
  • Équipe CTI Lead : des utilisateurs bien versés dans l'analyse CTI et fournissant des investigations sur les menaces
  • Équipe infosec locale : principalement des analystes CTI de niveau junior intégrés dans les équipes locales et fournissant un soutien analytique
  • Management : des utilisateurs faisant partie de l'équipe CISO qui consomment principalement des connaissances mais peuvent également fournir des informations stratégiques.

Les parties prenantes CTI de GentleCorp se sont réunies pour définir comment refléter leur stratégie de production CTI dans ce nouveau paramètre de niveau de confiance maximum. Certaines règles générales ont été établies :

  • L'équipe CTI Lead aura le dernier mot concernant les connaissances CTI. Elle se verra accorder le niveau de confiance maximum le plus élevé
  • Les Connecteurs, par défaut, ne doivent pas être en mesure de remplacer ce qui a été créé en interne. Ils auront donc le niveau de confiance maximum le plus bas de tous les Groupes. Mais un travail préalable a été effectué pour définir le niveau de confiance dans les fichiers de configuration des connecteurs. Ce travail doit donc être reflété dans le nouveau niveau de confiance maximum de leur utilisateur respectif.
  • L'équipe infosec locale devrait être en mesure de fournir de meilleures connaissances que les connecteurs par défaut et non vérifiés. Elle aura donc un niveau de confiance maximum plus élevé que les connecteurs.
  • Le Management ajoute actuellement ses informations stratégiques sous forme de Notes dans la plateforme, donc ils n'impactent pas vraiment directement la Connaissance. Et les autres utilisateurs et connecteurs n'utilisent pas actuellement les Notes. Accordons-leur le même niveau de confiance maximum que les connecteurs.
  • Les autres utilisateurs sont dans le groupe « par défaut » qui n'a pas la capacité de créer ou modifier des connaissances. Par défaut obtiendra toujours un niveau de confiance maximum de 0, juste pour être sûr qu'il ne permettra aucune modification indésirable de la part d'utilisateurs qui ne font pas partie des parties prenantes de la production CTI.

Les niveaux de confiance maximum finaux pour ces Groupes sont définis comme suit :

  • Par défaut : 0
  • Connecteurs : 50
  • Management : 50
  • Infosec locale : 70
  • Équipe CTI Lead : 100

GentleCorp utilise 3 connecteurs différents pour ingérer des données de fournisseurs externes. Les connecteurs « CASI », « NeighborVault » et « Eucalyptus ». Actuellement, les fichiers de configuration de ces connecteurs avaient été définis respectivement à 80, 50 et 75. Cette valeur sera donc maintenant définie comme le niveau de confiance maximum des utilisateurs « [c]CASI », « [c]NeighborVault » et « [c]Eucalyptus » respectivement associés à eux. Cela garantira que ces 3 connecteurs continueront de fonctionner comme avant.

GentleCorp est maintenant prête à passer à la prochaine version majeure ! Ils s'assurent que leurs nouveaux et brillants connecteurs ne sèmeront pas le chaos dans leurs Connaissances et que leur équipe CTI Lead sera en mesure de les améliorer avec leurs investigations les plus précieuses !

Si vous avez besoin d'aide, n'hésitez pas à vous connecter avec la communauté sur Slack !

Prochaines étapes

Nous continuerons à ajouter des fonctionnalités de Niveau de Confiance afin d'apporter aux administrateurs de plateforme un contrôle complet sur la façon dont les données importées peuvent impacter celles existantes. Notamment, nous mettrons en œuvre :

  • un moyen de différencier le Niveau de Confiance Max des utilisateurs par types d'Entité
  • un moyen d'appliquer le Niveau de Confiance au niveau des attributs, pour « protéger » des attributs spécifiques contre les modifications indésirables ou au contraire, les « libérer » pour les modifications.

Lire la suite

Explorez des sujets et analyses associés