Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
hush — Règles de sécurité portables pour la limite d'action des agents IA | Kitploit
Outils/GitHubGitHub/backbay-labs/hush
Sécurité CloudDevSecOpsDétection de SecretsRenseignement sur les MenacesSécurité de la Chaîne LogistiqueRéponse aux IncidentsSécurité de l'IA
GitHubbackbay-labs/hush

hush

Règles de sécurité portables pour la limite d'action des agents IA

Voir le dépôt
231il y a 1 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

HushSpec

Spécification ouverte et portable pour les règles de sécurité des agents IA

CI License Spec Version crates.io npm PyPI

Spécification · Documentation · Rulesets · JSON Schema


HushSpec est un format de politique ouvert pour les règles de sécurité des agents IA. Il définit **ce qu'**un agent peut faire à l'exécution, notamment l'accès au système de fichiers, le trafic réseau sortant, l'utilisation des outils, la détection de secrets, et bien plus encore, sans imposer comment ces contrôles doivent être appliqués. Cette séparation rend les politiques portables entre les runtimes, les frameworks et les langages.

v0.1.1-alpha — La spécification de base, les quatre SDK (Rust, TypeScript, Python, Go) et le CLI h2h sont publiés et opérationnels. Analysez, validez, évaluez, fusionnez, résolvez, détectez, signez et auditez à travers 10 types de règles et 3 modules d'extension. La surface d'API se stabilise, mais n'est pas encore figée — attendez-vous à des raffinements avant la v1.0.

Exemple rapide

root@kitploit:~
hushspec: "0.1.0"
name: production-agent

rules:
  forbidden_paths:
    patterns:
      - "**/.ssh/**"
      - "**/.aws/**"
      - "/etc/shadow"

  egress:
    allow:
      - "api.openai.com"
      - "*.anthropic.com"
      - "api.github.com"
    default: block

  tool_access:
    block: [shell_exec, run_command]
    require_confirmation: [file_write, git_push]
    default: allow

  secret_patterns:
    patterns:
      - name: aws_key
        pattern: "AKIA[0-9A-Z]{16}"
        severity: critical
    skip_paths: ["**/test/**"]

  shell_commands:
    forbidden_patterns:
      - "rm\\s+-rf\\s+/"
      - "curl.*\\|.*bash"

Conformité des SDK

Les quatre SDK implémentent le pipeline HushSpec complet, de l'analyse et de la validation jusqu'à la résolution et l'évaluation.

Installation

CLI

Homebrew, npm et les binaires précompilés deviennent disponibles à partir du premier tag v0.x construit par le pipeline de publication, dès que celui-ci publie les artefacts, la formule tap et les packages npm. En attendant, installez via Cargo.

Toutes les méthodes installent la commande h2h. Voir Outil CLI ci-dessous.

Rust

root@kitploit:~
[dependencies]
hushspec = "0.1"

TypeScript

root@kitploit:~
npm install @hushspec/core

Python

root@kitploit:~
pip install hushspec

Go

root@kitploit:~
go get github.com/backbay-labs/hush/packages/go@main

Pour commencer

Rust

root@kitploit:~
use hushspec::HushSpec;

let yaml_str = "hushspec: \"0.1.0\"\nname: example\n";
let spec = HushSpec::parse(yaml_str)?;
let result = hushspec::validate(&spec);
assert!(result.is_valid());

TypeScript

root@kitploit:~
import { parseOrThrow, validate } from '@hushspec/core';

const yamlString = 'hushspec: "0.1.0"\nname: example\n';
const spec = parseOrThrow(yamlString);
const result = validate(spec);
console.log(result.valid); // true

Python

root@kitploit:~
from hushspec import parse_or_raise, validate

yaml_string = 'hushspec: "0.1.0"\nname: example\n'
spec = parse_or_raise(yaml_string)
result = validate(spec)
assert result.is_valid

Go

root@kitploit:~
import (
    "fmt"

    "github.com/backbay-labs/hush/packages/go/hushspec"
)

