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. 各タスクのモデルは前のタスクから初期化され(ウォームスタート)、パラメータ空間内でタスクの極小値を揃えます。
  3. 訓練後、現在のタスクと前のタスクの最適点の間に モード接続に基づく補間 が計算されます。このプロセスでは、パラメータ更新量に基づく 適応的な層ごとの補間 を使用できます。
  4. 補間されたモデルが現在のモデルを置き換え、次のタスクに使用されます。
  5. 過去のデータ、特徴量、生成サンプルは一切保存されず、メモリ不要の継続学習 を実現します。

このプロセス全体が、低損失多様体上に存在する接続された解の連鎖を構築し、壊滅的忘却を大幅に軽減します。

データセット

FreeMOCA は、EMBER と Androzoo という 2 つの大規模マルウェアデータセットで評価されました。データセットの入手先:

  • 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 の実行

このリポジトリは 2 つの継続学習シナリオをサポートしています:

  • クラス増分学習 (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学習率
--momentumSGD モメンタム
--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
# LwF for EMBER-Class
cd ./baselines/GR_EWC_LwF_iCaRL_EMBER
CUDA_VISIBLE_DEVICES=0 python main.py --data_set=EMBER  --tasks=11 --replay=current --distill --metrics --logger_file lwf --scenario=class

# LwF for AZ-Class
cd ./baselines/GR_EWC_LwF_iCaRL_AZ
CUDA_VISIBLE_DEVICES=0 python main.py --data_set=AZ  --tasks=11 --replay=current --distill --metrics --logger_file lwf --scenario=class
# iCaRL for EMBER-Class
cd ./baselines/GR_EWC_LwF_iCaRL_EMBER
CUDA_VISIBLE_DEVICES=1 python main.py --data_set=EMBER --tasks=11 --icarl --budget=2000 --metrics --logger_file=icarl --scenario=class

# iCaRL for AZ-Class
cd ./baselines/GR_EWC_LwF_iCaRL_AZ
CUDA_VISIBLE_DEVICES=0 python main.py --data_set=ANDROZOO --tasks=11 --icarl --budget=2000 --metrics --logger_file=icarl --scenario=class
# TAMiL for EMBER-Class
cd ./baselines/TAMiL_EMBER
CUDA_VISIBLE_DEVICES=0 python main.py

# TAMiL for AZ-Class
cd ./baselines/TAMiL_AZ
CUDA_VISIBLE_DEVICES=0 python main.py
# MalCL for EMBER-Class
cd ./baselines/MalCL_EMBER
CUDA_VISIBLE_DEVICES=0 python main.py --train_data /path/to/data --test_data /path/to/data

# MalCL for AZ-Class
cd ./baselines/AZ_EMBER
CUDA_VISIBLE_DEVICES=0 python main.py --train_data /path/to/data --test_data /path/to/data
ツールをダウンロード