
CMU CERT 데이터셋에서 GCN-BiLSTM 및 어텐션 모델을 사용한 그래프 기반 내부자 위협 탐지. 이상 탐지 연구를 위한 데이터 전처리, 특징 추출, 사전 훈련된 체크포인트 포함.
이 저장소는 CMU CERT 내부자 위협 테스트 데이터셋(R5.2, R6.2)을 사용하여 내부자 위협 탐지를 위한 데이터 준비, 특징 추출 및 그래프 기반 모델(GCN-NN, GCN-BiLSTM, GCN-BiLSTM+Attention (암시적+명시적 신호))을 포함합니다.
.
│ environment.yml
│ requirements.txt
│ tree.txt
│
├── data/
│ ├── original/
│ │ ├── r5_data/
│ │ └── r6_data/
│ ├── preprocessed/
│ │ ├── r5_data/
│ │ └── r6_data/
│ ├── r5.2-used-model/
│ └── r6.2_used_model/
│
├── notebook/
│ │ 01_feature_extraction.ipynb
│ │ 02_GCN-LSTM.ipynb
│ │ 03_GCN.ipynb
│ │ 04_GCN_Implicit_Explicit.ipynb
│ │ r5_data_preparation.ipynb
│ │ r6_data_preparation.ipynb
│ │ email_http_divider.ipynb
│
└── script/
│ get_feature.py
│ process_feature.py
└── __pycache__/
전체 깊은 트리(모든
.pkl및 모델 체크포인트 포함)는tree.txt에 보관하여 이 README를 간결하게 유지합니다.
저장소 복제
git clone https://github.com/your-username/your-repo.git
cd your-repo
Conda 환경 생성
conda env create -f environment.yml
활성화
conda activate <env_name>
<env_name>을 environment.yml의 name: 아래 값으로 바꾸세요.
(선택 사항) Pip 전용 설치
pip install -r requirements.txt
CMU CERT 내부자 위협 테스트 데이터셋(R5.2 및 R6.2) 다운로드
https://kilthub.cmu.edu/articles/dataset/Insider_Threat_Test_Dataset/12841247
원시 데이터를 다음 위치에 배치:
data/original/r5_data/
data/original/r6_data/
준비 노트북을 실행하여 더 작은 세션 파일과 표준 CSV/PKL을 생성합니다.
R5.2
notebook/r5_data_preparation.ipynb
R6.2
notebook/r6_data_preparation.ipynb
예상 R5.2 출력 (예시):
r5_small_device_session.pkl
r5_small_file_session.pkl
r5_small_email_session.pkl
r5_small_http_session.pkl
r5_small_sessoion_data.pkl
r5_small_session_log_df.pkl
예상 R6.2 출력에는 다음이 포함됩니다:
r6_2_small_device_session.pkl
r6_2_small_file_session.pkl
r6_2_small_email_session.pkl
r6_2_small_http_session.pkl
r6_2_small_session_log_df.pkl
r6_2_user_df_pc.csv
출력은 다음 아래에 저장됩니다:
data/preprocessed/r5_data/
data/preprocessed/r6_data/
다음을 실행:
notebook/01_feature_extraction.ipynb
출력:
log_activity_code.pkl
device_activity_code.pkl
file_activity_code.pkl
email_activity_code.pkl
http_activity_code.pkl
이 노트북은 또한 그래프 리스트/마스크를 생성합니다. 예:
data/preprocessed/r6_data/r6_graph_list_feature_corrected_range_corrected.pkl
GCN-BiLSTM (명시적)
notebook/02_GCN-LSTM.ipynb
GCN-NN (명시적)
notebook/03_GCN.ipynb
GCN-BiLSTM + Attention (암시적 + 명시적)
notebook/04_GCN_Implicit_Explicit.ipynb
사전 학습된 체크포인트 및 ROC 산출물은 다음 아래에 있습니다:
data/r5.2-used-model/
data/r6.2_used_model/
각 하위 폴더에는 다음이 포함됩니다:
*.pth # 모델 가중치
roc_curve_data_*.npz # 저장된 ROC 곡선 데이터
roc_curves*.png # ROC 플롯