mcpField
S
security

security

github.com/arthurzakirov安全0170 次安装3 天前更新
代码仓库

关于 security

security 是指导 Agent 处理凭据和敏感数据的技能,面向需要安全检查文件与输出的开发工作。它规定敏感文件识别、信息保护和问题报告方式。

主要功能

  1. 01按文件可能内容判断敏感性
  2. 02保护凭据与个人数据
  3. 03避免读取敏感文件
  4. 04防止输出泄露机密
  5. 05报告疑似安全问题

适用场景

  1. 01开发任务中的文件检查
  2. 02安全处理日志或 API 响应
  3. 03应对意外暴露的凭据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/arthurzakirov/systemsmith --skill security

安装后在 Claude Code 中输入/security确认已加载。

详细介绍

凭证与数据保护

核心原则

根据文件可能包含的内容,而非文件所在位置,判断其敏感性。如果某种文件类型可能包含身份验证数据,除非能明确证明并非如此,否则应将其视为敏感文件。

通用化原则

当针对某类敏感数据总结出安全经验时,应将修复措施推广到整个类别,而不只是保护触发这次经验的具体对象。

类别包括:

  • 凭证
  • 个人身份信息(PII)
  • 客户数据
  • 基础设施机密
  • 敏感日志和错误输出

安全例外

读取环境变量或机密管理器中凭证的源代码本身并不敏感,除非其中嵌入了真实值。

仅关联虚拟系统的测试和开发凭证可以检查,但生产凭证和个人凭证必须严格保护。如有疑问,请先询问。

主动报告

如果发现可能的安全问题或意外看到敏感凭证材料,应立即提醒用户,但不要复述机密值。

切勿读取敏感文件

请勿读取可用于身份验证的文件,例如:

  • .env 或 .env.*
  • .npmrc
  • .yarnrc 或 .yarnrc.yml
  • .netrc
  • .ssh/*
  • .aws/credentials
  • 包管理器身份验证文件
  • 路径中包含 secret、credential 或 token 等字样的任何文件

如果文件名暗示其可能包含机密,应将这一原则扩展到上述列表之外。

如果文件名看起来无害,但内容似乎包含类似凭证的信息,请停止操作,并询问用户哪些部分可以检查。

切勿通过输出泄露凭证

避免:

  • 打印环境变量
  • 在命令参数中内联凭证
  • 输出会暴露令牌、密码或个人数据的日志
  • 会转储标头或含机密配置的调试输出

安全处理错误

将错误消息视为可能的泄露渠道。标准库和 CLI 异常可能包含凭证值。

缓解措施:

  1. 在读取时清理并验证凭证环境变量。
  2. 包装 HTTP 和子进程调用,避免底层异常暴露包含凭证的原始值。
  3. 机密信息优先使用环境变量,而非命令行参数。
  4. 将脱敏钩子视为备用措施,而非主要防护手段。

敏感业务数据

即使客户数据、工单导出内容、API 响应、CSV 文件和数据库查询结果不属于凭证,也应将其视为机密。除非用户明确确认可以安全输出,否则不要打印原始值。

适用于 LLM 的日志记录

脚本生成指向敏感文件的路径时,应妥善措辞,让人知道需要检查该文件,也让助手知道不能读取它。

推荐格式:

/tmp/users.json — WARNING: Contains sensitive data. Only a human should review it.

对 AI 不可见的调试

如果脚本可能输出敏感诊断信息,优先让人类在单独的终端中运行脚本,并且只报告错误类型等安全摘要。

评论

支持 Markdown