
Prototipo di rilevamento delle minacce interne basato su Streamlit che utilizza XGBoost e Isolation Forest per analizzare i dati delle attività dei dipendenti, generare riepiloghi del rischio e fornire spiegazioni SHAP per singolo dipendente.
ThreatDetect è un prototipo di rilevamento delle minacce interne basato su Streamlit che analizza i dati delle attività dei dipendenti e segnala comportamenti potenzialmente rischiosi. Utilizza un classificatore XGBoost addestrato insieme a un rilevatore di anomalie Isolation Forest per produrre riepiloghi dei rischi a livello di organizzazione e approfondimenti interpretabili a livello di singolo dipendente.
L'app può essere eseguita localmente usando Streamlit. Una demo pubblicata era in precedenza disponibile su:
streamlit_app.py — applicazione principale Streamlitrequirements.txt — dipendenze dei pacchetti PythonAI_Model_Code/insider_threat_model.pkl — pipeline di inferenza salvata e artefatti del modello addestratoAI_Model_Code/insider_threat_clean_dataset.csv — dataset di esempio incluso per EDAAI_Model_Code/cos720_ai_model_FINAL.ipynb — notebook di sviluppo del modelloassets/app_styling.css — stile UI personalizzato per l'app Streamlitunit testing/ — file di test per la preparazione delle feature e la logica di spiegazionedocs/TECHNICAL_DOCUMENTATION.md — documentazione tecnica del progettostreamlitpandasnumpyscikit-learnmatplotlibseabornplotlyxgboostshapInstalla tutte le dipendenze 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
Avvia l'app con:
streamlit run streamlit_app.py
Poi apri l'URL locale mostrato nel terminale (di solito http://localhost:8501).
Run Threat Detection per calcolare le probabilità di rischio per ogni record.AI_Model_Code/insider_threat_clean_dataset.csv.Ricerca Organizzativa tramite CSV è il flusso di lavoro principale per il rilevamento batch delle minacce.Ricerca Singola è mostrata nella barra laterale ma non è attualmente implementata nella logica dell'app.Analisi Esplorativa dei Dati è disponibile per l'esplorazione del dataset e controlli rapidi di anomalie.AI_Model_Code/insider_threat_model.pkl contiene un pacchetto modello serializzato con:
xgb_model: classificatore XGBoost addestratoiso_forest: rilevatore di anomalie Isolation Forest addestratoscaler: StandardScaler per input numericilabel_encoders: codificatori per feature categorichefeature_columns: elenco ordinato delle featurecat_cols, num_cols, bin_cols: raggruppamenti di featurebest_threshold: soglia di classificazione usata per le decisioni di rischioshap_explainer: spiegatore SHAP per la spiegabilitàIl file del modello viene caricato da streamlit_app.py e utilizzato per preprocessare gli input, calcolare le probabilità di rischio e generare spiegazioni.
Il repository include test nella cartella unit testing/.
Esegui la suite di test con:
pytest "unit testing/"
Questo repository è configurato per miglioramenti e test. Miglioramenti futuri potrebbero includere l'espansione della copertura delle feature e il riaddestramento del modello con dati aggiuntivi sulle minacce interne.