
كشف التهديدات الداخلية القائم على الرسم البياني باستخدام نماذج GCN-BiLSTM والانتباه على مجموعات بيانات CMU CERT. يتضمن معالجة البيانات المسبقة واستخراج الميزات ونقاط تفتيش مدربة مسبقًا لأبحاث كشف الشذوذ.
يحتوي هذا المستودع على إعداد البيانات، واستخراج الميزات، ونماذج قائمة على الرسوم البيانية (GCN-NN وGCN-BiLSTM وGCN-BiLSTM+Attention للإشارات الضمنية والصريحة) لكشف التهديدات الداخلية باستخدام مجموعة بيانات اختبار التهديدات الداخلية CMU CERT (R5.2 وR6.2).
.
│ 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> بالقيمة الموجودة تحت name: في environment.yml.
(اختياري) التثبيت عبر 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/
قم بتشغيل دفاتر الملاحظات التحضيرية لإنشاء ملفات الجلسات الأصغر وملفات CSVs/PKLs الأساسية.
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 # model weights
roc_curve_data_*.npz # saved ROC curve data
roc_curves*.png # ROC plots