yamlString := "hushspec: \"0.1.0\"\nname: example\n"
spec, err := hushspec.Parse(yamlString)
if err != nil {
    panic(err)
}
result := hushspec.Validate(spec)
fmt.Println(result.IsValid())

Évaluation

Chaque SDK expose une fonction evaluate() qui prend une spécification analysée et une action, puis renvoie une décision (allow, warn ou deny) ainsi que les détails des règles correspondantes.

root@kitploit:~
import { parseOrThrow, evaluate } from '@hushspec/core';

const spec = parseOrThrow(policyYaml);
const result = evaluate(spec, { type: 'egress', target: 'api.openai.com' });
// result.decision === 'allow' | 'warn' | 'deny'
// result.matched_rule === 'egress'
root@kitploit:~
from hushspec import parse_or_raise, evaluate

spec = parse_or_raise(policy_yaml)
result = evaluate(spec, {"type": "egress", "target": "api.openai.com"})
assert result.decision in ("allow", "warn", "deny")

Middleware HushGuard

HushGuard encapsule le chargement et l'évaluation des politiques derrière une interface simple — evaluate, check et enforce — destinée au code applicatif.

root@kitploit:~
import { HushGuard } from '@hushspec/core';

const guard = HushGuard.fromFile('./policy.yaml');
guard.enforce({ type: 'tool_call', target: 'bash' }); // throws HushSpecDenied if denied
root@kitploit:~
from hushspec import HushGuard

guard = HushGuard.from_file("./policy.yaml")
guard.enforce({"type": "tool_call", "target": "bash"})  # raises HushSpecDenied if denied

Outil CLI

Le CLI h2h couvre le flux de travail courant des politiques : valider, tester, évaluer et expliquer des actions individuelles, lint, diff, formater, initialiser, signer, vérifier et déclencher le mode panique.

root@kitploit:~
# Validate a policy against the HushSpec schema
h2h validate policy.yaml

# Run evaluation test suites
h2h test --fixtures ./tests/

# Evaluate one action and explain the decision
h2h eval policy.yaml --type egress --target api.example.com
h2h explain policy.yaml --type egress --target api.example.com

# Static analysis and linting
h2h lint policy.yaml

# Lint and auto-fix decision-neutral issues
h2h lint policy.yaml --fix

# Compare two policies and show effective decision changes
h2h diff old.yaml new.yaml

# Format policy files canonically
h2h fmt policy.yaml

# Scaffold a new policy project
h2h init --preset default

# Sign a policy with Ed25519
h2h sign policy.yaml --key h2h.key

# Verify a policy signature
h2h verify policy.yaml --key h2h.pub

# Generate a new Ed25519 keypair
h2h keygen

# Emergency override (deny-all kill switch)
h2h panic activate --sentinel /tmp/hushspec.panic
h2h panic deactivate --sentinel /tmp/hushspec.panic

Voir Installation ci-dessus pour les options d'installation — Homebrew, npm, Cargo ou binaires précompilés.

