DeepSHPlugins
dsh-riskproof 專案預覽
GITHUB / COMMUNITY PROJECT

dsh-riskproof

安全與運維TypeScriptApache-2.0

具備來源追蹤能力的執行安全機制,可跨 DSH 工具呼叫持續追蹤敏感資料,並在執行前阻斷高風險的資料外洩行為。

7 Starsonlyqzq 更新時間 2026-09-07
訪問 GitHub 倉庫
dsh-riskproof 專案預覽

專案介紹

中文

具備來源追蹤能力的執行安全機制,可跨 DSH 工具呼叫持續追蹤敏感資料,並在執行前阻斷高風險的資料外洩行為。

English

Provenance-aware execution security that tracks sensitive data across DSH tool calls and blocks risky exfiltration before execution.

專案資訊與收錄訊號

快照 2026-09-11
作者 / 組織
onlyqzq
倉庫
onlyqzq/dsh-riskproof
GitHub Stars
7
Forks
0
開發語言
TypeScript
許可證
Apache-2.0
最近推送
2026-09-07
Manifest
資料中檢測到宣告

公開倉庫不自動等於可商用;許可證與當前相容性以原專案文件為準。Manifest 和資料評分不構成安裝安全認證。

資料評分

73/ 100
維護活躍
98
文件與實用資訊
100
生態關注度
26
安裝便捷訊號
75
專案宣告訊號
100

近 4 天仍在更新;README 含完整安裝與使用說明;關注度尚低(7)。

評分來自已有資料快照的五維模型,僅作瀏覽參考,不是實際使用評測或安全檢測結論。

安裝與使用

所有專案資料與許可均以對應 GitHub 倉庫為準。

dsh plugin --profile web add github:onlyqzq/dsh-riskproof

複製命令不會自動執行。請先閱讀倉庫文件,確認環境要求與許可證。

專案截圖

倉庫 README

GitHub 原文

已儲存的倉庫文件快照;文件抓取時間未記錄,可能與上方目錄介紹處於不同版本。安裝前請核對當前倉庫說明。

儲存庫檔案保留原文,指令與授權文字不作自動改寫。

RiskProof

Provenance-aware execution security for DeepSeek Harness.

Track where tool inputs came from. Detect risky cross-tool data flows. Stop sensitive side effects before execution.

English · 简体中文


What RiskProof answers

Most tool-permission plugins answer one question: *is this tool allowed?*

RiskProof answers a different one:

Where did the data in this tool call come from, what did it flow through, and where is it about to go?

A single tool call is usually safe. The composition is not.

web_fetch          ← UNTRUSTED_WEB
   │
database_query     ← CUSTOMER_DATA
   │
send_email         ← external destination
   │
RiskProof → DENY   (evidence-backed, before the side effect)

Why RiskProof

Permission rulesRiskProof
Is this tool allowed?Where did this data come from?
Single callCross-tool flow
Tool nameProvenance + taint
Static ruleStateful attack chain
Permission decisionEvidence-backed execution decision

RiskProof is a layer over the DSH Tool Runtime, not another Agent Runtime. It never re-implements tool dispatch, approval, or lifecycle — it observes and decides.

Quick Start

# add the plugin to a DSH profile
dsh plugin --profile <profile> add [email protected]

# confirm the bundled patch was composed
dsh --profile <profile> --dump-config

The package declares a DSH bundle, so plugin add composes its riskproof row automatically. No second install or manual row is required. The schema defaults are safe; RiskProof silently tracks context and only asks or blocks when a risky cross-tool flow appears.

Version 0.2.1 is tested with DSH 0.1.0-rc.7, 0.1.0-rc.8, 0.1.1-rc.2, and 0.1.2-rc.1. Pinning this version also prevents a package manager release-age policy from resolving the incompatible 0.2.0 build.

To tune it, override the bundled row from the profile's later cordis.patch.yml layer:

- id: riskproof
  config:
    mode: enforce            # enforce | observe
    policy:
      preset: balanced         # permissive | balanced | strict
      internalDomains: [acme.internal]
      blockedDomains: [collector.evil.example]
      # allowedExternalDomains: [api.approved.example]
    classification:
      overrides:
        gmail_send: [EXTERNAL_ACTION]
        company_db: [PRIVATE_ACCESS]

