关于 security
security 是指导 Agent 处理凭据和敏感数据的技能,面向需要安全检查文件与输出的开发工作。它规定敏感文件识别、信息保护和问题报告方式。
主要功能
- 01按文件可能内容判断敏感性
- 02保护凭据与个人数据
- 03避免读取敏感文件
- 04防止输出泄露机密
- 05报告疑似安全问题
适用场景
- 01开发任务中的文件检查
- 02安全处理日志或 API 响应
- 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 异常可能包含凭证值。
缓解措施:
- 在读取时清理并验证凭证环境变量。
- 包装 HTTP 和子进程调用,避免底层异常暴露包含凭证的原始值。
- 机密信息优先使用环境变量,而非命令行参数。
- 将脱敏钩子视为备用措施,而非主要防护手段。
敏感业务数据
即使客户数据、工单导出内容、API 响应、CSV 文件和数据库查询结果不属于凭证,也应将其视为机密。除非用户明确确认可以安全输出,否则不要打印原始值。
适用于 LLM 的日志记录
脚本生成指向敏感文件的路径时,应妥善措辞,让人知道需要检查该文件,也让助手知道不能读取它。
推荐格式:
/tmp/users.json — WARNING: Contains sensitive data. Only a human should review it.
对 AI 不可见的调试
如果脚本可能输出敏感诊断信息,优先让人类在单独的终端中运行脚本,并且只报告错误类型等安全摘要。
评论
支持 Markdown