Reçus de décision (piste d'audit)

evaluate_audited() génère des reçus de décision structurés avec les traces de règles, les résumés de politique et le masquage facultatif du contenu. Les reçus sont conformes à hushspec-receipt.v0.schema.json et sont conçus pour prendre en charge les environnements à forte exigence d'audit, tels que SOC 2, HIPAA, PCI-DSS et FedRAMP.

root@kitploit:~
import { parseOrThrow, evaluateAudited } from '@hushspec/core';

const spec = parseOrThrow(policyYaml);
const receipt = evaluateAudited(spec, action, {
  enabled: true,
  include_rule_trace: true,
  redact_content: false,
});
// receipt.decision, receipt.rule_evaluations, receipt.policy_summary

Les destinations de reçus (FileReceiptSink, ConsoleReceiptSink, FilteredSink, MultiSink, CallbackSink) sont disponibles dans les quatre SDK pour acheminer les reçus vers le stockage, la journalisation ou des points de terminaison OTLP.

Pipeline de détection

Le pipeline de détection intègre des contrôles d'injection de prompt, de jailbreak et d'exfiltration dans le flux d'évaluation. Des détecteurs de référence basés sur des expressions régulières sont fournis avec tous les SDK, et des détecteurs personnalisés peuvent être enregistrés via DetectorRegistry.

root@kitploit:~
import { parseOrThrow, evaluateWithDetection, DetectorRegistry } from '@hushspec/core';

const registry = DetectorRegistry.withDefaults();
const result = evaluateWithDetection(spec, action, registry, {
  enabled: true,
  prompt_injection_threshold: 0.5,
});
// result.detection_results contains matched patterns and confidence scores
Adaptateurs de framework

Des adaptateurs préconfigurés traduisent les appels d'outils spécifiques aux frameworks en actions d'évaluation HushSpec.

Observabilité

L'interface EvaluationObserver et l'enveloppe ObservableEvaluator émettent des événements structurés pour chaque évaluation, chaque chargement et chaque rechargement de politique. Les observateurs intégrés incluent JsonLineObserver, ConsoleObserver et MetricsCollector.

root@kitploit:~
import { ObservableEvaluator, JsonLineObserver, MetricsCollector } from '@hushspec/core';

const evaluator = new ObservableEvaluator();
evaluator.addObserver(new JsonLineObserver(process.stderr));
evaluator.addObserver(new MetricsCollector());
const result = evaluator.evaluate(spec, action);
Signature de politique

Les politiques peuvent être signées avec des clés Ed25519 et vérifiées au moment du chargement. Le CLI fournit les commandes sign, verify et keygen. Le format de signature est conforme à hushspec-signature.v0.schema.json.

root@kitploit:~
# Generate a keypair
h2h keygen --output-dir mykeys

# Sign a policy (creates policy.yaml.sig)
h2h sign policy.yaml --key mykeys/h2h.key

# Verify the signature
h2h verify policy.yaml --key mykeys/h2h.pub
Contournement d'urgence (mode panique)

Le mode panique est un kill switch tout-refuser qui peut être activé immédiatement sans redéployer les politiques. Vous pouvez le déclencher via un fichier sentinelle, le CLI ou un appel API. Tant que le mode panique est actif, chaque évaluation renvoie deny.

root@kitploit:~
# Activate panic mode
h2h panic activate --sentinel /tmp/hushspec.panic

# Deactivate
h2h panic deactivate --sentinel /tmp/hushspec.panic
root@kitploit:~
import { activatePanic, deactivatePanic, isPanicActive } from '@hushspec/core';

activatePanic();
// All evaluate() calls now return deny
deactivatePanic();
Chargement de politique et rechargement à chaud

Les politiques peuvent être chargées à partir de fichiers locaux, d'URL HTTPS (avec mise en cache ETag et protection SSRF) ou de rulesets intégrés. PolicyWatcher et PolicyPoller prennent en charge le rechargement à chaud sans redémarrer le processus.

root@kitploit:~
import { PolicyWatcher, HushGuard } from '@hushspec/core';

const guard = HushGuard.fromFile('./policy.yaml');
const watcher = new PolicyWatcher('./policy.yaml', {
  onChange: (newSpec) => guard.swapPolicy(newSpec),
});
watcher.start();

10 règles de base

Extensions

HushSpec prend en charge des modules d'extension facultatifs pour un comportement de politique plus avancé :

ExtensionObjectif
PostureMachine à états déclarative pour les capacités et les budgets
OriginsProjection de politique sensible à l'origine (Slack, GitHub, e-mail, etc.)
DetectionConfiguration de seuils pour l'injection de prompt, le jailbreak et le renseignement sur les menaces
root@kitploit:~
extensions:
  posture:
    initial: standard
    states:
      standard: { capabilities: [file_access, egress] }
      restricted: { capabilities: [file_access] }
    transitions:
      - { from: "*", to: restricted, on: critical_violation }
  detection:
    prompt_injection:
      block_at_or_above: high

Rulesets intégrés

Des politiques prêtes à l'emploi se trouvent dans rulesets/ :

Utilisation avec Clawdstrike

Les documents HushSpec se chargent nativement dans Clawdstrike :

root@kitploit:~
// Auto-detects HushSpec vs Clawdstrike-native format
let policy = clawdstrike::Policy::from_yaml_auto(yaml)?;
root@kitploit:~
# Convert between formats
hush policy migrate policy.yaml --to hushspec

Structure du dépôt

root@kitploit:~
spec/              Normative specification, including core and extension docs
schemas/           JSON Schema definitions
crates/            Rust crates
  hushspec/          Core library: parse, validate, merge, resolve, evaluate, detect, sign
  hushspec-cli/      CLI tool
  hushspec-testkit/  Conformance test runner
packages/          Language SDKs for TypeScript, Python, and Go
rulesets/          Built-in security rulesets
fixtures/          Conformance and evaluation fixtures
docs/              mdBook documentation site
generated/         Generated shared SDK contract artifacts
scripts/           Code generation and CI tooling

Principes de conception

  • Fermé par défaut : les champs inconnus sont rejetés et les documents invalides échouent avec des erreurs explicites.
  • Sans état : les règles de base sont de pures déclarations, sans état d'exécution.
  • Neutre vis-à-vis du moteur : la spécification n'exige pas de moteur d'application, de détecteur ou de modèle de plugin spécifique.
  • Extensible : Posture, Origins et Detection restent optionnels afin de ne pas alourdir le format de base.

Spécification

La spécification normative se trouve dans spec/. Les définitions JSON Schema pour la validation programmatique sont dans schemas/. La documentation complète est dans docs/.

Licence

Apache-2.0. Voir LICENSE.

Télécharger l’outil
CapacitéRustTypeScriptPythonGo
Analyse + validation (niveau 1)OuiOuiOuiOui
Fusion (niveau 2)OuiOuiOuiOui
Résolution (niveau 2+)OuiOuiOuiOui
Évaluation (niveau 3)OuiOuiOuiOui
Piste d'audit (niveau 4)OuiOuiOuiOui
DétectionOuiOuiOuiOui
ObservabilitéOuiOuiOuiOui
Destinations de reçusOuiOuiOuiOui
MéthodeCommande
Homebrew (macOS/Linux)brew install backbay-labs/tap/h2h
npmnpm install -g @hushspec/cli (ou npx @hushspec/cli validate policy.yaml)
Cargo (à partir des sources)cargo install hushspec-cli
Binaires précompilésGitHub Releases — h2h-<tag>-<target>.tar.gz + SHA256SUMS, avec attestation de provenance
FrameworkAdaptateurSDK
Claude / AnthropicmapClaudeToolToAction, createSecureToolHandlerTypeScript
OpenAImapOpenAIToolCall, createOpenAIGuardTypeScript
MCP (Model Context Protocol)mapMCPToolCall, createMCPGuardTypeScript
root@kitploit:~
import { HushGuard, mapClaudeToolToAction } from '@hushspec/core';

const guard = HushGuard.fromFile('./policy.yaml');
const action = mapClaudeToolToAction(toolUseBlock);
guard.enforce(action);
RègleObjectif
forbidden_pathsBloque l'accès aux chemins sensibles du système de fichiers
path_allowlistAccès en lecture/écriture/patch basé sur une liste blanche
egressContrôle du trafic réseau sortant par domaine
secret_patternsDétecte les secrets dans le contenu des fichiers
patch_integrityValide la sécurité des diffs (limites de taille, motifs interdits)
shell_commandsBloque les commandes shell dangereuses
tool_accessContrôle les invocations d'outils/MCP
computer_useContrôle les actions CUA
remote_desktop_channelsContrôle les canaux latéraux du bureau à distance
input_injectionContrôle les capacités d'injection d'entrée
RulesetDescription
defaultSécurité équilibrée pour l'exécution d'agents IA
strictSécurité maximale, permissions minimales
permissiveAdapté au développement, limites souples
ai-agentOptimisé pour les assistants de codage IA
cicdSécurité des pipelines CI/CD
remote-desktopSessions d'agents d'utilisation d'ordinateur
panicContournement d'urgence tout-refuser