Proof-of-Concept моделирует три класса атаки на простую ML-модель кредитного скоринга. Здесь же собраны выводы по mitigation strategies и тонкостям атаки
Цель: понять, как уязвимости моделей проявляются в реальных задачах, и на какие признаки стоит обращать внимание при продакшн-развёртывании
Простая табличная модель скоринга может быть легко атакована:
от снижения качества на 64 % (HopSkipJump) до утечки приватности клиентов (MIA)
- Clean Accuracy: 82.0 %
- Adv. Accuracy: 18.0 %
- Fidelity (surrogate vs victim): 95.4 %
- Surrogate Accuracy: 81.7 %
- Threshold: 0.93
- Attack Accuracy: 55.6 %
- AUC: 72.4 %
git clone https://github.com/proovethetruth/POC-Banking-ML-Attacks.git
cd POC-Banking-ML-Attacks
# Локально через Makefile
make setup # ставит Python-зависимости
make all # train + все PoC-атаки + генерация summary.png
# Или в Docker
docker build -t poc-banking-ml-attacks .
docker run --rm poc-banking-ml-attacks├── src/
│ ├── model_train.py
│ ├── extraction_attack.py
│ ├── membership_attack.py
│ ├── adversarial_tabular_attack.py
│ └── report.py
├── data/ # raw + preprocessed
├── results/
│ ├── extraction_plot.png
│ ├── membership_roc.png
│ ├── tabular_adv_plot.png
├── docs/ # defenses, architecture, findings
├── Makefile
├── Dockerfile
├── requirements.txt
└── README.md
Все технические детали и выводы описаны в [docs/findings.md], а рекомендации по защите — в [docs/defenses.md].
- Без rate-limiting и adversarial training модель легко сломать через HopSkipJump (Decision-based Adversarial), даже не зная её градиентов
- По "чёрному" API можно обучить surrogate-модель с fidelity ~95% и accuracy ~82% на оригинальных данных (Model Extraction)
- Простейший threshold-based подход к Membership Inference даёт AUC >72% и позволяет узнать, какие клиенты были в тренировочном наборе
Проект не претендует на полноту покрытия всех классов угроз, но демонстрирует, насколько низкий порог входа у атак на ML-модели даже без доступа к коду или градиентам
Какие вижу направления для развития:
- Реализовать и сравнить методы детектирования атак (confidence thresholding, anomaly detection, DP defense и др.)
- В реальных условиях продакшн-среды (например, с ограничением числа запросов, добавлением логирования и алертов)
- Минимальный API, позволяющий имитировать атаки на модель в изолированной среде (полезно для обучения и демонстраций внутри команды)


