Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
FreeMOCA — Framework di apprendimento continuo senza memoria per la classificazione del malware tramite interpolazione basata sulla connettività di modi. Supporta scenari incrementali per classi e per domini sui dataset EMBER e Androzoo. | Kitploit
Strumenti/GitHubGitHub/iqsec-lab/freemoca
Sicurezza AndroidAnalisi StaticaAnalisi MalwareMachine LearningPaper e RicercaApprendimento e Formazione
GitHubiqsec-lab/freemoca

FreeMOCA

Framework di apprendimento continuo senza memoria per la classificazione del malware tramite interpolazione basata sulla connettività di modi. Supporta scenari incrementali per classi e per domini sui dataset EMBER e Androzoo.

Vedi Repository
2225 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Traiettoria di Apprendimento Continuo come Memoria per il Consolidamento Senza Replay nell'Analisi di Codice Malevolo

[!NOTE] Questa è l'implementazione ufficiale dell'articolo Continual Learning Trajectory as Memory for Replay-Free Consolidation in Malicious Code Analysis.

Pipeline di FreeMOCA

FreeMOCA_Overview_v3

FreeMOCA opera nel seguente processo:

  1. I task arrivano in sequenza, ciascuno introducendo nuove famiglie di malware.
  2. Il modello per ciascun task viene inizializzato dal task precedente (warm-start) per allineare i minimi dei task nello spazio dei parametri.
  3. Dopo l'addestramento, viene calcolata un'interpolazione basata sulla connettività dei modi tra gli ottimi del task corrente e di quello precedente. Questo processo può utilizzare un'interpolazione adattiva strato per strato basata sull'ampiezza dell'aggiornamento dei parametri.
  4. Il modello interpolato sostituisce il modello corrente e viene utilizzato per il task successivo.
  5. Non vengono memorizzati dati passati, feature o campioni generati, risultando in un apprendimento continuo senza memoria.

L'intero processo costruisce una catena di soluzioni connesse che giacciono su una varietà a bassa perdita, riducendo significativamente la dimenticanza catastrofica.

Dataset

FreeMOCA è stato valutato con due dataset di malware su larga scala, EMBER e Androzoo. Fonti dei dataset:

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

Scarica e configura il dataset nella seguente directory:

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
    └── ...

Esecuzione di FreeMOCA

Questo repository supporta due scenari di apprendimento continuo:

  • Class-Incremental Learning (Class-IL): nuove classi (famiglie di malware) vengono introdotte nel corso dei task.
  • Domain-Incremental Learning (Domain-IL): lo spazio delle etichette è fisso, ma la distribuzione dei dati cambia nel tempo (ad esempio, mesi/anni).

Passo 1. Installazione

Esegui il seguente comando per il

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

Passo 2. Esegui FreeMOCA (Class-IL & 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

Per una configurazione più dettagliata degli iperparametri, consulta l'Appendice A. Argomenti Comuni per FreeMOCA.

Appendice A. Argomenti Comuni per FreeMOCA

Per modificare gli iperparametri o le impostazioni sperimentali, utilizza i seguenti argomenti:

ArgomentoDescrizione
--init_classesNumero di classi al task 0
--epochsEpoche per task
--batchsizeDimensione del batch
--lrTasso di apprendimento
--momentumMomento SGD
--weight_decayDecadimento dei pesi
--lambda_minPeso minimo di interpolazione
--lambda_maxPeso massimo di interpolazione

Per modificare l'impostazione predefinita degli argomenti, consulta il file arguments.py.

Baseline

Il nostro repository supporta esperimenti sulle seguenti baseline standard:

  • None: Addestra solo sul task corrente (limite inferiore)
  • Joint: Addestra su tutti i dati visti finora (limite superiore, impraticabile)

Puoi eseguirlo con il seguente comando:

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

e seguendo lavori precedenti:

  • CLeWI: Modificato da questo repository GitHub, lavoro tratto da "Continual Learning with Weight Interpolation."
  • WSC: Modificato da questo repository GitHub, lavoro tratto da "Forget Forgetting: Continual Learning in a World of Abundant Memory."
  • Generative Replay (GR): Modificato da questo repository GitHub, lavoro tratto da "Continual learning with deep generative replay."
  • EWC: Modificato da questo repository GitHub, lavoro tratto da "Overcoming catastrophic forgetting in neural networks."
  • LwF: Modificato da questo repository GitHub, lavoro tratto da "Learning without Forgetting."
  • iCaRL: Modificato da questo repository GitHub, lavoro tratto da "iCaRL: Incremental Classifier and Representation Learning."
  • TAMiL: Modificato da questo repository GitHub, lavoro tratto da "Task-Aware Information Routing from Common Representation Space in Lifelong Learning."
  • MalCL: Modificato da questo repository GitHub, lavoro tratto da "MalCL: Leveraging GAN-Based Generative Replay to Combat Catastrophic Forgetting in Malware Classification."

Puoi eseguire le baseline con il seguente comando:

# 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
# EWC for EMBER-Class
cd ./baselines/GR_EWC_LwF_iCaRL_EMBER
CUDA_VISIBLE_DEVICES=0 python main.py --data_set=EMBER --tasks=11 --ewc --lambda=50 --metrics --logger_file ewc --scenario=class
Scarica lo strumento