当前位置: 首页 > news >正文

基于 Anthropic Claude API 的自动化代码安全审计工具

基于 Anthropic Claude API 的自动化代码安全审计工具

Claude Code Security Scanner

基于 Anthropic Claude API 的自动化代码安全审计工具。支持批量扫描项目文件,智能过滤误报,生成结构化的安全报告。

功能特性

  • 批量并发扫描– 可配置最大并发数,高效处理大量文件

  • 断点续扫– 自动保存进度,中断后可恢复扫描

  • 智能大文件处理– 支持提取关键代码段、截断或跳过超大文件

  • 误报过滤– 内置硬排除规则(如 DOS、速率限制、非 C/C++ 内存安全等问题),可选 AI 二次过滤

  • 增量报告– 每处理 N 个文件即生成临时报告,便于实时监控

  • 多格式输出– 生成 JSON 和 HTML 格式的最终报告

  • 可定制扫描范围– 自定义排除目录、额外文件扩展名

快速开始

安装依赖

bash

pip install anthropic tqdm

基本使用

//base command python scan_project.py --path /path/to/project --api-key YOUR_API_KEY //test command python scan_project.py --path ../to_test_simple_system --api-key YOUR_API_KEY --base-url https://api.kwwai.top --model claude-opus-4-6 --resume --report-interval 5 --large-file-strategy extract

命令行参数

