ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Deepsec:Agent 驱动的自托管代码库漏洞扫描器全面指南

Deepsec:Agent 驱动的自托管代码库漏洞扫描器全面指南 应用安全漏洞扫描人工智能AI Agent【免费下载链接】deepsecDeepsec is a security harness for finding vulnerabilities in your codebase powered by coding agents项目地址https://gitcode.com/gh_mirrors/deeps/deepsec点击查看免费下载本文围绕仓库根目录 README.md 展开深入解读 deepsec 的定位、初始化与稳态工作流、分布式执行、模型与凭据路由、安全性模型及完整命令参考并结合 docs/ 系列文档与packages/源码补充实现细节。核心定位面向全量存量代码的 Agent 驱动漏洞扫描README.md 将deepsec定义为 an agent-powered vulnerability scanner that you can run in your own infrastructure即一个可运行在自有基础设施上的、由 AI Agent 驱动的漏洞扫描器。它与传统 SAST 工具的关键差异在于设计目标面向存量大规模仓库的按需全量审查它不是只盯 pull request而是可以对现有大型代码库中所有代码做一次完整的、基于 AI 的复查专门挖掘长期潜伏在应用中的疑难漏洞以最强模型、最高推理强度运行为默认扫描会使用当前最好的模型并以最大思考级别运行可通过--thinking-level调节参见 docs/models.md因此对大型代码库而言一次扫描可能花费数千甚至数万美元——用户愿意为此买单是因为修复漏洞的速度远快于漏洞长期无人处理造成的损失并行分片大型代码库的工作会并行地分发到多台工作机器上执行断点续跑如果一次运行中途被中断或出错只需重新运行同一条命令deepsec 会跳过已经分析过的文件只继续调查剩余部分。从 SKILL.md 的 Agent 使用手册可以看出更具体的场景现代 AI 模型擅长安全代码审查但大多数审查方案只运行在 PR 上这意味着大量遗留代码从未被审查过甚至六个月前的代码也从未被新的模型审查过。deepsec 的定位正是对整个现有代码库做安全审查并使用规模化 VM 扇出来支撑这一目标。快速开始npx deepsec init一键完成全流程在你要扫描的仓库根目录下运行npx deepsec init该命令会引导你完成所有步骤全程无人值守地工作。根据 docs/getting-started.md 的详细说明它只向你询问两件事其余全部自动完成选择模型你会看到一组推荐的模型与推理级别组合每一项都带有其在 DeepSecBench 基准上的得分以及相对最便宜选项的成本也可以选择最后一个选项自行输入任意模型。如何为模型调用付费默认走 Vercel AI Gateway——如有需要 deepsec 会引导你登录 Vercel并建立一个小的专用项目来保存凭据setup 期间不会创建任何计费资源如果你想用自己的 OpenAI/Anthropic API key则完全不需要 Vercel 账号。随后 deepsec 会无人值守地工作在代码旁边创建.deepsec/文件夹这是它向仓库中唯一新增的东西研究代码库以理解其功能与风险区域运行快速的模式扫描然后开始对标记文件进行 AI 审查。根据仓库规模AI 审查阶段可能耗时几分钟到很多小时。中断后直接续跑只需重新运行同一条命令npx deepsec initdeepsec 会记住进度已完成步骤会被跳过从断点继续。无论是按 Ctrl-C、断网、还是触发了成本上限都适用这一恢复方式。若 setup 无法覆盖某个被盘点出的攻击面它会在进入付费 AI 处理前停下并打印确切的清单、状态、生成匹配器与续跑命令状态中会记录匹配器提案及拒绝原因。重新运行 setup 最多可进行两次全新的匹配器修复尝试因此在编辑generated-matchers.ts或底层仓库模式后覆盖性暂停是可恢复的。限制时间与成本可以给一次运行加上边界稍后再继续剩余部分npx deepsec init --max-cost-usd 100 --max-duration 2h达到限制时deepsec 会在安全点停止。重新运行同一条命令即可继续。时长参数需要显式单位ms、s、m或h。在 packages/deepsec/src/cli.ts 中可以看到时长解析的实现parseDuration通过正则/^(\d(?:\.\d)?)(ms|s|m|h)$/校验并换算为毫秒。如果运行因模型提供商额度/积分耗尽而停止deepsec 会优雅停止并告诉你去哪里充值之后重新运行同一条命令即可从断点继续。查看结果deepsec 产生的所有内容都存放在.deepsec/文件夹中。获取可读报告cd .deepsec pnpm deepsec export --format md-dir --out ./findings这会在./findings下为每条 finding 写一个 markdown 文件。如果想快速总览也可以运行pnpm deepsec report稳态工作流初始化与逐阶段管道deepsec 将运行分成两段一次性初始化one-shot setup与稳态steady-state管道。docs/architecture.md 给出了完整的初始化图与稳态流水线scaffold → install → link/model/Sandbox → INFO inventory │ ▼ baseline scan → coverage policy │ gap ▼ declarative matcher generation │ └──→ final scan → process steady state: scan → process → revalidate → enrich → export/reportdeepsec init与deepsec setup共同协调这个初始化图。每个阶段都会写入输入摘要digest与输出检查点checkpoint重试会跳过已完成阶段并从第一个缺失或无效的输出处恢复。稳态各阶段仍是独立的 CLI 子命令并使用同样的磁盘表示。初始化阶段细节仓库分析Repository analysis一个只读 Agent 产出简洁的INFO.md以及经过校验的结构化攻击面清单surface inventory输出无效时有一次修复尝试。覆盖性Coverage清单中的 glob 会对照扫描器的忽略文件全集展开评估器检查代表性文件、整体覆盖比例、敏感零覆盖攻击面、主导语言盲区以及新增匹配器的广度。生成匹配器Generated matchers模型输出是严格的 JSON 数据编译时不执行生成的代码正则/glob 复杂度、示例、slug 冲突、遍历与匹配爆炸都会被拒绝。被接受的规范写入generated-matchers.ts供审查与提交。门控Gatesetup 最多进行两次生成 → 重扫尝试在覆盖性仍失败时绝不会启动付费处理。setup 的 Agent 运行器通过一个与调查接口分离的小型只读任务接口支持 Codex、Claude 和 Pi 三种后端。日常命令稳态首次运行后在.deepsec/内部工作pnpm deepsec status # 当前状态快照 pnpm deepsec scan # 重跑快速模式扫描免费无 AI pnpm deepsec process # 对新增/变更候选文件进行 AI 审查 pnpm deepsec revalidate # 复核已有 findings降低误报 pnpm deepsec export --format md-dir --out ./findings其中scan零成本本地正则匹配process是昂贵的 AI 阶段。所有命令都能在中断后干净续跑且重跑时只处理尚未完成的工作。磁盘布局append-only 的数据模型docs/data-layout.md 完整描述了.deepsec/data/的磁盘结构data/projectId/ ├── project.json # rootPath, githubUrl自动管理 ├── INFO.md # 注入 AI 提示词的仓库上下文人工或 Agent 编写 ├── config.json # priorityPaths, promptAppend, ignorePaths可选 ├── setup/ │ ├── setup-state.json # 可恢复的一次性阶段检查点 │ └── surface-inventory.json# 生成的结构化入口清单 ├── files/ # 每个被扫描文件一个 JSONFileRecord │ └── path/to/source.ts.json ├── runs/ # 每次运行一个 JSONRunMeta │ └── 20260429215021-19ac.json └── reports/ # 生成的 markdown JSON 报告scaffold 会保持INFO.md与SETUP.md可被 git 跟踪同时忽略project.json、setup/、files/、runs/与reports/。setup/中生成的证据可能包含仓库路径与平台项目 ID但绝不包含凭据值。核心设计是合并模型additive merge每个阶段都向 FileRecord 追加内容。重新扫描会把新候选合并进现有集合重新处理会追加到analysisHistory并合并新 findings重新验证只是给现有 findings 打上判定标签。任何内容都不会被覆盖或删除。每条 FileRecord 的 schemaCandidateMatch、Finding、Triage、Revalidation、AnalysisEntry、RefusalReport、gitInfo、status生命周期等都以 packages/core/src/types.ts 为唯一事实来源。文件的status生命周期为pending扫描完成、等待 AI→processing某次运行正在调查lockedByRunId被设置→analyzed已追加 AnalysisEntry、findings 已更新若 Agent 在调查中崩溃则置为error重跑process会重试error与pending文件。模型与 Agent 后端deepsec 通过可互换的 Agent 后端与 LLM 对话。README 中提到模型选择可参考 docs/models.md该文档给出了完整的后端对照后端默认模型用途codex默认gpt-5.5process、revalidateclaudeclaude-opus-4-8process、revalidatepizai/glm-5.2process、revalidateclaudetriageclaude-sonnet-4-6triage仅 Claude这些默认值在源码中有两处保持一致packages/deepsec/src/agent-defaults.ts 的defaultModelForAgent()未显式指定--model时按后端返回默认模型以及各 Agent 文件中的DEFAULT_MODEL常量。交互式 setup 会推荐五种带基准得分的组合GPT-5.6 Sol、Claude Opus 5、Kimi K3、Grok 4.5 以及当前 DeepSeek 条目deepsec 会从 DeepSecBench 拉取最新得分、推理级别、harness 与总运行成本然后按相对最便宜推荐项显示成本内置快照让入门在离线时也可用并会明确标注为缓存。你也可以直接粘贴任意自定义模型 slug。无交互选择模型# 指定后端与模型让仓库分析与首次处理使用同一组合 npx deepsec init --agent codex --model gpt-5.5 # 基于基准的 headless 选择使用 profile npx deepsec init --yes --model-profile value --output jsonl--model-profile有三个档位best最高兼容 DeepSecBench 得分、value运行成本不超过最便宜推荐项 2.5 倍中的最高得分、budget最便宜的兼容推荐组合。直接使用 OpenAI/Anthropic 凭据会自动把 profile 限制到兼容的 Codex/Claude harness自定义路由则限制为 Pi。思考级别Thinking levelprocess与revalidate接受--thinking-level控制每个批次 Agent 花费的推理精力pnpm deepsec process --project-id my-app --thinking-level high接受值minimal、low、medium、high、xhigh默认xhigh。deepsec 的目标是找到疑难漏洞而非省钱需要更便宜的复查波次或对大型仓库做快速冒烟时可以调低。该 flag 映射到各后端的原生旋钮codex为模型推理努力度minimal–xhigh、pi为 thinking levelminimal–xhigh、claude为 adaptive-thinking effortminimal→lowxhigh→max。它只作用于主调查/验证运行特殊的后续调用拒绝报告、JSON 修复保持各自固定且廉价的设置。该 flag 也会原样透传到 sandbox 模式pnpm deepsec sandbox process --project-id my-app --sandboxes 30 --thinking-level high。模型即 flag未来模型直接可用README 与 docs/models.md 都强调模型是一个 flag而非内置选择。当更强的新模型发布时把--model指向新标识即可deepsec 其余部分不变pnpm deepsec process --project-id my-app --model anthropic-mythos-1 pnpm deepsec process --project-id my-app --agent codex --model gpt-6模型标识符会原样透传给提供方 SDK无需改代码即可使用新模型。只有成本读数需要维护Claude Agent SDK 原生上报成本新 Claude 家族模型零代码接入Codex 不报告需要为每个新 OpenAI/Codex 模型在 packages/processor/src/agents/codex-sdk.ts 的MODEL_PRICING_USD_PER_M_TOKENS中加一行——不加也能运行只是省略成本读数。需要更换默认模型时修改 packages/deepsec/src/agent-defaults.ts 中每个后端的一行字符串即可已有数据与 findings 不受影响因为 deepsec 会记录每条 finding 由哪个 agent model 产出。凭据与模型路由Gateway、直连、自定义与本地订阅README 的 AI provider 一节指出默认情况下 deepsec 通过Vercel AI Gateway路由模型调用无需各提供方的专属 key 即可访问所有主流模型。你也可以自带 keyOpenAI、Anthropic 或自定义 HTTPS provider在init时传--model-auth direct并配合--ai-provider与--ai-api-key-env即可该模式下不需要 Vercel 账号。deepsec 只保存承载 key 的环境变量名绝不保存 key 本身。docs/configuration.md 给出了模型路由的完整声明形式// 默认linked-project OIDC 或 AI_GATEWAY_API_KEY ai: { mode: gateway, provider: vercel } // 用户自有的 OpenAI key运行时 MY_OPENAI_KEY 必须存在 ai: { mode: direct, provider: openai, apiKeyEnv: MY_OPENAI_KEY, baseUrl: https://api.openai.com/v1, } // Pi-only 自定义 provider ai: { mode: custom, provider: martian, apiKeyEnv: MARTIAN_KEY, baseUrl: https://api.martian.example/v1, credentialHeader: { name: x-api-key, scheme: raw }, }process、revalidate、setup与 Sandbox 编排会在每个新进程中解析该路由显式的逐命令 Pi provider flag 优先。想改路由而不手改配置可运行deepsec setup --model-auth …来变更并校验。使用自己的 API key不需要 Vercel 账号即可使用自己的 key。使用自己的 OpenAI keyMY_OPENAI_KEY... npx deepsec init \ --agent codex \ --model-auth direct \ --ai-provider openai \ --ai-api-key-env MY_OPENAI_KEYAnthropic 则用--agent claude --ai-provider anthropic。deepsec 只存储环境变量的名字从不存储 key 本身。后续命令需要再次导出该变量或将其放入.deepsec/.env.local。CLI 启动时会自动加载.env.local与.env见 packages/deepsec/src/cli.ts 顶部的 dotenv 加载。使用本地订阅Local subscriptions如果本机已登录claude或codexCLI可以完全跳过模型凭据。在交互式模型访问提示中选择Use local subscriptions或直接传 flagnpx deepsec init --model-auth localdeepsec 将不为模型访问配置任何东西无 API key、无 gateway token、无环境变量。后续命令process、revalidate、triage会跳过凭据检查依赖机器级登录若登录缺失Agent SDK 本身会在首次使用时报告清晰错误。两个注意事项登录必须属于实际运行 harness--agent claude需要已登录的claude--agent codex需要已登录的codexsandbox命令仍需要真实 API tokenAI_GATEWAY_API_KEY因为机器本地登录无法被代理进隔离沙箱。相关环境变量docs/configuration.md 整理了 CLI 读取的环境变量来自.env.local或进程环境平台认证非交互 setup 需要完整的 access-token 三元组变量用途VERCEL_OIDC_TOKEN交互式 linked-project 凭据Gateway 与 Sandbox 使用由 setup 存入.env.localVERCEL_TOKEN非交互 Vercel access tokenVERCEL_TEAM_ID与VERCEL_TOKEN配对的非交互 teamVERCEL_PROJECT_ID与VERCEL_TOKEN配对的非交互 project模型认证变量用途AI_GATEWAY_API_KEYGateway 路由的可选长时替代 linked-project OIDC会为所选 agent 展开ANTHROPIC_AUTH_TOKENClaude 后端的 API tokenAI Gateway 签发或 Anthropic 签发ANTHROPIC_BASE_URL默认设了AI_GATEWAY_API_KEY时为https://ai-gateway.vercel.sh直连 Anthropic 设为https://api.anthropic.comai.apiKeyEnvDirect/custom 路由中用户自选的承载凭据的变量名字存于配置值来自.env.local或进程可选OPENAI_API_KEYcodex SDK token 或 Pi 的 OpenAI provider token、OPENAI_BASE_URL、PI_CODING_AGENT_DIR、DEEPSEC_AGENT_DEBUG设为1启用 verbose agent 日志、DEEPSEC_DATA_ROOT覆盖数据目录位置等价于配置中的dataDir。分布式执行Vercel Sandbox 扇出大型 monorepo 可以将工作扇出到 Vercel Sandbox microVM 上pnpm deepsec sandbox process --project-id my-app --sandboxes 10 --concurrency 4setup 已经验证过 Vercel 连接因此这里无需额外 onboarding。本地工作树会被打包上传.git被排除。模型凭据保留在宿主机侧只在选定的 egress 主机上注入。从 packages/deepsec/src/cli.ts 的sandbox命令定义可以看到相关参数--sandboxes并行沙箱数默认 1、--vcpus每沙箱 vCPU默认 2、最大 8、--detach启动后立即退出、稍后收集结果、--snapshot-id/--save-snapshot、--keep-alive、--timeout默认 5 小时。另有sandbox-all command可把所有项目的工作按比例分配到指定数量的沙箱上执行。其余选项会原样透传给子命令。deepsec 自身的安全模型README 明确要求把 deepsec 当作一个对其运行环境拥有完整 shell 访问权的编码 Agent 来对待。它被设计为运行在可信输入你的源代码上但由于外部依赖或 vendored 代码你可能仍会担心提示注入。在沙箱中运行见上文可以大幅降低潜在暴露面编码 Agent 的 API key 在沙箱外注入因此无法被外泄对 worker 沙箱而言沙箱的网络 egress 被限制为仅编码 Agent 主机bootstrap 期间允许 egress但该过程不运行编码 Agent。沙箱永远不会看到你的真实模型凭据——宿主机保存它们只在模型提供方的服务器上注入。插件架构与配置docs/architecture.md 说明 deepsec 有五个扩展点全部定义在 packages/core/src/plugin.ts扩展点语义matchers可叠加additivenotifiers可叠加agents可叠加ownership单槽last plugin winspeople单槽executor单槽插件通过deepsec.config.ts注册export default defineConfig({ plugins: [vercel(), myPlugin()], });CLI 在解析参数前调用loadConfig()从活动插件构建PluginRegistry并把它存到模块级单例getRegistry()上所有内部代码都查询注册表而非硬编码集成。插件还可以通过commands钩子注册自己的 CLI 子命令见 packages/deepsec/src/cli.ts 中main()的插件子命令循环。完整配置示例docs/configuration.md 给出顶层配置骨架import { defineConfig } from deepsec/config; import myPlugin from my-org/deepsec-plugin-foo; export default defineConfig({ ai: { mode: gateway, provider: vercel }, projects: [ { id: my-app, root: ../my-app }, { id: service, root: ../service, githubUrl: https://github.com/me/service/blob/main }, ], plugins: [myPlugin()], });顶层字段一览字段类型用途projectsProjectDeclaration[]deepsec 已知的代码库pluginsDeepsecPlugin[]按序加载后加载的插件覆盖单槽能力matchers{ only?: string[]; exclude?: string[] }过滤scan使用的匹配器集合defaultAgentstring默认--agent值codex、claude或pidefaultModelstringsetup 时选择的默认--modeldefaultThinkingLevelstringsetup 时选择的默认推理努力度minimal–xhighaiModelRoutesetup 选择并校验的非机密模型凭据路由dataDirstring覆盖data/目录默认./dataProjectDeclaration字段id必填用作--project-id与数据目录名data/id/、root必填代码库绝对或相对路径、githubUrl可选导出中可点击链接用缺省时从git remote自动检测、infoMarkdown可选注入 AI 提示词的仓库上下文与INFO.md同时存在时覆盖之、promptAppend可选追加到该项目系统提示词的文本、priorityPaths可选优先处理的路径前缀。匹配器过滤matchers: { only: [sql-injection, auth-bypass], // 只运行这些 exclude: [framework-internal-header], // 跳过这些 }若设置了onlyexclude被忽略同时存在时 CLI flag--matchers slugs覆盖配置。插件顺序语义matchers、notifiers、agents是可叠加的两个插件的贡献都会注册ownership、people、executor是 last-write-wins后插件的 provider 替换前插件的。仓库还提供了完整工作示例 samples/webapp/deepsec.config.ts它展示了infoMarkdown从INFO.md读取、promptAppend、priorityPaths以及一个内联插件两个自定义 matcherwebappDebugFlag与webappRouteNoRateLimit的全部常见字段用法。配置是真正的 TypeScript——模块加载时的任何逻辑都可用比如按--project-id决定是否加载组织插件见 docs/configuration.md 的 Project-config gating example。每项目配置文件部分遗留字段仍存放在data/id/config.json{ priorityPaths: [app/api/, lib/], promptAppend: Pay extra attention to the booking flow., ignorePaths: [**/legacy/**] }该文件由scan与 AI Agent 读取若与项目声明同时存在则覆盖声明中的同名字段。完整命令参考README 的 Workflow reference 表给出了全部命令命令作用scan用正则匹配器找出候选点快速、无 AIprocessAI 调查产出 findings 修复建议process --diffPR 模式只扫描并调查 diff 中变更的文件triage轻量级 P0/P1/P2 分级更便宜的模型revalidate复检已有 findings检查 git 历史中是否已修复enrich追加 git 提交者信息 配插件时所有权数据report单个项目的 Markdown JSON 汇总export每条 finding 的 JSON 或 markdown 文件目录metrics跨项目统计严重级别、按类型漏洞数、TP 数status项目镜像的快照sandbox cmd在 Vercel Sandbox microVM 上运行上述任意命令process 阶段深入process是昂贵阶段挑选一批 pending 文件把每个批次发送给配置的 AI Agent 后端系统提示词 INFO.md解析 Agent 的 JSON 响应为Finding写回每条 FileRecord。三种 Agent 后端共享同一提示词与同一 JSON 输出 schema——你可以在同一项目内混用后端用不同 Agent 重新处理某个文件第二次运行的 findings 会与第一次合并按 slug title 去重。并发控制--concurrency 5 --batch-size 5表示 5 个批次在飞、每批 5 个文件 峰值 25 个文件同时处理。processor 通过lockedByRunId原子地认领文件因此多个 worker 可以并行而不互相踩踏。--reinvestigate [n]可请求另一波调查传入 N 作为波次标记productive 的分析会被打上 N 标记用相同 N 重跑会跳过已完成文件增大 N 可再请求一波。这在模型升级时尤其有用——用新模型对现有 HIGH 级 findings 重跑一波观察新模型是否推翻旧判定且波次标记不会丢失旧分析。revalidate / triage / enrichrevalidate让 Agent 重读代码、查阅 git 历史是否已修复给出判定true-positive、false-positive、fixed或uncertain。成本与process相当值得对 HIGH 运行。经验上多数仓库可降低误报率 50% 以上。--min-severity可只复检某级别以上--force复检已验 findings。triage不重读代码只根据 finding 文本分桶到 P0/P1/P2/skip。这是廉价任务默认用claude-sonnet-4-6约 1¢/finding可用--severity指定待分级的最低级别默认 MEDIUM。enrich为有 findings 的文件附加 git 提交者信息与配插件时所有权数据。无所有权插件时免费有插件时每文件一次 HTTP 往返。--min-severity只处理达到某级别的文件。面向 CI 与编码 Agent无终端附加时deepsec 自动进入 headless 模式绝不提示、绝不打开浏览器。两个关键命令# 预览 setup 将要做的全部事情不改变任何东西 npx deepsec init --plan --output json # 无人值守运行接受默认、按 profile 选模型、流式输出事件 npx deepsec init --yes --model-profile value --output jsonl退出码约定退出码 2 表示 deepsec 需要它无法在 headless 下获得的输入例如 Vercel 登录——JSON 输出会明确说明要做什么以及如何恢复退出码 3 表示达到了成本或时长限制重跑同一条命令即可继续。CI 中gateway 路由的 setup 可以用显式值代替登录完成认证VERCEL_TOKEN... VERCEL_TEAM_IDteam_... VERCEL_PROJECT_IDprj_... \ npx deepsec init --headless编码 Agent 应阅读 deepsec 安装到工作区中的文档它们总是与已安装版本匹配从.deepsec/node_modules/deepsec/SKILL.md开始然后是.deepsec/node_modules/deepsec/dist/docs/下的各主题。初始化后Agent 也可以直接读取与所装 CLI 完全匹配的文档SKILL.md与dist/docs/setup 错误会以绝对机器可读路径暴露这些文档。PR 模式process --diffdocs/reviewing-changes.md 详细说明了直接调用模式deepsec process --diff origin/main只调查 PR 变更的文件。与全库扫描不同直接模式把两步折叠成一次调用且总是处理列出的文件——即使匹配器未命中也会让 Agent 做整体性审查。五种文件来源互斥--diff ref|range 调查 git diff --name-only ref如 origin/main、HEAD~1..HEAD --diff-staged 调查 index vs HEAD --diff-working 调查未提交 未跟踪文件 --files csv 调查该逗号分隔路径列表 --files-from path 从 path 读取换行分隔路径- 表示 stdin直接模式无需先init会自动创建项目写data/id/project.json绝不修改deepsec.config.ts。退出码可直接作为 CI 门禁0 本运行无新 findings1 至少产出一条新 finding非错误其他 运行时错误。只有净新增net-newfindings 计入退出码——已存在于被触碰文件上的旧 findings 不会让构建失败。--comment-out path可写出 PR 评论形状的 markdown 摘要仅包含净新增 findings描述与建议截断至 600/400 字符。一次扫描多个仓库单个.deepsec/工作区可以跟踪多个仓库。从已有工作区pnpm deepsec init-project ../another-service --id another-service pnpm deepsec setup --project-id another-service工作区有多个项目时日常命令都要传--project-id。init-project会把条目追加进deepsec.config.ts在标记注释上方并写入新的data/id/{INFO.md,SETUP.md,project.json}。Scaffold only先建骨架只想创建工作区文件、不运行任何 setup 流程时npx deepsec init --scaffold-only这会写出.deepsec/骨架——deepsec.config.ts、package.json、README.md、AGENTS.md、.gitignore以及首个项目的data/project/{INFO.md,SETUP.md,project.json}——然后停止。它不会安装依赖、登录 Vercel、选模型、扫描或启动 AI 处理。适合在运行任何流程前先审查或提交 scaffold、由编码 Agent 驱动剩余 setup、或手工逐步执行。命令会打印手工路径在.deepsec/内pnpm install、填写INFO.md的 Agent 提示词然后pnpm deepsec scan与pnpm deepsec process。之后也可以运行pnpm deepsec setup或重跑npx deepsec init从 scaffold 停下的地方继续正常的自动化流程。两个值得关注的文件setup 会写出两份值得审查的文件见 docs/getting-started.mddata/project/INFO.md——对代码库及其安全相关区域的简短描述会被注入每次 AI 调查。它应当手工编辑越准确findings 质量越高。.deepsec/generated-matchers.ts——deepsec 为覆盖代码库缺口而生成的额外扫描模式。审查并提交该文件。想进一步深入参见 docs/writing-matchers.md。信任边界与后续阅读deepsec 的信任边界很明确README 与 docs/getting-started.md 均强调把它当作一个编码 Agent——setup 期间它会用认证到你的模型提供方的 AI Agent 读取你的源代码只应在你信任到该程度的代码上运行。扫描不可信的 pull request 时使用 docs/reviewing-changes.md 中的受防护 CI 模式或把工作放到隔离云沙箱中运行该部分确实需要 Vercel 账号因为沙箱运行在 Vercel 上。深入阅读路径docs/getting-started.md——首次扫描的完整设置与续跑行为docs/reviewing-changes.md——process --diff与 CI 门禁docs/architecture.md——初始化图、各阶段细节、插件架构与设计决策docs/data-layout.md——FileRecord、RunMeta 等全部磁盘 schema 与jq查询示例docs/configuration.md——项目、模型路由、环境变量完整参考docs/models.md——后端对照、思考级别、拒绝refusal机制与未来模型接入docs/vercel-setup.md——凭据、CI 配置与 Vercel 连接排障docs/writing-matchers.md——手写匹配器docs/supported-tech.md——内置技术覆盖docs/plugins.md——插件编写指南docs/faq.md——常见问题samples/webapp/deepsec.config.ts 与 samples/README.md——完整可运行示例deepsec 以 Apache 2.0 协议开源详见 LICENSE 与 NOTICE。赞分享应用安全漏洞扫描人工智能AI Agent【免费下载链接】deepsecDeepsec is a security harness for finding vulnerabilities in your codebase powered by coding agents项目地址https://gitcode.com/gh_mirrors/deeps/deepsec点击查看免费下载相关推荐GhostTrack快速IP归属地查询与手机号追踪工具GhostTrack快速IP归属地查询与手机号追踪工具 GhostTrack 是一个轻量级的命令行信息收集OSINT即开源情报指公开渠道的资料聚合工具网络安全CLIDorkbot自动化漏洞扫描的利器Dorkbot自动化漏洞扫描的利器 项目介绍 Dorkbot是一款模块化的命令行工具专门用于对Google搜索结果或其他来源的网页进行漏洞扫描。它通过结合索上一篇数据层架构Repository模式与数据源管理下一篇告别繁琐命令lazydocker高级功能与自定义配置指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表