用途:分析源码中的密码学弱点,对应 OWASP Top 10 A02:2021 加密失败。覆盖弱/损坏算法、硬编码加密密钥、不当口令哈希、敏感数据明文传输、缺少静态加密、不安全随机数生成。
主要能力:支持按范围、深度、严重级别过滤;standard 检查导入、函数调用与配置值,deep 追踪密钥来源与敏感数据流。涉及 CWE-261、327、328、330、331、338、759、760、798。
使用方式:先确定范围并筛选加密/安全工具模块、认证模块、配置文件、含口令字段的模型、TLS/SSL 配置。检测可用扫描器并记录缺失情况。semgrep 主扫描命令:semgrep scan --config auto --json --quiet <target>;gitleaks 检测硬编码密钥:gitleaks detect --source <target> --report-format json --report-path /dev/stdout --no-banner;Python 用 bandit -r <target> -f json -q;Go 用 gosec -fmt json ./...。无论扫描器是否可用,都进行人工分析:哈希算法审计、密钥管理、口令存储、随机数生成、TLS 配置、加密模式(ECB)。
报告:按 findings schema 输出,ID 前缀 CRYPT,包含严重级别、置信度、文件位置与代码片段、影响、修复 diff、CWE 与 OWASP 引用;framework 为 owasp,category 为 A02。严重级别建议:critical 为明文口令、硬编码生产密钥、禁用 TLS 校验;high 为 MD5/SHA1 哈希口令、敏感数据 ECB、Math.random() 生成令牌;medium 为弱密钥派生、旧 TLS、缺少静态加密;low 为 SHA-256 哈希口令。
限制:无扫描器时用 Grep 回退,置信度记为 medium;部分信息暂未提供。