Master Security Framework : mon cadre de sécurité multicouche pour les applications modernes

Master Security Framework : mon cadre de sécurité multicouche pour les applications modernes

18/05/2026

MSF

Résumé

Le Master Security Framework (MSF) est un cadre de sécurité complet, multilingue et multicouche conçu pour protéger les applications modernes à tous les niveaux de la pile technologique. Implémenté en Python et TypeScript, MSF propose plus de 350 fonctions réparties dans 28 modules, couvrant tout, de l'authentification et du chiffrement à la détection des attaques Web, en passant par l'analyse du réseau, la sécurité du cloud, la protection de l'intelligence artificielle, les pots de miel adaptatifs, la défense active et la conformité de l'entreprise. Cet article présente une analyse technique détaillée de chaque module, fonction, modèle de conception et mécanisme de sécurité implémenté dans le framework.


1. Introduction

1.1. Le problème

Les applications modernes sont confrontées à un spectre de menaces de plus en plus sophistiquées. Un même système peut être ciblé par des attaques sur plusieurs couches simultanément : injection d'invites dans des modèles de langage, exploitation de vulnérabilités Web (XSS, SQLi, SSRF), analyse de ports, attaques DDoS, mauvaises configurations du cloud, conteneurs compromis, dépendances vulnérables dans la chaîne d'approvisionnement logicielle et violations de la conformité réglementaire.

L’approche traditionnelle de la sécurité – résoudre chaque problème avec des outils isolés – crée des silos de défense qui laissent des espaces entre les couches. MSF a été conçu pour résoudre ce problème en proposant une plate-forme de sécurité unifiée qui fonctionne sur toutes les couches de l'application.

1.2. Qu'est-ce que le cadre de sécurité principal

MSF est un framework de sécurité open source implémenté en deux langages : Python et TypeScript. Chaque module existe dans les deux langues avec la même sémantique, permettant aux équipes multilingues d'utiliser le même ensemble de fonctionnalités de sécurité quelle que soit la pile technologique.

Le cadre est structuré autour de quatre piliers :

  1. Prévention : validation des entrées, désinfection, chiffrement, renforcement de la configuration
  2. Détection : Analyse des modèles d'attaques, anomalies statistiques, signatures de malwares, comportements suspects
  3. Réponse : alertes autonomes, quarantaine, confinement, auto-guérison
  4. Conformité : Vérification automatique des normes LGPD, GDPR, HIPAA, PCI-DSS

1.3. Métriques du projet

  • 243 tests automatisés réussis (77 Python + 166 TypeScript)
  • 14 modules Python avec plus de 180 fonctions
  • 14 modules TypeScript avec plus de 170 fonctions
  • Télémétrie OpenTelemetry intégrée à toutes les fonctions
  • Journalisation structurée (pin en TypeScript, loguru en Python)
  • Cache en mémoire avec invalidation automatique
  • Policy Engine pour les règles de sécurité configurables
  • Event Bus pour la communication asynchrone entre les modules

2. Architecture-cadre

2.1. Couche d'infrastructure (noyau)

La base MSF est composée de six composants d'infrastructure partagés par tous les autres modules :

Configuration globale : objet de configuration centralisé qui stocke les paramètres de sécurité, les seuils, les listes autorisées/bloquées et les clés cryptographiques. La configuration peut être rechargée en temps réel à partir des variables d'environnement sans redémarrer l'application.

Policy Engine : système d'évaluation de règles qui vous permet de définir des politiques de sécurité sous forme d'instructions structurées. Le moteur prend en charge les opérateurs logiques, les conditions composées et les actions d'application (autoriser, refuser, avertir, consigner).

Event Bus : un système pub/sub asynchrone qui permet aux modules de publier des événements de sécurité et à d'autres modules de s'abonner pour réagir. Le bus d'événements comprend un historique des événements et une file d'attente de lettres mortes pour les événements dont le traitement a échoué.

Metrics Registry : un système de métriques qui prend en charge les compteurs (pour les décomptes cumulés), les jauges (pour les valeurs instantanées) et les histogrammes (pour les distributions). Toutes les fonctions de découverte publient automatiquement des métriques.

Cache Manager : un cache LRU (le moins récemment utilisé) avec une durée de vie configurable (Time-To-Live), utilisé pour stocker des résultats de validation coûteux, des listes de blocage d'IP, des empreintes digitales de session et des jetons révoqués.

OpenTelemetry : intégration complète avec la norme OpenTelemetry, générant des étendues de traçage distribuées pour chaque opération de sécurité. Cela permet à la couleurrelier les événements de sécurité aux demandes de traces dans les architectures de microservices.

Structured Logger : journalisation structurée au format JSON avec pin (TypeScript) et loguru (Python), y compris le contexte automatique tel que l'ID de trace, la gravité, le module et les métadonnées de sécurité.

Gestion des exceptions : une hiérarchie d'exceptions de sécurité (SecurityError, ValidationError, AuthenticationError, EncryptionError) qui permet une gestion granulaire des erreurs de sécurité.

2.2. Couche de protection

Concernant l'infrastructure, MSF organise ses modules de sécurité en trois couches fonctionnelles :

Couche d'entrée : Web, API, Auth – protégez les points d'entrée des applications Couche d'infrastructure : réseau, cloud, fichiers – protège l'infrastructure sous-jacente Couche intelligente : IA, surveillance, défensive, Honeypot – protégez avec intelligence et adaptation


3. Module d'authentification (Auth)

Le module d'authentification est le plus complet du framework, avec 30 fonctions en Python et 7 en TypeScript. Il couvre l'ensemble du cycle de vie de l'authentification : génération et validation des jetons, gestion des sessions, détection des attaques et méthodes avancées de vérification d'identité.

3.1. JWT (jetons Web JSON)

MSF implémente un système JWT complet qui va au-delà de la simple génération et validation :

  • generate_jwt crée des jetons avec un sujet, des revendications personnalisées, une expiration configurable et un émetteur. Prend en charge les algorithmes HS256, HS384, HS512, RS256, ES256.
  • validate_jwt vérifie la signature, l'expiration, les revendications obligatoires et renvoie la charge utile décodée. Le paramètre verify_exp vous permet de désactiver la vérification d'expiration pour des cas spécifiques.
  • revoke_jwt ajoute le JTI (JWT ID) du token à une liste noire de révocation. Ceci est indispensable pour se déconnecter avant l’expiration naturelle du token.
  • rotate_jwt valide l'ancien token et en émet un nouveau avec la même identité, permettant une rotation silencieuse du token sans interrompre la session utilisateur.
  • validate_refresh_token valide les jetons d'actualisation avec vérification de l'appartenance à l'utilisateur spécifique, empêchant qu'un jeton d'actualisation volé soit utilisé par un autre utilisateur.

3.2. Gestion des sessions

Le système de session MSF inclut une protection contre le détournement de session :

  • secure_session crée une session reliant l'identifiant utilisateur, l'adresse IP, l'agent utilisateur et l'empreinte digitale de l'appareil. Cela vous permet de détecter les changements suspects dans le contexte de la session.
  • validate_session vérifie si le session_id appartient à l'utilisateur et si l'IP actuelle correspond à l'IP enregistrée lors de la création de la session.
  • detect_session_hijack compare l'adresse IP et l'agent utilisateur actuels avec les données de session historiques. Si l'adresse IP a été déplacée vers un autre sous-réseau ou si l'agent utilisateur a changé de manière significative, la fonction renvoie true, indiquant un possible détournement.
  • detect_token_replay conserve un enregistrement des jetons déjà utilisés. Si un jeton est présenté plus d'une fois, la fonction détecte l'attaque par relecture.

3.3. Détection des attaques d'authentification

MSF détecte trois principaux types d'attaques contre les systèmes d'authentification :

  • detect_credential_stuffing surveille les tentatives de connexion à partir d'une seule adresse IP sur plusieurs comptes d'utilisateurs. Si une adresse IP essaie plusieurs noms d’utilisateur différents dans une fenêtre de temps, elle est signalée comme du credential stuffing.
  • detect_bruteforce surveille les tentatives de connexion sur un seul compte. Si le nombre de tentatives dépasse le seuil dans la fenêtre de temps, cela est signalé comme force brute.
  • detect_impossível_travel calcule la distance entre deux emplacements de connexion consécutifs et la compare au temps écoulé. Si la vitesse nécessaire pour se déplacer entre des points dépasse les limites physiques raisonnables (par exemple 900 km/h), la fonction détecte un déplacement impossible.
  • geo_velocity_check étend la détection des déplacements impossibles à plusieurs emplacements, calculant la vitesse géographique entre tous les points de connexion consécutifs.

