Token导航 LogoToken导航TokenDH.com
Deep Code Security logo
安全风控stdio官方级别未说明来源级核验

Deep Code Security

MCP Server

一款支持多语言的静态应用安全测试(SAST)和动态模糊测试工具,提供漏洞检测、验证和修复指导,适用于软件开发中的安全审计。

工具数

8

提示词数

0

GitHub Stars

0

资源数

0
静态分析安全审计PythonClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

backspace-shmackspace

提供方

backspace-shmackspace

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -e ".[dev]"

详细介绍

深度代码安全

具有代理验证和人工智能模糊的多语言SAST工具。两种分析模式:

  1. 静态分析(SAST) -使用Semgrep和树型回退进行确定性AST解析、沙盒验证的漏洞利用PoC和结构化修复指导
  2. 动态分析(引信) -基于人工智能的模糊器,具有覆盖率引导反馈、崩溃重复数据删除和语料库管理功能

通过MCP服务器公开克劳德代码集成的所有功能。

快速开始

# Install (basic)
pip install -e ".[dev]"

# Install with fuzzing support
pip install -e ".[dev,fuzz]"

# Static analysis via CLI
dcs hunt /path/to/project
dcs hunt /path/to/project --ignore-suppressions
dcs verify --finding-ids  

# Dynamic analysis (fuzzing) via CLI
dcs fuzz /path/to/target.py
dcs replay /path/to/corpus
dcs corpus /path/to/corpus
dcs fuzz-plugins
dcs report /path/to/output

# Integrated SAST-to-Fuzz pipeline
dcs hunt-fuzz /path/to/project

# Enable C fuzzing (in addition to Python)
export DCS_FUZZ_ALLOWED_PLUGINS=python,c

# Build the C fuzzer sandbox (Podman required)
make build-fuzz-c-sandbox

# Fuzz a C target with SAST-to-Fuzz bridge
dcs hunt-fuzz /path/to/c_project --consent

# Run via MCP server
python -m deep_code_security.mcp

建筑

静态分析(SAST)

Target Codebase
    |
    v
HUNTER     scanner backend (Semgrep/tree-sitter) → source/sink match → taint track
    |      Output: RawFinding[] (JSON, paginated)
    v
AUDITOR    PoC generation → sandbox execution → confidence scoring
    |      Output: VerifiedFinding[] (JSON)  [Exploit = 10% bonus only]
    v
ARCHITECT  context gather → guidance generation → dependency analysis
           Output: RemediationGuidance[] (JSON)

动态分析(引信)

Target Function
    |
    v
FUZZER     LLM-guided input generation → sandboxed execution →
           crash detection → corpus management → coverage tracking
           Output: CrashReport[] (JSON, with reproducer inputs)

支持的语言(v1)

  • Python(Flask、Django模式;SAST+模糊测试)
  • Go(net/http、数据库/sql模式;仅限SAST)
  • C(命令注入、缓冲区溢出、格式化字符串、内存损坏

模式;SAST+模糊测试)。C模糊要求 DCS_FUZZ_ALLOWED_PLUGINS=python,c 以及人工智能驱动的线束生成 地址消毒器和gcov仪器。

抑制文件

您可以通过创建 .dcs-suppress.yaml 文件 在您的项目根目录中。这有助于标记已接受的误报 风险或稍后将讨论的发现。

基本用法:

# .dcs-suppress.yaml
version: 1
suppressions:
  - rule: CWE-22
    file: "src/config/*.py"
    reason: "Config paths are admin-controlled"

  - rule: CWE-89
    file: "src/legacy/db.py"
    line: 145
    reason: "Legacy code scheduled for refactor in Q2"

CLI标志:

  • 默认情况下,在以下期间应用抑制 dcs hunt, dcs full-scan,

dcs hunt-fuzz 命令

  • 使用 --ignore-suppressions 绕过抑制文件并显示全部

发现

笔记:

  • 抑制文件仅影响SAST发现,不影响模糊崩溃
  • 文件必须命名 .dcs-suppress.yaml 并位于项目中

  • 所有格式化程序(文本、JSON、SARIF、HTML)在中显示抑制统计信息

产量

安装

# Clone
git clone https://github.com/your-org/deep-code-security.git
cd deep-code-security

# Install with dev dependencies
pip install -e ".[dev]"

# Install with fuzzing support (requires anthropic SDK)
pip install -e ".[dev,fuzz]"

# Build sandbox images (requires Docker or Podman)
make build-sandboxes        # Build auditor/architect sandbox images
make build-fuzz-sandbox     # Build Python fuzzer sandbox image (Podman only)
make build-fuzz-c-sandbox   # Build C fuzzer sandbox image (Podman only)

MCP配置

添加 ~/.claude/settings.json:

{
  "mcpServers": {
    "deep-code-security": {
      "command": "python",
      "args": ["-m", "deep_code_security.mcp"],
      "cwd": "/path/to/deep-code-security",
      "env": {
        "DCS_REGISTRY_PATH": "/path/to/deep-code-security/registries",
        "DCS_ALLOWED_PATHS": "/path/to/projects",
        "DCS_CONTAINER_RUNTIME": "auto",
        "ANTHROPIC_API_KEY": "your-api-key-here"
      }
    }
  }
}

