
ग्राफ-आधारित आंतरिक खतरे का पता लगाने की तकनीक, जो GCN-BiLSTM और ध्यान मॉडल का उपयोग करती है, CMU CERT डेटासेट पर आधारित है। इसमें डेटा प्रीप्रोसेसिंग, फीचर एक्सट्रैक्शन और विसंगति पहचान अनुसंधान के लिए प्रीट्रेंड चेकपॉइंट शामिल हैं।
इस रिपॉजिटरी में 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और मॉडल चेकपॉइंट्स सहित) इस README को छोटा रखने के लिएtree.txtमें रखा जा सकता है।
रिपॉजिटरी को क्लोन करें
git clone https://github.com/your-username/your-repo.git
cd your-repo
कोंडा वातावरण बनाएं
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/
छोटे सत्र फ़ाइलें और विहित 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 # मॉडल वजन
roc_curve_data_*.npz # सहेजा गया ROC वक्र डेटा
roc_curves*.png # ROC प्लॉट