Bandit 高风险安全模式扫描
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/scan-python-code-for-risky-security-patterns-with-bandit-before-review-or-release。
技能介绍
要解决的具体问题
在 Python 项目迭代中,开发者常不经意间引入高风险安全模式。例如使用 hashlib.md5() 进行弱加密、通过 subprocess 开启 shell=True 拼接外部输入导致命令注入,或使用 pickle.loads() 处理不可信数据。这类漏洞在常规 code review 中极易被忽略,却可能在上线后被利用,成为系统的安全短板。
核心能力与关键步骤
该技能将 Bandit 静态分析工具集成到审查或发布流程中,核心工作流分为三步:
- 扫描源码树:针对本地 Python 源码目录执行深度扫描,提取代码的 AST 语法树。
- 规则匹配:利用 Bandit 内置的黑盒测试规则集,比对常见的反模式。
- 风险报告:输出结构化的告警列表,精确定位引发风险的
文件路径和代码行号,并附带修复建议。
适用边界与注意点
本技能侧重于静态规则匹配,主要针对已知的高风险 API 调用模式。它不能替代动态应用安全测试(DAST)或人工渗透测试。此外,扫描结果包含大量提示信息,开发者需结合业务上下文进行甄别,避免产生告警疲劳。对于高度定制化的加密算法或复杂的反序列化逻辑,仍需安全专家进行深度审计。
使用场景
- 准备合并 Pull Request 前,对改动的 Python 文件运行 Bandit,确认未引入弱加密或 shell 注入风险。
- 后端工程师在 CI 流水线加入安全扫描环节,确保待发布的 Python 服务不含已知高风险安全模式。
- 引入第三方 Python 库或内部 SDK 后,扫描全量源码,排查不安全的 subprocess 调用或反序列化写法。
- Tech Lead 审查新成员提交的 Python 模块时,借助 Bandit 输出的行号与建议快速定位风险点。
适合人员
- Python 后端开发工程师:希望在 merge 或 release 前用自动化工具发现弱加密、shell 注入等常见漏洞。
- 初创团队技术负责人:需要在无专职安全团队的情况下,给 Python 项目建立基础安全扫描门槛。
- 开源项目维护者:需要在 review 外部贡献者的 Python 代码时,快速识别不安全的 API 调用。