ThreatDetect 是一个基于 Streamlit 的内部威胁检测原型,用于分析员工活动数据并标记潜在风险行为。它使用训练好的 XGBoost 分类器结合孤立森林异常检测器,生成组织级风险摘要和可解释的员工级洞察。
该应用可以使用 Streamlit 本地运行。之前发布了一个部署演示,地址为:
streamlit_app.py — 主要的 Streamlit 应用程序requirements.txt — Python 包依赖AI_Model_Code/insider_threat_model.pkl — 保存的推理管道和训练好的模型工件AI_Model_Code/insider_threat_clean_dataset.csv — 用于 EDA 的捆绑样本数据集AI_Model_Code/cos720_ai_model_FINAL.ipynb — 模型开发笔记本assets/app_styling.css — Streamlit 应用的自定义 UI 样式unit testing/ — 特征准备和解释逻辑的测试文件docs/TECHNICAL_DOCUMENTATION.md — 项目的技术文档streamlitpandasnumpyscikit-learnmatplotlibseabornplotlyxgboostshap使用以下命令安装所有依赖:
pip install -r requirements.txt
git clone https://github.com/jazbengu/ThreatDetect.git
cd ThreatDetect
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
使用以下命令启动应用:
streamlit run streamlit_app.py
然后打开终端中显示的本地 URL(通常是 http://localhost:8501)。
AI_Model_Code/insider_threat_clean_dataset.csv 中捆绑的样本数据集。通过 CSV 进行组织搜索 是主要的批量威胁检测工作流。单条搜索 在侧边栏中显示,但当前未在应用逻辑中实现。探索性数据分析 可用于数据集探索和快速异常检查。AI_Model_Code/insider_threat_model.pkl 包含一个序列化的模型包,其中包含:
xgb_model:训练好的 XGBoost 分类器iso_forest:训练好的孤立森林异常检测器scaler:用于数值输入的 StandardScalerlabel_encoders:类别特征的编码器feature_columns:有序的特征列表cat_cols、num_cols、bin_cols:特征分组best_threshold:用于风险决策的分类阈值shap_explainer:用于可解释性的 SHAP 解释器模型文件由 streamlit_app.py 加载,并用于预处理输入、计算风险概率和生成解释。
仓库包含 unit testing/ 下的测试。
使用以下命令运行测试套件:
pytest "unit testing/"
此仓库已配置用于增强和测试。未来的改进可能包括扩展特征覆盖范围,并使用更多内部威胁数据重新训练模型。