Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
FreeMOCA — Cadre d'apprentissage continu sans mémoire pour la classification des malwares utilisant une interpolation basée sur la connectivité de mode. Prend en charge les scénarios incrémentaux par classe et par domaine sur les ensembles de données EMBER et Androzoo. | Kitploit
Outils/GitHubGitHub/iqsec-lab/freemoca
Sécurité AndroidAnalyse StatiqueAnalyse de MalwareApprentissage AutomatiqueArticles et RechercheApprentissage et Éducation
GitHubiqsec-lab/freemoca

FreeMOCA

Cadre d'apprentissage continu sans mémoire pour la classification des malwares utilisant une interpolation basée sur la connectivité de mode. Prend en charge les scénarios incrémentaux par classe et par domaine sur les ensembles de données EMBER et Androzoo.

Voir le dépôt
22il y a 25 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Trajectoire d'apprentissage continu comme mémoire pour une consolidation sans rejeu dans l'analyse de code malveillant

[!NOTE] Ceci est l'implémentation officielle de l'article Continual Learning Trajectory as Memory for Replay-Free Consolidation in Malicious Code Analysis.

Pipeline FreeMOCA

FreeMOCA_Overview_v3

FreeMOCA fonctionne selon le processus suivant :

  1. Les tâches arrivent séquentiellement, chacune introduisant de nouvelles familles de malwares.
  2. Le modèle de chaque tâche est initialisé à partir de la tâche précédente (warm-start) afin d'aligner les minima des tâches dans l'espace des paramètres.
  3. Après l'entraînement, une interpolation basée sur la connectivité des modes est calculée entre les optima de la tâche courante et de la tâche précédente. Ce processus peut utiliser une interpolation adaptative couche par couche basée sur l'amplitude de mise à jour des paramètres.
  4. Le modèle interpolé remplace le modèle courant et est utilisé pour la tâche suivante.
  5. Aucune donnée passée, caractéristique ou échantillon généré n'est stocké, ce qui aboutit à un apprentissage continu sans mémoire.

L'ensemble du processus construit une chaîne de solutions connectées situées sur une variété à faible perte, réduisant significativement l'oubli catastrophique.

Jeux de données

FreeMOCA a été évalué avec deux jeux de données de malwares à grande échelle, EMBER et Androzoo. Sources des jeux de données :

  • EMBER : https://github.com/elastic/ember
  • Androzoo (AZ) : https://zenodo.org/records/14537891

Téléchargez et configurez le jeu de données dans le répertoire suivant :

FreeMOCA/data/
├── AZ_Class
│   ├── AZ_Class_Test.npz
│   └── AZ_Class_Train.npz
│
├── AZ_Domain
│   ├── 2008_Domain_AZ_Test_Transfo...
│   ├── 2008_Domain_AZ_Train_Transfo...
│   ├── 2009_Domain_AZ_Test_Transfo...
│   └── ...
│
├── EMBER_Class
│   ├── XY_test.npz
│   └── XY_train.npz
│
└── EMBER_Domain
    ├── 2018-01
    ├── 2018-02
    ├── 2018-03
    └── ...

Exécution de FreeMOCA

Ce dépôt prend en charge deux scénarios d'apprentissage continu :

  • Apprentissage incrémental par classes (Class-IL) : de nouvelles classes (familles de malwares) sont introduites au fil des tâches.
  • Apprentissage incrémental par domaines (Domain-IL) : l'espace des étiquettes est fixe, mais la distribution des données évolue dans le temps (par exemple, mois/années).

Étape 1. Installation

Exécutez la commande suivante pour le

conda create -n freemoca python=3.9
conda activate freemoca
pip install -r requirements.txt

Étape 2. Exécuter FreeMOCA (Class-IL et Domain-IL)

# EMBER Class-IL
cd ./FreeMOCA_Class/EMBER_Class
CUDA_VISIBLE_DEVICES=0 python main.py --train_data /path/to/data --test_data /path/to/data
# AZ Class-IL
cd ./FreeMOCA_Class/AZ_Class
CUDA_VISIBLE_DEVICES=0 python main.py --train_data /path/to/data --test_data /path/to/data
# EMBER Domain-IL
cd ./FreeMOCA_Domain/EMBER_Domain
CUDA_VISIBLE_DEVICES=0 python main.py --data_root /path/to/data/directory
# AZ Domain-IL
cd ./FreeMOCA_Domain/AZ_Domain
CUDA_VISIBLE_DEVICES=0 python main.py --data_root /path/to/data/directory

