PAL MCP Server 的 secaudit 工具实战指南:基于 OWASP Top 10 的系统化安全审计工作流
【免费下载链接】pal-mcp-serverThe power of Claude Code / GeminiCLI / CodexCLI + [Gemini / OpenAI / OpenRouter / Azure / Grok / Ollama / Custom Model / All Of The Above] working as one.项目地址: https://gitcode.com/GitHub_Trending/ge/pal-mcp-server
导读
secaudit是 PAL MCP Server(pal-mcp-server)内置的一款工作流型 MCP 工具,它以结构化的 6 步调查流程驱动 Claude Code / GeminiCLI / CodexCLI 等 CLI 代理完成系统化安全审计:覆盖 OWASP Top 10(2021)全量类别、多合规框架评估(SOC2 / PCI DSS / HIPAA / GDPR / FedRAMP / ISO27001 / NIST)、威胁建模与风险分级,并可在调查完成后接入外部专家模型做二次验证。读完本文,你将掌握secaudit的完整调用方式、全部参数语义、6 步工作流的内在机制,以及如何在真实项目中配置出可落地的安全审计与整改方案。
重要提醒:AI 模型可能无法识别全部安全漏洞。无论审计结果如何,都应额外执行人工安全评审、渗透测试与验证。本文所有结论均以 docs/tools/secaudit.md 及仓库源码为准。
secaudit 是什么:一个"强制停顿"的安全审计工作流
secaudit并非一次性的"扫描并出报告"工具,而是一个多步工作流工具。它通过"调查阶段 + 专家分析阶段"两个阶段,强制 CLI 代理在每一步之间停顿、实际去阅读代码和配置、收集证据,然后再进入下一步;调查完成后再决定是否调用外部模型进行专家级验证。
从源码看,这一设计继承了仓库统一的工作流架构:tools/workflow/base.py 中WorkflowTool基类明确定义了工作流模式:
- CLI 携带工作步数据调用工具;
- 工具跟踪发现与进度;
- 工具强制 CLI 停顿并在步间进行调查;
- 工作完成后,工具调用外部 AI 模型进行专家分析;
- 返回"调查 + 专家分析"合并的结构化响应。
ScauditTool(定义于 tools/secaudit.py)正是该模式的典型实现,工具名称返回secaudit,描述为"使用 OWASP Top 10 分析、合规评估、威胁建模和安全架构评审的全面安全审计"。
调查阶段(Claude 主导,6 步)
文档定义了固定的 6 步调查序列:
- Step 1 安全范围分析:识别应用类型、技术栈、攻击面与合规需求;
- Step 2 认证与授权评估:分析认证机制、会话管理与访问控制;
- Step 3 输入验证与数据安全:审查输入处理、数据保护与注入漏洞;
- Step 4 OWASP Top 10(2021)评审:系统评估全部 OWASP 类别并给出具体发现;
- Step 5 依赖与基础设施:第三方组件与部署配置安全分析;
- Step 6 合规与风险评估:对照合规框架评估并进行风险分级。
源码中 get_required_actions() 为每一步提供了具体的"必做动作清单"。例如 Step 1 要求:识别应用类型/技术栈/安全范围、映射攻击面/入口点/数据流、确定相关安全标准与合规要求、建立威胁态势与风险上下文;Step 2 要求分析认证与会话管理、检查授权控制与提权风险、评估 MFA 与密码策略、审查 IAM 实现;Step 4 则要求逐项完成 OWASP Top 10 系统评审、附带具体发现与证据、结合应用上下文交叉引用、按可利用性与业务影响排序。
关键机制是步间强制停顿:get_security_audit_step_guidance()会在每步返回"禁止立即再次调用 secaudit,必须先完成 X、Y、Z 调查动作"的指令。例如 Step 1 的引导消息明确写道:MANDATORY: DO NOT call the secaudit tool again immediately. You MUST first examine the code files thoroughly using appropriate tools.(tools/secaudit.py)。这样设计是为了杜绝"空手审计"——每次工具调用都必须携带新的、来自真实代码的证据。
专家分析阶段
调查阶段结束后(除非置信度为certain),工具会进入专家分析阶段:
- 将"安全审计请求 + 代理调查摘要 + 安全配置 + 相关文件 + 安全关键代码元素 + 已发现问题(按严重级别分组)+ 评估演化过程 + 视觉安全信息"打包成上下文(见
prepare_expert_analysis_context(),tools/secaudit.py); - 调用外部模型输出完整的专家安全评估,包括漏洞清单、OWASP 逐项结论、合规差距、风险分级与整改路线图;
- 完成消息要求代理按严重级别(Critical → High → Medium → Low)汇总全部发现,给出带行号的具体代码位置和精确整改步骤,并明确标出需要立即处理的 Top 3 安全议题(get_completion_next_steps_message())。
特殊说明:如果希望由 Claude 单模型完成全部安全审计、不再调用其他模型,只需在提示词中加入 "don't use any other model",Claude 将独立完成整个工作流。这与源码中use_assistant_model=False时should_call_expert_analysis()返回 False(跳过专家分析)的逻辑一致(tools/secaudit.py)。
模型推荐与提示词示例
文档指出该工具尤其受益于Gemini Pro 或 O3 系列模型:安全审计需要理解微妙的攻击向量与跨组件交互,更深的分析能力与更大的上下文窗口有助于对复杂代码库进行综合分析。从源码看,secaudit的模型类别被标记为ToolModelCategory.EXTENDED_REASONING("需要深度思考能力",见 tools/models.py),且专家分析阶段的思考模式被强制设为high(get_expert_thinking_mode()),与这一推荐相互印证。
文档给出的示例提示词:
Perform a secaudit with o3 on this e-commerce web application focusing on payment processing security and PCI DSS complianceUse secaudit to conduct a comprehensive security audit of the authentication system, threat level high, focus on enterprise security patterns and HIPAA compliancePro Tip:多范围并行安全评估
可以并行对不同组件分别启动安全审计子任务,再合并为统一整改计划:
Start separate sub-tasks, in one start a secaudit for critical payment processing components focusing on PCI DSS with gemini pro, and in the other for user management focusing on OWASP authentication vulnerabilities with o4-mini, then combine into a unified security remediation plan using planner核心能力总览
secaudit的关键特性包括(完整列表见 docs/tools/secaudit.md):
- OWASP Top 10(2021)系统化评估:逐类别识别具体漏洞;
- 多合规框架支持:SOC2、PCI DSS、HIPAA、GDPR、FedRAMP;
- 威胁等级感知分析:Critical / High / Medium / Low 分级;
- 技术栈特定安全模式:Web 应用、API、移动端、云、企业系统;
- 基于风险的优先级排序:业务影响 + 可利用性评估;
- 审计焦点定制:综合、认证、数据保护、基础设施;
- 图片支持:从架构图、网络拓扑或安全发现图中提取安全分析信息;
- 多文件安全分析:跨组件漏洞识别;
- 合规差距分析:针对具体框架要求给出整改指导;
- 攻击面映射:入口点、数据流与权限边界;
- 安全控制有效性评估:对现有安全措施的评估。
其中"图片支持"在源码中有落点:ScauditRequest.images字段接受"用于审计的架构图、威胁模型等绝对路径"(tools/secaudit.py),专家分析上下文中会以VISUAL SECURITY INFORMATION区块传递。
工具参数详解
工作流调查参数(每步必传)
| 参数 | 说明 | 备注 |
|---|---|---|
step | 当前安全调查步骤的描述 | 必填;Step 1 需概述审计策略(OWASP Top 10、认证、校验等),后续步报告发现;必须使用relevant_files引用代码而避免大段代码贴入 |
step_number | 审计序列中的当前步号 | 必填,从 1 开始 |
total_steps | 预计调查总步数 | 必填,通常 4–6,可随新风险出现而调整 |
next_step_required | 是否还需要下一步调查 | 必填;准备移交验证时设为 false |
findings | 本步发现的安全问题与证据汇总 | 必填;包括漏洞、认证问题、验证缺口、合规备注与正面发现,可更新先前发现 |
files_checked | 调查中检查过的全部文件 | 绝对路径,含被否决的候选文件 |
relevant_files | 与安全评估直接相关的文件 | Step 1 必填;如认证模块、配置、敏感代码 |
relevant_context | 与安全发现核心相关的方法/函数/类 | 如AuthService.login、encryption_helper |
issues_found | 已发现的安全问题(含严重级别) | critical/high/medium/low,覆盖漏洞、认证缺陷、注入、加密、配置问题 |
confidence | 审计完整性的置信度 | exploring/low/medium/high/certain;certain会阻断外部验证,仅在完全完成时使用 |
images | 参与审计的架构图/威胁模型等可视化参考 | 可选,绝对路径 |
源码补充:
ScauditRequest中confidence的默认值为low(tools/secaudit.py)。其输入 Schema 中的枚举为exploring|low|medium|high|very_high|almost_certain|certain(tools/secaudit.py),比文档示例列出的档位更细,属正常演进差异。files_checked、relevant_files、relevant_context等列表字段在 tools/shared/base_models.py 中还会做容错处理:若模型误传字符串而非列表,会被降级为空列表并记录警告。
初始安全配置参数(Step 1 使用)
| 参数 | 可选值 / 默认值 | 说明 |
|---|---|---|
model | auto|pro|flash|flash-2.0|flashlite|o3|o3-mini|o4-mini|gpt4.1|gpt5.2|gpt5.1-codex|gpt5.1-codex-mini|gpt5|gpt5-mini|gpt5-nano(默认:服务器默认) | 指定审计所用模型 |
security_scope | 字符串(必填) | 应用上下文、技术栈与安全边界定义 |
threat_level | low|medium|high|critical(默认medium) | 决定评估深度与紧迫性 |
compliance_requirements | 合规框架列表,如["PCI DSS", "SOC2"] | 要评估的合规框架清单 |
audit_focus | comprehensive|authentication|data_protection|infrastructure|api_security(默认comprehensive) | 审计焦点领域 |
severity_filter | critical|high|medium|low|all(默认all) | 报告问题时的最低严重级别 |
temperature | 0–1(文档标注默认 0.2) | 分析一致性控制 |
thinking_mode | minimal|low|medium|high|max(默认medium,仅 Gemini) | 推理深度 |
use_assistant_model | 布尔(默认 true) | 是否启用专家安全分析阶段 |
continuation_id | 字符串 | 延续先前安全审计对话 |
关于默认值的源码级补充:文档参数表中temperature标注默认 0.2,而工具实际默认温度由 config.py 的TEMPERATURE_ANALYTICAL决定(注释为"用于需要精确性与一致性的任务:代码评审、调试"),当前值为1.0;tests/test_secaudit.py 也断言tool.get_default_temperature() == 1.0。若你需要更确定的输出,可在调用时显式传入temperature覆盖。
audit_focus同样存在"文档语义 vs 源码枚举"的差异:文档层面描述的五种焦点为 Comprehensive / Authentication / Data Protection / Infrastructure / API Security(见下文"审计焦点领域");而源码输入 Schema 的枚举为owasp|compliance|infrastructure|dependencies|comprehensive(tools/secaudit.py)。两者并不冲突——文档提供的是审计意图的语义划分,源码枚举是当前可传值的集合,实际使用请以你环境中工具暴露的 Schema 为准。
此外,ScauditRequest的model_validator(tools/secaudit.py)会做两类校验:Step 1 未提供security_scope时记录警告并默认按"通用应用"处理;compliance_requirements中的未知框架会被警告但不阻断(源码内维护的合法集合为{"SOC2", "PCI DSS", "HIPAA", "GDPR", "ISO 27001", "NIST", "FedRAMP", "FISMA"})。threat_level与audit_focus为 Literal 类型,传入枚举外的值会直接触发 Pydantic 校验错误(对应测试 tests/test_secaudit.py)。
审计焦点领域(Audit Focus Areas)
Comprehensive(默认):完整 OWASP Top 10 评估,覆盖认证、授权、数据保护与基础设施;最适合整体安全态势评估。
Authentication:聚焦身份、访问管理与会话安全;检查多因素认证、密码策略、提权路径;最适合用户管理与访问控制系统。
Data Protection:加密、数据处理、隐私控制与合规;输入校验、输出编码、数据分类;最适合处理敏感或受监管数据的应用。
Infrastructure:部署安全、配置管理、依赖安全;网络安全、容器安全、云安全态势;最适合 DevOps 与基础设施安全评估。
API Security:REST/GraphQL 安全、速率限制、API 认证;输入校验、授权模式、API 网关安全;最适合 API 优先应用与微服务。
威胁等级(Threat Levels)
安全评估深度与紧迫性随威胁等级提升:
- 🔴CRITICAL:关键任务系统、高价值目标、监管要求;
- 🟠HIGH:业务关键应用、客户数据处理、金融系统;
- 🟡MEDIUM:标准业务应用、内部工具、中等风险暴露;
- 🟢LOW:开发环境、非敏感应用、概念验证。
在源码的threat_level字段描述中,四级含义被进一步明确:low(内部/低风险)、medium(面向客户/业务数据)、high(受监管或敏感)、critical(金融/医疗/PII,见 tools/secaudit.py)。
合规框架(Compliance Frameworks)
secaudit支持的合规评估包括:
- SOC2:安全、可用性、处理完整性、保密性、隐私;
- PCI DSS:支付卡行业数据安全标准;
- HIPAA:医疗健康信息隐私与安全;
- GDPR:通用数据保护条例合规;
- FedRAMP:联邦风险与授权管理项目;
- ISO27001:信息安全管理体系;
- NIST:网络安全框架控制。
在专家分析的系统提示词(systemprompts/secaudit_prompt.py)中,每个框架都对应一组具体的评估要点:SOC2 覆盖访问管理、数据加密、系统监控、变更管理与供应商安全;PCI DSS 覆盖持卡人数据保护、支付流程安全、网络分段与定期安全测试;HIPAA 覆盖 PHI 保护、访问控制、审计控制与传输安全;GDPR 覆盖默认/设计保护、处理合法性、数据主体权利与跨境传输保护。
OWASP Top 10(2021)覆盖范围
系统化评估逐项覆盖全部十个类别(详见 docs/tools/secaudit.md):
- A01 失效的访问控制(Broken Access Control):授权缺陷与提权;
- A02 加密失败(Cryptographic Failures):加密与数据保护问题;
- A03 注入(Injection):SQL、NoSQL、OS 与 LDAP 注入;
- A04 不安全设计(Insecure Design):安全设计缺陷与威胁建模缺口;
- A05 安全配置错误(Security Misconfiguration):配置与加固问题;
- A06 易受攻击组件(Vulnerable Components):第三方与依赖漏洞;
- A07 身份识别与认证失败(Identification & Authentication Failures):认证绕过与会话管理;
- A08 软件与数据完整性失败(Software & Data Integrity Failures):供应链与完整性违规;
- A09 安全日志与监控失败(Security Logging & Monitoring Failures):检测与响应能力;
- A10 服务端请求伪造(Server-Side Request Forgery):SSRF 及相关漏洞。
系统提示词为每个类别都预置了详细的检查清单(systemprompts/secaudit_prompt.py)。例如 A01 检查授权绕过、提权、不安全直接对象引用、缺失函数级访问控制、CORS 配置错误与强制浏览;A03 覆盖 SQL 注入、存储型/反射型/DOM 型 XSS、命令注入、LDAP 注入、NoSQL 注入与响应头拆分;A10 覆盖 URL 获取中的 SSRF、URL 输入校验缺失、网络分段不足、盲 SSRF、DNS 重绑定与云元数据服务访问。专家模型输出时,owasp_assessment区块会对 A01–A10 逐项给出Vulnerable | Secure | Not_Applicable状态、具体发现与整改建议。
实战用法示例
综合电商安全审计:
"Conduct a comprehensive secaudit with gemini pro for our Node.js e-commerce platform, threat level high, compliance requirements PCI DSS and SOC2, focus on payment processing security"认证系统安全评审:
"Use o3 to perform secaudit on authentication microservice, focus on authentication, threat level critical, check for OWASP A07 and multi-factor authentication implementation"API 安全评估:
"Secaudit our REST API gateway with gemini pro, audit focus api_security, compliance requirements GDPR, threat level medium"基础设施安全评审:
"Perform secaudit on Kubernetes deployment manifests with o3, focus infrastructure, threat level high, include container security and network policies"快速安全扫描:
"Fast secaudit of user registration flow with flash, focus authentication, severity filter critical and high only"底层原理:调查证据如何汇聚为专家分析
理解secaudit的"证据链路"有助于你写出更高质量的审计请求。从源码看,整个流程由BaseWorkflowMixin(tools/workflow/workflow_mixin.py)编排:
- 逐步汇聚:每步的
findings、files_checked、relevant_files、relevant_context、issues_found、hypotheses、images被累积到ConsolidatedFindings模型(tools/shared/base_models.py); - 上下文感知文件嵌入:中间步骤只引用文件名(节省 CLI 上下文),最终步骤才嵌入完整文件内容供专家模型分析;
- 触发专家分析的条件(should_call_expert_analysis()):已收集到相关文件(
relevant_files非空)或至少有 2 条发现或存在issues_found;若用户关闭use_assistant_model则直接跳过; - certain 置信度短路(should_skip_expert_analysis()):当置信度为
certain且next_step_required=False时,跳过外部专家验证,由代理直接产出完整审计报告; - 上下文打包:
prepare_expert_analysis_context()将请求原文、调查摘要、安全配置、相关文件、安全关键代码元素、按严重级别分组的问题清单、评估演化与图片信息组装为结构化提示; - 专家模型 JSON 输出:系统提示词要求专家模型严格按 JSON Schema 输出(systemprompts/secaudit_prompt.py),包含
security_findings(每项含 category / severity / vulnerability / description / impact / exploitability / evidence / remediation / timeline / file_references 等精度字段)、owasp_assessment、compliance_assessment、risk_assessment、remediation_roadmap(含 priority / timeline / effort / dependencies / success_criteria / cost_impact)、positive_security_findings与monitoring_recommendations。
值得注意的两点设计:其一,漏洞只能来自真实代码与配置,禁止凭空编造或假设;其二,专家分析给出整改建议前必须评估其安全性——不得引入新漏洞、破坏既有功能、造成性能或可用性问题、与业务或合规冲突(见系统提示词 "CRITICAL SECURITY AUDIT PRINCIPLES" 与 "REMEDIATION SAFETY AND VALIDATION",systemprompts/secaudit_prompt.py)。
输出格式
完整的安全审计将包含:
- 执行摘要(Executive Security Summary):整体安全态势与关键发现;
- OWASP Top 10 评估:逐类别系统评审并附具体发现;
- 合规差距分析(Compliance Gap Analysis):框架特定要求与当前合规状态;
- 风险分级发现(Risk-Prioritized Findings):按可利用性与业务影响排序的漏洞;
- 整改路线图(Remediation Roadmap):分阶段改进方案,含"速赢"项;
- 安全架构建议:面向长期安全态势的结构性改进。
整改路线图在提示词中被进一步细化为时间轴:立即行动(0–30 天,关键漏洞补丁、应急配置变更、临时补偿控制)、短期修复(1–3 个月,安全控制落地、流程改进、监控告警增强)、中期改进(3–12 个月,架构与设计变更、技术升级迁移、合规项目成熟化)、长期战略(1 年以上,零信任架构、安全转型、持续改进),可读性、可执行性都很强。
最佳实践
- 明确安全范围:说明应用类型、技术栈与安全边界;
- 设置合适的威胁等级:使评估深度与风险暴露及关键性匹配;
- 包含合规要求:指定相关框架以对齐监管;
- 并行审计:对不同组件或合规框架分别运行评估;
- 提供架构上下文:附上系统图、数据流文档或部署拓扑(对应
images参数); - 聚焦审计范围:用
audit_focus做特定安全域的定向评估; - 跟进发现:用
continuation_id延续对话,深入挖掘特定漏洞。
何时使用 secaudit 与其他工具
- 使用
secaudit:全面安全评估、合规评估、基于 OWASP 的漏洞分析; - 使用
codereview:一般代码质量(含部分安全考量); - 使用
analyze:理解安全架构但不需要漏洞评估; - 使用
debug:调查具体安全事件或利用尝试; - 使用
precommit:部署前的安全验证与变更影响评估。
验证与测试:仓库中的工程质量保证
secaudit的行为在仓库中有两层测试保障:
单元测试(tests/test_secaudit.py)覆盖:工具元数据与默认温度断言、Pydantic 请求校验(含非法threat_level/audit_focus的报错)、输入 Schema 字段生成、六个步骤各自的必做动作清单、专家分析触发条件、专家上下文打包(验证安全配置、相关文件、严重级别分组均进入上下文)、问题格式化(未知严重级别归入 low 并标记[UNKNOWN])、合规要求校验(未知框架仅告警不阻断)、以及从 Step 1 到 Step 6 的完整工作流场景演练。
模拟器端到端测试(simulator_tests/test_secaudit_validation.py)会构造一段故意包含多种漏洞的测试代码(例如 SQL 注入的字符串拼接查询、MD5 弱哈希、基于用户名密码的弱会话生成、无速率限制的密码重置、pickle.loads不安全反序列化等,覆盖 A01/A02/A03/A04/A07/A08/A09),随后验证:单次多步审计会话、指定焦点领域的定向审计、调用快速模型的完整审计+专家分析、certain 置信度行为、与 chat 工具的延续会话、以及模型选择控制。
快速上手清单
- 确认你的 PAL MCP Server 已配置并注册
secaudit工具(工具注册逻辑参见 tools/init.py 与服务器入口 server.py); - 从一句话需求开始,例如
"Perform a secaudit with o3 on this e-commerce web application focusing on payment processing security and PCI DSS compliance"; - Step 1 返回后,先按引导完成真实代码调查再携带
step_number: 2及证据继续调用; - 逐步推进至第 6 步,让工具在必要时调用专家模型完成验证;
- 根据输出的执行摘要、OWASP 评估、合规差距与整改路线图,优先处理 Top 3 高危项;
- 需要深入某一漏洞时,复用返回的
continuation_id继续追问。
始终记得:secaudit是安全审计的得力助手,但不是安全保证的替代品——最终请结合人工评审与渗透测试确认修复效果。
【免费下载链接】pal-mcp-serverThe power of Claude Code / GeminiCLI / CodexCLI + [Gemini / OpenAI / OpenRouter / Azure / Grok / Ollama / Custom Model / All Of The Above] working as one.项目地址: https://gitcode.com/GitHub_Trending/ge/pal-mcp-server
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考