
Streamlit-basierter Insider-Bedrohungserkennungs-Prototyp, der XGBoost und Isolation Forest verwendet, um Mitarbeiteraktivitätsdaten zu analysieren, Risikozusammenfassungen zu erstellen und SHAP-basierte Erklärungen pro Mitarbeiter bereitzustellen.
ThreatDetect ist ein auf Streamlit basierender Prototyp zur Erkennung interner Bedrohungen, der Mitarbeiteraktivitätsdaten analysiert und potenziell riskantes Verhalten kennzeichnet. Es nutzt einen trainierten XGBoost-Klassifikator zusammen mit einem Isolation-Forest-Anomaliedetektor, um organisationsweite Risikozusammenfassungen und erklärbare Einblicke auf Mitarbeiterebene zu liefern.
Die App kann lokal mit Streamlit ausgeführt werden. Eine bereitgestellte Demo war zuvor unter folgender Adresse verfügbar:
streamlit_app.py — Haupt-Streamlit-Anwendungrequirements.txt — Python-PaketabhängigkeitenAI_Model_Code/insider_threat_model.pkl — gespeicherte Inferenz-Pipeline und trainierte ModellartefakteAI_Model_Code/insider_threat_clean_dataset.csv — beigelegter Beispieldatensatz für EDAAI_Model_Code/cos720_ai_model_FINAL.ipynb — Jupyter-Notebook zur Modellentwicklungassets/app_styling.css — benutzerdefiniertes UI-Styling für die Streamlit-Appunit testing/ — Testdateien für Feature-Aufbereitung und Erklärungslogikdocs/TECHNICAL_DOCUMENTATION.md — technische Dokumentation des Projektsstreamlitpandasnumpyscikit-learnmatplotlibseabornplotlyxgboostshapInstallieren Sie alle Abhängigkeiten mit:
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
Starten Sie die App mit:
streamlit run streamlit_app.py
Öffnen Sie dann die im Terminal angezeigte lokale URL (normalerweise http://localhost:8501).
Run Threat Detection, um Risikowahrscheinlichkeiten für jeden Datensatz zu berechnen.AI_Model_Code/insider_threat_clean_dataset.csv.Organisational Search via CSV ist der Haupt-Workflow für die Batch-Bedrohungserkennung.Single Search wird in der Seitenleiste angezeigt, ist aber derzeit nicht in der App-Logik implementiert.Exploratory Data Analysis steht zur Datensatzexploration und schnellen Anomalieprüfungen zur Verfügung.AI_Model_Code/insider_threat_model.pkl enthält ein serialisiertes Modellpaket mit:
xgb_model: trainierter XGBoost-Klassifikatoriso_forest: trainierter Isolation-Forest-Anomaliedetektorscaler: StandardScaler für numerische Eingabenlabel_encoders: Kodierer für kategoriale Merkmalefeature_columns: geordnete Feature-Listecat_cols, num_cols, bin_cols: Feature-Gruppierungenbest_threshold: Klassifikationsschwellenwert für Risikoentscheidungenshap_explainer: SHAP-Erklärer für ErklärbarkeitDie Modelldatei wird von streamlit_app.py geladen und verwendet, um Eingaben vorzuverarbeiten, Risikowahrscheinlichkeiten zu berechnen und Erklärungen zu generieren.
Das Repository enthält Tests unter unit testing/.
Führen Sie die Testsuite aus mit:
pytest "unit testing/"
Dieses Repository ist für Erweiterungen und Tests konfiguriert. Zukünftige Verbesserungen können die Erweiterung der Feature-Abdeckung und das erneute Training des Modells mit zusätzlichen Daten zu internen Bedrohungen umfassen.