Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
FreeMOCA — Marco de aprendizaje continuo sin memoria para la clasificación de malware mediante interpolación basada en conectividad de modos. Admite escenarios de incremento de clases e incremento de dominios en los conjuntos de datos EMBER y Androzoo. | Kitploit
Herramientas/GitHubGitHub/iqsec-lab/freemoca
Seguridad AndroidAnálisis EstáticoAnálisis de MalwareAprendizaje AutomáticoPapers e InvestigaciónAprendizaje y Educación
GitHubiqsec-lab/freemoca

FreeMOCA

Marco de aprendizaje continuo sin memoria para la clasificación de malware mediante interpolación basada en conectividad de modos. Admite escenarios de incremento de clases e incremento de dominios en los conjuntos de datos EMBER y Androzoo.

Ver Repositorio
22hace 25 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Trayectoria de Aprendizaje Continuo como Memoria para la Consolidación sin Repetición en el Análisis de Código Malicioso

[!NOTE] Esta es la implementación oficial del artículo Continual Learning Trajectory as Memory for Replay-Free Consolidation in Malicious Code Analysis.

Pipeline de FreeMOCA

FreeMOCA_Overview_v3

FreeMOCA opera mediante el siguiente proceso:

  1. Las tareas llegan secuencialmente, cada una introduciendo nuevas familias de malware.
  2. El modelo para cada tarea se inicializa a partir de la tarea anterior (warm-start) para alinear los mínimos de las tareas en el espacio de parámetros.
  3. Tras el entrenamiento, se calcula una interpolación basada en conectividad de modos entre los óptimos de la tarea actual y la anterior. Este proceso puede utilizar interpolación adaptativa capa por capa basada en la magnitud de la actualización de los parámetros.
  4. El modelo interpolado reemplaza al modelo actual y se utiliza para la siguiente tarea.
  5. No se almacenan datos pasados, características ni muestras generadas, lo que resulta en un aprendizaje continuo sin memoria.

Todo el proceso construye una cadena de soluciones conectadas que residen en una variedad de bajo error, reduciendo significativamente el olvido catastrófico.

Conjuntos de datos

FreeMOCA se evaluó con dos conjuntos de datos de malware a gran escala, EMBER y Androzoo. Fuentes de los conjuntos de datos:

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

Descargue y configure el conjunto de datos en el siguiente directorio:

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

Ejecución de FreeMOCA

Este repositorio admite dos escenarios de aprendizaje continuo:

  • Aprendizaje Incremental de Clases (Class-IL): se introducen nuevas clases (familias de malware) a lo largo de las tareas.
  • Aprendizaje Incremental de Dominio (Domain-IL): el espacio de etiquetas es fijo, pero la distribución de los datos cambia a lo largo del tiempo (por ejemplo, meses/años).

Paso 1. Instalación

Ejecute el siguiente comando para el

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

Paso 2. Ejecutar FreeMOCA (Class-IL y 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

Para una configuración más detallada de los hiperparámetros, consulte el Apéndice A. Argumentos comunes para FreeMOCA.

Apéndice A. Argumentos comunes para FreeMOCA

Para ajustar los hiperparámetros o la configuración experimental, utilice los siguientes argumentos:

ArgumentoDescripción
--init_classesNúmero de clases en la tarea 0
--epochsÉpocas por tarea
--batchsizeTamaño del lote
--lrTasa de aprendizaje
--momentumMomento de SGD
--weight_decayDecaimiento de pesos
--lambda_minPeso mínimo de interpolación
--lambda_maxPeso máximo de interpolación

Para cambiar la configuración predeterminada de los argumentos, consulte el archivo arguments.py.

Líneas base

Nuestro repositorio admite experimentos con las siguientes líneas base estándar:

  • None: Entrenar solo con la tarea actual (límite inferior)
  • Joint: Entrenar con todos los datos vistos hasta el momento (límite superior, poco práctico)

Puede ejecutarlo con el siguiente 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

y siguiendo trabajos previos:

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

Puede ejecutar las líneas base con el siguiente 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
Descargar herramienta