Torna agli aggiornamenti
New releaseAug 31, 2026

ship-safe v9.7.5

Scanner di sicurezza CLI progettato per l'era agentica. Rileva configurazioni errate di CI/CD, rischi legati ai permessi degli agenti, iniezione di strumenti MCP, segreti hardcoded e dipendenze AI segnalate dal DMCA.

Condividi

Ship Safe Logo

Trova codice rischioso, vulnerabilità degli agenti AI e problemi della supply chain prima che vengano rilasciati.

Sito web · Documentazione · Sicurezza e flusso dei dati · Benchmark · Prezzi · Blog · Contribuisci

npm version npm downloads CI License: MIT GitHub stars Sponsor

CLI Ship Safe

Ship Safe è uno scanner di sicurezza AI per team software moderni. Viene eseguito localmente nel tuo repository, trova problemi nel codice applicativo, negli agenti AI, nelle configurazioni MCP, nei prompt, nelle dipendenze, nella CI/CD, nei segreti e nella configurazione cloud-adiacente, quindi ti aiuta a rivedere e applicare correzioni sicure.

Avvia una scansione con un solo comando:

npx ship-safe

Nessuna registrazione. Nessuna chiave API richiesta per la scansione. Funziona offline per i controlli principali. Le modalità red-team supportate dall'AI utilizzano il tuo provider configurato quando disponibile.

Usa --no-ai per garantire una scansione completamente locale. La classificazione basata su provider, l'analisi approfondita e GPT-Red inviano contesto limitato direttamente al provider selezionato dopo la mascheratura delle credenziali con il miglior sforzo. Vedi Sicurezza e flusso dei dati per i confini esatti e i limiti di contesto.

Ship Safe REPL demo


Avvio rapido

# REPL interattivo: scansiona, correggi e fai domande in un'unica sessione
npx ship-safe

# Audit completo: segreti + 29 agenti + dipendenze + piano di rimedio
npx ship-safe audit .

# Scenari red-team AI per contenuti leggibili dagli agenti
npx ship-safe red-team . --gpt-red

# Agente di correzione interattivo: pianifica, diff, approva, verifica
npx ship-safe agent .
npx ship-safe agent . --severity critical   # solo risultati critici
npx ship-safe agent . --branch --pr         # correggi su un branch + apri una PR

# Annulla l'ultima correzione
npx ship-safe undo

# Modalità CI/CD — fallisce su qualsiasi risultato critico
npx ship-safe ci . --sarif results.sarif
npx ship-safe ci . --fail-on high          # più severo: critico o alto

Cosa trova Ship Safe

AreaEsempi
Sicurezza AI e LLMPrompt injection, dirottamento di agenti, agenzia eccessiva, avvelenamento della memoria, avvelenamento RAG, chiamate di strumenti non sicure
Configurazioni MCP e agentiPermessi di strumenti troppo ampi, registry avvelenati, trasporti non affidabili, allowlist pericolose
Sicurezza delle applicazioniSQL/NoSQL injection, XSS, SSRF, bypass di autenticazione, path traversal, route API non sicure
Segreti e conformitàChiavi API, token, credenziali, PII, segreti trapelati nella cronologia git
Supply chainTyposquatting, dependency confusion, script di installazione rischiosi, azioni AI non bloccate
CI/CDAvvelenamento della pipeline, GitHub Actions non bloccate, registrazione di segreti, trigger di workflow non sicuri

Come funziona

  1. Scansione locale - Ship Safe ispeziona il tuo repository con agenti mirati e salta i controlli che non si applicano.
  2. Revisione dei risultati - I risultati includono gravità, posizione del file, prove e rimedio raccomandato.
  3. Correzione con controllo - L'agente propone un piano e un diff, chiede prima di scrivere, verifica il risultato e mantiene le modifiche reversibili.
  4. Gate nella CI - Usa ship-safe ci per far fallire le build rischiose e caricare SARIF nella scansione del codice GitHub.

Ship Safe agent demo


Perché gli sviluppatori lo usano

  • Progettato per app AI-native: individua rischi in agenti, server MCP, prompt, flussi RAG, configurazioni di agenti gestiti e CI potenziata dall'AI.
  • Funziona con client AI: esponi Ship Safe a Codex, Claude Desktop, Cursor, Windsurf e altri client MCP tramite il server stdio locale.
  • Feedback locale rapido: eseguilo prima di una PR, durante la revisione o nella CI senza inviare codice a uno scanner ospitato.
  • Le correzioni sono revisionabili: ogni modifica suggerita viene mostrata come diff prima di toccare i tuoi file.
  • Funziona con il tuo stack: JavaScript, TypeScript, Python, file di configurazione, file di infrastruttura, GitHub Actions e altro.
  • Core open source: CLI con licenza MIT con documentazione, esempi e un sistema di agenti in crescita.

