防护思路
点击放大

A portable go and execution framework that puts a policy, e, and layer between any model and any security tool — for authorized defensi.
![CI]()

![.NET]()

![Tests]()
Security teams and authorized bug-bounty researchers increasingly use LLMs to draft actions, triage findings, and explain methodology. The usual failure mode is that a con proposal goes straight into a terminal or API with no durable authorization check, permit, e chain, or independent . That is unsafe for operations and unusable as professional e.
Cyber SOP Harness puts an external control plane between a model and a tool. It converts procedures into stateful, workflows:
> The model proposes. The policy engine decides. The typed adapter executes. The e store records. The independent .
The result: deterministic offline fixtures and li run under the same fail-closed policy, and every step lea, tamper-detectable e.
This project is for authorized work only. It does not authorize targets, bypass scope, or turn an untrusted finding into proof.
De preview — not approved for production engagements or li operations.
| Capability | A today |
|---|---|
| Go offline pipeline | Working Windows/Linux CLI path through policy, permit, synthetic-tool dispatch, , report, journal, and replay tests; zero li executions to date |
| Command desk | Fixed-verb terminal surface with doctor, status, help, model inspection, JSON mode, bounded history, sanitization, and emergency stop; Phase B views are in progress |
| Cross-platform builds | Linux/arm64 build and 48-test pass locally; custody uses DPAPI on Windows and a passphrase-protected key file elsewhere; .NET chosen for compile-time safety in a go framework where type errors mean bypasses |
| Local model runtime | LFM2.5 can be hash-pinned and served from the desk at 2K context in de preview; loopback-only runtime is offline with tools disabled |
| Security tools | Two read-only adapters exist: HTTP header inspection and DNS reverse lookup for authorized desk dispatch with DNS pinning, redirect/proxy/cookie blocking, bounded output, sensiti redaction, e, and pro; more adapters via the typed IToolAdapter interface |
| Production gate | No release has passed li containment, operator acceptance, threat-model review, and independent e |
Do not point this software at infrastructure you are not explicitly authorized to assess.
IModelProvider surface.run pipeline and JSON journal.Authorized defensi only. The harness must fail closed when authorization, scope, identity, e, or containment is missing or ambiguous — and it does, by design: strict manifest , no action without a permit, loopback-only local model connections, consent-gated external APIs, and never a degraded run.
No credentials or target data are stored in the repository. All local runtime state li data/ (journal, artifacts, secrets, keys, selection) and is git-ignored.
See SECURITY.md for the security model and reporting.
The policy engine e a canonicalized action against the frozen authorization manifest, signed appro, target/resol scope (including redirects), allowed/prohibited methods, registered typed capability, risk class, and action-bound expiry-checked approval. R4 is denied. The repository's executable adapter is currently fixture.inspect; additional tools must enter through the same frozen registry and policy path.
Trust boundaries: the model ne to tools; every proposal crosses the parser, policy, permit, and broker before any tool executes, and every execution is journaled and independently .
Prerequisites:
Model weights and the llama.cpp engine are user-staged, not bundled — see Configuration.
Windows uses DPAPI. Other desktop platforms use PBKDF2-HMAC-SHA512 plus AES-256-GCM key protection with an interacti (12-character minimum). Custody remains local; the harness ne keys or passphrases.
Three commands to see the whole go pipeline:
run prints the li — READY → PROBE → POLICY → PERMIT → DISPATCH → PRO → → REPORT → JOURNAL → STOPPED — and persists data/e.journal plus signed artifacts under data/artifacts/.
Start the fixed-verb operations shell without enabling free-form terminal access:
The desk supports action, doctor, emergency, engagement, e, exit, help, model, proposal, report, and status. Use --engagement-manifest /absolute/path.json and --owner-public-key /absolute/path.pem to a signed engagement or proposal without target interaction (engagement , proposal --file) or to submit an authorized http.headers.inspect proposal (proposal submit --file). Use --json for machine-readable output, --no-color to disable styling explicitly, --no-history for ephemeral sessions, and --command 'status\nhelp' for scripted checks. A critical result engages emergency stop and ends the REPL.
For a staged model, review its license first, then use:
Pinning every manifest artifact by SHA-256 and enforces explicit disk/memory budgets before recording a provider. Serving binds only to loopback, starts offline with tools disabled, checks health/model identity, performs warmup, and stops the process tree on exit or emergency stop. The model/runtime artifacts remain user-staged and are not distributed by this repository.
| Command | Description |
|---|---|
| setup | Provider/model selection wizard with full disclosure checks |
| run [--port N] [--telemetry] [--data-dir DIR] | Select → bootstrap → probe → go execution → stop |
| endpoint set <url> / clear / show | External model endpoint custody (https any host, http loopback-only) |
| secret set/get/clear/rotate <name> | Platform-protected secret custody |
| model list / info <name> / select <name> | Staged model catalog and acti |
| status | Selection, runtime, e, and endpoint state |
| desk [options] | Fixed-verb command shell with plain/ANSI rendering, bounded history, JSON mode, and emergency stop |
models/<name>/ with a MODEL-RUNTIME-MANIFEST.json (see the staged-example notice in the repo) and a pinned llama.cpp build under runtime/. The bootstrapper the manifest, binds a loopback-only provider, and waits for readiness (default 180 s budget).endpoint set <url> (loopback http or any https) + secret set external-api + setup --provider external-api --ack-egress yes. The wizard hides the external choice until both endpoint and secret exist.data/ and can be relocated with run --data-dir.Every go run produces: a DurableE with recovery and tamper detection, raw and redacted artifacts (SHA-256 by an independent ), and a protected runtimee pro key with rotation support. Protection is DPAPI-backed on Windows or passphrase-backed AES-GCM elsewhere. run replays the journal on restart and re- recorded e before continuing.
48 deterministic offline tests across three self-running suites. The count is deliberately conser: these are fast, reproducible contract and behavior tests rather than broad model-output snapshots. Real-model smoke co remains opt-in so CI does not depend on weights or network access:
A real-model runtime smoke test is opt-in via PHASE3B_REAL_MODEL=1 and never runs in CI. CI builds on Windows and Linux with warnings treated as errors, runs all 48 deterministic tests, and rejects changes that cannot meet those gates.
Contributions are welcome — see CONTRIBUTING.md for build/test commands, con, and the PR process.
MIT — SPDX: MIT
The CyberSopHarness.Core assembly is the public API surface. The CLI is a thin wrapper. You can embed the go pipeline directly:
Key types for embedding:
PolicyEngine — e actions against capabilities, scope, and authorizationPermitIssuer — creates cryptographically signed one-use permitsToolBroker — dispatches permits to typed tool adapters with e captureE / DurableE — append-only e storagePro — signs and e chainsIModelPro — implement this to add new model proIToolAdapter — implement this to add new tool adaptersThe IModelPro interface (src/CyberSopHarness.Core/Phase3Contracts.cs:85) is the extension point for new model pro:
Three implementations exist today:
LocalModelPro — serves GGUF models .cppLoopbackEndpointPro — proxies to a local HTTP model serverExternalApiPro — connects to remote model APIs with consent gatingTo add a new provider (vLLM, Ollama, custom endpoint):
1. Implement IModelPro with your descriptor and proposal logic
2. Register it in the provider selection wizard
3. The policy engine, permit system, and e chain work unchanged
The wizard and secret custody are coupled to provider identity by design — you cannot silently swap pro without operator consent. This is a security feature, not a limitation.
The 44 tests are contract and behavior tests, not broad model-output snapshots. They cover:
What they do NOT cover (and why):
PHASE3B_REAL_MODEL=1)The gap between "44 tests pass" and "production-ready" is real. The tests prove the contracts work under deterministic conditions. Li testing will expose hallucination-induced payloads, malformed responses, and timing issues that fixtures cannot simulate.
开发语言:C#
Star 数:2
该项目属于防护思路方向的开源资源,代码结构清晰,适合安全研究人员学习参考。项目围绕A portable governance and execution framework that puts a policy, evidence, and verification layer between any model and any security tool - for authorized defensive testing.展开,提供了可运行的实现,对理解相关安全机制、工具原理与攻防技术具有较高的研究价值。
从技术实现角度看,此类项目的核心在于对底层原理的深入理解与工程化落地。开发者在研究过程中可以结合官方文档与社区讨论,梳理项目的初始化流程、核心模块职责与数据流转,逐步掌握其中的技术细节与设计思路。
1. 下载源码压缩包,解压到本地环境。
2. 根据项目类型准备对应的运行环境与依赖。
3. 按照 README 中的步骤完成配置与部署。
4. 在隔离的测试环境中运行验证,避免影响生产系统。
本资源来源于开源社区,仅供安全研究、技术学习与合法授权范围内的攻防演练使用,请勿用于任何非法或侵害他人权益的用途。使用本项目产生的一切后果由使用者自行承担。
| 资源标题 | cyber-sop-harness - A portable governance and execution framework that |
| 所属分类 | 防护思路 |
| 发布作者 | admin |
| 发布时间 | 2026-10-06 00:20:52 |
| 下载权限 | 免费下载 |
| 附件数量 | 2 个下载链接 |
| 浏览次数 | 169 |
| 讨论数量 | 0 |
| 主题状态 | 正常讨论中 |