
AI एजेंटों के कार्य सीमा के लिए पोर्टेबल सुरक्षा नियम
AI एजेंट सुरक्षा नियमों के लिए पोर्टेबल, खुला विनिर्देश
विनिर्देश · दस्तावेज़ · नियम-सेट · JSON स्कीमा
HushSpec AI एजेंट सुरक्षा नियमों के लिए एक खुला पॉलिसी प्रारूप है। यह परिभाषित करता है कि कोई एजेंट रनटाइम पर क्या कर सकता है, जिसमें फ़ाइलसिस्टम एक्सेस, नेटवर्क ईग्रेस, टूल उपयोग, सीक्रेट पहचान और बहुत कुछ शामिल है, बिना यह निर्धारित किए कि उन नियंत्रणों को कैसे लागू किया जाना चाहिए। यह अलगाव पॉलिसियों को विभिन्न रनटाइम, फ्रेमवर्क और भाषाओं में पोर्टेबल बनाता है।
v0.1.1-alpha — मुख्य विनिर्देश, सभी चार SDK (Rust, TypeScript, Python, Go), और h2h CLI प्रकाशित और कार्यात्मक हैं। 10 नियम प्रकारों और 3 एक्सटेंशन मॉड्यूल के साथ पार्स, सत्यापन, मूल्यांकन, विलय, रिज़ॉल्व, पहचान, हस्ताक्षर और ऑडिट करें। API सतह स्थिर हो रही है परंतु अभी तक फ्रोज़न नहीं है — v1.0 से पहले परिशोधन की उम्मीद करें।
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"
सभी चार SDK पूर्ण HushSpec पाइपलाइन लागू करते हैं — पार्स और सत्यापन से लेकर रिज़ॉल्यूशन और मूल्यांकन तक।
Homebrew, npm, और प्रीबिल्ट बाइनरीज़, रिलीज़ पाइपलाइन द्वारा निर्मित पहले
v0.xटैग से उपलब्ध हो जाती हैं, जब रिलीज़ पाइपलाइन आर्टिफैक्ट्स, टैप फ़ॉर्मूला और npm पैकेज प्रकाशित कर देती है। तब तक, Cargo के माध्यम से स्थापित करें।
सभी विधियाँ h2h कमांड स्थापित करती हैं। नीचे CLI टूल देखें।
[dependencies]
hushspec = "0.1"
npm install @hushspec/core
pip install hushspec
go get github.com/backbay-labs/hush/packages/go@main
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());
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
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
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())
प्रत्येक SDK एक evaluate() फ़ंक्शन प्रदान करता है जो पार्स किए गए स्पेक और एक एक्शन लेता है, फिर एक निर्णय (allow, warn, या deny) के साथ-साथ मैच किए गए नियम का विवरण लौटाता है।
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'
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")
HushGuard पॉलिसी लोडिंग और मूल्यांकन को एप्लिकेशन कोड के लिए एक सरल evaluate, check, और enforce इंटरफ़ेस के पीछे लपेटता है।
import { HushGuard } from '@hushspec/core';
const guard = HushGuard.fromFile('./policy.yaml');
guard.enforce({ type: 'tool_call', target: 'bash' }); // throws HushSpecDenied if denied
from hushspec import HushGuard
guard = HushGuard.from_file("./policy.yaml")
guard.enforce({"type": "tool_call", "target": "bash"}) # raises HushSpecDenied if denied
h2h CLI सामान्य पॉलिसी वर्कफ़्लो को कवर करता है: सत्यापन, परीक्षण, एकल एक्शन का मूल्यांकन और व्याख्या, लिंट, डिफ, फॉर्मेट, इनिशियलाइज़, हस्ताक्षर, सत्यापन, और पैनिक मोड ट्रिगर करना।
# 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
स्थापना विकल्पों के लिए ऊपर स्थापना देखें — Homebrew, npm, Cargo, या प्रीबिल्ट बाइनरीज़।
evaluate_audited() नियम ट्रेस, पॉलिसी सारांश और वैकल्पिक सामग्री रिडक्शन के साथ संरचित निर्णय रसीदें उत्पन्न करता है। रसीदें hushspec-receipt.v0.schema.json के अनुरूप होती हैं और SOC 2, HIPAA, PCI-DSS, और FedRAMP जैसे ऑडिट-गहन वातावरणों का समर्थन करने के लिए डिज़ाइन की गई हैं।
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
रसीद सिंक (FileReceiptSink, ConsoleReceiptSink, FilteredSink, MultiSink, CallbackSink) चारों SDK में उपलब्ध हैं, ताकि रसीदों को स्टोरेज, लॉगिंग, या OTLP एंडपॉइंट तक रूट किया जा सके।
पहचान पाइपलाइन प्रॉम्प्ट इंजेक्शन, जेलब्रेक और एक्सफिलट्रेशन जांचों को मूल्यांकन प्रवाह में जोड़ती है। रेगेक्स-आधारित संदर्भ डिटेक्टर सभी SDK के साथ आते हैं, और कस्टम डिटेक्टर DetectorRegistry के माध्यम से पंजीकृत किए जा सकते हैं।
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
प्रीबिल्ट अनुकूलक फ्रेमवर्क-विशिष्ट टूल कॉल्स को HushSpec मूल्यांकन एक्शन में अनुवादित करते हैं।
EvaluationObserver इंटरफ़ेस और ObservableEvaluator रैपर प्रत्येक मूल्यांकन, पॉलिसी लोड और पॉलिसी रीलोड के लिए संरचित घटनाएँ उत्सर्जित करते हैं। अंतर्निहित ऑब्ज़र्वर में JsonLineObserver, ConsoleObserver, और MetricsCollector शामिल हैं।
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);
पॉलिसियों पर Ed25519 कुंजियों के साथ हस्ताक्षर किए जा सकते हैं और लोड समय पर सत्यापित किए जा सकते हैं। CLI sign, verify, और keygen कमांड प्रदान करता है। हस्ताक्षर प्रारूप hushspec-signature.v0.schema.json के अनुरूप है।
# 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
पैनिक मोड एक डिनाय-ऑल किल स्विच है जिसे पॉलिसियों को पुनः तैनात किए बिना तुरंत सक्रिय किया जा सकता है। आप इसे सेंटिनल फ़ाइल, CLI, या API कॉल से ट्रिगर कर सकते हैं। जब पैनिक मोड सक्रिय होता है, तो प्रत्येक मूल्यांकन deny लौटाता है।
# Activate panic mode
h2h panic activate --sentinel /tmp/hushspec.panic
# Deactivate
h2h panic deactivate --sentinel /tmp/hushspec.panic
import { activatePanic, deactivatePanic, isPanicActive } from '@hushspec/core';
activatePanic();
// All evaluate() calls now return deny
deactivatePanic();
पॉलिसियों को स्थानीय फ़ाइलों, HTTPS URLs (ETag कैशिंग और SSRF सुरक्षा के साथ), या अंतर्निहित नियम-सेट से लोड किया जा सकता है। PolicyWatcher और PolicyPoller प्रक्रिया को पुनरारंभ किए बिना हॉट रीलोड का समर्थन करते हैं।
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();
HushSpec अधिक उन्नत पॉलिसी व्यवहार के लिए वैकल्पिक एक्सटेंशन मॉड्यूल का समर्थन करता है:
| एक्सटेंशन | उद्देश्य |
|---|---|
| Posture | क्षमताओं और बजट के लिए घोषणात्मक स्टेट मशीन |
| Origins | ओरिजिन-जागरूक पॉलिसी प्रोजेक्शन (Slack, GitHub, ईमेल, आदि) |
| Detection | प्रॉम्प्ट इंजेक्शन, जेलब्रेक, थ्रेट इंटेल के लिए थ्रेशोल्ड कॉन्फ़िग |
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/ में हैं:
HushSpec दस्तावेज़ Clawdstrike में मूल रूप से लोड होते हैं:
// Auto-detects HushSpec vs Clawdstrike-native format
let policy = clawdstrike::Policy::from_yaml_auto(yaml)?;
# Convert between formats
hush policy migrate policy.yaml --to hushspec
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
मानक विनिर्देश spec/ में है। प्रोग्रामेटिक सत्यापन के लिए JSON स्कीमा परिभाषाएँ schemas/ में हैं। पूर्ण दस्तावेज़ीकरण docs/ में है।
Apache-2.0। देखें LICENSE।
| क्षमता | Rust | TypeScript | Python | Go |
|---|
| पार्स + सत्यापन (स्तर 1) | हाँ | हाँ | हाँ | हाँ |
| विलय (स्तर 2) | हाँ | हाँ | हाँ | हाँ |
| रिज़ॉल्व (स्तर 2+) | हाँ | हाँ | हाँ | हाँ |
| मूल्यांकन (स्तर 3) | हाँ | हाँ | हाँ | हाँ |
| ऑडिट ट्रेल (स्तर 4) | हाँ | हाँ | हाँ | हाँ |
| पहचान | हाँ | हाँ | हाँ | हाँ |
| अवलोकनीयता | हाँ | हाँ | हाँ | हाँ |
| रसीद सिंक | हाँ | हाँ | हाँ | हाँ |
| विधि | कमांड |
|---|
| Homebrew (macOS/Linux) | brew install backbay-labs/tap/h2h |
| npm | npm install -g @hushspec/cli (या npx @hushspec/cli validate policy.yaml) |
| Cargo (स्रोत से) | cargo install hushspec-cli |
| प्रीबिल्ट बाइनरीज़ | GitHub Releases — h2h-<tag>-<target>.tar.gz + SHA256SUMS, प्रोवेनेंस-प्रमाणित |
| फ्रेमवर्क | अनुकूलक | SDK |
|---|
| Claude / Anthropic | mapClaudeToolToAction, createSecureToolHandler | TypeScript |
| OpenAI | mapOpenAIToolCall, createOpenAIGuard | TypeScript |
| MCP (मॉडल कॉन्टेक्स्ट प्रोटोकॉल) | mapMCPToolCall, createMCPGuard | TypeScript |
import { HushGuard, mapClaudeToolToAction } from '@hushspec/core';
const guard = HushGuard.fromFile('./policy.yaml');
const action = mapClaudeToolToAction(toolUseBlock);
guard.enforce(action);
| नियम | उद्देश्य |
|---|
forbidden_paths | संवेदनशील फ़ाइलसिस्टम पथों तक पहुंच अवरुद्ध करें |
path_allowlist | एलोलिस्ट-आधारित पढ़ने/लिखने/पैच पहुंच |
egress | डोमेन द्वारा नेटवर्क ईग्रेस नियंत्रण |
secret_patterns | फ़ाइल सामग्री में सीक्रेट का पता लगाएं |
patch_integrity | डिफ सुरक्षा सत्यापित करें (आकार सीमाएं, निषिद्ध पैटर्न) |
shell_commands | खतरनाक शेल कमांड अवरुद्ध करें |
tool_access | टूल/MCP आह्वान नियंत्रित करें |
computer_use | CUA एक्शन नियंत्रित करें |
remote_desktop_channels | रिमोट डेस्कटॉप साइड चैनल नियंत्रित करें |
input_injection | इनपुट इंजेक्शन क्षमताएं नियंत्रित करें |
| नियम-सेट | विवरण |
|---|
default | AI एजेंट निष्पादन के लिए संतुलित सुरक्षा |
strict | अधिकतम सुरक्षा, न्यूनतम अनुमतियाँ |
permissive | डेवलपमेंट-अनुकूल, लचीली सीमाएँ |
ai-agent | AI कोडिंग सहायकों के लिए अनुकूलित |
cicd | CI/CD पाइपलाइन सुरक्षा |
remote-desktop | कंप्यूटर उपयोग एजेंट सत्र |
panic | डिनाय-ऑल आपातकालीन ओवरराइड |