
Prototipo de detección de amenazas internas basado en Streamlit que utiliza XGBoost e Isolation Forest para analizar datos de actividad de empleados, generar resúmenes de riesgo y proporcionar explicaciones por empleado basadas en SHAP.
ThreatDetect es un prototipo de detección de amenazas internas basado en Streamlit que analiza datos de actividad de empleados y señala comportamientos potencialmente riesgosos. Utiliza un clasificador XGBoost entrenado junto con un detector de anomalías Isolation Forest para generar resúmenes de riesgo a nivel organizacional e información explicable a nivel de empleado.
La aplicación se puede ejecutar localmente con Streamlit. Una demostración desplegada se publicó anteriormente en:
streamlit_app.py — aplicación principal de Streamlitrequirements.txt — dependencias de paquetes PythonAI_Model_Code/insider_threat_model.pkl — pipeline de inferencia guardado y artefactos del modelo entrenadoAI_Model_Code/insider_threat_clean_dataset.csv — conjunto de datos de muestra incluido para EDAAI_Model_Code/cos720_ai_model_FINAL.ipynb — cuaderno de desarrollo del modeloassets/app_styling.css — estilos personalizados de UI para la aplicación Streamlitunit testing/ — archivos de prueba para la preparación de características y lógica de explicacióndocs/TECHNICAL_DOCUMENTATION.md — documentación técnica del proyectostreamlitpandasnumpyscikit-learnmatplotlibseabornplotlyxgboostshapInstale todas las dependencias con:
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
Inicie la aplicación con:
streamlit run streamlit_app.py
Luego abra la URL local que se muestra en la terminal (generalmente http://localhost:8501).
Ejecutar detección de amenazas para calcular las probabilidades de riesgo de cada registro.AI_Model_Code/insider_threat_clean_dataset.csv.Búsqueda organizacional vía CSV es el flujo de trabajo principal de detección de amenazas por lotes.Búsqueda individual se muestra en la barra lateral pero actualmente no está implementada en la lógica de la aplicación.Análisis Exploratorio de Datos está disponible para exploración de conjuntos de datos y comprobaciones rápidas de anomalías.AI_Model_Code/insider_threat_model.pkl contiene un paquete de modelo serializado con:
xgb_model: clasificador XGBoost entrenadoiso_forest: detector de anomalías Isolation Forest entrenadoscaler: StandardScaler para entradas numéricaslabel_encoders: codificadores para características categóricasfeature_columns: lista ordenada de característicascat_cols, num_cols, bin_cols: agrupaciones de característicasbest_threshold: umbral de clasificación utilizado para decisiones de riesgoshap_explainer: explicador SHAP para explicabilidadEl archivo del modelo es cargado por streamlit_app.py y se utiliza para preprocesar entradas, calcular probabilidades de riesgo y generar explicaciones.
El repositorio incluye pruebas en unit testing/.
Ejecute el conjunto de pruebas con:
pytest "unit testing/"
Este repositorio está configurado para mejora y pruebas. Las mejoras futuras pueden incluir ampliar la cobertura de características y reentrenar el modelo con datos adicionales de amenazas internas.