insecure-defaults

🔒 生产代码安全漏洞智能审计

来自社区的安全审计辅助工具,专注检测生产代码中的 fail-open 漏洞、硬编码密钥与弱默认配置,帮助开发团队在部署前消除安全隐患。

收藏
10.4k
安装
2.3k
版本
v1.0.0
CLS 安全性认证2026-06-04
点击查看完整报告 >

使用说明

核心用法

Insecure Defaults Detection 是一款专门用于识别生产代码中"失败开放"(fail-open)安全漏洞的审计技能。它通过静态分析代码模式,检测以下关键风险点:硬编码密钥回退(如 process.env.JWT_SECRET || 'default'')、弱认证默认配置(如 AUTH_REQUIRED=false)、过时加密算法(MD5/SHA1/DES/RC4/ECB)、过度宽松的访问控制(CORS * 、权限 0777`)以及调试功能暴露等。

该技能采用四步工作流:首先通过 Grep/Glob 搜索目标代码库,识别潜在的不安全模式;其次验证代码实际运行行为,确认是"失败开放"还是"失败安全";然后评估生产环境影响,判断配置是否会被覆盖;最后生成带证据的详细报告,包含漏洞位置、利用路径和修复建议。

显著优点

1. 精准区分风险等级:明确区分 fail-open(危险,应用带病运行)与 fail-secure(安全,配置缺失即崩溃)两种模式,避免误报。
2. 场景化使用指南:详细列出适用场景(生产审计、配置审查、代码评审)和明确排除项(测试文件、示例代码、开发工具),减少噪音。

3. 结构化审计流程:提供从搜索、验证、确认到报告的完整工作流,适合集成到 CI/CD 安全门禁。

4. 多语言覆盖:支持 Python、JavaScript/TypeScript、Ruby、Java 等主流语言的配置模式识别。

潜在缺点与局限性

1. 静态分析局限:无法动态验证生产环境实际配置,需人工确认 Dockerfile、K8s manifest 等是否覆盖默认值。
2. 上下文依赖:某些"不安全"模式在特定场景下可能是设计意图(如内部工具的调试模式),需要安全专家判断。

3. 无自动修复:仅提供检测和报告,不生成补丁代码,修复工作仍需开发团队完成。

4. T3 来源维护:来自个人/社区账号,长期更新和漏洞规则库维护存在不确定性。

适合的目标群体

  • 安全工程师:进行生产应用安全审计、渗透测试前的基线检查
  • DevSecOps 工程师:在 CI/CD 流水线中集成部署前安全检查
  • 后端开发团队:审查微服务配置、密钥管理和认证实现
  • 代码审查员:作为 Checklist 工具辅助人工审计,确保不遗漏常见配置漏洞

使用风险

1. 误报处理成本:需要人工验证每个发现,确认是否为测试文件或已被生产配置覆盖。
2. 审计范围遗漏:若未正确配置排除规则,可能漏检嵌在业务代码中的配置逻辑。

3. 依赖执行环境:Bash 权限用于必要系统命令,需在受控环境中运行以避免意外操作。

4. 规则更新滞后:新型漏洞模式(如 AI 生成代码中的特定反模式)可能未被及时收录。

安全解读

核心用法

insecure-defaults是一款专注于fail-open漏洞检测的安全审计技能,核心功能是帮助开发者在代码审查和配置管理中发现"失败开放"的安全隐患。与fail-secure(失败安全)模式不同,fail-open指应用在配置缺失时以不安全状态继续运行,而非崩溃。

典型检测场景包括:

  • 硬编码回退密钥SECRET = env.get('KEY') or 'default'
  • 弱默认认证AUTH_REQUIRED = env.get('AUTH', 'false')
  • 过度宽容权限:CORS设为*、文件权限0777
  • 弱加密算法:MD5/SHA1/DES/RC4在生产环境使用
  • 调试功能暴露:默认启用详细错误堆栈

该技能采用四步工作流:SEARCH→VERIFY→CONFIRM→REPORT,要求审计者追踪代码执行路径,验证生产配置覆盖情况,最终生成带证据的漏洞报告。

显著优点

专业聚焦的检测方法论
技能明确区分"失败开放"与"失败安全"模式,这一区分在业界常被忽视。通过env.get(X) or Yenv[X]的对比示例,清晰传达安全编码原则。

严格的生产导向过滤
明确排除测试固件、示例文件、开发环境配置等场景,避免误报。文档中"Rationalizations to Reject"章节直接反驳常见推诿借口(如"只是开发默认值"),体现实战导向。

完整的证据链要求
强制要求报告包含:漏洞位置、代码路径验证、生产配置检查、利用场景说明,符合企业级安全审计标准。

零可执行攻击面
纯Markdown文档+元数据,无实际代码执行,依赖用户手动执行搜索命令,从根本上杜绝供应链攻击风险。

潜在局限

依赖人工执行效率
技能提供搜索模式(grep正则)和检查清单,但无自动化扫描引擎。大规模代码库审计时,人工执行grep命令效率低下。

语言覆盖不均衡
示例主要围绕JavaScript/TypeScript(process.env)、Python、Ruby等动态语言,对编译型语言(Go、Rust、Java)的常量折叠、构建时配置模式覆盖不足。

云原生场景待扩展
当前模式集中于传统环境变量处理,对Kubernetes ConfigMap/Secret注入、Helm模板默认值、IaC(Terraform/Pulumi)的default =模式缺乏专门检测逻辑。

AI/ML配置盲区
未涵盖大模型API密钥(OPENAI_API_KEY)、RAG系统权限、Agent工具授权等新兴风险点。

适合人群

  • 安全工程师:执行生产环境准入审计、红队评估
  • DevOps/SRE工程师:审查Dockerfile、K8s清单、IaC模板的配置安全
  • 开发团队Tech Lead:建立代码评审Checklist,培训团队安全编码规范
  • 合规审计人员:满足SOC 2、ISO 27001等标准的配置管理审计要求

常规风险

T3来源需谨慎验证
来自clawdbot/skills个人/社区仓库,无顶级开源基金会背书。虽经S级安全认证,但建议企业用户:

  • 复核文档中的正则表达式模式是否匹配内部编码规范
  • 将技能输出与Snyk、Semgrep等专业工具交叉验证

权限声明的潜在误用
技能声明了Bash工具权限(用于执行grep等搜索),若用户环境未正确隔离,可能意外执行危险命令。建议在受限容器或CI环境中运行。

示例代码的复制风险
文档中包含'default''admin123'等示例密码,虽明确标记为虚构,但存在被开发者误复制到生产代码的极低概率。建议在内部使用时追加醒目警告。

---

认证结论:该技能经CLS-Certify v2.1.0扫描,获S级(90分)认证。纯文档形态、零外部依赖、专业安全内容,适合作为安全审计参考手册集成至SDL流程。

insecure-defaults 内容

手动下载zip · 6.5 kB
examples.mdtext/markdown
请选择文件