可选环境变量

对于高级调优,可以使用其他变量:

静态分析:

变量默认值描述
DCS_SCANNER_BACKENDauto扫描仪后端: semgrep, treesitter,或 auto (如果可用,请选择semgrep)
DCS_SEMGREP_TIMEOUT120Semgrep子进程的最大秒数
DCS_SEMGREP_RULES_PATH/semgrepDCS Semgrep规则文件的路径
DCS_MAX_RESULTS100每次狩猎行动返回的最大发现数
DCS_MAX_VERIFICATIONS50审计阶段需要验证的最大发现
DCS_SANDBOX_TIMEOUT30每次漏洞利用超时(秒)
DCS_MAX_FILES10000每次扫描的最大文件数
DCS_MAX_CONCURRENT_SANDBOXES2沙盒执行的并发限制
DCS_QUERY_TIMEOUT5.0树保姆查询超时(秒)
DCS_QUERY_MAX_RESULTS1000每个树座查询的最大结果数
DCS_BRIDGE_MAX_TARGETS10SAST对fuzz桥产生的最大模糊目标

动态分析(引信):

变量默认值描述
ANTHROPIC_API_KEY(none)Claude的API密钥(模糊化需要)
GOOGLE_CLOUD_PROJECT(无)Vertex AI的GCP项目ID(可选)
CLOUD_ML_PROJECT_NUMBER(无)Vertex AI的GCP项目编号(可选)
ANTHROPIC_VERTEX_PROJECT_ID(无)顶点AI项目覆盖(可选)
DCS_FUZZ_MODELclaude-sonnet-4-6输入生成的Claude模型
DCS_FUZZ_MAX_ITERATIONS10最大模糊迭代次数
DCS_FUZZ_INPUTS_PER_ITER10每次迭代生成的输入
DCS_FUZZ_TIMEOUT_MS5000每次输入执行超时
DCS_FUZZ_MAX_COST_USD5.0API成本预算
DCS_FUZZ_OUTPUT_DIR./fuzzy-output语料库和报告输出目录
DCS_FUZZ_CONSENTfalseCI的预配置同意
DCS_FUZZ_GCP_REGIONus-east5Vertex AI的GCP区域
DCS_FUZZ_ALLOWED_PLUGINSpython逗号分隔的模糊器插件列表(默认:python;设置为python,c启用两者)
DCS_FUZZ_MCP_TIMEOUT120MCP模糊调用的硬墙时钟超时
DCS_FUZZ_CONTAINER_IMAGEdcs-fuzz-python:latestContainerBackend用于MCP模糊运行的Podman映像
DCS_FUZZ_C_CONTAINER_IMAGEdcs-fuzz-c:latestCContainerBackend使用的Podman图像
DCS_FUZZ_C_COMPILE_FLAGS""逗号分隔的gcc标志(例如。, -O2,-march=native)
DCS_FUZZ_C_INCLUDE_PATHS""逗号分隔的C线束编译包含路径

MCP工具

工具说明
deep_scan_hunt运行Hunter阶段(AST解析+污染跟踪)
deep_scan_verify运行审核阶段(沙盒漏洞验证)
deep_scan_remediate运行架构师阶段(补救指导)
deep_scan_full按顺序运行所有三个阶段
deep_scan_status检查沙盒运行状况和注册表信息
deep_scan_fuzz运行AI驱动的模糊测试(需要Podman容器后端)
deep_scan_hunt_fuzz运行SAST分析,然后对识别出的脆弱功能进行人工智能模糊测试(需要Podman+同意)
deep_scan_fuzz_status检查模糊器的可用性和配置

信心评分

置信度得分(0-100)使用加权复合:

因素重量备注
Taint路径完整性45%完整路径=100,部分路径=50,启发式路径=20
消毒剂缺失25%无消毒剂=100,满消毒剂=0
CWE严重性基线20%严重=100,高=75,中=50,低=25
漏洞利用验证10%仅奖金 --失败的PoC不会受到惩罚

阈值: >=75 确认, >=45 可能, >=20 未经证实, <20 假阳性

沙盒安全策略

沙盒容器强制执行:

  • --network=none --无网络访问
  • --read-only --只读根文件系统
  • --tmpfs /tmp:rw,noexec,nosuid,size=64m --使用noexec写入临时文件
  • --cap-drop=ALL --没有Linux功能
  • --security-opt=no-new-privileges --无特权升级
  • --security-opt seccomp=seccomp-default.json --自定义seccomp配置文件
  • --pids-limit=64 --没有叉式炸弹
  • --memory=512m --内存上限
  • --user=65534:65534 --像无名小卒一样奔跑

发展

make lint           # Lint with ruff
make test           # All tests (90%+ coverage required)
make test-hunter    # Hunter tests only
make test-auditor   # Auditor tests only
make test-architect # Architect tests only
make test-mcp       # MCP server tests only
make test-fuzzer    # Fuzzer tests only
make test-c-fuzzer  # C fuzzer plugin tests only
make sast           # Security scan with bandit
make security       # sast + pip-audit

