Security Audit Standard 是一套代码库安全审计的方法论与检查清单,其流程来自生产环境中的安全审计实践,用于在执行安全审查、排查项目漏洞或对项目进行安全加固时提供分阶段的核查依据。
用途 该标准以阶段化方式组织审计工作,覆盖从源代码扫描到基础设施配置的多个层面,并在最后给出统一的审计报告格式与严重性分级,便于审计者按步骤推进并输出结构化结论。
主要能力
- 阶段一:密钥扫描。扫描已跟踪源文件中的硬编码凭据,包括源码中的 API 密钥、token、密码(非 .env)、带 token 的 Webhook URL、数据库连接字符串、私钥与证书;同时指出 Rust 中 obfstr!() 的使用仍会保留在二进制中,只是被混淆。给出的检查命令包括对 "sk-"、"pk_"、"ghp_"、"token"、"secret"、"password"、"apikey" 的 grep 检索,以及对 Discord、Slack Webhook URL 和 mongodb://、postgresql://、redis:// 连接的检索。此外需核对 .gitignore 是否覆盖 .env*、.pem、.key、credentials*、secrets*、auth*.json 以及包含密钥的 config.json。
- 阶段二:输入验证。针对每个接受用户输入的端点或命令,确认输入进入系统的位置(HTTP body、查询参数、WebSocket 消息、IPC 命令、CLI 参数、文件上传),处理前是否验证(类型检查、长度限制、格式校验),输出前是否净化(HTML 转义、SQL 参数化),以及错误信息是否安全(不含堆栈跟踪、内部路径或凭据线索)。清单涵盖 SQL 参数化、HTML 转义、路径遍历(../)校验、JSON 解析 try/catch、整数范围检查、字符串最大长度限制,以及文件上传对类型、大小和内容的校验(不仅看扩展名)。
- 阶段三:认证与授权。检查密码是否使用 bcrypt/argon2 而非 MD5/SHA1 哈希;JWT 是否含 exp 过期声明、密钥是否足够强(>32 字节且非 "secret");会话令牌是否在权限变更时轮换;OAuth 是否校验 state 参数(CSRF 防护)及所有必需响应字段;API 密钥是否通过请求头传输而非查询参数(避免出现在访问日志);管理端点是否同时要求认证与授权;登录/认证端点是否有速率限制与失败次数锁定。
- 阶段四:数据保护。包括密钥是否存储在操作系统钥匙串或加密存储中而非明文文件;敏感数据是否避免记录到日志(脱敏 token、密码、PII);是否强制 HTTPS(无混合内容);CORS 是否限制性配置(生产环境不用 *);是否设置 CSP 头(限制 script-src、connect-src);Cookie 是否设置 HttpOnly、Secure、SameSite;临时文件是否使用不可预测路径(tempfile crate、mkstemp);敏感数据用后是否从内存清除。
- 阶段五与五b:依赖与供应链审计。给出按语言运行的命令:Node.js 使用 npm audit、pnpm audit;Rust 使用 cargo audit、cargo deny check;Python 使用 pip-audit、safety check;Go 使用 govulncheck ./...。关注依赖中的已知 CVE、过时依赖、两年以上无提交的弃置包以及仿冒包。供应链部分给出检查项与原因对照:锁文件是否提交(package-lock.json、Cargo.lock、go.sum、Package.resolved)以固定传递依赖版本;GitHub Actions 是否按 SHA 固定(@v4 标签可被攻击者移动);CI 中是否禁用安装脚本(npm ci --ignore-scripts)以防 postinstall RCE;是否使用 provenance 或签名(npm publish --provenance、sigstore);是否设置注册表允许列表以阻止依赖混淆。
- 阶段六:基础设施。检查生产环境是否存在调试端点、错误页面是否泄露堆栈跟踪、服务器头是否暴露技术版本、所有公开端点是否限流、进程是否以非 root 用户运行、文件权限是否严格(密钥 600、可执行文件 755)、防火墙规则是否最小化暴露端口、是否强制 TLS 1.2+(禁用 SSLv3、TLS 1.0/1.1)、数据库是否不可从公网访问。
- OWASP Top 10 快速检查表。针对 A01 访问控制失效、A02 加密失败、A03 注入、A04 不安全设计、A05 安全配置错误、A06 易受攻击组件、A07 认证失败、A08 数据完整性失败、A09 日志失败、A10 SSRF 分别给出核查问题。
- Tauri 特定安全。包括 tauri.conf.json 中的 CSP 限制 script-src 与 connect-src、IPC 命令使用枚举约束(避免任意命令执行)、除非明确需要否则禁用 dangerous-api 特性、文件系统访问限定在应用目录、Shell 命令绝不使用用户输入拼接。
使用方式 按阶段依次执行扫描与核查,使用文中给出的命令进行检索与依赖审计,并依据审计报告格式输出结果。报告格式包含项目名称、日期、按严重性(Critical/High/Medium/Low)汇总的发现数量、关键发现的条目(含位置、风险、修复方式与工作量估计)以及按优先级排序的建议。严重性分级为:Critical 可立即被利用、存在数据泄露风险;High 需要一定努力即可利用、影响显著;Medium 需要特定条件、影响中等;Low 风险较小、属纵深防御改进。
适用场景 适用于执行安全审查、审计项目漏洞或对代码库进行安全加固的工作,覆盖源代码、依赖、供应链与基础设施多个层面。
限制 本资料仅提供审计方法论与检查清单,未说明其支持的平台范围、自动化程度、是否有配套工具实现,也未提供收费、价格或效果方面的信息。