Scanner de sécurité CLI conçu pour l'ère des agents. Détecte les erreurs de configuration CI/CD, les risques liés aux permissions des agents, l'injection d'outils MCP, les secrets codés en dur et les dépendances IA signalées par le DMCA.
Détectez les codes risqués, les vulnérabilités des agents IA et les problèmes de chaîne d'approvisionnement avant leur mise en production.
Site web · Documentation · Sécurité et flux de données · Benchmark · Tarifs · Blog · Contribuer
Ship Safe est un scanner de sécurité IA pour les équipes logicielles modernes. Il s'exécute localement dans votre dépôt, détecte les problèmes dans le code applicatif, les agents IA, les configurations MCP, les prompts, les dépendances, l'ICD/DC, les secrets et la configuration liée au cloud, puis vous aide à examiner et appliquer des correctifs sûrs.
Lancez une analyse avec une seule commande :
npx ship-safe
Aucune inscription. Aucune clé API requise pour l'analyse. Fonctionne hors ligne pour les vérifications de base. Les modes red-team basés sur l'IA utilisent votre fournisseur configuré lorsqu'il est disponible.
Utilisez --no-ai pour garantir une analyse entièrement locale. La classification basée sur le fournisseur, l'analyse approfondie et GPT-Red envoient un contexte limité directement à votre fournisseur sélectionné après un masquage des identifiants au mieux. Voir Sécurité et flux de données pour les limites exactes et les limites de contexte.
# REPL interactif : analysez, corrigez et posez des questions en une seule session
npx ship-safe
# Audit complet : secrets + 29 agents + dépendances + plan de remédiation
npx ship-safe audit .
# Scénarios red-team d'agents IA pour le contenu lisible par les agents
npx ship-safe red-team . --gpt-red
# Agent de correction interactif : plan, diff, approbation, vérification
npx ship-safe agent .
npx ship-safe agent . --severity critical # uniquement les résultats critiques
npx ship-safe agent . --branch --pr # corriger sur une branche + ouvrir une PR
# Annuler la dernière correction
npx ship-safe undo
# Mode CI/CD — échoue en cas de résultat critique
npx ship-safe ci . --sarif results.sarif
npx ship-safe ci . --fail-on high # plus strict : critique ou élevé
| Domaine | Exemples |
|---|---|
| Sécurité IA et LLM | Injection de prompt, détournement d'agent, agence excessive, empoisonnement mémoire, empoisonnement RAG, appels d'outils non sûrs |
| Configurations MCP et agents | Permissions d'outils trop larges, registres empoisonnés, transports non fiables, listes d'autorisation dangereuses |
| Sécurité applicative | Injection SQL/NoSQL, XSS, SSRF, contournement d'authentification, traversée de chemin, routes API non sécurisées |
| Secrets et conformité | Clés API, jetons, identifiants, PII, secrets divulgués dans l'historique git |
| Chaîne d'approvisionnement | Typosquatting, confusion de dépendances, scripts d'installation risqués, actions IA non épinglées |
| CI/CD | Empoisonnement de pipeline, GitHub Actions non épinglées, journalisation de secrets, déclencheurs de workflow non sûrs |
ship-safe ci pour faire échouer les builds risqués et téléverser SARIF dans l'analyse de code GitHub.
La CLI open source est le moyen le plus rapide d'analyser n'importe quel dépôt localement. Passez au niveau supérieur lorsque vous avez besoin d'un workflow hébergé autour du même scanner :
| Besoin | Utilisation |
|---|---|
| Analyses locales, audits et corrections assistées par agent | CLI gratuite |
| Historique d'analyses, tableau de bord cloud et rapports PDF | Pro |
| Espace de travail partagé, PR Guardian, rapports d'équipe et collaboration | Équipe |
Comparez les formules sur shipsafe.sh/pricing.
Ship Safe Cloud, le tableau de bord hébergé pour l'historique d'analyses, PR Guardian, la facturation et les workflows d'équipe, est développé dans un dépôt privé car il contient du code produit commercial et des workflows d'infrastructure hébergée. Le dépôt public ship-safe reste axé sur la CLI sous licence MIT, les agents de sécurité, les règles, les fixtures, les intégrations CI et la documentation. Voir Ship Safe Cloud pour la limite du dépôt.
Tous les agents s'exécutent en parallèle. Chacun ignore automatiquement les projets non pertinents.
| Agent | Catégorie | Ce qu'il détecte |
|---|---|---|
| InjectionTester | Vulns de code | Injection SQL/NoSQL, injection de commandes, XSS, traversée de chemin, XXE, ReDoS, pollution de prototype |
| AuthBypassAgent | Authentification | Failles JWT (alg:none, secrets faibles), CSRF, mauvaise configuration OAuth, BOLA/IDOR, contournement TLS |
| SSRFProber | SSRF | Entrée utilisateur dans fetch/axios, points de terminaison de métadonnées cloud, IP internes |
| SupplyChainAudit | Chaîne d'approvisionnement | Typosquatting, versions génériques, scripts d'installation suspects, confusion de dépendances |
| ConfigAuditor | Configuration | Docker (utilisateur root, :latest), Terraform, Kubernetes, CORS, CSP, Firebase, Nginx |
| SupabaseRLSAgent | Authentification | Clé service_role dans le code client, tables sans RLS, insertions avec clé anon |
| LLMRedTeam | IA/LLM | OWASP LLM Top 10 : injection de prompt, agence excessive, fuite du prompt système |
| MCPSecurityAgent | IA/LLM | Mauvaise utilisation du serveur MCP, empoisonnement d'outils, typosquatting, entrées non validées |
| AgenticSecurityAgent | IA/LLM | OWASP Agentic AI Top 10 : détournement d'agent, élévation de privilèges, mauvaise utilisation des appels d'outils compatibles Kimi K3/OpenAI |
| RAGSecurityAgent | IA/LLM | Injection de contexte, empoisonnement de documents, contrôle d'accès à la base vectorielle |
| MemoryPoisoningAgent | IA/LLM | Injection d'instructions dans les fichiers mémoire des agents, charges utiles Unicode cachées (ASI-01, ASI-05) |
| PIIComplianceAgent | Conformité | SSN, cartes de crédit, e-mails, numéros de téléphone dans le code source |
| VibeCodingAgent | Vulns de code | Anti-modèles de code généré par IA : absence de validation, catches vides, auth TODO |
| ExceptionHandlerAgent | Vulns de code | Catches vides, rejets non gérés, traces de pile divulguées (OWASP A10:2025) |
| AgentConfigScanner |
Post-processeurs : ScoringEngine · VerifierAgent (vivacité des secrets) · DeepAnalyzer (analyse de flux LLM)
$ ship-safe
███████╗██╗ ██╗██╗██████╗ ███████╗ █████╗ ███████╗███████╗
...
v9.4.1 · DeepSeek · ~/my-project
/scan pour trouver des problèmes · /agent pour les corriger · /help pour plus d'aide
shipsafe ›
| Commande | Ce qu'elle fait |
|---|---|
/scan | Réanalyser le projet |
/agent | Exécuter la boucle de correction interactive |
/findings | Lister les résultats de la dernière analyse |
/show <n> | Détail complet du résultat n |
/plan <n> | Aperçu du plan de correction pour le résultat n (sans écriture) |
/undo [--all] | Annuler la dernière correction (ou toutes les corrections) |
/share | Publier le rapport d'analyse sous forme d'URL publique (7 jours) |
/diff | Afficher le diff de l'arborescence de travail git |
/provider <name> | Changer de fournisseur LLM en cours de session |
/quit | Quitter (également Ctrl-D ou Ctrl-C) |
Tout ce qui ne commence pas par / est envoyé au LLM comme question libre, avec vos derniers résultats d'analyse comme contexte.
# .github/workflows/security.yml
name: Security Audit
on: [push, pull_request]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Security gate
run: npx ship-safe ci . --sarif results.sarif
- uses: github/codeql-action/upload-sarif@v3
if: always()
with:
sarif_file: results.sarif
Une version GitLab CI se trouve dans docs/examples/gitlab-security-workflow.yml.
Utilisez l'Action depuis un workflow pull_request lorsque vous souhaitez que les résultats critiques et élevés soient attachés aux lignes modifiées. Gardez pull_request_target hors de ce chemin pour les contributions forkées : Ship Safe refuse cette combinaison privilégiée car le checkout peut contenir du code non fiable.
name: Ship Safe
on:
pull_request:
permissions:
contents: read
pull-requests: write
security-events: write
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: asamassekou10/[email protected]
with:
fail-on: high
inline: true
Les commentaires en ligne sont facultatifs et ne publient que les résultats critiques/élevés. Réexécuter le travail met à jour le résumé sans créer de commentaires en ligne en double.
Fonctionne avec n'importe quel fournisseur — détecté automatiquement à partir des variables d'environnement. Utilisez --provider <name> pour remplacer.
Anthropic · OpenAI · Google · DeepSeek · Kimi K3 / Moonshot · Groq · Together · Mistral · xAI · Perplexity · Ollama · LM Studio · tout point de terminaison compatible OpenAI
Kimi utilise par défaut kimi-k3 via MOONSHOT_API_KEY ou KIMI_API_KEY. Utilisez --provider kimi --model kimi-k3 pour les exécutions GPT-Red et d'analyse approfondie à contexte long.
Pour le red teaming à contexte long spécifique à Kimi K3 :
npx ship-safe red-team . --gpt-red --provider kimi --model kimi-k3 --k3-long-context
Ship Safe vérifie également les implémentations d'appels d'outils compatibles Kimi K3 / OpenAI pour le chargement dynamique d'outils depuis le contexte du prompt, les listes d'autorisation d'outils manquantes, les appels d'outils forcés sur des entrées non fiables et les résultats d'outils rejoués sans le message d'appel d'outil assistant d'origine.
Aucune clé API requise pour l'analyse de base. La classification IA et red-team --gpt-red utilisent votre fournisseur configuré lorsqu'il est disponible, avec repli hors ligne déterministe pour les vérifications GPT-Red.
password = get_password() # ship-safe-ignore
Les résultats critical sont toujours signalés. Un commentaire en ligne ne peut pas en masquer un, et une tentative de suppression est enregistrée dans l'analyse. Le commentaire est destiné à un humain écartant un faux positif, et tout ce qui peut écrire une ligne de votre source — y compris un agent IA — peut aussi écrire le commentaire, donc les gravités les plus élevées ne l'honorent pas. Chaque suppression est comptée, donc une analyse qui a réduit au silence des résultats ne ressemble jamais à une analyse sans aucun résultat.
# .ship-safeignore
tests/fixtures/
docs/
Le rappel est la moitié facile d'un scanner. Un outil qui signale tout attrape tout et est inutile, donc nous mesurons l'autre moitié : ce que Ship Safe dit du code qui est presque certainement correct.
En baisse par rapport à 1031 résultats sur les quatre mêmes projets avant v9.6.3, vérifié contre NodeGoat et DVWA pour confirmer que la baisse est une réduction du bruit et non une perte de détection. Le 1 résultat critique restant est un faux positif et le benchmark indique lequel et pourquoi.
Corpus épinglé par commit, reproductible avec une commande, limites documentées : benchmarks/false-positives/
Exécutez Ship Safe en parallèle, pas à la place. CodeQL fait une analyse de flux interprocédurale que Ship Safe ne tente pas, Gitleaks est le spécialiste des secrets, et Trivy a une véritable base de données CVE derrière lui.
Ship Safe couvre une question plus étroite : ce qu'un agent de codage IA vient de faire à votre dépôt, votre CI et votre configuration d'outils locale. La configuration client MCP, l'empoisonnement de la mémoire des agents, les imports de packages hallucinés et l'AIBOM sont les domaines où nous n'avons trouvé aucune règle publique équivalente dans les quatre autres.
Matrice de couverture complète, vérifiée contre leurs registres publics, y compris là où ils nous surpassent : docs/comparison.md
[](https://shipsafe.sh)
La version 10.0 est la couverture de l'agent Hermes. Ship Safe analyse déjà les déploiements Hermes, mais contre v0.13.0 alors que Hermes est sur v0.20.0 — l'adaptateur ACP, la passerelle TUI, les backends de terminal serverless, les blueprints cron et les manifestes de plugins ont tous été publiés entre-temps sans couverture.
Voir la feuille de route pour ce qui est prévu et ce qui ne l'est pas délibérément, et le jalon 10.0 pour les travaux réclamables. Tout y est ouvert aux contributeurs.
Ship Safe est open source, et les meilleures contributions sont des améliorations petites et ciblées qui rendent le développement assisté par IA plus sûr.
Premiers bons domaines :
Commencez ici :
Ship Safe est sous licence MIT et gratuit pour toujours.
Livrez vite. Livrez en toute sécurité. — shipsafe.sh
| IA/LLM |
| Injection de prompt dans .cursorrules, CLAUDE.md, hooks Claude Code malveillants |
| MobileScanner | Mobile | OWASP Mobile Top 10 2024 : stockage non sécurisé, injection WebView, mode débogage |
| GitHistoryScanner | Secrets | Secrets divulgués dans l'historique des commits git |
| CICDScanner | CI/CD | Empoisonnement de pipeline, actions non épinglées, journalisation de secrets (OWASP CI/CD Top 10) |
| APIFuzzer | API | Routes sans authentification, mass assignment, introspection GraphQL, points de terminaison de débogage |
| ManagedAgentScanner | IA/LLM | Mauvaise configuration des agents gérés Claude : politiques always_allow, réseau non restreint (ASI-03–ASI-07) |
| HermesSecurityAgent | IA/LLM | Empoisonnement du registre d'outils, injection d'appels de fonctions, dérive des permissions de compétences (ASI-01–ASI-10) |
| AgentAttestationAgent | Chaîne d'approvisionnement | Versions d'agents non épinglées, hachages d'intégrité manquants, manifestes non signés (ASI-10, SLSA L0) |
| AgenticSupplyChainAgent | Chaîne d'approvisionnement | Actions IA CI sur-privilégiées, dérive des portées OAuth, récepteurs webhook IA non signés (ASI-02, ASI-06) |
| RobloxSecurityAgent | Chaîne d'approvisionnement | Actifs Roblox/Luau Toolbox malveillants (injection d'actifs à l'exécution, chargeurs rbxassetid://, HttpEnabled, charges utiles cachées dans les attributs d'instance) |
| ModelScanAgent | Chaîne d'approvisionnement | Charges utiles d'exécution de code dans les poids des modèles ML (opcodes pickle dans .pt/.pkl/.ckpt), torch.load sans weights_only, archives d'évasion de scanner (CWE-502, CWE-506) |
| TrustBoundaryAgent | Agentique | Attaques de lien symbolique GhostApproval (liens nommés par configuration vers ~/.ssh/~/.aws/.env), liens symboliques de dépôt sortant de l'arborescence, et instructions Friendly Fire run-on-review dans les documents lus par les agents (CWE-59, CWE-61) |
| SlopSquatAgent | Chaîne d'approvisionnement | Imports de packages hallucinés / fantômes (slopsquatting) — imports nus non déclarés, non installés ou non intégrés, plus noms connus hallucinés par l'IA (CWE-1357) |
| ClickFixAgent | Chaîne d'approvisionnement | Leurres ClickFix / faux CAPTCHA copier-coller-exécuter (fausse erreur + frappes Win+R/Ctrl+V/barre de commandes, berceaux PowerShell) et scripts de cycle de vie npm de faux installateurs (CWE-1357, CWE-506) |
| InstallGuardAgent | Chaîne d'approvisionnement | Comportements de ver npm dans les scripts de cycle de vie (collecte d'identifiants, exfiltration d'environnement, rm -rf destructeur, node -e obscurci) et actions node-gyp binding.gyp armées (CWE-506, CWE-829) |