Pour une configuration plus détaillée des hyperparamètres, consultez l'Annexe A. Arguments courants pour FreeMOCA.

Annexe A. Arguments courants pour FreeMOCA

Pour ajuster les hyperparamètres ou les paramètres expérimentaux, utilisez les arguments suivants :

ArgumentDescription
--init_classesNombre de classes à la tâche 0
--epochsÉpoques par tâche
--batchsizeTaille du lot
--lrTaux d'apprentissage
--momentumMomentum SGD
--weight_decayDécroissance du poids
--lambda_minPoids d'interpolation minimal
--lambda_maxPoids d'interpolation maximal

Pour modifier la configuration par défaut des arguments, consultez le fichier arguments.py.

Références de base

Notre dépôt prend en charge des expériences sur les références de base standard suivantes :

  • None : Entraînement uniquement sur la tâche courante (borne inférieure)
  • Joint : Entraînement sur toutes les données vues jusqu'à présent (borne supérieure, non pratique)

Vous pouvez l'exécuter avec la commande suivante :

cd /path/to/experiment/directory
CUDA_VISIBLE_DEVICES=0 python none.py --arugment_you_want
CUDA_VISIBLE_DEVICES=0 python joint.py --arugment_you_want

et les travaux précédents suivants :

  • CLeWI : Modifié à partir de ce dépôt GitHub, travail issu de « Continual Learning with Weight Interpolation. »
  • WSC : Modifié à partir de ce dépôt GitHub, travail issu de « Forget Forgetting: Continual Learning in a World of Abundant Memory. »
  • Generative Replay (GR) : Modifié à partir de ce dépôt GitHub, travail issu de « Continual learning with deep generative replay. »
  • EWC : Modifié à partir de ce dépôt GitHub, travail issu de « Overcoming catastrophic forgetting in neural networks. »
  • LwF : Modifié à partir de ce dépôt GitHub, travail issu de « Learning without Forgetting. »
  • iCaRL : Modifié à partir de ce dépôt GitHub, travail issu de « iCaRL: Incremental Classifier and Representation Learning. »
  • TAMiL : Modifié à partir de ce dépôt GitHub, travail issu de « Task-Aware Information Routing from Common Representation Space in Lifelong Learning. »
  • MalCL : Modifié à partir de ce dépôt GitHub, travail issu de « MalCL: Leveraging GAN-Based Generative Replay to Combat Catastrophic Forgetting in Malware Classification. »

Vous pouvez exécuter les références de base avec la commande suivante :

# CLeWI for EMBER-Class
cd ./baselines/CLeWI
CUDA_VISIBLE_DEVICES=6 python main.py --model="clewi" \
  --dataset="seq_ember" --n_tasks=11 \
  --lr=0.001 --buffer_size=500 --n_epochs=50 \
  --seed=42 --optim_wd=0.0 --optim_mom=0.0 \
  --batch_size=512 --sub_dataset="ember"

# CLeWI for AZ-Class
cd ./baselines/CLeWI
CUDA_VISIBLE_DEVICES=6 python main.py --model="clewi" \
  --dataset="seq_ember" --n_tasks=11 \
  --lr=0.001 --buffer_size=500 --n_epochs=50 \
  --seed=42 --optim_wd=0.0 --optim_mom=0.0 \
  --batch_size=512 --sub_dataset="az"
# WSC for EMBER-Class
cd ./baselines/WSC
MODEL_NAME=wsc_20_ember
python main.py --config=./exps/wsc_memory/$MODEL_NAME.json
# WSC for AZ-Class
cd ./baselines/WSC
MODEL_NAME=wsc_20_az
python main.py --config=./exps/wsc_memory/$MODEL_NAME.json
# GR for EMBER-Class
cd ./baselines/GR_EWC_LwF_iCaRL_EMBER
CUDA_VISIBLE_DEVICES=0 python main.py --data_set=EMBER --tasks=11 --replay=generative --metrics --logger_file gr --scenario=class

# GR for AZ-Class
cd ./baselines/GR_EWC_LwF_iCaRL_AZ
CUDA_VISIBLE_DEVICES=0 python main.py --data_set=ANDROZOO --tasks=11 --replay=generative --metrics --logger_file gr --scenario=class
Télécharger l’outil