Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
FreeMOCA — Беспамятная система непрерывного обучения для классификации вредоносного ПО на основе интерполяции через связность мод. Поддерживает сценарии инкрементального добавления классов и доменов на наборах данных EMBER и Androzoo. | Kitploit
Инструменты/GitHubGitHub/iqsec-lab/freemoca
Безопасность AndroidСтатический анализАнализ вредоносных программМашинное ОбучениеСтатьи и ИсследованияОбучение и Образование
GitHubiqsec-lab/freemoca

FreeMOCA

Беспамятная система непрерывного обучения для классификации вредоносного ПО на основе интерполяции через связность мод. Поддерживает сценарии инкрементального добавления классов и доменов на наборах данных EMBER и Androzoo.

Репозиторий
2225 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Траектория непрерывного обучения как память для консолидации без повторного воспроизведения при анализе вредоносного кода

[!NOTE] Это официальная реализация статьи Continual Learning Trajectory as Memory for Replay-Free Consolidation in Malicious Code Analysis.

Конвейер FreeMOCA

FreeMOCA_Overview_v3

FreeMOCA работает следующим образом:

  1. Задачи поступают последовательно, каждая вводит новые семейства вредоносного ПО.
  2. Модель для каждой задачи инициализируется из предыдущей задачи (warm-start), чтобы согласовать минимумы задач в пространстве параметров.
  3. После обучения вычисляется интерполяция на основе связности режимов между текущим и предыдущим оптимумами задачи. Этот процесс может использовать адаптивную послойную интерполяцию на основе величины обновления параметров.
  4. Интерполированная модель заменяет текущую модель и используется для следующей задачи.
  5. Прошлые данные, признаки или сгенерированные образцы не сохраняются, что обеспечивает непрерывное обучение без памяти.

Весь процесс строит цепочку связанных решений, лежащих на многообразии с низкими потерями, что значительно снижает катастрофическое забывание.

Наборы данных

FreeMOCA оценивалась на двух крупномасштабных наборах данных вредоносного ПО: EMBER и Androzoo. Источники наборов данных:

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

Скачайте и настройте набор данных в следующем каталоге:

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

Запуск FreeMOCA

Этот репозиторий поддерживает два сценария непрерывного обучения:

  • Классово-инкрементальное обучение (Class-IL): новые классы (семейства вредоносного ПО) вводятся по мере выполнения задач.
  • Доменно-инкрементальное обучение (Domain-IL): пространство меток фиксировано, но распределение данных смещается во времени (например, по месяцам/годам).

Шаг 1. Установка

Выполните следующую команду для

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

Шаг 2. Запуск 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

Для более подробной настройки гиперпараметров см. Приложение A. Общие аргументы для FreeMOCA.

Приложение A. Общие аргументы для FreeMOCA

Для настройки гиперпараметров или экспериментальных параметров используйте следующие аргументы:

АргументОписание
--init_classesКоличество классов в задаче 0
--epochsКоличество эпох на задачу
--batchsizeРазмер батча
--lrСкорость обучения
--momentumМомент SGD
--weight_decayЗатухание весов
--lambda_minМинимальный вес интерполяции
--lambda_maxМаксимальный вес интерполяции

Чтобы изменить настройки аргументов по умолчанию, проверьте файл arguments.py.

Базовые методы

Наш репозиторий поддерживает эксперименты со следующими стандартными базовыми методами:

  • None: обучение только на текущей задаче (нижняя граница)
  • Joint: обучение на всех данных, увиденных на данный момент (верхняя граница, непрактично)

Вы можете запустить их следующей командой:

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

а также следующие предыдущие работы:

  • CLeWI: модифицировано из этого репозитория GitHub, работа из "Continual Learning with Weight Interpolation."
  • WSC: модифицировано из этого репозитория GitHub, работа из "Forget Forgetting: Continual Learning in a World of Abundant Memory."
  • Generative Replay (GR): модифицировано из этого репозитория GitHub, работа из "Continual learning with deep generative replay."
  • EWC: модифицировано из этого репозитория GitHub, работа из "Overcoming catastrophic forgetting in neural networks."
  • LwF: модифицировано из этого репозитория GitHub, работа из "Learning without Forgetting."
  • iCaRL: модифицировано из этого репозитория GitHub, работа из "iCaRL: Incremental Classifier and Representation Learning."
  • TAMiL: модифицировано из этого репозитория GitHub, работа из "Task-Aware Information Routing from Common Representation Space in Lifelong Learning."
  • MalCL: модифицировано из этого репозитория GitHub, работа из "MalCL: Leveraging GAN-Based Generative Replay to Combat Catastrophic Forgetting in Malware Classification."

Вы можете запустить базовые методы следующей командой:

# 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

# EWC for AZ-Class
cd ./baselines/GR_EWC_LwF_iCaRL_AZ
CUDA_VISIBLE_DEVICES=0 python main.py --data_set=ANDROZOO --tasks=11 --ewc --lambda=50 --metrics --logger_file ewc --scenario=class
Скачать инструмент