3.4. Authentification adaptative et basée sur les risques

  • adaptive_auth ajuste les exigences d'authentification en fonction du score de risque du contexte. Une connexion depuis un appareil familier dans un emplacement familier peut nécessiter uniquement un mot de passe, tandis qu'une connexion depuis un nouvel appareil dans un autre pays peut nécessiter une MFA supplémentaire.
  • behavioral_auth utilise la biométrie comportementale (modèle de frappe, mouvement de la souris, rythme de navigation) pour vérifier l'identité de l'utilisateur par rapport à la ligne de base comportementale enregistrée.
  • risk_based_auth calcule un score de risque composite à partir de plusieurspar facteurs : emplacement, appareil, heure, comportement, réputation IP, et renvoie une décision d'authentification avec un niveau de confiance.

3.5. TOTP et codes de sauvegarde

  • generate_totp génère des codes de mot de passe à usage unique basés sur le temps conformément à la RFC 6238, avec des chiffres et un point configurables.
  • validate_totp valide les jetons TOTP avec une tolérance de dérive d'horloge (paramètre drift), compensant la désynchronisation entre le serveur et l'appareil de l'utilisateur.
  • verify_backup_code vérifie et consomme les codes de sauvegarde/récupération, les supprimant de la liste valide après utilisation pour empêcher leur réutilisation.

3.6. WebAuthn et clés d'accès

  • passkey_auth valide les authentifications FIDO2/WebAuthn en vérifiant la signature cryptographique de l'authentificateur, les données de l'authentificateur et les données du client JSON.
  • webauthn_verify effectue une vérification complète de l'assertion WebAuthn, y compris la validation de l'origine, de l'ID RP (Relying Party ID) et de la signature cryptographique par rapport à la clé publique enregistrée.
  • phishing_résistant_auth vérifie si une méthode d'authentification est résistante au phishing, nécessitant le niveau FIDO2 2 ou supérieur avec attestation vérifiée.

3.7. Sécurité du mot de passe

  • password_entropy calcule l'entropie de Shannon d'un mot de passe, mesurant sa complexité informationnelle en bits. Les mots de passe avec une entropie inférieure à 40 bits sont considérés comme faibles.
  • detect_weak_password combine l'analyse d'entropie avec une vérification par rapport à des listes de mots de passe courants (rockyou, top 10000, etc.).
  • password_breach_check vérifie si un hachage de mot de passe apparaît dans une base de données de violations connues (Have I Been Pwned et similaire).
  • secure_password_hash crée des hachages de mots de passe avec du sel cryptographique et des étirements de clés (itérations), prenant en charge des algorithmes tels que PBKDF2, bcrypt, scrypt et Argon2.
  • verify_password_hash compare un mot de passe à un hachage stocké en utilisant une comparaison sécurisée à temps constant.

3.8. Empreintes digitales des appareils et des navigateurs

  • device_fingerprint génère un identifiant de périphérique unique à partir d'attributs tels que l'agent utilisateur, la résolution d'écran, le fuseau horaire, les langues et la plate-forme.
  • browser_fingerprint utilise des techniques avancées d'empreintes digitales basées sur les caractéristiques de rendu : hachage du canevas 2D, hachage WebGL, hachage du contexte audio et liste des polices installées.
  • biometric_validation compare les données biométriques (empreinte digitale, reconnaissance faciale, iris) à un modèle stocké avec un seuil de similarité configurable.

4. Module de cryptographie (Crypto)

Le module de chiffrement implémente des algorithmes de chiffrement symétriques, asymétriques et post-quantiques modernes, en mettant l'accent sur l'authentification et l'intégrité.

4.1. Cryptage authentifié

  • encrypt_data utilise un cryptage authentifié avec données associées (AEAD), prenant en charge AES-256-GCM et ChaCha20-Poly1305. Les données associées (AAD) vous permettent de lier des métadonnées non chiffrées au texte chiffré de manière authentifiée.
  • decrypt_data effectue un déchiffrement authentifié, en vérifiant la balise d'authentification avant de renvoyer le texte en clair. Si la balise ne correspond pas, le déchiffrement échoue, empêchant les attaques de remplissage Oracle et de manipulation de texte chiffré.
  • encrypt_file et decrypt_file étendent le cryptage authentifié aux fichiers sur le disque, gérant les noms occasionnels, le sel et les métadonnées en toute sécurité.

