关于 kafka-security-audit
用于审查代码库和基础设施中的 Kafka 安全设置,适合评估开发、预发布或生产环境的团队。它结合配置与凭据检查,并按环境等级调整问题严重性。
主要功能
- 01检查环境健康状况与等级
- 02扫描代码库中的安全配置
- 03审查 SASL 身份验证与 TLS
- 04检查硬编码凭据及 Git 跟踪
- 05按环境等级报告问题与修复建议
适用场景
- 01生产前检查 Kafka 安全性
- 02评估开发环境的身份验证与加密
- 03查找提交到代码库的凭据
MCP 相关
使用 Lenses MCP 检查环境健康状况和等级,并据此确定安全问题的严重性。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ lensesio/ agentic-engineering-for-apache-kafka --skill kafka-security-audit安装后在 Claude Code 中输入/kafka-security-audit确认已加载。
附带文件references/security-properties.mdreferences/test-cases.md
详细介绍
Kafka 安全态势审计
审计代码库和基础设施中的 Kafka 安全配置。Kafka 集群通常会在开发环境中以 PLAINTEXT 启动,但之后从未妥善加固以用于生产环境。
目标环境:$ARGUMENTS
工作流
复制此检查清单并跟踪进度:
Security Audit Progress:
- [ ] Step 1: Check environment health and tier
- [ ] Step 2: Scan codebase for security configuration
- [ ] Step 3: Audit authentication
- [ ] Step 4: Audit encryption
- [ ] Step 5: Audit secrets management
- [ ] Step 6: Generate report
- 通过 Lenses MCP 检查环境健康状况和层级
- 扫描代码库中的安全相关配置(参见
references/security-properties.md) - 审计身份验证(SASL 机制)
- 审计加密(SSL/TLS)
- 审计机密管理(硬编码凭据)
- 报告发现,并根据环境层级校准严重性
步骤 1:环境上下文
使用 Lenses MCP 工具了解环境:
check_environment_health- 确认环境健康,且 Agent 已连接get_environment- 获取环境层级(开发、预发布、生产),以校准严重性级别。在开发环境中,PLAINTEXT 连接只是一个建议;在生产环境中则属于严重问题。
预期输出:环境层级(开发/预发布/生产)和健康状态。
验证:如果无法确定环境层级,则默认采用生产级严重性——多报告总比漏报安全。
步骤 2:检查代码库
搜索代码库中的 Kafka 安全配置。查阅 references/security-properties.md,了解完整的身份验证属性、加密属性和待扫描文件列表。
步骤 3:审计身份验证
应用 references/security-properties.md 中的身份验证审计规则。重点检查:
- 生产环境中使用 PLAINTEXT 协议(严重)
- 未使用 TLS 的 PLAIN SASL(严重)
- 生产环境中未配置身份验证(严重)
- 弱 SASL 机制(警告)
步骤 4:审计加密
应用 references/security-properties.md 中的加密审计规则。重点检查:
- 生产环境中未使用 SSL/TLS(严重)
- 已禁用主机名验证(警告)
- 密钥库密码以明文存储(警告)
步骤 5:审计机密管理
应用 references/security-properties.md 中的机密审计规则。重点检查:
- 源文件中存在硬编码凭据(严重)
- 凭据被 Git 跟踪(严重)
- 缺少
.gitignore条目(警告)
步骤 6:环境层级不匹配
将发现与 Lenses 提供的环境层级交叉核对:
- 生产/预发布:所有发现均按完整严重性处理
- 开发:将加密/身份验证发现降级为建议(本地开发环境可以接受)
- 标记任何可能被意外用于生产环境的开发环境配置
成功标准
定量标准
- 可触发 90% 的安全相关查询(使用 10–20 种不同表述进行测试)
- 在 12 次工具调用内完成审计(MCP + 代码库搜索)
- 每次运行的 MCP 调用失败数为 0
定性标准
- 严重性根据环境层级(开发与生产)正确校准
- 机密相关发现的漏报数为 0(绝不漏掉硬编码凭据)
- 每项发现都包含风险说明和修复步骤
示例
示例 1:生产前安全审查
用户说:“审计生产环境的 Kafka 安全性”
操作:
- 从 Lenses MCP 获取环境层级(生产)
- 扫描代码库中的所有安全属性
- 对生产环境应用完整严重性规则 结果:生成完整的安全审计报告,所有发现均按生产环境严重性处理
示例 2:开发环境检查
用户说:“我的开发 Kafka 集群安全性够好吗?”
操作:
- 从 Lenses MCP 获取环境层级(开发)
- 扫描代码库中的安全属性
- 将开发环境中的身份验证/加密发现降级为建议
- 对机密相关发现维持完整严重性(绝不应硬编码凭据) 结果:生成根据开发环境校准的报告
示例 3:以密钥为重点的审计
用户说:“检查代码库中是否存在硬编码的 Kafka 凭据”
操作:
- 搜索密钥模式(密码、令牌、API 密钥)
- 检查由 git 跟踪的
.env文件 - 确认
.gitignore是否包含凭据文件 结果:仅针对密钥管理的专项报告
故障排除
环境层级未知
原因:Lenses get_environment 未返回层级,或返回了自定义层级值。
解决方案:默认采用生产级严重性。安全问题宁可多报,也不要漏报。
无法确定 .env 文件是否由 git 跟踪
原因:当前未在 git 仓库中运行。
解决方案:检查是否存在 .env 文件并报告其存在。注明无法验证 git 跟踪状态。
密钥扫描出现误报
原因:“password”等词出现在文档或注释中,而非实际凭据中。 解决方案:报告所有发现,但注明置信度。将内联值标记为高置信度,仅供参考的提及标记为低置信度。
输出格式
## Security Audit Report
### Environment: {name} (tier: {development|staging|production})
### Critical (must fix)
- [file:line] Description of the security issue
Risk: {what could go wrong}
Remediation: {how to fix}
### Warning (should fix)
- [file:line] Description of the issue
Risk: {what could go wrong}
Remediation: {how to fix}
### Suggestion (consider improving)
- [file:line] Description of the issue
Recommendation: {how to improve}
### Summary
- X critical issues found
- Y warnings found
- Z suggestions found
- Environment tier: {tier}
- Authentication: {configured|missing}
- Encryption: {configured|missing}
- Secrets exposed: {yes|no}