本仓库包含使用 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 图