Plateforme de détection de fraude basée sur le Machine Learning, avec API FastAPI sécurisée (auth, MFA, OIDC) et analyse des transactions via le dataset transaction.csv.
FraudDetected combine :
- API REST sécurisée : authentification (Argon2id, JWT, MFA TOTP, OIDC), tokenisation, chiffrement AEAD
- Données transactionnelles : dataset
transaction.csvpour entraînement et évaluation des modèles de détection de fraude - Tests TDD complets : 100% des cadres de conformité et sécurité validés
- CLI avancée : Interface en ligne de commande pour ML et analyse financière
| Colonne | Type | Description |
|---|---|---|
Transaction_ID |
entier | Identifiant unique de la transaction |
Amount |
float | Montant de la transaction |
Fee |
float | Frais associés |
Time_Delay |
float | Délai temporel (en unités arbitraires) |
Is_Fraud |
0/1 | Étiquette : 0 = légitime, 1 = frauduleuse |
- Nombre de transactions : 300
- Transactions légitimes (
Is_Fraud = 0) : 270 (~90 %) - Transactions frauduleuses (
Is_Fraud = 1) : 30 (~10 %)
Les transactions frauduleuses présentent souvent :
- Montants élevés (ex. > 100, > 400)
- Fees anormalement élevés (ex. > 3)
- Time_Delay extrême (très faible < 2 ou très élevé > 200)
FraudDetected/
├── data/
│ └── transaction.csv # Dataset de transactions labellisées
├── ml/
│ ├── advanced_unified_financial_ai.py # Modèles ML (fraude + analyse financière) + CLI
│ └── trading_dashboard_pro.py # Dashboard Streamlit de trading
├── controllers/ # Routes API (auth, users, comptes, fraud, etc.)
├── config/ # Configuration (DB, Redis, sécurité)
├── services/ # Logique métier
├── models/ # Entités et schémas
├── tests/ # Tests pytest
├── docs/ # Documentation architecture & menace
│ ├── THREAT_MODEL_STRIDE.md
│ └── C4_CONTEXT.md
├── scripts/
│ └── train_mlflow.py # Pipeline MLOps (entraînement + MLflow)
├── main.py
├── .github/ # GitHub Actions (CI, Security, Dependabot)
│ └── workflows/
├── .gitlab-ci.yml # Pipeline GitLab CI (lint, test, scan, build)
├── .pre-commit-config.yaml # Hooks qualité
├── Dockerfile
├── Makefile
├── pyproject.toml
└── README.md
- Python 3.11+
- MongoDB (pour l'API)
- Redis (optionnel, pour refresh tokens)
# Cloner / accéder au projet
cd FraudDetected
# Environnement virtuel
python -m venv .venv
.venv\Scripts\Activate.ps1 # Windows PowerShell
# source .venv/bin/activate # Linux / macOS
# Dépendances
pip install -r requirements.txt
# Configuration obligatoire pour les tests
# Créer un fichier .env à la racine du projet
# (voir la section « Configuration (.env) » ci‑dessous pour les variables à définir)
# Adapter les valeurs à votre environnement (clés, URI, secrets, etc.)Variables principales :
# JWT
JWT_SECRET_KEY=votre_secret_256_bits_minimum
JWT_ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=15
# Argon2
PASSWORD_SALT=pepper_secret_32_chars_minimum
# MongoDB
MONGODB_URI=mongodb://localhost:27017
# Redis (optionnel)
REDIS_URI=redis://localhost:6379/0
# OIDC (Auth0 / Keycloak / Okta)
OIDC_ISSUER=
OIDC_CLIENT_ID=
OIDC_CLIENT_SECRET=
OIDC_REDIRECT_URI=
# Tests (obligatoire)
TESTING=1
KMS_KEK_BASE64=dGVzdGtleV9wb3VyX2xlcy10ZXN0c18zMl9vY3RldHM=
# API Keys (optionnel pour ML avancé)
OPENAI_API_KEY=votre_cle_openai
ANTHROPIC_API_KEY=votre_cle_anthropicuvicorn main:app --reload --host 0.0.0.0 --port 8000- Swagger UI : http://127.0.0.1:8000/docs
- ReDoc : http://127.0.0.1:8000/redoc
# Tests simples (validation minimale)
python tests/test_minimal.py
# Tests complets avec pytest
pytest tests/ -v
# Tests par catégorie
pytest tests/test_compliance_frameworks.py -v -m compliance
pytest tests/test_security_services.py -v -m security
pytest tests/test_controllers_integration.py -v -m integration# Lister tous les modèles
python ml/advanced_unified_financial_ai.py --list-models
# Analyse de marché (exemple)
python ml/advanced_unified_financial_ai.py --run financial_analysis market_analysis
# Détection de fraude (exemple)
python ml/advanced_unified_financial_ai.py --run fraud_detection fraud_detection
# Exécuter tous les modèles disponibles
python ml/advanced_unified_financial_ai.py --run-allLes routes métier sont exposées sous le préfixe de version /api/v1.
Des alias racine (/auth/..., /comptes, etc.) existent pour la compatibilité avec certains tests d'intégration.
POST /api/v1/auth/register— InscriptionPOST /api/v1/auth/login— Connexion (avec TOTP optionnel)POST /api/v1/auth/refresh— Renouvellement de tokenPOST /api/v1/auth/logout— Déconnexion
POST /api/v1/mfa/totp/enroll— Enrôlement TOTPPOST /api/v1/mfa/totp/verify— Vérification TOTP
GET /api/v1/oidc/login— Redirection vers le fournisseurGET /api/v1/oidc/callback— Callback après authentification
POST /api/v1/users,GET /api/v1/users,GET /api/v1/users/{uuid}, etc.- Routes
/api/v1/comptespour la gestion des comptes
POST /api/v1/token/mint— Création de tokenPOST /api/v1/token/resolve— Résolution de token
POST /api/v1/fraud/predict— Prédiction (body:{amount, fee, time_delay})GET /api/v1/fraud/stats— Statistiques du dataset
ws://127.0.0.1:8000/api/v1/ws?token=<access_token>
Le module ml/advanced_unified_financial_ai.py exploite data/transaction.csv pour entraîner un classifieur binaire (fraude / légitime). Exemple d’utilisation :
from ml.advanced_unified_financial_ai import FraudDetector
detector = FraudDetector()
# Entraînement (optionnel, utilise data/transaction.csv par défaut)
detector.train()
prediction = detector.predict(amount=150.0, fee=5.0, time_delay=250.0)
# {"is_fraud": True, "probability": 0.92}| Domaine | Outils / Pratiques |
|---|---|
| CI/CD | GitLab CI (lint, test, scan, build), Dockerfile |
| Qualité | Pre-commit, Black, isort, Flake8, Bandit, Safety, Trivy |
| Tests | Pytest, pytest-cov, make test |
| MLOps | MLflow (train, registry), scripts/train_mlflow.py |
| Documentation | Threat Model STRIDE, C4 Context |
| API | Versioning URI, Throttling (SlowAPI), OAuth2/OIDC, TLS |
make install # Dépendances + pre-commit
make test # Tests
make lint # Vérification qualité
make train # Entraînement MLflow
make run # Démarrer l'API- Argon2id + pepper
- JWT courts + refresh tokens (rotation)
- MFA TOTP
- OIDC (Auth0 / Keycloak / Okta)
- Chiffrement AES-GCM (envelope encryption)
- Blind index HMAC pour recherche PII
- CSP, en-têtes de sécurité, rate limiting (SlowAPI)
Pour une analyse STRIDE détaillée (menaces / mitigations), voir :
docs/THREAT_MODEL_STRIDE.md
Exécution rapide :
pytest tests/ -vPour le détail des scénarios et cadres couverts, voir :
tests/test_compliance_frameworks.pytests/test_security_services.pytests/test_controllers_integration.pydocs/THREAT_MODEL_STRIDE.md
Voir le fichier LICENSE du projet.
L'exécution avancée (multi‑modèles, trading, chatbot) est centralisée dans
ml/advanced_unified_financial_ai.py. Les modèles réellement disponibles sont
ceux retournés par :
python ml/advanced_unified_financial_ai.py --list-modelsLe projet inclut 100% des tests TDD nécessaires pour la conformité et la sécurité :
- PCI DSS 4.0 : Force mots de passe, MFA, logging transactions
- ISO/IEC 27001:2022 : Contrôles accès, logging, monitoring
- NIS2 2023 : Gestion incidents, continuité business
- DORA 2025 : Gestion risques ICT, résilience digitale
- COBIT 2019 : Monitoring, planning, service delivery
- ITIL 4 : Design services, transition, opération
- SOX 404 : Contrôles internes, audit trail
- SANS CIS Controls v8 : Inventory, configuration sécurisée
- Input Validation : Détection SQL injection, XSS, command injection
- LLM Security : Détection prompt injection, sanitization
- DoS Protection : Rate limiting, monitoring ressources
- Security Headers : CSP, HSTS, XSS protection
- CSRF Protection : Génération/validation tokens
- Session Management : Création, récupération, destruction sessions
- Audit Service : Logging événements, signatures
# Tests minimal (validés ✅)
python tests/test_minimal.py
# Tests conformité (validés ✅)
python tests/test_compliance_frameworks.py
# Tests sécurité (validés ✅)
python tests/test_security_services.py
# Tests intégration (validés ✅)
python tests/test_controllers_integration.py
# Validation finale (validée ✅)
python tests/test_final_validation.py
# Tests complets avec pytest
pytest tests/ -v
# Tests par catégorie
pytest tests/ -m compliance
pytest tests/ -m security
pytest tests/ -m integration# Rapport HTML
pytest tests/ --html=reports/test_report.html
# Couverture code
pytest tests/ --cov=. --cov-report=html
# Tests performance
pytest tests/test_controllers_integration.py::TestPerformanceAndScalability --durations=0