Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
FreeMOCA — 메모리 없는 지속 학습 프레임워크로, mode connectivity-based interpolation을 사용하여 악성코드 분류를 수행합니다. EMBER 및 Androzoo 데이터셋에서 class-incremental 및 domain-incremental 시나리오를 지원합니다. | Kitploit
도구/GitHubGitHub/iqsec-lab/freemoca
Android SecurityStatic AnalysisMalware AnalysisMachine LearningPapers & ResearchLearning & Education
GitHubiqsec-lab/freemoca

FreeMOCA

메모리 없는 지속 학습 프레임워크로, mode connectivity-based interpolation을 사용하여 악성코드 분류를 수행합니다. EMBER 및 Androzoo 데이터셋에서 class-incremental 및 domain-incremental 시나리오를 지원합니다.

저장소 보기
153개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

FreeMOCA: 메모리 없는 악성 코드 분석을 위한 지속적 학습

[ArXiv 논문 링크]

Zahra Asadi*, Haeseung Jeon*, Sohyun Han, Md Mahmuduzzaman Kamol, Se Eun Oh, Mohammad Saidur Rahman†

*동등한 기여를 한 저자. †교신 저자.

[!NOTE] 이 문서는 FreeMOCA: 메모리 없는 악성 코드 분석을 위한 지속적 학습 논문의 공식 구현입니다.

FreeMOCA 파이프라인

FreeMOCA_Overview_v3

FreeMOCA는 다음 과정으로 작동합니다:

  1. 작업이 순차적으로 도착하며, 각각 새로운 악성코드 패밀리를 도입합니다.
  2. 각 작업의 모델은 이전 작업(웜 스타트)에서 초기화되어 매개변수 공간에서 작업 최소값을 정렬합니다.
  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학습률
--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
도구 다운로드