
Прототип обнаружения внутренних угроз на базе Streamlit, использующий XGBoost и Isolation Forest для анализа данных об активности сотрудников, формирования сводок по рискам и предоставления SHAP-объяснений для каждого сотрудника.
ThreatDetect — это прототип на основе Streamlit для обнаружения инсайдерских угроз, который анализирует данные о действиях сотрудников и отмечает потенциально рискованное поведение. Он использует обученный классификатор XGBoost вместе с детектором аномалий Isolation Forest для получения сводок рисков на уровне организации и поясняемых выводов на уровне сотрудников.
Приложение можно запустить локально с помощью Streamlit. Ранее опубликованная демо-версия была доступна по адресу:
streamlit_app.py — основное приложение Streamlitrequirements.txt — зависимости Python-пакетовAI_Model_Code/insider_threat_model.pkl — сохранённый конвейер вывода и артефакты обученной моделиAI_Model_Code/insider_threat_clean_dataset.csv — встроенный демонстрационный набор данных для EDAAI_Model_Code/cos720_ai_model_FINAL.ipynb — блокнот разработки моделиassets/app_styling.css — пользовательские стили UI для приложения Streamlitunit 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).
Run Threat Detection, чтобы рассчитать вероятности риска для каждой записи.AI_Model_Code/insider_threat_clean_dataset.csv.Organisational Search via CSV — основной рабочий процесс пакетного обнаружения угроз.Single Search отображается на боковой панели, но в настоящее время не реализован в логике приложения.Exploratory Data Analysis доступен для исследования наборов данных и быстрых проверок аномалий.AI_Model_Code/insider_threat_model.pkl содержит сериализованный пакет модели со следующими компонентами:
xgb_model: обученный классификатор XGBoostiso_forest: обученный детектор аномалий Isolation Forestscaler: StandardScaler для числовых входных данныхlabel_encoders: кодировщики для категориальных признаковfeature_columns: упорядоченный список признаковcat_cols, num_cols, bin_cols: группировки признаковbest_threshold: порог классификации, используемый для принятия решений о рискеshap_explainer: SHAP-объяснитель для интерпретацииФайл модели загружается streamlit_app.py и используется для предобработки входных данных, вычисления вероятностей риска и создания объяснений.
Репозиторий включает тесты в папке unit testing/.
Запустите тестовый набор с помощью:
pytest "unit testing/"
Этот репозиторий настроен для улучшения и тестирования. Будущие улучшения могут включать расширение охвата признаков и переобучение модели на дополнительных данных об инсайдерских угрозах.