See docs/configuration.md for the full reference.

See it work

sequenceDiagram
    participant A as Agent
    participant T as DSH ToolRuntime
    participant R as RiskProof

    A->>T: web_fetch(url)
    T->>R: tools/pre-execute
    R-->>T: allow (EXTERNAL_INGESTION recorded)
    T-->>A: untrusted content

    A->>T: database_query(sql)
    T->>R: tools/pre-execute
    R-->>T: ask (operator approves private access)
    T-->>A: CUST-8842 balance 125000

    A->>T: send_email(to=external, body=CUST-8842…)
    T->>R: tools/pre-execute
    R-->>T: DENY — ingestion + private access + sensitive data + external action
    T-->>A: Error: <reason>

The same flow is reproduced as a deterministic regression test in tests/security/attack-chain.test.ts.

Try it locally with no model or profile — a real DSH ToolRuntime pipeline with three mock tools:

npm run demo

See demo/README.md.

Features

Track data origin

Know where tool inputs came from. RiskProof maps arguments back to the tool results that produced them.

Follow sensitive data

Carry security labels — UNTRUSTED_WEB, CUSTOMER_DATA, PII, SECRET, … — across tool calls, additively.

Detect attack chains

Identify the EXTERNAL_INGESTION → PRIVATE_ACCESS → EXTERNAL_ACTION pattern that single-tool checks miss.

Stop before execution

Block or ask *before* the side effect runs, through the native tools/pre-execute gate.

Guard sensitive surfaces

Gate credential-file paths, high-confidence destructive commands, download-and-execute pipelines, blocked destinations, and credentials embedded in network-capable commands.

Adapt without rewriting rules

Start with the default balanced preset, roll out with permissive, or use strict; every configurable decision can still be overridden individually.

Explain every decision

Generate structured, privacy-preserving security evidence and actionable remediation for every decision. Keep proofs in memory or append them to an operator-controlled JSONL file.

How it works

RiskProof hooks the native DSH tool pipeline:

tools/pre-execute
    │  capability classification
    │  argument provenance mapping
    │  taint analysis
    │  toolchain state (EIT → PAT → NAT)
    │  deterministic policy evaluation
    ▼
allow / ask / deny   (monotonic with other plugins)
    │
tools/result
    │  update ContextTracker
    │  update Toolchain state
    ▼  record execution evidence
  • Classification is deterministic (tool name + description + schema), configurable, and never uses an LLM.
  • Provenance uses exact and bounded substring matching over a per-session context index.
  • Taint is additive; ordinary tool output can never remove a label.
  • Decisions are deterministic, explainable, and testable.

See docs/architecture.md.

Security boundaries

RiskProof protects supported observable tool-call flows through DSH:

  • DSH tool calls through the supported tools/pre-execute / tools/result paths
  • supported observable provenance (exact / bounded substring matching)
  • configured sensitive flows and cross-tool attack patterns

RiskProof does not replace:

  • OS sandbox / process isolation
  • network firewall / SSRF protection
  • endpoint security / malware scanning
  • credential vaults
  • full semantic DLP

See docs/security-model.md for the complete threat model and known limitations.

Documentation

Roadmap

v0.2 (current)

  • DSH-native runtime (tools/pre-execute, tools/result)
  • Provenance + taint tracking
  • Cross-tool EIT → PAT → NAT detection
  • Privacy-preserving proof with optional JSONL persistence
  • Policy presets, sensitive-path gates, deterministic command-risk checks, and egress domain policy
  • Remediation guidance and per-rule proof statistics

v0.3

  • Tool identity continuity
  • Task-aware policy
  • Execution receipts

Later

  • Output-side information-flow control
  • Trusted declassification

Contributing

Issues, rule submissions, tool-capability mappings, and false-positive reports are welcome. See CONTRIBUTING.md.

Security reporting

Please report vulnerabilities privately. See SECURITY.md.

License

Apache-2.0

使用前核對

安裝步驟、相容版本與授權範圍以原專案當前文件為準。Stars 和評分是快照中的導航訊號。

安裝與排錯 · 專案問題反饋

同類專案