注册表格式

registries/README.md 对于YAML注册表格式文档。

已知限制(v1)

  1. 仅限于程序内污染 --源和汇必须在同一个功能体中。预期检测率: 10-25% 真实世界的注射漏洞。大多数web应用程序漏洞跨越多个函数调用边界,v1无法检测到。
  1. 查询脆弱性(仅限树型后端) --树型查询匹配特定的AST形状。使用Semgrep后端时,可以正确处理别名导入、完全限定名和类属性。使用树保姆时,以下模式不匹配:

- 别名导入: req = request; req.form - 完全限定名称: flask.request.form - 类属性: self.request.form - 连锁电话: request.form.get("key") (仅部分匹配)

  1. PoC验证只是奖励 --大多数基于模板的PoC由于缺少执行上下文(框架设置、依赖注入、状态初始化)而失败。PoC失败并不意味着漏洞是假的。漏洞利用奖金上限为10分。
  1. 无跨语言污点 --不分析Python通过FFI调用C。每种语言都是独立分析的。
  1. 无过程间分析 --v1中不跟踪跨函数/文件的调用图。推迟到v1.1。
  1. Fuzzer需要可选的依赖关系 --动态分析需要 pip install -e ".[fuzz]" 要安装 anthropic SDK和相关软件包。没有这些依赖关系,模糊器将不可用。
  1. deep_scan_fuzz MCP工具需要Podman --MCP模糊测试工具使用

ContainerBackend用于完全隔离,仅在Podman处于以下状态时可用 安装和 dcs-fuzz-python:latest 图像是通过以下方式构建的 make build-fuzz-sandbox.CLI模糊测试支持两个子进程后端 (仅限限制)和ContainerBackend。

  1. C语言:无预处理器解析#ifdef 警卫和宏观

扫描仪看不到扩展。隐藏在条件后面的代码 编译将不会被分析。

  1. C语言:无结构体成员污染跟踪 --污点不会传播

通过结构体字段分配。只有标量变量和直接指针 取消引用被跟踪。

  1. C语言:仅在同一函数内跟踪指针别名

程序内约束适用(与限制1相同)。指针 传递给其他函数的别名不会被跟踪。

  1. C语言:输出参数源延迟 --C源函数

通过输出参数传递受污染的数据(recv, fread, read, scanf, getline, getdelim)在v1中不是有效的污染源。 仅返回值为受污染数据的函数(argv, getenv, gets, fgets)正确使用LHS播种污染发动机。

  1. C语言:CWE-416(免费后使用)检测延迟 --要求

时序分析(跟踪 free(ptr) 在a之前 后续使用 ptr),这与 源到汇污染模型。

  1. C语言: mktemp()/tmpnam() 探测间隙 --注册为

CWE-676会下沉,但污染流管道需要一个源头才能下沉 路径。大多数现实世界的使用都是用硬编码的模板字符串来调用这些,所以 它们不会被标记。

  1. **C模糊器线束验证是基于allowlist的,而不是

防沙箱逃逸** --C模糊器编译并执行生成的LLM 带有seccomp强制的Podman容器内的C代码。双层AST 验证禁止危险的系统调用和非标准包含,但是 这是一种深度防御措施,而不是一个完整的安全边界。这 主要的隔离机制是Podman容器 --network=none, --read-only, --cap-drop=ALL,以及自定义seccomp配置文件 (sandbox/seccomp-fuzz-c.json).快速注射攻击,逃避 AST allowlist仍然可以在容器内执行任意代码(但是 不要逃到主人那里)。

安全模型

MCP服务器作为 本地stdio进程 在主机上。它不运行 在Docker容器中,避免Docker套接字装载攻击向量。 Docker或Podman用于执行漏洞PoCs的沙盒容器 (审计员/架构师阶段)。模糊器的ContainerBackend使用Podman 专门用于无根容器执行。

所有文件访问都通过 DCS_ALLOWED_PATHS 通过符号链接解析进行满列表验证。在利用模板插值之前,所有RawFinding字段都经过验证。查找来源是通过服务器端会话存储验证的(外部调用者不能注入任意结果)。

引信执行模型

Python和C模糊器在沙盒容器中使用了根本不同的执行模型:

  • Python模糊器 (_worker.py):使用 eval() 具有受限的全局变量(无导入、有限的内置)和双层AST验证。不会生成任意机器代码。
  • C模糊器 (_c_worker.py):不使用 eval()。相反,AI生成的C源代码是用 gcc 并执行得到的二进制文件。这意味着任意机器代码在容器内运行,使Podman seccomp配置文件(sandbox/seccomp-fuzz-c.json)主要安全边界。

两个后端都在下面运行 --network=none, --read-only, --cap-drop=ALL, --pids-limit=64,以及 --memory=512m.

v1.1路线图

  • 程序间污染跟踪(调用图构建)
  • Java和Rust语言支持
  • 其他注册表模式(别名导入、完全限定名)
  • gVisor/Firecracker沙箱选项,用于高风险部署

目录标签

目录标签

静态分析安全审计PythonClaude本地部署动态模糊测试漏洞检测多语言支持

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP