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

Comment restaurer les connaissances supprimées dans OpenCTI 6.1

6 min de lecture
How to restore deleted knowledge in OpenCTI 6.1

Les erreurs sont inévitables, et jusqu'à la version 6.1, les actions de suppression n'étaient pas réversibles dans OpenCTI. Qui n'a jamais ressenti la frustration de supprimer accidentellement APT28 ou Cobalt Strike de la plateforme, avec leurs innombrables relations ?

Dans cet article, nous décrirons comment OpenCTI gère désormais les connaissances supprimées et rend possible la restauration ou la suppression définitive des données.


Présentation de la nouvelle vue corbeille

Depuis OpenCTI 6.1, lorsque vous supprimez un objet de connaissance de la plateforme, qu'il s'agisse d'une entité ou d'une relation, l'objet est réindexé dans la base de données Elastic vers un index dédié « corbeille ». L'objet supprimé est sauvegardé avec les relations qui proviennent de ou ciblent cet objet, avant leur suppression.

Les objets supprimés sont listés dans la nouvelle vue Corbeille, accessible depuis le menu de gauche. Dans ce tableau, vous pouvez rechercher, filtrer et trier les éléments supprimés de la même manière que pour toute autre vue.

image 9

Vue Corbeille

Cependant, notez que les éléments listés dans la vue Corbeille ne sont pas les véritables objets de données : vous ne pouvez pas y accéder complètement pour voir la description, le contenu associé ou les connaissances. Ce tableau liste en fait les Opérations de suppression qui ont été effectuées sur la plateforme.

Les opérations de suppression listées dans la vue corbeille partagent les mêmes restrictions d'accès que l'objet initialement supprimé : marquages, partage d'organisation, niveau de confiance. Ainsi, un utilisateur avec un marquage maximum TLP;GREEN ne verra pas si un objet supprimé avec le marquage TLP;RED se trouve dans la corbeille. D'autres métadonnées sont également sauvegardées pour suivre la date de suppression et l'utilisateur qui a supprimé l'objet.

Détails techniques sur la suppression

Il est important de noter que l'action de suppression n'a pas changé : elle publiera toujours un événement de suppression dans le flux, et les éléments supprimés ne sont plus visibles sur la plateforme. Si deux plateformes OpenCTI sont synchronisées incluant la suppression, les éléments supprimés seront retirés des deux instances et n'apparaîtront pas dans la corbeille de l'instance distante.

Notez cependant que les fichiers associés aux objets ne sont pas supprimés du service de stockage (S3 / Minio), mais sont marqués comme retirés de l'indexation des fichiers et ne ressortiront pas lors d'une recherche de fichiers si l'indexation des fichiers est activée. Ces fichiers sont conservés en cas de restauration, et seront définitivement supprimés une fois l'élément de la corbeille effacé.

Restaurer les connaissances

Depuis la vue corbeille, vous pouvez choisir de restaurer des éléments individuellement depuis le menu « point ». Cette action de restauration unique inclut l'objet supprimé entier et toutes ses relations.

image 10

Action de restauration sur une opération de suppression dans la corbeille

L'action de restauration nécessite une confirmation manuelle. Restaurer un très grand nombre de relations peut prendre un certain temps.

image 11

Dialogue de confirmation de restauration avec informations sur le nombre de relations qui seront restaurées

Après confirmation, l'objet est restauré, et toutes les relations principales qui lui sont associées sont recréées. Les identifiants internes de l'objet et des relations sont préservés, donc nous ne perdons aucune information originellement liée à celui-ci, comme leurs journaux d'activité.

image 12

Exemple de journaux d'activité d'un Intrusion Set incluant des événements de suppression et de restauration

Il est important de noter que l'objet et ses relations principales sont recréés l'un après l'autre, et donc ces opérations apparaîtront dans le flux d'événements comme des créations, déclenchant toutes les actions automatisées configurées telles que les playbooks.

Restauration simple

La restauration n'est actuellement possible que si l'objet supprimé n'est pas trouvé dans la base de données (pas de doublon), et si ses relations peuvent être entièrement restaurées avec leurs cibles résolues.

Le cas d'usage principal est lorsque quelqu'un supprime un objet accidentellement, va dans la corbeille et le restaure immédiatement. Si entre-temps l'objet a été recréé dans la base de données (avec le même nom ou identifiant), la restauration ne sera pas possible car elle pourrait créer un doublon.

Si l'objet supprimé, appelons-le A, avait une relation avec un autre objet B, et que A est supprimé, la relation avec B est également supprimée avec A. Si A est restauré, il restaurera aussi la relation avec B. Mais, si B est supprimé avant de restaurer A, il ne sera pas possible de restaurer la relation à moins que B ne soit restauré en premier. Dans ce cas, A ne parvient pas à être restauré, car nous ne gérons pas la restauration partielle ni en cascade.

Suppression définitive

Pour certaines entités qui se trouvent dans la corbeille, vous pourriez décider que vous êtes sûr de leur retrait de la plateforme et souhaitez vous en débarrasser définitivement.

Si c'est le cas, vous pouvez utiliser l'action Supprimer définitivement pour retirer l'élément de la corbeille. L'objet sera alors complètement supprimé, avec ses relations et fichiers, et l'action ne peut pas être annulée. Assurez-vous donc d'être absolument certain de la suppression de l'élément avant de le faire !

image 13

Dialogue de confirmation de suppression définitive

Lorsque vous supprimez définitivement l'objet, l'objet et ses relations sont retirés de l'index corbeille dans la base de données Elastic, et tous les fichiers téléversés sous cet objet (import, export) sont définitivement retirés du stockage. L'opération de suppression est également retirée de la liste de la corbeille.

Si vous ne souhaitez pas gérer manuellement la suppression définitive des éléments de la corbeille, ne vous inquiétez pas ! Un Gestionnaire de corbeille, qui vous sera présenté plus loin dans cet article, fait ce travail pour vous.

Opérations en masse

En plus de pouvoir restaurer ou supprimer définitivement des éléments dans la corbeille un par un, nous avons ajouté la possibilité d'effectuer ces opérations sur plusieurs éléments à la fois.

image 14

Barre d'outils avec actions de restauration et de suppression définitive

En sélectionnant plusieurs éléments de la même manière que cela peut être fait dans les autres vues de listes de la plateforme, vous aurez à la fois les opérations de restauration et de suppression définitive disponibles depuis la barre d'outils inférieure. En choisissant l'une de ces deux options, vous pourrez ensuite appliquer l'opération à tous les éléments que vous avez sélectionnés.

Notez que lors de la suppression d'objets en lot, par exemple depuis la vue Données > Entités, tous les éléments seront listés individuellement dans la vue Corbeille comme des opérations de suppression séparées.

Gestionnaire de corbeille

Pour éviter que les éléments de la corbeille ne s'accumulent et ne soient stockés indéfiniment, nous avons ajouté un gestionnaire de corbeille à la plateforme.

L'objectif de ce gestionnaire est de supprimer définitivement les éléments qui ont été stockés dans la corbeille depuis trop longtemps. Le seuil à partir duquel un élément est considéré comme trop ancien est fixé à 7 jours par défaut et peut être configuré en utilisant la variable d'environnement GARBAGE_COLLECTION_MANAGER__DELETED_RETENTION_DAYS.

Les détails complets de configuration pour ce gestionnaire peuvent être trouvés dans la documentation ici : https://docs.opencti.io/latest/deployment/configuration/#engines-schedules-and-managers

Conclusion

Les erreurs sont inévitables, mais votre base de connaissances est maintenant plus résiliente ! Vous venez de supprimer une entité ou une relation par erreur ? Retrouvez-la facilement dans la vue corbeille et restaurez-la !

Ce cas d'usage simple — mais potentiellement catastrophique ! — a été notre focus principal lors de la conception de cette nouvelle fonctionnalité dans OpenCTI 6.1. Des améliorations significatives pourraient être mises en œuvre pour augmenter encore la résilience et traiter des cas plus complexes, tels que la restauration en cascade automatique ou permettre la restauration partielle.

Rejoignez-nous sur notre canal de la communauté Slack pour donner votre avis et nous aider à façonner la prochaine étape !

Consultez la documentation utilisateur pour des informations complémentaires.

Lire la suite

Explorez des sujets et analyses associés