参数类型默认值描述
--pathstr.项目根目录路径
--excludestr[]额外排除的目录名(空格分隔)
--extensionsstr[]额外扫描的文件扩展名(如.kt
--max-concurrentint5最大并发 API 请求数
--output-jsonstrsecurity_report.json最终 JSON 报告输出路径
--output-htmlstrsecurity_report.html最终 HTML 报告输出路径
--api-keystr环境变量ANTHROPIC_API_KEYAnthropic API 密钥
--base-urlstr自定义 API 端点(用于代理或兼容服务)
--modelstrclaude-3-opus-20240229Claude 模型名称
--resumeflagFalse启用断点续扫(基于.scan_progress.json
--report-intervalint5每处理 N 个文件更新一次临时报告
--large-file-strategyextract/skip/truncateextract大文件(>1MB)处理策略:提取关键段、跳过、截断

项目结构

text

claudecode/ ├── scan_project.py # 主入口脚本 ├── file_scanner.py # 文件扫描与过滤(扩展名、排除目录、大小限制) ├── api_client.py # Claude API 封装,支持大文件提取和重试 ├── batch_processor.py # 并发批处理器,进度回调与断点续扫 ├── report_generator.py # JSON/HTML 报告生成,聚合发现项 ├── findings_filter.py # 硬排除规则(内存安全、DOS、开放重定向等) ├── prompts.py # PR 安全审计提示词模板(用于单独 PR 场景) └── constants.py # 常量配置(超时、令牌限制、退出码等)

工作流程

  1. 扫描文件FileScanner遍历项目,根据扩展名、排除目录、文件大小和排除模式筛选待审文件。

  2. 加载进度– 若启用--resume,从.scan_progress.json读取已扫描文件,跳过已完成项。

  3. 并发分析BatchProcessor使用ThreadPoolExecutor并发调用SecurityReviewClient.analyze_file(),每个文件:

    • 大文件按策略处理(提取关键函数/SQL/路由,或截断/跳过)

    • 调用 Claude API 获取 JSON 格式的漏洞列表

  4. 增量报告– 每完成一个文件,将结果追加到临时 JSONL 文件;每report-interval个文件生成一次临时 HTML/JSON 快照。

  5. 硬过滤ReportGenerator在聚合结果时调用FindingsFilter,自动排除以下误报:

    • Markdown 文件中的发现

    • 通用 DOS/资源耗尽问题

    • 速率限制建议

    • 非 C/C++ 文件中的内存安全警告

    • HTML 文件中的 SSRF 发现

    • 开放重定向、正则注入等低影响项

  6. 生成报告– 扫描结束后,从 JSONL 聚合所有结果,应用过滤,生成最终 JSON 和 HTML 报告,并清理临时文件。

输出报告示例

JSON 结构

json

{ "scan_summary": { "total_files_scanned": 42, "files_with_issues": 3, "total_vulnerabilities": 5, "scan_time": "2025-04-13T10:30:00" }, "vulnerabilities_by_severity": { "critical": 1, "high": 2, "medium": 2, "low": 0 }, "vulnerabilities_by_type": { "sql_injection": 2, "command_injection": 1, "hardcoded_secret": 2 }, "file_details": [ { "file": "app/auth.py", "line_count": 120, "vulnerabilities": [...], "summary": "Found SQL injection in login handler" } ], "overall_risk_assessment": "HIGH - Urgent remediation recommended" }

HTML 报告

生成美观的表格样式报告,按严重程度高亮显示,适合分享或归档。

环境变量

  • ANTHROPIC_API_KEY– API 密钥(可通过--api-key覆盖)

  • CLAUDE_MODEL– 默认模型名(在constants.py中定义)

注意事项

  • 需要有效的 Anthropic API 密钥(或兼容的自定义端点)

  • 大文件提取模式可能丢失部分上下文,建议对关键项目使用extract(默认)并人工复核

  • 硬排除规则基于关键词匹配,可能存在漏网之鱼;可扩展findings_filter.py中的规则

  • 断点续扫依赖当前扫描参数(如路径、排除规则),若改变参数建议删除.scan_progress.json重新扫描

  • 本项目仅供教育研究使用,请勿用于任何可能带来风险的场景。因不当使用所引发的一切后果,与本人无关

http://www.jsqmd.com/news/641851/

相关文章:

  • 工业CT三维重建技术全解析:从断层扫描到高精度3D模型的内部透视
  • 做了多年精益改善却没效果?精益改善不是工具,是机制
  • 告别卡顿!用RK3588+QuickRun打造多任务AI视觉系统:充电桩、垃圾分类、悬崖检测一板搞定
  • Socket--UDP 构建简单聊天室
  • EC 数据驱动的颠簸指数计算python全解析
  • 为什么你的AIAgent在压测中“静默崩溃”?揭秘LLM调用链中缺失的5层调试元数据
  • RAG学习之-Rerank 技术详解:从入门到面试
  • 【2026奇点大会权威解码】:文档理解模型的5大技术跃迁与企业落地避坑指南
  • 多模态知识蒸馏四大陷阱与破局方案(工业级部署避坑手册)
  • 5 分钟实现 MySQL 监控:用 mysql_exporter 把数据库指标全喂给 Prometheus
  • Beego ORM 实例化最佳实践:为何每次请求都应创建新 orm 实例
  • Ansible 高并发实战:从异步到集群的完整方案
  • 海康VisionMaster直方图工具实战:从灰度分析到图像优化
  • ClaudeSkills解决了什么问题?还有哪些问题没解决?
  • 中兴U30air与流量大师M3随身WiFi的ABD模式开启全攻略
  • 银河麒麟V10下grub2修复实战:从破坏到恢复的全过程
  • 数字传感护华为数字能源大厦,控制加固施工安全风险!
  • DeOldify云原生部署:基于Docker和Kubernetes构建弹性伸缩服务
  • MATLAB代码:基于Stackelberg博弈的光伏用户群优化定价模型 关键词
  • 4月14日成都地区柳钢产热轧卷(Q335B;厚度5.75-15.75mm)现货报价 - 四川盛世钢联营销中心
  • 11(十一)Jmeter设置全局变量
  • MongoDB GridFS的默认MD5计算在集群中消耗CPU怎么办
  • 多模态大模型幻觉防控的7个致命盲区(第4条90%团队仍在踩坑)
  • 从仿真到实践:3T4R毫米波雷达阵列信号建模与MVDR超分辨算法验证
  • Android 音视频编解码(三) -- MediaCodec 实战:同步与异步解码性能对比
  • Go语言的Docker容器化实践
  • RPG Maker Decrypter:新手也能轻松解密的游戏资源提取神器
  • 两级三相光伏并网仿真手札
  • Chrome浏览器下HackBar_v2.2.6插件的安装与破解指南
  • 手把手教你为STM32F407添加USB2.0高速支持(含PHY选型与ULPI接线详解)