As the scope and impact of cyber threats have expanded, analysts utilize audit logs to hunt threats and investigate attacks. The provenance graphs constructed from kernel logs are increasingly considered as an ideal data source due to their powerful semantic expression and attack historic correlation ability. However, storing provenance graphs with traditional databases faces the challenge of high storage overhead, given the high frequency of kernel events and the persistence of attacks. To address this, we propose Dehydrator, an efficient provenance graph storage system. For the logs generated by auditing frameworks, Dehydrator uses field mapping encoding to filter field-level redundancy, hierarchical encoding to filter structure-level redundancy, and finally learns a deep neural network to support batch querying. We have conducted evaluations on seven datasets totaling over one billion log entries. Experimental results show that Dehydrator reduces the storage space by 84.55%. Dehydrator is 7.36 times more efficient than PostgreSQL, 7.16 times than Neo4j, and 16.17 times than Leonard (the work most closely related to Dehydrator, published at Usenix Security'23).
- ID de l'article : 2501.00446
- Titre : DEHYDRATOR: Enhancing Provenance Graph Storage via Hierarchical Encoding and Sequence Generation
- Auteurs : Jie Ying, Tiantian Zhu*, Mingqi Lv, Tieming Chen (Université Technologique du Zhejiang)
- Classification : cs.CR (Cryptographie et Sécurité)
- Journal de Publication : IEEE Transactions on Information Forensics and Security
- Lien de l'article : https://arxiv.org/abs/2501.00446
Avec l'expansion de la portée et de l'impact des menaces cybernétiques, les analystes utilisent les journaux d'audit pour tracer les menaces et enquêter sur les attaques. Les graphes de provenance construits à partir des journaux du noyau sont de plus en plus considérés comme des sources de données idéales en raison de leur puissante capacité d'expression sémantique et de leur aptitude à associer l'historique des attaques. Cependant, en raison de la fréquence élevée des événements du noyau et de la persistance des attaques, le stockage des graphes de provenance dans des bases de données traditionnelles fait face au défi de frais de stockage élevés. Pour résoudre ce problème, cet article propose DEHYDRATOR, un système de stockage efficace des graphes de provenance. Pour les journaux générés par les cadres d'audit, DEHYDRATOR utilise un codage de mappage de champs pour filtrer la redondance au niveau des champs, un codage hiérarchique pour filtrer la redondance au niveau structurel, et finalement apprend un réseau de neurones profonds pour supporter les requêtes par lot. L'évaluation sur sept ensembles de données contenant plus d'un milliard d'entrées de journaux au total montre que DEHYDRATOR réduit l'espace de stockage de 84,55%, est 7,36 fois plus efficace que PostgreSQL, 7,16 fois plus efficace que Neo4j, et 16,17 fois plus efficace que Leonard.
- Augmentation des menaces cybernétiques : Au 31 mai 2024, 9 478 incidents de violation de données ont été enregistrés, dont l'incident MOAB de janvier 2024 a divulgué 26 milliards d'enregistrements
- Importance des graphes de provenance : Les graphes de provenance, en tant que structures de graphes orientés, avec des nœuds représentant les entités du système (processus, fichiers, sockets) et des arêtes représentant les événements du système, possèdent une puissante capacité d'expression sémantique et d'association de l'historique des attaques
- Défis de stockage : Quatre phénomènes créent des difficultés de stockage :
- Croissance irréversible : Pour maintenir l'intégrité des données, seules les données sont ajoutées, jamais supprimées
- Expansion rapide : Chaque machine génère des journaux de niveau gigaoctet par jour
- Durée prolongée : Les intrusions persistent en moyenne 188 jours avant d'être découvertes
- Besoins de requêtes : Nécessité de supporter des requêtes à grande échelle pour la chasse aux menaces et l'analyse causale
Les systèmes existants de stockage efficace des graphes de provenance (ESSPGs) se divisent en deux catégories :
- Méthodes basées sur l'élagage (telles que LogGC, CPR, NodeMerge, DPR) : Compression avec perte, pouvant entraîner des faux négatifs dans les composants de niveau supérieur
- Méthodes basées sur le codage (telles que SEAL, SLEUTH, ELISE, Leonard) : Soit elles ne supportent pas les requêtes, soit leurs composants auxiliaires occupent un espace de stockage considérable
Les méthodes existantes ne peuvent pas satisfaire simultanément trois exigences critiques :
- Contenu sans perte : Conserver toutes les données pour éviter les faux négatifs
- Efficacité de stockage : Minimiser les frais de stockage
- Support des requêtes : Traiter les besoins de requêtes à grande échelle
- Proposition du système DEHYDRATOR : Un système de stockage efficace des graphes de provenance qui surmonte les limitations des méthodes existantes, utilisant un codage de mappage de champs pour filtrer la redondance au niveau des champs, un codage hiérarchique pour filtrer la redondance au niveau structurel, et un réseau de neurones profonds pour supporter les requêtes par lot
- Construction d'un prototype et évaluation à grande échelle : Évaluation sur sept ensembles de données (plus d'un milliard d'entrées de journaux au total), réduction de l'espace de stockage de 84,55%, 7,36 fois plus efficace que PostgreSQL, 7,16 fois plus efficace que Neo4j, et 16,17 fois plus efficace que Leonard
- Évaluation et analyse complètes : Exploration de l'impact des composants, des scénarios d'application et des limites de performance, définition de la métrique de ratio latence-stockage (LSR) pour équilibrer les frais de stockage et la latence
Entrée : Journaux bruts du noyau collectés par les cadres d'audit
Sortie : Graphe de provenance stocké efficacement, supportant les besoins de requêtes des composants de niveau supérieur
Contraintes : Contenu sans perte, efficacité de stockage, support des requêtes
DEHYDRATOR adopte un cadre en trois étapes :
- Analyse des journaux : Utilisation d'expressions régulières pour extraire les champs clés des journaux bruts
- Construction du graphe de provenance : Construction d'une table de nœuds NT (IdentiID, Name, Type) et d'une table d'arêtes ET (SrcID, DstID, TimeStamp, Operation)
- Codage de mappage de champs : Traitement de trois classes de redondance au niveau des champs
- Valeurs uniques : Remplacement par des caractères numériques plus courts
- Valeurs répétées : Remplacement par des indices
- Valeurs incrémentielles : Remplacement par des décalages
Codage hiérarchique :
- Modélisation du graphe de provenance comme un graphe orienté hiérarchique
- Pour chaque nœud v, enregistrement de tous les nœuds sources et des informations d'arêtes entrantes
- Construction d'une table de mappage fusionnée MMT et d'une table d'arêtes hiérarchiques EThi
- Structure de liste imbriquée : Operation: timeOffset: nodeOffset
Entraînement du modèle :
- Sélection d'un Transformer monocouche avec décodeur uniquement
- Modélisation de la tâche de stockage comme une tâche de génération de séquences
- Utilisation du codage char2vec, génération autorégrédive
- Construction d'une table de correction d'erreurs ECT pour traiter les erreurs de prédiction du modèle
- Informations de nœud : Obtention de l'indice via la table de mappage MT, récupération des informations de nœud
- Informations d'arête : Entrée de l'indice dans le modèle DNN, génération de séquence, correction d'erreur ECT, décodage hiérarchique pour obtenir les informations lisibles
- Conception du codage hiérarchique :
- Basée sur les caractéristiques des requêtes inverses de l'analyse causale
- Compression de plusieurs arêtes parallèles en une forme de codage compacte
- Augmentation de la densité d'information, accélération de l'entraînement du modèle
- Sélection du modèle DNN :
- Transformer monocouche avec décodeur remplaçant les LSTM multicouches
- Meilleure capacité de parallélisation et d'extraction de caractéristiques
- Adaptation aux modèles de répétition de bas niveau de la tâche de stockage
- Mécanisme de correction d'erreurs :
- Table ECT enregistrant la position et le caractère correct
- Garantie du contenu sans perte tout en supportant la compression DNN
Sept ensembles de données, contenant plus d'un milliard d'entrées de journaux au total :
- G1-G4 : Groupes CADETS, THEIA, TRACE de DARPA TC E3
- G5-G6 : Groupe TRACE de DARPA TC E4
- G7 : Sous-ensemble de l'ensemble de données DEPIMACT
- Nombre moyen d'arêtes : 17 754 566 (9,6 fois plus grand que Leonard)
- Frais de stockage : BPpre (prétraitement) et BPpost (post-traitement) en nombre d'octets
- Latence de stockage : Ts coût temporel
- Ratio latence-stockage : LSR = (BPpre - BPpost)/Ts
- PostgreSQL : Base de données relationnelle
- Neo4j : Base de données graphique
- Leonard : Système de stockage basé sur DNN (Usenix Security'23)
- Environnement : Python 3.9, PyTorch 1.13.1, processeur AMD EPYC 7513, GPU RTX A6000
- Hyperparamètres : Taille de lot 4096, optimiseur Adam, taux d'apprentissage 0,001, nombre maximum d'époques d'entraînement 5
| Système | Frais de Stockage Moyen (MB) | Latence Moyenne (s) | Amélioration Relative par rapport à DEHYDRATOR |
|---|
| PostgreSQL | 1 818 | 45 | 7,36× |
| Neo4j | 1 770 | 21 | 7,16× |
| Leonard | 3 991 | 30 233 | 16,17× |
| DEHYDRATOR | 247 | 3 205 | - |
Dans les tests de requêtes BFS à différentes profondeurs :
- Neo4j affiche les meilleures performances (~4,92s)
- DEHYDRATOR en second (~32,02s)
- PostgreSQL le moins performant (~32,08s)
Analyse de la contribution des composants :
- Graphe original : 1 598,69 MB
- Après codage de mappage de champs : 405,2 MB (25,3%)
- Après codage hiérarchique : 75,98 MB (4,7%)
- Après entraînement du modèle : 192,42 MB (12%)
Impact du codage hiérarchique :
- Avec codage hiérarchique : EThi 20,19 M, temps d'entraînement 660,69s, ECT 50,79 M
- Sans codage hiérarchique : EThi 268,31 M, temps d'entraînement 5 814,42s, ECT 1 064,25 M
- Le codage hiérarchique réduit le temps d'entraînement de 8,8 fois, la taille d'ECT de 20,95 fois
La dérivation théorique prouve que : lorsque le degré moyen davg ≥ 3, le codage hiérarchique est efficace
Vérification expérimentale : Le codage hiérarchique est efficace sur les ensembles de données avec des degrés de 3, 4 et 5
- Méthodes heuristiques : HOLMES, SLEUTH, Poirot et autres construisant des règles de correspondance basées sur MITRE ATT&CK
- Détection d'anomalies : Streamspot, Unicorn, KAIROS et autres détectant les intrusions en identifiant les écarts par rapport au comportement normal
- Systèmes RapSheet, HERCULE, NODOZE effectuant l'évaluation des menaces et l'analyse causale
- DEPIMPACT, ATLAS et autres effectuant l'analyse des dépendances et l'identification des modèles d'attaque
- Méthodes avec perte : Techniques d'élagage LogGC, CPR, NodeMerge, DPR et autres
- Méthodes sans perte : Techniques de codage SEAL, ELISE, Leonard et autres
- DEHYDRATOR résout avec succès les trois grands défis du stockage des graphes de provenance : contenu sans perte, efficacité de stockage, support des requêtes
- Le codage hiérarchique est l'innovation clé, traitant efficacement la redondance au niveau structurel
- Le Transformer monocouche est plus adapté à la tâche de stockage que les LSTM multicouches
- Amélioration significative par rapport aux méthodes existantes sur les ensembles de données à grande échelle
- Latence de stockage élevée : Moyenne de 3 205 secondes, représentant 13,29% de la période de l'ensemble de données
- Efficacité des requêtes : La génération autorégrédive entraîne une latence de requête élevée pour les longues séquences
- Sélection de la capacité du modèle : Manque de directives théoriques pour déterminer la capacité optimale du modèle η
- Portée d'application : Principalement adaptée aux scénarios de stockage à froid, ne supporte pas les propriétés ACID
- Utilisation de technologies d'accélération IA pour améliorer l'efficacité de l'entraînement et de l'inférence
- Analyse théorique du choix optimal de la capacité du modèle
- Extension aux applications de bases de données graphiques générales
- Optimisation des algorithmes de requête pour réduire la latence
- Importance du problème : Résout un problème pratique réel dans le domaine de la cybersécurité
- Innovativité de la méthode : Le codage hiérarchique combine intelligemment les caractéristiques du domaine et les avantages du DNN
- Suffisance expérimentale : Vérification sur des ensembles de données à grande échelle, expériences d'ablation complètes et analyse comparative
- Valeur d'ingénierie : Amélioration significative de l'efficacité de stockage, forte praticabilité
- Problème de latence : La latence de stockage et de requête reste élevée, limitant les applications en temps réel
- Analyse théorique : Manque de directives théoriques pour la sélection de la capacité du modèle
- Portée d'application : Principalement ciblée sur les scénarios spécifiques des graphes de provenance, généralisation limitée
- Comparaison de base : L'implémentation de Leonard peut présenter une comparaison injuste
- Contribution académique : Fournit une nouvelle voie technologique pour le stockage des graphes de provenance
- Valeur pratique : Importance significative pour l'infrastructure de sécurité réseau
- Reproductibilité : Engagement d'ouvrir le code source et les données
- Potentiel de promotion : La méthode peut être étendue à d'autres scénarios de stockage de graphes
- Cybersécurité : Systèmes EDR, chasse aux menaces, enquête sur les attaques
- Stockage à froid : Archivage et analyse de données historiques
- Données graphiques à grande échelle : Stockage de structures graphiques à haut degré et haute redondance
- Requêtes par lot : Scénarios d'application nécessitant un grand nombre de requêtes parallèles
L'article cite 93 références connexes, couvrant plusieurs domaines importants tels que la cybersécurité, la compression de graphes et l'apprentissage profond, fournissant une base théorique solide pour la recherche.