4.2. Cryptographie hybride

  • hybrid_encrypt combine le cryptage asymétrique (pour l'échange de clés) avec le cryptage symétrique (pour la charge utile). La clé symétrique est générée de manière aléatoire, utilisée pour chiffrer la charge utile, puis chiffrée avec la clé publique du destinataire.
  • hybrid_decrypt inverse le processus : déchiffre la clé symétrique avec la clé privée puis décrypte la charge utile.

4.3. Cryptographie post-quantique

Le MSF implémente les algorithmes post-quantiques standardisés par le NIST :

  • pqc_encrypt et pqc_decrypt utilisent ML-KEM (anciennement Kyber) pour le cryptage quantique résistant aux ordinateurs.
  • kyber_key_exchange implémente le protocole d'échange de clés Kyber pour l'établissement de clés partagées post-quantiques.
  • dilithium_sign utilise ML-DSA (anciennement Dilithium) pour les signatures numériques post-quantiques.
  • sphincs_sign utilise SPHINCS+, un schéma de signature basé sur des fonctions de hachage, comme alternative post-quantique sans état.
  • falcon_sign utilise Falcon, un schéma de signature basé sur un treillis avec des signatures compactes.

4.4. HMAC et vérification des signatures

  • generate_hmac produit un Hash-bCode d'authentification de message utilisé à l'aide de HMAC-SHA256, HMAC-SHA384, HMAC-SHA512 ou HMAC-SHA3-256.
  • verify_hmac compare le HMAC calculé avec le HMAC attendu en utilisant une comparaison à temps constant.
  • verify_signature vérifie les signatures numériques (Ed25519, ECDSA, RSA-PSS) par rapport à un message et une clé publique.

4.5. Utilitaires cryptographiques

  • secure_random génère des octets cryptographiquement sécurisés en utilisant os.urandom() (Python) ou crypto.getRandomValues() (TypeScript).
  • secure_memory_erase écrase les régions de mémoire contenant des données sensibles par des zéros, empêchant les données de rester en mémoire après utilisation.
  • anti_timing_compare compare deux séquences d'octets en temps constant, en itérant sur tous les octets quel que soit l'endroit où se produit la première différence, empêchant ainsi les attaques de timing.

5. Module Web

Le module Web est le plus complet en termes de détection d'attaques, avec 30 fonctions en Python et 35 en TypeScript. Il couvre toutes les catégories de vulnérabilités Web répertoriées dans le Top 10 OWASP et au-delà.

5.1. Scripts intersites (XSS)

  • detect_xss analyse les entrées pour les modèles XSS, notamment : les balises <script>, les gestionnaires d'événements (onload, onclick, onerror), javascript : URI, DOM XSS (innerHTML, document.write) et XSS via SVG/MathML. La fonction prend un ensemble de modèles d'expressions régulières et calcule un score de confiance basé sur le nombre de modèles correspondants. severity_threshold vous permet d'ajuster la sensibilité de détection.
  • sanitize_html supprime les balises et attributs non autorisés du HTML, en utilisant une liste autorisée de balises sûres (<p>, <br>, <strong>, <em>, etc.) et d'attributs sûrs (href, src, alt, title, etc.). Les balises non autorisées sont complètement supprimées et les attributs dangereux comme « on* » sont filtrés.
  • sanitize_svg assainit SVG en supprimant les éléments dangereux tels que <script>, <foreignObject>, <animate> et les attributs d'événement.
  • sanitize_markdown assainit le markdown en supprimant le code HTML dangereux intégré tout en préservant le formatage natif du markdown.
  • sanitize_css supprime les propriétés CSS dangereuses comme expression(), url(javascript:), behavior et -moz-binding.
  • sanitize_js supprime les modèles JavaScript dangereux, notamment eval(), Function(), setTimeout/setInterval avec chaîne, document.write, document.cookie, les manipulations DOM non sécurisées et les méthodes d'exécution de code.

5.2. Injection SQL et NoSQL

  • detect_sqli détecte les modèles d'injection SQL, notamment : les requêtes basées sur UNION (UNION SELECT), aveugles (AND 1=1, OR '1'='1'), basées sur le temps (SLEEP(), WAITFOR DELAY), basées sur les erreurs et empilées. La fonction détecte également les techniques d'évasion telles que le codage hexadécimal, les commentaires (--, /* */) et la concaténation de chaînes.
  • detect_nósqli détecte l'injection dans les bases de données NoSQL (principalement MongoDB) identifiant les opérateurs dangereux en entrée : $gt, $gte, $lt, $lte, $ne, $in, $nin, $regex, $where, $exists.

5.3. Falsification de requêtes côté serveur (SSRF)

  • detect_ssrf vérifie les URL par rapport à une liste de domaines autorisés et d'adresses IP bloquées. La fonction détecte les techniques de contournement SSRF, notamment : les redirections vers l'hôte local, l'utilisation de la rereliure DNS, les URL avec encodage (%00, %0d%0a) et l'accès aux points de terminaison des métadonnées du cloud (169.254.169.254, metadata.google.internal).

5.4. Exécution de code à distance (RCE) et injection de commandes

  • detect_rce identifie les modèles d'exécution de code à distance, y compris les appels à eval(), exec(), system(), passthru(), popen(), les backticks et les opérateurs de canal.
  • detect_command_injection détecte l'injection de commandes du système d'exploitation à l'aide des opérateurs shell : ;, |, ||, &&, backticks, $() et redirections (>, >>).

5.5. Inclusion de fichiers et parcours de chemin

  • detect_lfi détecte l'inclusion de fichiers locaux en identifiant les séquences de parcours de chemin (../, ..\), de parcours codé (%2e%2e%2f) et les protocoles dangereux (php://filter, php://input, data://, expect://).
  • detect_rfi détecte l'inclusion de fichiers distants lorsque des URL externes sont transmises en tant que paramètres include/require.
  • detect_path_traversal vérifie si un chemin se résout dans un base_path autorisé, détectant le parcours absolu et relatif.

5.6. Injection de modèle

  • detect_template_injection détecte l'injection de modèle côté serveur (SSTI) pour Jinja2 ({{ 7*7 }}, {% for %}), EJS (<%= %>), guidon ({{#each}}), Pug, Twig, Moustache et un mode générique qui détecte la syntaxe de modèle commune.

5.7. Désérialisation etRedirection ouverte

  • detect_deserialization_attack identifie la désérialisation non sécurisée en vérifiant les classes autorisées et les modèles de gadgets connus (sérialisation Java, pickle Python, désérialisation PHP, désérialisation YAML).
  • detect_open_redirect vérifie si une URL de redirection pointe vers un hôte sur la liste blanche, empêchant ainsi les redirections vers des domaines malveillants.

5.8. Protection CSRF, CORS et CSP

  • csrf_protect et validate_csrf vérifient les jetons CSRF des demandes par rapport aux jetons de session en utilisant une comparaison sécurisée.
  • validate_cors valide les requêtes CORS en vérifiant l'origine, les méthodes et les en-têtes par rapport aux listes autorisées.
  • generate_csp génère les en-têtes Content-Security-Policy à partir de la configuration des directives (script-src, style-src, img-src, connect-src, frame-ancestors, etc.).
  • validate_csp valide un en-tête CSP existant par rapport à une politique de sécurité définie.
  • secure_headers génère un ensemble complet d'en-têtes de sécurité : Strict-Transport-Security, X-Frame-Options, X-Content-Type-Options, X-XSS-Protection, Referrer-Policy, Permissions-Policy et Content-Security-Policy.

5.9. Cookies sécurisés et détournement de clics

  • secure_cookie génère des en-têtes Set-Cookie avec les indicateurs Secure, HttpOnly, SameSite (Strict ou Lax), la portée du domaine, le chemin et l'âge maximum.
  • detect_clickjacking vérifie la présence des en-têtes X-Frame-Options et des ancêtres de trame CSP pour détecter la vulnérabilité de détournement de clic.
  • validate_origin et validate_referer valident les en-têtes Origin et Referer par rapport aux domaines attendus.

5.10. Webhooks

  • webhook_signature génère des signatures HMAC pour les charges utiles du webhook, y compris un horodatage pour la prévention des réexécutions.
  • webhook_replay_protection vérifie la signature et l'horodatage du webhook, rejetant les demandes en dehors de la fenêtre horaire configurée.

6. Module API

Le module API protège les points de terminaison de l'API contre un large éventail d'attaques et d'abus.

6.1. Validation et désinfection des entrées

  • validate_json_schema valide les données par rapport aux définitions de schéma JSON avec un mode strict facultatif qui rejette les champs supplémentaires non définis dans le schéma.
  • validate_input valide l'entrée API par rapport aux règles de type (chaîne, nombre, booléen, tableau, objet), taille minimale/maximale, modèle d'expression régulière, énumération des valeurs autorisées et profondeur d'imbrication maximale (par défaut : 5 niveaux).
  • sanitize_json nettoie les données JSON en supprimant les types non autorisés et en tronquant les chaînes qui dépassent la longueur maximale configurée (par défaut : 10 000 caractères).

6.2. Limitation du débit

  • api_rate_limit implémente une limitation de débit à l'aide d'un algorithme de fenêtre glissante, en conservant un enregistrement des horodatages des requêtes par client et point de terminaison. Lorsque le nombre de requêtes dans la fenêtre dépasse la limite, la requête est rejetée.
  • adaptive_rate_limit ajuste dynamiquement les limites de débit en fonction du comportement du client. Les clients ayant un dossier vierge reçoivent des limites plus généreuses, tandis que les clients présentant des modèles suspects reçoivent des limites plus restrictives.

6.3. Détection des abus d'API

  • detect_api_abuse analyse les modèles de requête pour détecter : le scraping (requêtes séquentielles vers de nombreuses ressources), l'énumération (tentatives d'identification séquentielles), le fuzzing (requêtes avec différentes charges utiles mal formées) et l'automatisation malveillante (haute fréquence avec des modèles réguliers).
  • detect_shadow_api identifie les points de terminaison non documentés qui reçoivent du trafic en comparant les points de terminaison consultés à la liste des API documentées.

6.4. Autorisation au niveau de l'objet brisé (BOLA/IDOR)

  • detect_bola vérifie si l'utilisateur est autorisé à accéder à la ressource demandée, en comparant le resource_id avec le ownership_map qui mappe les ressources à leurs propriétaires. Si l'utilisateur n'est pas le propriétaire et ne dispose pas d'autorisations déléguées, la fonction renvoie vrai.

6.5. Authentification rompue et attribution de masse

  • detect_broken_auth vérifie la présence et la validité du jeton d'authentification, les portées requises par le point de terminaison et la correspondance entre le jeton et l'utilisateur demandé.
  • detect_mass_assignment vérifie si l'entrée API contient des champs qui ne sont pas dans le modèle (model_fields) ou qui sont dans la liste des champs en lecture seule (readonly_fields), empêchant les attaquants de modifier les champs protégés tels que is_admin, role ou balance.

6.6. Sécurité GraphQL

  • graphql_degree_limit analyse la profondeur des requêtes GraphQL, rejetant les requêtes qui dépassent la limite configurée (par défaut : 10 niveaux). Cela empêche les attaques quides problèmes récursifs pouvant entraîner un déni de service.
  • graphql_cost_analysis calcule le coût de calcul d'une requête GraphQL en fonction de la complexité de chaque champ (configurable via complexity_map) et du niveau d'imbrication. Les requêtes dont le coût est supérieur à la limite (par défaut : 1 000) sont rejetées.
  • graphql_abuse_detection analyse plusieurs requêtes dans une fenêtre temporelle pour détecter les inondations de requêtes, les abus d'introspection (requêtes qui exploitent le schéma pour mapper l'API) et les modèles d'abus répétitifs.

6.7. Sécurité gRPC et WebSocket

  • grpc_security_validation valide la sécurité des requêtes gRPC en vérifiant les métadonnées, les en-têtes obligatoires et les informations TLS (suite de chiffrement, protocole, certificat homologue).
  • secure_websocket configure les connexions WebSocket sécurisées avec validation d'origine et sous-protocoles autorisés.
  • websocket_origin_validation et websocket_flood_protection protègent contre les connexions WebSocket malveillantes et l'inondation de connexions.

6.8. Gestion des clés API

  • api_key_rotation génère de nouvelles clés API avec un hachage sécurisé (SHA3-256), un préfixe identifiable et une date d'expiration configurable.
  • api_key_validation valide les clés API par rapport à un registre de clés connues, en vérifiant les portées, l'expiration et les limites de débit individuelles.

7. Module d'intelligence artificielle (IA)

Le module AI est l'un des plus innovants de MSF, offrant une protection complète pour les applications qui utilisent des modèles de langage étendus (LLM).

7.1. Protection contre les injections rapides et les jailbreaks

  • detect_prompt_injection analyse les invites pour les modèles d'injection tels que "ignorer les instructions précédentes", "oublier toutes les règles", "système :", "vous êtes maintenant", "ignorer toutes les instructions précédentes", "ignorer les instructions système", "contourner la sécurité", "agir comme si vous l'étiez", "faire comme si vous l'étiez", "à partir de maintenant vous l'êtes", "mode développeur :" et les modèles de balisage qui tentent de simuler les instructions système. La fonction utilise plus de 20 modèles d'expressions régulières et calcule un score de confiance basé sur le nombre de correspondances et la longueur de l'invite.
  • detect_jailbreak détecte les tentatives de jailbreak visant spécifiquement à contourner les restrictions de sécurité LLM, notamment : mode DAN, "faire n'importe quoi maintenant", "désactiver la sécurité", "mode sans restriction", "sans aucune restriction", "ignorer vos directives de sécurité", "vous n'êtes pas obligé de suivre vos règles", "jeu de rôle sans restriction", "scénario hypothétique où vous pouvez", "dans cet univers alternatif" et "à des fins éducatives uniquement" les modèles utilisés pour justifier le contournement.

7.2. Protection des données sensibles

  • detect_sensitive_leak analyse le texte à la recherche de données sensibles, notamment : SSN/CPF, numéros de carte de crédit (avec validation de la somme de contrôle Luhn), e-mails, numéros de téléphone, clés API (normes AWS, GCP, GitHub, Stripe), mots de passe, jetons JWT, clés privées (en-têtes PEM) et adresses de portefeuille de crypto-monnaie.
  • detect_prompt_leak détecte les tentatives d'extraction de l'invite système LLM en comparant le contenu de l'invite utilisateur avec l'invite système en utilisant la similarité du texte. Si l'utilisateur tente de reproduire ou de déduire des parties de l'invite système, la fonction le signale.
  • detect_data_exfiltration analyse la sortie LLM pour détecter les données sensibles qui pourraient avoir été incluses par inadvertance dans la réponse.

7.3. Désinfection

  • sanitize_prompt supprime les modèles bloqués de l'invite utilisateur et applique la limite de longueur.
  • sanitize_llm_output supprime les scripts, les gestionnaires d'événements et les données sensibles de la sortie LLM, en appliquant une troncature si nécessaire.
  • ai_memory_sanitizer nettoie les entrées de mémoire de l'IA en fonction de la politique de rétention, en supprimant les données sensibles et les entrées expirées.

7.4. Détection des abus de modèles et d'agents

  • detect_model_abuse analyse les modèles de requêtes pour détecter les abus de modèle : répétition excessive (même invite envoyée plusieurs fois), taux de requêtes élevé (supérieur à 30/minute) et complexité anormale (requêtes très profondes ou longues). Le score d'abus est calculé comme une combinaison pondérée de correspondance de modèles, de répétition, de taux et de complexité.
  • detect_agent_abuse surveille le comportement des agents IA en vérifiant si les actions effectuées sont conformes aux politiques définies (actions autorisées, limites d'appels, restrictions d'accès).

7.5. Pare-feu et moteur de politiques LLM

  • llm_firewall évalue les entrées par rapport à un ensemble de règles de pare-feu LLM avec des actions configurables (bloquer, avertir, journaliser). Chaque règle spécifie un modèle, une condition et une action.
  • ai_policy_engine évalueà la fois l'invite et la sortie du LLM correspondent à un ensemble de politiques de sécurité, notamment : l'interdiction de générer du code malveillant, l'interdiction de révéler des informations personnelles, l'exigence de sources pour les allégations factuelles et les restrictions spécifiques au domaine.

7.6. RAG et hallucinations

  • rag_source_validation valide la crédibilité des sources utilisées dans les systèmes RAG (Retrieval-Augmented Generation), en vérifiant si les domaines sources figurent sur la liste de confiance et en appliquant des règles de validation telles que la vérification de la date, de l'auteur et de la réputation.
  • hallucination_risk évalue le risque d'hallucination dans les résultats du LLM en analysant : de faibles scores de confiance, des déclarations non vérifiées, des incohérences factuelles et des modèles de langage indiquant une incertitude.

7.7. Garde-corps et validation des appels d'outils

  • ai_output_guard applique des garde-fous et des règles de rédaction à la sortie LLM, supprimant le contenu interdit et supprimant les données sensibles.
  • tool_call_validation valide les appels d'outils (appels de fonctions) en vérifiant si l'outil est sur la liste autorisée et si les arguments correspondent au schéma attendu.
  • multi_agent_isolation valide les politiques d'isolation et de communication entre plusieurs agents IA, empêchant un agent d'en compromettre un autre.

7.8. Surveillance

  • ai_token_monitor surveille l'utilisation des jetons LLM par rapport aux limites définies (par requête, par minute, par jour, par coût), générant des alertes lorsque les limites sont approchées ou dépassées.
  • ai_behavior_monitor surveille le comportement de l'IA pour détecter les écarts par rapport à la ligne de base établie, détectant les changements dans les modèles de réponse, l'augmentation des erreurs ou les comportements inattendus.

8. Module réseau

Le module réseau permet une détection des menaces au niveau du réseau, couvrant tout, de l'analyse des ports à la communication de commande et de contrôle.

8.1. Détection de numérisation

  • detect_port_scan analyse les connexions à partir d'une IP source pour détecter les analyses de ports. La fonction compte les ports uniques consultés, calcule le taux de connexion (connexions par seconde) et analyse les modèles d'indicateurs TCP (inondation SYN, modèles SYN-RST). Les types d'analyse détectés incluent : l'analyse SYN, l'analyse FIN, l'analyse XMAS, l'analyse NULL et l'analyse UDP. Le seuil configurable permet d'ajuster la sensibilité (par défaut : 20 ports simples en 60 secondes).
  • detect_dns_tunneling analyse les requêtes DNS pour détecter le tunneling, calcule l'entropie de Shannon des sous-domaines (les données codées dans les requêtes DNS ont une entropie élevée), mesure la taille moyenne des sous-domaines et compte la fréquence des requêtes pour un domaine spécifique.

8.2. Détection des anomalies de trafic

  • detect_traffic_anomaly compare les métriques de trafic actuelles (octets par seconde, paquets par seconde, connexions par seconde, distribution de protocole) à une référence historique en utilisant un z-score statique. Les écarts supérieurs au seuil (par défaut : 2,0 écarts types) sont signalés comme anomalies.
  • detect_ddos détecte les attaques par déni de service distribué en analysant les pics en octets/paquets par seconde par rapport à la ligne de base, avec un seuil et une fenêtre de temps configurables.

8.3. Détection de proxy, VPN et Tor

  • detect_proxy vérifie les en-têtes HTTP indiquant le proxy (X-Forwarded-For, Via, X-Real-IP, Forwarded) et analyse les modèles de comportement des connexions proxy.
  • detect_vpn vérifie l'adresse IP source par rapport à une base de données d'adresses IP de fournisseurs VPN connues.
  • detect_tor vérifie si l'adresse IP appartient au réseau Tor en la comparant aux listes de nœuds et aux nœuds de sortie du réseau Tor.

8.4. Validation IP et domaine

  • validate_ip valide les adresses IPv4 par rapport aux plages et blocs autorisés en utilisant la correspondance CIDR. Prend en charge la notation CIDR (par exemple « 192.168.1.0/24 ») et les plages individuelles.
  • validate_domain valide les domaines en vérifiant le TLD par rapport à une liste autorisée (par exemple simplement .com, .org, .br) et le domaine complet par rapport à une liste bloquée.

8.5. Détection d'usurpation d'identité et empoisonnement ARP

  • detect_spoofing analyse les données des paquets par rapport aux sources attendues et à la topologie du réseau pour détecter l'usurpation d'adresse IP, vérifiant si l'adresse IP source est cohérente avec la route attendue.
  • detect_arp_poisoning compare la table ARP actuelle aux mappages IP-MAC attendus, détectant lorsqu'une adresse MAC répond à plusieurs IP ou lorsqu'un mappage change de manière inattendue.

8.6. Empreinte digitale TLS

  • tls_fingerprint génère une empreinte digitale TLS à partir de la poignée de main (suites de chiffrement, extensions, courbes elliptiques, formats de points) et la compare avecà une base de données d'empreintes digitales connues pour identifier le client.
  • ja3_fingerprint génère un hachage JA3 spécifique à TLS ClientHello, qui est une norme industrielle pour identifier les clients TLS en fonction des paramètres de négociation.

8.7. Balisage et détection C2

  • beaconing_detection détecte le comportement de balisage (communication périodique avec commande et contrôle) en analysant la régularité des intervalles entre les connexions. Les connexions avec des intervalles très réguliers (faible gigue) et une corrélation d'intervalle élevée sont révélatrices d'un balisage.
  • command_and_control_detection analyse les modèles de trafic par rapport aux indicateurs connus de C2 : communication avec les domaines DGA (Domain Generation Algorithm), trafic sur les ports non standard, modèles de balisage et utilisation de protocoles de tunneling (DNS, ICMP, HTTP).

8.8. Analyse des mouvements latéraux et des réseaux

  • lateral_movement_detection détecte les mouvements latéraux en analysant les modèles d'accès entre les hôtes du réseau : accès aux hôtes auxquels l'utilisateur n'a pas normalement accès, utilisation de protocoles d'administration à distance (RDP, SSH, WMI) pour les hôtes inhabituels et propagation des accès dans un modèle graphique.
  • network_entropy_analysis analyse l'entropie des paquets réseau pour détecter le trafic crypté ou brouillé (une entropie élevée indique des données aléatoires ou cryptées).
  • traffic_behavior_analysis analyse le comportement du trafic par rapport aux lignes de base établies dans une fenêtre temporelle, détectant les changements dans le modèle de communication.
  • protocol_anomaly_detection détecte les anomalies dans les protocoles en comparant les données du protocole aux spécifications attendues (champs obligatoires, valeurs valides, séquence de messages).

9. Module Cloud

Le module cloud protège les infrastructures cloud sur AWS, GCP et Azure, couvrant les conteneurs, Kubernetes, le stockage, l'IAM, l'IaC et la chaîne d'approvisionnement.

9.1. Sécurité des conteneurs

  • validate_dockerfile valide les Dockerfiles par rapport aux meilleures pratiques de sécurité : n'utilisez pas la balise latest, ne les exécutez pas en tant que root, incluez HEALTHCHECK, n'incluez pas de secrets codés en dur, utilisez des images de base minimales (alpine, distroless) et n'exposez pas de ports inutiles.
  • detect_container_escape détecte les vecteurs d'échappement potentiels des conteneurs en vérifiant : le mode privilégié, les capacités dangereuses (SYS_ADMIN, SYS_PTRACE, NET_ADMIN), le montage sensible de hostPath (/, /etc, /proc, /sys), le manque de profils seccomp/AppArmor et le partage d'espace de noms d'hôte.
  • runtime_container_protection analyse les événements du conteneur au moment de l'exécution par rapport aux règles de menace et exécute des actions automatiques (bloquer, alerter, isoler, mettre fin, journaliser).
  • container_image_scan analyse les couches d'images du conteneur à la recherche de vulnérabilités connues (CVE) et vérifie les signatures d'image (Cosign, Notary).

9.2. Sécurité Kubernetes

  • validate_k8s_rbac valide les configurations Kubernetes RBAC par rapport aux principes du moindre privilège : détection des ClusterRoles avec un caractère générique (*), des ServiceAccounts avec des autorisations excessives, des liaisons qui accordent l'accès aux secrets et des rôles qui autorisent l'exécution dans les pods.
  • validate_kubernetes_manifest valide les manifestes Kubernetes par rapport aux politiques de sécurité des pods et aux politiques réseau : détecte les pods exécutés en tant que root, sans limites de ressources, avec hostNetwork/hostPID/hostIPC, sans readOnlyRootFilesystem et sans securityContext.
  • runtime_k8s_anomaly détecte un comportement anormal dans les événements d'exécution de Kubernetes : création de pods dans des espaces de noms inhabituels, modifications de RBAC, accès à des secrets non standard et communication entre pods qui normalement ne communiquent pas.

9.3. Stockage et IAM

  • detect_public_bucket détecte les buckets de stockage cloud accessibles au public en vérifiant : les politiques du bucket avec Primary : "*", les ACL publiques, le blocage de l'accès public désactivé et les configurations de sites Web qui exposent le bucket.
  • validate_s3_permissions valide les autorisations du compartiment S3 par rapport aux exigences de sécurité : en vérifiant qu'il n'y a pas d'autorisations d'écriture publiques, que le cryptage est activé, que la gestion des versions est active et que la journalisation est configurée.
  • validate_iam_policy valide les politiques IAM par rapport aux listes d'actions autorisées et refusées, en détectant les autorisations excessives : actions avec caractère générique (s3:*, *), accès aux ressources de tous les services et absence de conditions de restriction.

9.4. L'infrastructure en tant que code

  • validate_terraform valide les plans Terraform par rapport aux politiques de sécurité : détecte les ressources avec le cryptage désactivé, les groupes de sécurité avec des règles d'entrée ouvertes (0.0.0.0/0), les compartiments publics, les bases de données non sauvegardées et les ressources sans balises d'identification.
  • detect_cloud_misconfig détecte les erreurs de configuration de l'infrastructure cloud en comparant la configuration actuelle à une référence de sécurité par fournisseur (AWS, GCP, Azure).

9.5. Secrets et chaîne d'approvisionnement

  • validate_secrets_manager valide la configuration du gestionnaire de secrets : rotation automatique activée, chiffrement au repos avec KMS, politiques d'accès restrictives et journalisation des accès activée.
  • supply_chain_validation valide les dépendances logicielles par rapport à des sources fiables et des bases de données de vulnérabilités, en détectant les packages provenant de sources non vérifiées, les versions avec des CVE connus et les dépendances avec des licences restrictives.
  • sbom_generator génère une nomenclature logicielle aux formats SPDX ou CycloneDX, répertoriant tous les composants avec leur nom, leur version, leur type, leurs licences et leur hachage.
  • dependency_audit audite les dépendances par rapport à la base de données de vulnérabilités avec un filtre de gravité.
  • detect_typósquatting détecte les attaques de typósquatting en comparant les noms de packages avec des packages connus en utilisant la similarité de chaînes (Levenshtein, char swap, césure).

9.6. Score et identité

  • cloud_security_score calcule un score global de sécurité du cloud basé sur des références CIS et des pondérations configurables par catégorie (IAM, stockage, réseau, journalisation, chiffrement).
  • workload_identity_validation valide la configuration de Workload Identity (IRSA sur AWS, Workload Identity sur GKE, Managed Identity sur Azure).
  • confidential_computing_validation valide l'attestation informatique confidentielle pour les TEE (Intel SGX/TDX, AMD SEV-SNP, AWS Nitro Enclaves, Azure CVM).

10. Module de surveillance

Le module de surveillance offre des capacités avancées de détection, de corrélation et de réponse aux incidents.

10.1. Journalisation inviolable

  • secure_log crée des entrées de journal sécurisées avec intégrité cryptographique à l'aide d'une chaîne de hachage : chaque entrée inclut le hachage de l'entrée précédente, rendant impossible la modification des entrées passées sans invalider la chaîne entière.
  • tamperproof_logs vérifie l'intégrité d'une chaîne de journaux en validant que chaque hachage pointe correctement vers l'entrée précédente.

10.2. Notation statistique

  • anomaly_score calcule un score d'anomalie à l'aide du z-score statistique : pour chaque métrique, calcule le nombre d'écarts types entre la valeur actuelle et la moyenne historique. Les scores individuels sont combinés avec des poids configurables pour produire un score composite.
  • threat_score calcule un score de menace composé d'événements de sécurité et de renseignement sur les menaces, pondérés en fonction de la gravité, de la criticité de la cible et de la confiance dans la source de renseignement.
  • risk_score calcule un score de risque pour un utilisateur spécifique en fonction des événements récents, du contexte actuel et de l'historique (moyenne du risque précédent, nombre d'incidents, jours depuis le dernier incident).

10.3. Corrélation et alertes

  • correlate_events corrèle les événements de sécurité dans une fenêtre temporelle à l'aide de règles de corrélation définies par l'utilisateur. Par exemple : "s'il y a 3 événements de connexion ayant échoué à partir de la même adresse IP suivis d'un événement de réussite, corrélez-les comme force brute possible".
  • realtime_alert évalue les événements par rapport aux règles d'alerte et génère des alertes en temps réel avec des notifications configurables (e-mail, Slack, PagerDuty, webhook).
  • adaptive_alerting implémente des alertes adaptatives avec prévention de la fatigue des alertes : si le nombre d'alertes par heure dépasse une ligne de base, le système regroupe les alertes similaires et réduit la fréquence de notification.

10.4. Analyse des attaques

  • attack_path_analysis analyse les chemins d'attaque potentiels à travers le réseau en fonction des événements de sécurité et de la topologie du réseau, identifiant les séquences d'actions qu'un attaquant pourrait utiliser pour atteindre une cible critique.
  • threat_graph crée un graphique de connaissances sur les menaces à partir d'événements, d'entités (utilisateurs, hôtes, applications) et de relations (accédées, compromises, avec lesquelles elles ont communiqué).
  • attack_chain_mapping mappe les événements de sécurité au framework MITRE ATT&CK (techniques et tactiques) et à la Cyber ​​​​Kill Chain (reconnaissance, militarisation, livraison, exploitation, installation, C2, actions sur objectifs).

10.5. Analyse comportementale et UEBA

  • behavioral_analysis analyse le comportement des utilisateurs par rapport à des références établies : heures de connexion typiques, emplacements communs, volume d'événements par heure et types d'actions typiques.
  • ueba_analysis effectueAnalyse du comportement des utilisateurs et des entités comparant le comportement des utilisateurs à celui du groupe de pairs (groupe d'utilisateurs ayant un profil similaire), détectant les écarts statistiques.
  • detect_account_takeover détecte les tentatives de piratage de compte en fonction d'indicateurs comportementaux : connexion d'appareil inconnue, emplacement inhabituel, heure atypique, changement de mot de passe suivi d'un transfert de données et accès à des ressources non standard.

10.6. Réponse autonome et criminalistique

  • autonomous_response effectue une réponse autonome aux incidents en fonction de la gravité de la menace et des règles de réponse : bloquer l'adresse IP, désactiver le compte, isoler l'hôte, révoquer les jetons et transmettre à l'équipe de sécurité.
  • forensic_snapshot crée un instantané médico-légal de l'état du système avec une chaîne de conservation des preuves, y compris un hachage cryptographique de tous les artefacts collectés.
  • incident_timeline crée une chronologie chronologique des incidents à partir des événements de sécurité, classés par horodatage et regroupés par phase d'attaque.
  • autonomous_triage effectue un tri autonome des alertes à l'aide de règles de tri et de données d'enrichissement (informations sur les menaces, contexte utilisateur, historique des faux positifs).

11. Module de défense active (défensif)

Le module défensif implémente des mécanismes de défense actifs qui protègent le framework et l'exécution de l'application lui-même.

11.1. Anti-débogage et anti-falsification

  • runtime_self_protection active des mécanismes d'autoprotection au moment de l'exécution : contrôles d'intégrité périodiques, détection de débogage et surveillance continue de l'état du processus.
  • anti_debugging_detection détecte les tentatives de débogage actives en vérifiant : l'état de ptrace (si le processus est tracé), les signaux du débogueur dans l'environnement (variables d'environnement, fichiers de débogage) et les anomalies d'exécution (les pauses inattendues indiquent des points d'arrêt).
  • anti_tampering vérifie l'intégrité binaire en comparant les hachages cryptographiques (SHA-256, SHA3-256) aux valeurs attendues. Si le hachage a changé, le binaire a été modifié.
  • memory_integrity_check vérifie l'intégrité des régions de mémoire en comparant l'état actuel à l'état attendu et en vérifiant les signatures des régions critiques.
  • process_integrity_check vérifie l'intégrité du processus, notamment : les modules chargés (détectant les DLL non autorisées), le pays de la chaîne de processus (détectant si le processus a été démarré par un parent inattendu) et les autorisations de processus.

11.2. Validation binaire et de démarrage

  • code_signing_validation valide le certificat de signature de code d'un binaire par rapport à un magasin de certificats de confiance et vérifie que le certificat n'a pas été révoqué.
  • binary_integrity_validation valide l'intégrité d'un binaire par section (.text, .data, .rsrc, .reloc) en calculant les hachages individuels pour chaque section et en les comparant aux hachages attendus.
  • secure_boot_validation valide la chaîne de démarrage sécurisée en vérifiant les mesures TPM (Trusted Platform Module) et les valeurs des PCR (Platform Configuration Registers) qui enregistrent chaque étape de démarrage.
  • secure_update_validation valide les packages de mise à jour en vérifiant : la signature cryptographique du package, l'intégrité du contenu, la version (empêchant les attaques de rétrogradation) et le canal de distribution.

11.3. Techniques de détection avancées

  • anti_hook_detection détecte les hooks de fonction en mémoire en vérifiant : le hooking IAT (modification de la table d'adresses d'importation), le hooking en ligne (modification des premières instructions d'une fonction) et le hooking SSDT (modification de la table de descripteurs de service système dans le noyau).
  • anti_injection_detection détecte l'injection de code dans l'espace mémoire du processus en vérifiant : les modules chargés sans signature, les bibliothèques chargées à partir de chemins suspects et les signatures des techniques d'injection connues (creux de processus, injection de DLL, chargement de DLL réfléchissant).
  • anti_rootkit_detection détecte les indicateurs de rootkit en analysant : les appels système qui renvoient des résultats incohérents, les modules du noyau non signés et les processus cachés (processus qui apparaissent dans la liste des processus du noyau mais pas dans la liste du système d'exploitation).
  • anti_vm_detection détecte l'exécution dans un environnement virtuel en vérifiant : les informations matérielles indicatives de la VM (fabricant du BIOS, modèle de processeur, adresse MAC), les contrôles de synchronisation (instructions qui s'exécutent plus lentement dans les VM) et les artefacts de la VM (fichiers, services, pilotes spécifiques à VMware, VirtualBox, Hyper-V).
  • anti_emulation_detectiondétecte les environnements d'émulation en vérifiant : la disponibilité des API que les émulateurs n'implémentent souvent pas, le timing des opérations (les émulateurs sont plus lents) et les vérifications de l'environnement (nombre de processus, espace disque, mémoire RAM).

11.4. Cible mobile et auto-guérison

  • moving_target_runtime implémente la défense des cibles mobiles en faisant pivoter les points de terminaison du service, en randomisant la disposition de la mémoire et en faisant varier les temps de réponse pour rendre l'exploitation des vulnérabilités plus difficile.
  • dynamic_attack_surface ajuste dynamiquement la surface d'attaque en fonction du niveau de menace : à bas niveau, tous les points de terminaison sont disponibles ; au niveau moyen, les points finaux non essentiels sont désactivés ; à un niveau élevé, seuls les points finaux critiques restent actifs.
  • runtime_policy_engine évalue et applique les politiques de sécurité au moment de l'exécution avec un mode d'application configurable (audit, avertir, appliquer).
  • self_healing_security détecte et récupère automatiquement les incidents de sécurité : si un service est compromis, le système peut redémarrer le service, restaurer la configuration d'origine et avertir le personnel.
  • adaptive_threat_response effectue une réponse adaptative aux menaces en fonction des caractéristiques des menaces et des playbooks de réponse prédéfinis.
  • autonomous_containment contient des menaces actives de manière autonome utilisant des règles de confinement et une topologie de réseau : isolez les hôtes compromis, bloquez la communication C2 et segmentez le réseau pour limiter la propagation.

12. Module pot de miel

Le module honeypot met en œuvre des techniques de tromperie pour attirer, détecter et analyser les attaquants.

12.1. Faux services

  • fake_admin_panel déploie un faux panneau d'administration réaliste avec des itinéraires de connexion, un tableau de bord, une gestion des utilisateurs et des paramètres système. Toutes les interactions sont enregistrées pour analyse.
  • fake_database crée une fausse base de données avec un schéma réaliste (utilisateur, commande, tables de paiement) et des exemples d'enregistrements qui semblent légitimes mais sont complètement fictifs.
  • fake_api déploie une fausse API REST avec des points de terminaison réalistes (/api/users, /api/orders, /api/payments) qui renvoient des charges utiles convaincantes mais fictives.
  • fake_filesystem crée un faux système de fichiers avec une structure de répertoires plausible (/etc, /var/log, /home/user, /opt/app) et des fichiers avec un contenu réaliste.
  • fake_ssh_service déploie un faux service SSH qui accepte les connexions, affiche une bannière réaliste et enregistre toutes les tentatives d'authentification et les commandes exécutées.
  • fake_rdp_service déploie un faux service RDP pour détecter et suivre les attaques de postes de travail distants.
  • fake_kubernetes_cluster déploie une fausse API de cluster Kubernetes pour attirer les attaquants axés sur les conteneurs en répondant aux requêtes de pods, de services, de déploiements et de secrets.
  • fake_s3_bucket crée un faux compartiment S3 avec des objets réalistes (documents, configurations, sauvegardes) et des politiques d'accès qui semblent légitimes.
  • fake_login_page déploie une page de connexion convaincante avec une marque personnalisable pour capturer les tentatives de soumission d'informations d'identification.
  • fake_debug_panel déploie un faux panneau de débogage/développement qui semble exposer les informations internes du système (variables d'environnement, paramètres de base de données, journaux).

12.2. Honeytokens et tromperie

  • fake_secrets génère et gère de faux secrets (clés API, jetons de base de données, informations d'identification SSH) qui alertent lorsqu'ils sont utilisés en dehors des contextes autorisés.
  • honeytoken_Generation génère des jetons traçables de différents types (URL, clés API, informations d'identification, fichiers) qui déclenchent des alertes en cas d'accès.
  • honeycredential_detection vérifie les informations d'identification soumises par rapport à la base de données des honeytokens connus, détectant lorsqu'un attaquant utilise de fausses informations d'identification.
  • deceptive_routes enregistre les routes trompeuses qui ressemblent à des points de terminaison d'API légitimes mais déclenchent des alertes lors de leur accès.
  • decoy_endpoints génère une liste de points de terminaison d'API leurres qui imitent les points de terminaison de service réels.
  • deceptive_responses génère des réponses trompeuses contextuellement appropriées en fonction de la demande et du profil de l'attaquant, gardant l'attaquant engagé tout en collectant des informations.

12.3. Analyse et adaptation

  • adaptive_honeypot ajuste dynamiquement la configuration du pot de miel en fonction du trafic observé et du niveau de menace : si l'attaquant exploite les vulnérabilités du Web, le pot de miel augmente la surface des services Web ; s'il scanne les portes, il ouvre davantage de fausses portes.
  • attaquant_behavior_tracking suit et analyse les modèles de comportement des attaquants au sein de la session honeypot : commandes exécutées, fichiers consultés, informations d'identification tentées et temps passé sur chaque service.
  • adaptive_deception ajuste dynamiquement les tactiques de tromperie en fonction du profil de l'attaquant (script kiddie, attaquant automatisé, APT) et des mesures d'efficacité (combien de temps l'attaquant est resté, combien d'actions il a effectuées).
  • moving_target_defense implémente une défense de cible mobile dans le contexte de pots de miel, en faisant tourner les configurations de service (ports, bannières, réponses) pour rendre plus difficile la prise d'empreintes digitales de l'environnement.

13. Module de fichiers (Fichier)

Le module de fichiers protège contre les menaces véhiculées par les fichiers : téléchargements malveillants, documents avec macros, PDF avec JavaScript, fichiers polyglottes, bombes zip et logiciels malveillants.

13.1. Validation du téléchargement

  • secure_upload valide et traite les téléchargements de fichiers en toute sécurité sur plusieurs couches : vérifie l'extension par rapport à la liste autorisée, valide le type MIME via des octets magiques, vérifie la taille maximale et analyse le contenu à la recherche de logiciels malveillants.
  • validate_extension vérifie si l'extension du fichier est dans la liste des extensions autorisées.
  • validate_mime valide le type MIME du fichier en utilisant la détection d'octets magiques (signatures de format de fichier dans les premiers octets), empêchant l'usurpation d'extension (par exemple un fichier .jpg qui est en fait un exécutable).

13.2. Détection des menaces dans les fichiers

  • detect_polyglot_file détecte si un fichier contient plusieurs signatures de format de fichier, indiquant une attaque de fichier polyglotte (un fichier valide dans deux formats ou plus simultanément, comme un GIF qui est également du JavaScript valide).
  • detect_zip_bomb détecte les bombes zip en analysant le taux de compression et la taille non compressée déclarée. Un ratio supérieur à 100:1 ou une taille non compressée supérieure à 1 Go est signalé comme une bombe zip potentielle.
  • detect_office_macro détecte les macros VBA dans les documents Office (Word .doc/.docx, Excel .xls/.xlsx, PowerPoint .ppt/.pptx) qui peuvent exécuter du code malveillant lors de l'ouverture du document.
  • detect_pdf_javascript détecte le JavaScript intégré dans les fichiers PDF qui peut effectuer des actions malveillantes telles que le téléchargement de logiciels malveillants ou le phishing.
  • detect_executable_payload détecte les charges utiles exécutables intégrées dans des fichiers non exécutables (par exemple un PDF contenant un en-tête PE exécutable Windows).
  • detect_embedded_script détecte les scripts intégrés dans les fichiers : JavaScript dans les PDF, VBScript dans les documents Office, PowerShell dans les fichiers texte et scripts Python dans les fichiers de données.

13.3. Analyse des logiciels malveillants

  • malware_scan analyse les fichiers à la recherche de logiciels malveillants en utilisant la correspondance de signatures (comparaison avec les signatures de logiciels malveillants connues) et les règles YARA (correspondance de modèles avancée avec des conditions complexes).
  • yara_scan analyse les fichiers à l'aide des règles YARA avec prise en charge des espaces de noms pour organiser les règles par catégorie (malware, exploit, suspect, etc.).
  • heuristic_scan effectue une analyse heuristique pour détecter les comportements suspects dans les fichiers qui ne correspondent pas aux signatures connues mais présentent des caractéristiques indiquant un malware (obscurcissement, anti-débogage, compression).

13.4. Analyse avancée

  • entropy_analysis calcule l'entropie de Shannon des données du fichier bloc pour détecter le cryptage ou la compression. Les fichiers avec une entropie supérieure à 7,5 bits par octet sont considérés comme hautement aléatoires (ce qui indique un cryptage ou un compactage).
  • detect_steganography détecte la stéganographie dans les fichiers image à l'aide de plusieurs techniques : analyse LSB (Least Significant Bit), détection des données ajoutées, analyse d'entropie de bloc et analyse d'histogramme de couleur.
  • detect_obfuscation détecte le contenu obscurci dans les fichiers à l'aide de plusieurs techniques : détection de chaînes base64, codage hexadécimal, concaténation de chaînes, entropie élevée dans des sections spécifiques et modèles de flux de contrôle obscurcis.

13.5. Désinfection et quarantaine

  • sanitize_filename nettoie les noms de fichiers en supprimant les caractères dangereux (/, \, .., :, *, ?, ", <, >, |) et les séquences de parcours de chemin.
  • quarantine_file déplace les fichiers malveillants vers un répertoire de quarantaine avec suivi des métadonnées (raison de la quarantaine, horodatage, hachage du fichier, téléchargeur).
  • sandbox_execute exécute les fichiers dans un environnement sandbox pour l'analyse comportementale, la surveillance : appels système, accès réseau, modification de fichiers et création de processus enfants.
  • secure_tempfile crée des fichiers temporaires sécurisés avec des autorisations restreintes (lecture/écriture uniquement par le propriétaire) et une auto-suppression facultative à la fermeture.
  • immutable_storage_check vérifie l'intégrité des fichiers sur le stockage immuable en comparant le hachage actuel avec le hachage attendu.

14. Module Entreprise

Le module entreprise vérifie le respect des réglementations en matière de protection des données et de sécurité des informations.

14.1. Conformité réglementaire

  • lgpd_check vérifie le respect de la loi générale sur la protection des données (LGPD, loi 13 709/2018) du Brésil : consentement du titulaire, nomination du DPO (Data Officer), droits des titulaires (accès, rectification, suppression, portabilité), enregistrement des opérations de traitement, rapport d'impact sur la protection des données personnelles et notification des incidents à l'ANPD.
  • gdpr_check vérifie le respect du Règlement Général sur la Protection des Données (RGPD, Règlement UE 2016/679) : base juridique du traitement, désignation du DPO, minimisation des données, limitation de la finalité, exactitude, limitation de la conservation, intégrité et confidentialité, droit à l'oubli, portabilité des données et notification des violations dans les 72 heures.
  • hipaa_check vérifie la conformité à la loi américaine Health Insurance Portability and Accountability Act (HIPAA) : cryptage des PHI (Protected Health Information) au repos et en transit, contrôles d'accès (identification unique de l'utilisateur, accès d'urgence, déconnexion automatique), contrôles d'audit (journaux d'audit, contrôles d'intégrité) et intégrité des données PHI.
  • pci_check vérifie la conformité à la norme de sécurité des données de l'industrie des cartes de paiement (PCI-DSS) : cryptage des données des cartes en transit et au repos, segmentation du réseau (séparation de l'environnement de la carte), contrôle d'accès (besoin de savoir, identifiants uniques, MFA), surveillance du réseau et des systèmes et tests de sécurité réguliers.

14.2. Rapports et tableau de bord

  • compliance_report génère un rapport de conformité complet à partir de plusieurs résultats de contrôle, notamment : un résumé, les lacunes identifiées, les recommandations de mesures correctives, le calendrier de conformité et le score par catégorie.
  • realtime_security_dashboard génère un tableau de bord de sécurité en temps réel affichant : les mesures de sécurité (menaces détectées, blocages, faux positifs), les alertes actives, les tendances historiques et le score de risque global.

14.3. Audit et politique

  • audit_trail génère une piste d'audit immuable à partir des événements de sécurité, des actions des utilisateurs et des modifications de données, y compris : qui a fait quoi, quand, d'où et quel a été l'impact.
  • policy_as_code évalue et applique les politiques de sécurité définies sous forme de code, permettant la gestion des versions, la révision et le test automatique des politiques de sécurité.

14.4. Multi-locataires et multi-régions

  • tenant_isolation vérifie et applique l'isolation des locataires dans un environnement multi-tenant : séparation des données, isolation du réseau, contrôle d'accès entre locataires et prévention des fuites d'informations entre locataires.
  • multi_region_security évalue la posture de sécurité multirégionale et la conformité de la résidence des données : vérification que les données de régions spécifiques restent dans la région, cryptage cohérent entre les régions et conformité aux réglementations locales dans chaque région.

15. Module d'intégrations

Le module d'intégrations fournit des adaptateurs pour les frameworks et plates-formes populaires.

15.1. Cadres Web Python

  • fastapi_security_dependency crée une dépendance de sécurité pour FastAPI avec OAuth2, validation JWT, limitation de débit et protection des entrées.
  • django_security_middleware crée un middleware de sécurité pour Django avec CSP, CSRF, en-têtes de sécurité et protection des entrées.
  • flask_security_extension crée une extension de sécurité pour Flask avec des wrappers de sécurité, une protection des demandes et une validation des entrées.
  • celery_security_monitor crée un moniteur de sécurité pour les tâches Celery avec validation des arguments, limitation du débit par tâche et journalisation d'audit.
  • sqlalchemy_query_protection applique une protection aux requêtes SQLAlchemy avec une sécurité au niveau des lignes, un filtrage des autorisations et une prévention de l'injection de requêtes.

15.2. Cadres Web TypeScript

  • expressSecurityMiddleware crée un middleware de sécurité pour Express.js avec protection des entrées, limitation de débit, CORS, CSRF et en-têtes de sécurité.
  • fastifySecurityMiddleware crée un middleware de sécurité pour Fastify avec des hooks de validation, une limitation de débit et une protection de la charge utile.
  • nestjsSecurityModule crée un module de sécurité pour NestJS avec gardes d'authentification, intercepteurs de validation et décorateurs d'autorisation.
  • nextjsSecurityHeaders configure les en-têtes de sécurité pour Next.js (CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy).

15.3. Bord et durée d'exécution

  • cloudflareEdgeProtection configure la protection périphérique sur Cloudflare avec des règles WAF, une limitation de débit, une gestion des robots et des agents de sécurité personnalisés.
  • denoSecurityPlugin crée un plugin de sécurité pour Deno avec contrôle des autorisations (lecture, écriture, net, env, run) et sandboxing.
  • bunSecurityPlugin crée un plugin de sécurité pour Bun avec optimisation de la sécurité et contrôle d'accès aux API du système.
  • browserRuntimeProtection configure la protection d'exécution du navigateur avec les restrictions CSP, iframe sandbox et API.
  • serviceWorkerSecurity configure la sécurité des Service Workers avec une portée restreinte, des autorisations limitées et une validation d'origine.
  • wasmSecurityRuntime crée un runtime de sécurité pour WebAssembly avec des limites de mémoire (initiale, maximale, partagée) et des restrictions d'appels système.

15.4. Pipeline et moteur

  • async_threat_pipeline crée un pipeline de détection des menaces asynchrone avec des processeurs configurables (validation, détection, notation, alertes) et des canaux de sortie (journal, métriques, webhook).
  • yara_realtime_engine crée un moteur d'analyse YARA en temps réel avec surveillance des fichiers (surveillance des répertoires) et correspondance continue des règles.
  • ai_threat_classifier crée un classificateur de menaces IA à l'aide d'un modèle entraîné et d'un seuil de confiance pour les décisions automatisées.
  • secure_cli_runtime crée un runtime CLI sécurisé avec nettoyage des entrées, validation des arguments et délais d'attente d'exécution.
  • python_runtime_guard crée une protection d'exécution Python avec une liste blanche d'importation (seuls les modules autorisés peuvent être importés) et un sandboxing (restrictions d'accès au système de fichiers, au réseau et au système).

16. Télémétrie et observabilité

MSF intègre l'observabilité dans toutes ses opérations, en suivant les trois piliers de l'observabilité : les journaux, les métriques et les traces.

16.1. Journaux structurés

Tous les modules utilisent la journalisation structurée au format JSON. Chaque entrée de journal comprend :

  • horodatage : date et heure ISO 8601
  • level : gravité (débogage, info, avertissement, erreur, critique)
  • module : nom du module qui a généré le log
  • traceId : ID de trace OpenTelemetry pour la corrélation
  • context : métadonnées spécifiques à l'opération (par exemple détecté, confiance, gravité, correspondances)

16.2. Métriques

Metrics Registry prend en charge trois types de métriques :

  • Compteurs : valeurs cumulées qui ne font qu'incrémenter. Exemples : jwt_validations, xss_detections, sqli_detections, port_scan_detections, ddos_detections, malware_scans.
  • Jauges : valeurs instantanées qui peuvent augmenter ou diminuer. Exemples : active_sessions, cache_hit_ratio.
  • Histogrammes : distributions de valeurs. Exemples : anomaly_scores, threat_scores, detection_latency_ms.

Chaque métrique peut inclure des étiquettes (tags) pour une dimensionnalité supplémentaire, telle que « module », « gravité », « détecté », « cloud_provider ».

16.3. Traçage distribué

Chaque rôle de sécurité crée une étendue OpenTelemetry avec :

  • Nom de l'opération (ex : msf.web.detect_xss)
  • Attributs : paramètres d'entrée, résultat, durée
  • Événements : jalons significatifs lors de l'exécution
  • Statut : ok ou erreur avec description

Les spans sont exportés vers des backends compatibles OpenTelemetry (Jaeger, Zipkin, AWS X-Ray, Google Cloud Trace, Azure Application Insights).

16.4. Bus événementiel

Event Bus permet une communication asynchrone entre les modules :

  • Publication : n'importe quel module peut publier des événements avec le type, la gravité, le message et les métadonnées.
  • Abonnement : les modules peuvent s'abonner à des types spécifiques d'événements et effectuer des actions lorsque des événements sont publiés.
  • Historique : le bus événementiel conserve un historique des N derniers événements à consulter.
  • File d'attente de lettres mortes : les événements dont le traitement échoue sont déplacés vers une file d'attente de lettres mortes pour un retraitement ultérieur.

17. Modèles de conception et principes d'ingénierie

17.1. Modèles utilisés

  • Singleton : pour les composants d'infrastructure (PolicyEngine, MetricsRegistry, EventBus, CacheManager).
  • Factory : pour créer des objets de résultat standardisés (DetectionResult, ValidationResult, ScanResult).
  • Stratégie : pour des algorithmes de détection interchangeables (différents modèles de détection pour XSS, SQLi, etc.).
  • Observateur :au bus d'événements, où les modules surveillent les événements publiés par d'autres modules.
  • Chaîne de responsabilité : pour les pipelines de validation où chaque étape peut transmettre ou rejeter l'entrée.
  • Décorateur : pour ajouter des fonctionnalités de sécurité aux fonctions existantes (logging, métriques, traçage).

17.2. Principes de sécurité

  • Défense en profondeur : plusieurs couches de protection afin que si l'une échoue, les autres continuent de fonctionner.
  • Moyen privilège : chaque fonction et module fonctionne avec les autorisations minimales nécessaires.
  • Fail Secure : en cas d'erreur interne, les fonctions renvoient des résultats qui refusent l'accès (fail fermé).
  • Comparaison sécurisée : toutes les comparaisons secrètes utilisent une comparaison à temps constant pour empêcher les attaques temporelles.
  • Désinfection des entrées : toutes les entrées sont traitées comme peu fiables et nettoyées avant d'être traitées.
  • Journalisation de sécurité : toutes les opérations de sécurité sont enregistrées à des fins d'audit et de détection d'incidents.

18. Conclusion

Le Master Security Framework représente une approche complète et unifiée de la sécurité des applications modernes. Avec plus de 350 fonctions réparties dans 28 modules, MSF couvre tout le spectre des menaces auxquelles les applications sont aujourd'hui confrontées : des attaques web traditionnelles (XSS, SQLi, SSRF) aux menaces émergentes (injection rapide dans les LLM, attaques de chaîne d'approvisionnement, fuites de conteneurs).

La double implémentation en Python et TypeScript permet aux équipes multilingues d'utiliser le même ensemble de fonctionnalités de sécurité, tandis que l'intégration avec OpenTelemetry, la journalisation structurée et le bus d'événements garantissent que toutes les opérations de sécurité sont observables et auditables.

Les modules de défense active (anti-débogage, anti-falsification, auto-réparation) et les pots de miel adaptatifs ajoutent des couches de protection proactive qui vont au-delà de la détection réactive, tandis que le module de conformité d'entreprise automatise l'analyse LGPD, GDPR, HIPAA et PCI-DSS.

Le framework est open source, extensible via Policy Engine et Event Bus et conçu pour évoluer avec le paysage des menaces. Chaque fonction est automatiquement testée (243 tests réussis), documentée avec docstrings et JSDoc, et instrumentée avec télémétrie pour les opérations de production.


Références

  • Top 10 OWASP : https://owasp.org/www-project-top-ten/
  • Cadre MITRE ATT&CK : https://attack.mitre.org/
  • Cadre de cybersécurité du NIST : https://www.nist.gov/cyberframework
  • Cryptographie post-quantique NIST : https://csrc.nist.gov/projects/post-quantum-cryptography
  • RFC 6238 - TOTP : https://datatracker.ietf.org/doc/html/rfc6238
  • RFC 7519 - JWT : https://datatracker.ietf.org/doc/html/rfc7519
  • Benchmarks CIS : https://www.cisecurity.org/cis-benchmarks
  • LGPD (Loi 13 709/2018) : https://www.planalto.gov.br/ccivil_03/_ato2015-2018/2018/lei/l13709.htm
  • RGPD (Règlement UE 2016/679) : https://eur-lex.europa.eu/eli/reg/2016/679/oj
  • HIPAA : https://www.hhs.gov/hipaa/index.html
  • PCI DSS : https://www.pcisecuritystandards.org/