
Plateforme de sécurité IA open-source offrant une défense périmétrique pour les LLM et les agents IA via l'analyse de swarm, l'application de politiques, les tests adverses et la détection de menaces en temps réel.
Sécurité périmétrique pour votre IA.
Application en temps réel, contrôle des politiques et historique d'audit complet pour chaque action de l'IA.
Site Web · Démarrage rapide · Politique · Tableau de bord · GitHub
Les agents d'IA peuvent lire vos fichiers, pousser du code, interroger des bases de données, exécuter des commandes shell et appeler des API externes. Ils le font de manière autonome, à la vitesse d'une machine.
Les contrôles de sécurité traditionnels n'ont pas été conçus pour cela.
Mastyf.ai agit comme une couche de sécurité périmétrique pour l'IA. Il intercepte chaque appel d'outil, l'évalue par rapport à vos politiques de sécurité en utilisant une analyse multi-agents en essaim, et bloque les actions malveillantes ou non autorisées avant qu'elles ne s'exécutent.
Chaque décision est appliquée, enregistrée et vérifiable.
Clonez le dépôt et exécutez le script de configuration.
Prérequis :
git clone https://github.com/mastyf-ai/mastyf.ai.git
cd mastyf.ai
chmod +x setup.sh
./setup.sh
Le script de configuration effectue automatiquement :
mastyfUne fois l'installation terminée, démarrez le proxy et le tableau de bord :
node dist/cli.js start
Ou utilisez simplement l'alias après avoir ouvert un nouveau terminal :
mastyf
Le tableau de bord sera accessible à l'adresse :
Si le tableau de bord est en cours d'exécution, vérifiez le pont HTTP :
curl -X POST http://localhost:4000/mcp -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":"1","method":"tools/list","params":{}}'
Visibilité complète sur chaque action de votre IA.
| Section | Ce que vous voyez |
|---|
N'exposez pas le port 4000 publiquement sans activer l'authentification du tableau de bord. La configuration de développement locale par défaut a
DASHBOARD_AUTH_DISABLED=true.
Chaque appel d'outil passe par trois couches avant d'atteindre votre infrastructure.
Couche 1 - Détection de motifs Analyse basée sur des expressions régulières à la recherche d'injections, de chemins dangereux, de secrets divulgués, de commandes shell et d'astuces d'encodage. S'exécute en microsecondes sans dépendances externes.
Couche 2 - Validation de schéma Rejette les charges utiles malformées, les arguments surdimensionnés et les violations du protocole JSON-RPC avant qu'elles n'atteignent l'évaluation de la politique.
Couche 3 - Examen sémantique Un LLM local optionnel (Ollama) ou un modèle cloud évalue les appels limites qui passent les vérifications de motifs. Retour aux heuristiques si aucun modèle n'est configuré.
Tout ce qui échoue est bloqué. L'outil ne s'exécute jamais. Tout est enregistré.
Vos règles se trouvent dans default-policy.yaml. Elles vous appartiennent. mastyf.ai les applique.
policy:
mode: block
default_action: pass
unicode_strict: true
rules:
- name: block-sensitive-paths
action: block
argPatterns:
- field: path
patterns: ['^/etc/', '/\.ssh', '/\.aws/credentials']
- name: rate-limit-tool-calls
action: block
maxCallsPerMinute: 120
- name: block-shell-injection
action: block
patterns: ['rm\s+-rf', 'curl\s', 'wget\s', '`[^`]+`']
Déployez en toute sécurité avec trois modes d'application :
| Mode | Comportement | Quand l'utiliser |
|---|---|---|
Des modèles pré-construits pour HIPAA, PCI-DSS, GxP et la résidence des données se trouvent dans policy-templates/.
mastyf.ai exécute deux essaims coordonnés. L'essaim CI attaque votre politique avant que le code ne soit livré. L'essaim Runtime applique et apprend de chaque appel d'outil en direct en production. Quatre boucles de rétroaction les relient, de sorte que le système devient plus difficile à contourner avec le temps.
flowchart TB
AI["🤖 Clients IA\nCursor · Claude Desktop · Cline"]
subgraph CI["🔵 Essaim CI (PR + Nuit)"]
direction LR
Scout["🔍 Agent Scout\nSAST, dépendances, analyse config"]
Corpus["📋 Agent Corpus\n228 fixtures d'évaluation"]
Evasion["⚡ Agent Évasion\n120+ sondes + génération de nouvelles"]
Parity["🔄 Agent Parité\nNode vs Python"]
ProxyA["🖥️ Agent Proxy\nTests MCP stdio en direct"]
Report["📊 Agent Rapport\nsecurity-swarm/latest.json"]
Scout --> Corpus --> Evasion --> Parity --> ProxyA --> Report
end
subgraph Runtime["🟢 Essaim Runtime (Proxy de production)"]
direction LR
BG["🛡️ BlockGuard\npolitique synchrone"]
IL["📈 InstantLearner\nstatistiques par bloc + suggestions"]
SA["🧠 SemanticAuditor\nLLM asynchrone, optionnel"]
PS["🔗 PatternSynthesizer\nsuggestions par lots"]
Cal["⚙️ Calibrateur\nétiquettes + seuils"]
BG --> IL --> PS --> Cal
BG --> SA --> PS
end
Tools["🗄️ Outils MCP\nsystème de fichiers · GitHub · bases de données · API"]
AI -->|"chaque appel d'outil"| BG
BG -->|"✅ autorisé"| Tools
Report -->|"🔁 Boucle A : contournements vers corpus"| Corpus
Cal -->|"🔁 Boucle B : blocages vers règles"| BG
Cal -->|"🔁 Boucle C : étiquettes vers LLM"| SA
Report -->|"🔁 Boucle D : métriques CI hebdomadaires"| Cal
style CI fill:#EFF6FF,stroke:#3B82F6,stroke-width:2px,color:#1E3A5F
style Runtime fill:#F0FDF4,stroke:#22C55E,stroke-width:2px,color:#14532D
style Scout fill:#DBEAFE,stroke:#3B82F6,color:#1E40AF
style Corpus fill:#DBEAFE,stroke:#3B82F6,color:#1E40AF
style Evasion fill:#DBEAFE,stroke:#3B82F6,color:#1E40AF
style Parity fill:#DBEAFE,stroke:#3B82F6,color:#1E40AF
style ProxyA fill:#DBEAFE,stroke:#3B82F6,color:#1E40AF
style Report fill:#DBEAFE,stroke:#3B82F6,color:#1E40AF
style BG fill:#BBF7D0,stroke:#16A34A,color:#14532D
style IL fill:#BBF7D0,stroke:#16A34A,color:#14532D
style SA fill:#BBF7D0,stroke:#16A34A,color:#14532D
style PS fill:#BBF7D0,stroke:#16A34A,color:#14532D
style Cal fill:#BBF7D0,stroke:#16A34A,color:#14532D
style AI fill:#FEF3C7,stroke:#F59E0B,stroke-width:2px,color:#78350F
style Tools fill:#FEF3C7,stroke:#F59E0B,stroke-width:2px,color:#78350F
Portes canoniques : 228/228 corpus, 0 contournements, 100% de parité
S'exécute sur chaque PR et chaque nuit. Six agents travaillent en séquence, chacun renforçant ce que le précédent a trouvé.
S'exécute à l'intérieur du proxy de production sur chaque appel d'outil.
Le proxy prend en charge cinq transports : stdio, HTTP, SSE, HTTP streamable et WebSocket.
Pour les déploiements d'entreprise avec Redis, Postgres et Kubernetes, voir docs/ENTERPRISE_DEPLOYMENT.md.
Le laboratoire de menaces observe le trafic en direct et utilise un LLM local pour proposer de nouveaux cas de test d'attaque lorsqu'il détecte des motifs suspects. Rien n'est appliqué automatiquement. Vous examinez et approuvez chaque suggestion dans le tableau de bord avant qu'elle ne devienne une règle.
Les découvertes approuvées sont réinjectées dans le corpus d'attaque CI pour des tests de régression continus.
ollama serve
ollama pull qwen3:8b
export OLLAMA_BASE_URL=http://127.0.0.1:11434
export MASTYF_AI_LLM_PROVIDER=ollama
export MASTYF_AI_LLM_MODEL=qwen3:8b
pnpm dashboard:proxy
Avant d'installer un serveur MCP depuis npm, vérifiez son score de confiance sur https://www.mastyf.ai/certified. Les scores couvrent l'exposition aux CVE, le risque de typosquattage, les signaux du mainteneur et les schémas d'attaque connus. Gratuit, sans compte requis.
| Menace | À quoi cela ressemble |
|---|
| Injection d'invite | Instructions malveillantes intégrées dans les arguments d'outil pour détourner le comportement de l'agent |
| Traversée de chemin | Tentatives d'accès à /etc/passwd, .ssh/id_rsa, .aws/credentials |
| Exfiltration de secrets | Fuite de clés API et de jetons via des arguments d'outil |
| Injection shell | Shells inversés, rm -rf, commandes PowerShell encodées |
| Exfiltration de données | Vidages SQL en masse, git push, aws s3 cp, transferts de fichiers non autorisés |
| SSRF | Appels vers des terminaux de métadonnées, localhost et plages IP privées |
| Contournement par encodage | Blobs Base64 et homoglyphes Unicode utilisés pour contourner la détection de motifs |
| Abus de coût | Boucles d'agents incontrôlées épuisant les budgets de jetons |
| Attaques de type "rug-pull" | Définitions d'outils qui changent silencieusement en cours de session |
| Protection | Taux de blocage, principales règles déclenchées, flux de menaces en direct |
| Activité | Chaque appel d'outil avec arguments complets, statut autorisé ou bloqué, horodatage |
| Politique | Éditeur de règles en direct avec rechargement à chaud à partir de YAML |
| Laboratoire de menaces | Tests d'attaque suggérés par l'IA, examinés et approuvés avant toute application |
| Coût | Utilisation des jetons et estimation des coûts détaillés par appel d'outil |
audit| Tout enregistrer, ne rien bloquer |
| Première semaine, comprendre ce que fait votre IA |
warn | Enregistrer et signaler, toujours transmettre | Phase de réglage avant l'application |
block | Arrête les violations avant exécution | Production |
| Agent | Ce qu'il fait |
|---|
| Scout | Analyse SAST, audit des dépendances, revue de configuration |
| Corpus | Évalue les 228 fixtures d'attaque par rapport à la politique actuelle |
| Évasion | Exécute 120+ sondes de contournement et en génère de nouvelles à l'aide d'un LLM |
| Parité | Vérifie que les implémentations Node et Python produisent des décisions identiques |
| Proxy | Tests de session MCP stdio en direct contre une instance de proxy en cours d'exécution |
| Rapport | Écrit security-swarm/latest.json avec les résultats complets et les métriques |
| Composant | Ce qu'il fait |
|---|
| BlockGuard | Applique la politique active de manière synchrone à chaque appel. Fermé en cas d'échec. |
| InstantLearner | Suit les statistiques par bloc et propose des suggestions de règles en temps réel |
| SemanticAuditor | Examen LLM asynchrone optionnel pour les appels qui passent les vérifications de motifs mais semblent suspects |
| PatternSynthesizer | Regroupe les suggestions d'InstantLearner et de SemanticAuditor en règles candidates |
| Calibrateur | Étiquette les candidats, ajuste les seuils et promeut les règles approuvées dans BlockGuard |
| Boucle | Signal | Effet |
|---|
| A | Contournement CI trouvé | Ajouté au corpus, la CI le protégera désormais en permanence |
| B | Motif de blocage Runtime | Synthétisé en une nouvelle règle, promue dans BlockGuard |
| C | Étiquette du Calibrateur | Utilisé pour affiner les seuils de SemanticAuditor |
| D | Métriques CI (hebdomadaires) | Met à jour la configuration runtime — maintient la CI et la production synchronisées |
| Commande | Ce qu'elle fait |
|---|
node dist/cli.js start | Démarre le proxy et le tableau de bord sur le port 4000 |
node dist/cli.js onboard | Enveloppe votre configuration MCP pour acheminer via le proxy |
node dist/cli.js doctor | Vérification de l'état de la base de données, de la politique et de l'environnement |
node dist/cli.js scan --all | Analyse les configurations MCP pour les CVE et les risques d'injection |
pnpm test | Exécute la suite de tests complète |
pnpm security-swarm:fast | Régression de sécurité rapide, 5 à 15 minutes |
pnpm security-swarm:analyze | Analyse adversarial complète |
| Problème | Solution |
|---|
| Le tableau de bord n'affiche aucune donnée | Le proxy et le tableau de bord doivent partager le même MASTYF_AI_DB_PATH. La valeur par défaut est ~/.mastyf-ai/history.db |
dist/cli.js introuvable | Exécutez pnpm build |
| L'IA continue d'appeler les outils directement | Exécutez node dist/cli.js onboard --apply |
| Avertissements Ollama au démarrage | Exécutez ollama serve ou supprimez MASTYF_AI_LLM_PROVIDER de votre environnement |
| Échec de l'installation npm | La publication npm n'est pas encore active. Utilisez git clone et pnpm install |