CLI gratuita, workflow di team a pagamento

La CLI open source è il modo più rapido per scansionare qualsiasi repository localmente. Fai l'upgrade quando hai bisogno di un workflow ospitato attorno allo stesso scanner:

EsigenzaUso
Scansioni locali, audit e correzioni assistite da agentiCLI gratuita
Cronologia delle scansioni, dashboard cloud e report PDFPro
Workspace condiviso, PR Guardian, report di team e collaborazioneTeam

Confronta i piani su shipsafe.sh/pricing.

Ship Safe Cloud, la dashboard ospitata per cronologia delle scansioni, PR Guardian, fatturazione e workflow di team, è sviluppata in un repository privato perché contiene codice di prodotto commerciale e infrastrutture di workflow ospitate. Il repository pubblico ship-safe rimane focalizzato sulla CLI con licenza MIT, sugli agenti di sicurezza, sulle regole, sui fixture, sulle integrazioni CI e sulla documentazione. Vedi Ship Safe Cloud per il confine del repository.


Agenti di sicurezza

Tutti gli agenti vengono eseguiti in parallelo. Ciascuno salta automaticamente i progetti irrilevanti.

AgenteCategoriaCosa rileva
InjectionTesterVulnerabilità di codiceSQL/NoSQL injection, command injection, XSS, path traversal, XXE, ReDoS, prototype pollution
AuthBypassAgentAutenticazioneDifetti JWT (alg:none, segreti deboli), CSRF, configurazione errata OAuth, BOLA/IDOR, bypass TLS
SSRFProberSSRFInput utente in fetch/axios, endpoint di metadati cloud, IP interni
SupplyChainAuditSupply ChainTyposquatting, versioni wildcard, script di installazione sospetti, dependency confusion
ConfigAuditorConfigurazioneDocker (utente root, :latest), Terraform, Kubernetes, CORS, CSP, Firebase, Nginx
SupabaseRLSAgentAutenticazioneChiave service_role nel codice client, tabelle senza RLS, inserimenti con chiave anonima
LLMRedTeamAI/LLMOWASP LLM Top 10: prompt injection, agenzia eccessiva, fuga del prompt di sistema
MCPSecurityAgentAI/LLMUso improprio del server MCP, avvelenamento degli strumenti, typosquatting, input non validati
AgenticSecurityAgentAI/LLMOWASP Agentic AI Top 10: dirottamento di agenti, escalation dei privilegi, uso improprio delle chiamate di strumenti Kimi K3/OpenAI-compatibili
RAGSecurityAgentAI/LLMInjection di contesto, avvelenamento dei documenti, controllo degli accessi al database vettoriale
MemoryPoisoningAgentAI/LLMInjection di istruzioni nei file di memoria degli agenti, payload Unicode nascosti (ASI-01, ASI-05)
PIIComplianceAgentConformitàSSN, carte di credito, email, numeri di telefono nel codice sorgente
VibeCodingAgentVulnerabilità di codiceAnti-pattern del codice generato dall'AI: nessuna validazione, catch vuoti, auth TODO
ExceptionHandlerAgentVulnerabilità di codiceCatch vuoti, rejection non gestite, stack trace trapelati (OWASP A10:2025)
AgentConfigScannerAI/LLMPrompt injection in .cursorrules, CLAUDE.md, hook Claude Code dannosi
MobileScannerMobileOWASP Mobile Top 10 2024: storage non sicuro, injection WebView, modalità debug
GitHistoryScannerSegretiSegreti trapelati nella cronologia dei commit git
CICDScannerCI/CDAvvelenamento della pipeline, azioni non bloccate, registrazione di segreti (OWASP CI/CD Top 10)
APIFuzzerAPIRoute senza autenticazione, mass assignment, introspezione GraphQL, endpoint di debug
ManagedAgentScannerAI/LLMConfigurazioni errate di Claude Managed Agent: policy always_allow, networking senza restrizioni (ASI-03–ASI-07)
HermesSecurityAgentAI/LLMAvvelenamento del registro degli strumenti, injection di chiamate di funzione, deriva dei permessi delle skill (ASI-01–ASI-10)
AgentAttestationAgentSupply ChainVersioni di agenti non bloccate, hash di integrità mancanti, manifest non firmati (ASI-10, SLSA L0)
AgenticSupplyChainAgentSupply ChainAzioni AI CI con privilegi eccessivi, espansione dell'ambito OAuth, ricevitori webhook AI non firmati (ASI-02, ASI-06)
RobloxSecurityAgentSupply ChainAsset Roblox/Luau Toolbox dannosi (injection di asset in runtime, loader rbxassetid://, HttpEnabled, payload nascosti negli attributi delle istanze)
ModelScanAgentSupply ChainPayload di esecuzione di codice nei pesi dei modelli ML (opcode pickle in .pt/.pkl/.ckpt), torch.load senza weights_only, archivi che eludono lo scanner (CWE-502, CWE-506)
TrustBoundaryAgentAgenticoAttacchi symlink GhostApproval (link con nome di configurazione in ~/.ssh/~/.aws/.env), symlink del repository che escono dall'albero e istruzioni Friendly Fire run-on-review nei documenti letti dagli agenti (CWE-59, CWE-61)
SlopSquatAgentSupply ChainImport di pacchetti allucinati / fantasma (slopsquatting) — import nudi non dichiarati, installati o builtin, più nomi noti allucinati dall'AI (CWE-1357)
ClickFixAgentSupply ChainEsche ClickFix / falso-CAPTCHA copia-e-incolla (errore falso + sequenze di tasti Win+R/Ctrl+V/barra dei comandi, cradle PowerShell) e script di ciclo di vita npm di falsi installer (CWE-1357, CWE-506)
InstallGuardAgentSupply ChainComportamenti worm npm negli script di ciclo di vita (raccolta di credenziali, esfiltrazione di env, rm -rf distruttivo, node -e offuscato) e azioni node-gyp armate binding.gyp (CWE-506, CWE-829)

Post-processori: ScoringEngine · VerifierAgent (liveness dei segreti) · DeepAnalyzer (analisi taint LLM)


La REPL

$ ship-safe

  ███████╗██╗  ██╗██╗██████╗     ███████╗ █████╗ ███████╗███████╗
  ...

  v9.4.1  ·  DeepSeek  ·  ~/my-project

  /scan per trovare problemi  ·  /agent per correggerli  ·  /help per altro

shipsafe ›
ComandoCosa fa
/scanRiesegue la scansione del progetto
/agentEsegue il ciclo di correzione interattivo
/findingsElenca i risultati dell'ultima scansione
/show <n>Dettaglio completo del risultato n
/plan <n>Anteprima del piano di correzione per il risultato n (nessuna scrittura)
/undo [--all]Ripristina l'ultima correzione (o tutte le correzioni)
/sharePubblica il report di scansione come URL pubblico (7 giorni)
/diffMostra il diff dell'albero di lavoro git
/provider <name>Cambia provider LLM a metà sessione
/quitEsci (anche Ctrl-D o Ctrl-C)

Qualsiasi cosa che non inizi con / viene inviata all'LLM come domanda a forma libera, con i risultati dell'ultima scansione come contesto.


CI/CD

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

Una versione GitLab CI è in docs/examples/gitlab-security-workflow.yml.

GitHub Action con risultati PR inline

Usa l'Action da un workflow pull_request quando vuoi che i risultati critici e ad alta gravità siano allegati alle righe modificate. Tieni pull_request_target fuori da questo percorso per i contributi fork: Ship Safe rifiuta quella combinazione privilegiata perché il checkout può contenere codice non attendibile.

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

I commenti inline sono opt-in e pubblicano solo risultati critici/ad alta gravità. Rieseguire il job aggiorna il riepilogo senza creare commenti inline duplicati.


Supporto LLM

Funziona con qualsiasi provider — rilevato automaticamente dalle variabili di ambiente. Usa --provider <name> per sovrascrivere.

Anthropic · OpenAI · Google · DeepSeek · Kimi K3 / Moonshot · Groq · Together · Mistral · xAI · Perplexity · Ollama · LM Studio · qualsiasi endpoint compatibile OpenAI

Kimi usa come default kimi-k3 tramite MOONSHOT_API_KEY o KIMI_API_KEY. Usa --provider kimi --model kimi-k3 per esecuzioni GPT-Red e di analisi approfondita a contesto lungo.

Per il red teaming a contesto lungo specifico di Kimi K3:

npx ship-safe red-team . --gpt-red --provider kimi --model kimi-k3 --k3-long-context

Ship Safe controlla anche le implementazioni di chiamate di strumenti Kimi K3 / OpenAI-compatibili per il caricamento dinamico di strumenti dal contesto del prompt, allowlist di strumenti mancanti, chiamate di strumenti forzate su input non attendibili e risultati di strumenti riprodotti senza il messaggio originale di chiamata di strumento dell'assistente.

Nessuna chiave API richiesta per la scansione core. La classificazione AI e red-team --gpt-red usano il tuo provider configurato quando disponibile, con fallback offline deterministico per i controlli GPT-Red.


Sopprimi i falsi positivi

password = get_password()  # ship-safe-ignore

I risultati critical vengono sempre segnalati. Un commento inline non può nasconderli, e un tentativo di sopprimerli viene registrato nella scansione. Il commento è pensato per un umano che esclude un falso positivo, e qualsiasi cosa che possa scrivere una riga del tuo codice sorgente — incluso un agente AI — può scrivere anche il commento, quindi le gravità più alte non lo onorano. Ogni soppressione viene conteggiata, quindi una scansione che ha silenziato risultati non sembra mai una che non ne aveva.

# .ship-safeignore
tests/fixtures/
docs/

Quanto è rumoroso?

Il recall è la metà facile di uno scanner. Uno strumento che segnala tutto cattura tutto ed è inutile, quindi misuriamo l'altra metà: cosa dice Ship Safe sul codice che è quasi certamente a posto.

progettorisultaticriticivoto
express260C
requests151C
flask280D
chalk40B

In calo da 1031 risultati sugli stessi quattro progetti prima della v9.6.3, verificati contro NodeGoat e DVWA per garantire che il calo sia rumore ridotto piuttosto che rilevamento perso. L'unico risultato critico rimanente è un falso positivo e il benchmark dice quale e perché.

Corpus bloccato per commit, riproducibile con un comando, limiti documentati: benchmarks/false-positives/

Come si confronta con Semgrep, Gitleaks, Trivy, CodeQL?

Esegui Ship Safe insieme a loro, non al posto loro. CodeQL fa un'analisi taint interprocedurale che Ship Safe non tenta, Gitleaks è lo specialista per i segreti, e Trivy ha un vero database CVE dietro.

Ship Safe copre una domanda più ristretta: cosa ha appena fatto un agente di codifica AI al tuo repository, alla tua CI e alla tua configurazione locale degli strumenti. Configurazione client MCP, avvelenamento della memoria degli agenti, import di pacchetti allucinati e AIBOM sono le aree in cui non abbiamo trovato regole pubbliche equivalenti negli altri quattro.

Matrice di copertura completa, verificata contro i loro registry pubblici, inclusi i punti in cui ci battono: docs/comparison.md


Aggiungi un badge

[![Ship Safe](https://img.shields.io/badge/Ship_Safe-A+-22c55e)](https://shipsafe.sh)

Cosa succede dopo

La 10.0 è la copertura di Hermes Agent. Ship Safe scansiona già le distribuzioni Hermes, ma contro la v0.13.0 mentre Hermes è sulla v0.20.0 — l'adattatore ACP, il gateway TUI, i backend terminale serverless, i blueprint cron e i manifest dei plugin sono stati tutti rilasciati nel frattempo senza copertura.

Vedi la roadmap per cosa è pianificato e cosa è deliberatamente non pianificato, e la milestone 10.0 per il lavoro rivendicabile. Tutto in essa è aperto ai contributori.

Contribuire

Ship Safe è open source, e i migliori contributi sono miglioramenti piccoli e mirati che rendono lo sviluppo assistito dall'AI più sicuro.

Buone prime aree:

  • Aggiungi un agente di sicurezza mirato per un rischio AI, MCP, CI, cloud o supply chain
  • Aggiungi una regola di sicurezza precisa a un agente esistente
  • Aggiungi fixture vulnerabili e test di regressione
  • Scrivi esempi per scansioni locali, gate CI, workflow red-team e configurazione MCP/agente

Inizia qui:


Ship Safe è con licenza MIT e gratuito per sempre.

Sponsor Ship Safe


Cronologia delle stelle

Star History Chart


Rilascia veloce. Rilascia sicuro.shipsafe.sh

Categorie