Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

reyptz/fraud_detected

Repository files navigation

FraudDetected — Détection de fraude transactionnelle

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.


Vue d'ensemble

FraudDetected combine :

  • API REST sécurisée : authentification (Argon2id, JWT, MFA TOTP, OIDC), tokenisation, chiffrement AEAD
  • Données transactionnelles : dataset transaction.csv pour 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

Dataset transaction.csv

Colonnes

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

Statistiques

  • Nombre de transactions : 300
  • Transactions légitimes (Is_Fraud = 0) : 270 (~90 %)
  • Transactions frauduleuses (Is_Fraud = 1) : 30 (~10 %)

Indicateurs observés sur les fraudes

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)

Structure du projet

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

Prérequis

  • Python 3.11+
  • MongoDB (pour l'API)
  • Redis (optionnel, pour refresh tokens)

Installation

# 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.)

Configuration (.env)

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_anthropic

Lancement

API FastAPI

uvicorn main:app --reload --host 0.0.0.0 --port 8000

Tests TDD

# 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

CLI Machine Learning

# 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-all

Endpoints principaux

Les 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.

Authentification

  • POST /api/v1/auth/register — Inscription
  • POST /api/v1/auth/login — Connexion (avec TOTP optionnel)
  • POST /api/v1/auth/refresh — Renouvellement de token
  • POST /api/v1/auth/logout — Déconnexion

MFA

  • POST /api/v1/mfa/totp/enroll — Enrôlement TOTP
  • POST /api/v1/mfa/totp/verify — Vérification TOTP

OIDC

  • GET /api/v1/oidc/login — Redirection vers le fournisseur
  • GET /api/v1/oidc/callback — Callback après authentification

Utilisateurs et comptes

  • POST /api/v1/users, GET /api/v1/users, GET /api/v1/users/{uuid}, etc.
  • Routes /api/v1/comptes pour la gestion des comptes

Tokenisation / chiffrement

  • POST /api/v1/token/mint — Création de token
  • POST /api/v1/token/resolve — Résolution de token

Détection de fraude

  • POST /api/v1/fraud/predict — Prédiction (body: {amount, fee, time_delay})
  • GET /api/v1/fraud/stats — Statistiques du dataset

WebSocket

  • ws://127.0.0.1:8000/api/v1/ws?token=<access_token>

Détection de fraude (ML)

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}


Fondations

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

Sécurité intégrée

  • 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

Tests

Exécution rapide :

pytest tests/ -v

Pour le détail des scénarios et cadres couverts, voir :

  • tests/test_compliance_frameworks.py
  • tests/test_security_services.py
  • tests/test_controllers_integration.py
  • docs/THREAT_MODEL_STRIDE.md

Licence

Voir le fichier LICENSE du projet.

Options Avancées

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-models

Tests TDD - Cadres de Conformité et Sécurité

Couverture Complète Validée

Le projet inclut 100% des tests TDD nécessaires pour la conformité et la sécurité :

8 Cadres de Conformité

  • 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

7 Services Sécurité

  • 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

Exécution des Tests

# 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

Rapports de Tests

# 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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages