adaalkimacikyoll/Can-Bus-Analyzer

GitHub: adaalkimacikyoll/Can-Bus-Analyzer

一款用于解析车辆CAN总线日志并自动检测异常的CLI工具,解决工程师人工分析海量帧数据效率低下的问题。

Stars: 0 | Forks: 0

## 🚗 CAN Bus 分析器 ![Python](https://img.shields.io/badge/python-3.11-blue?logo=python) ![Docker](https://img.shields.io/badge/docker-ready-2496ED?logo=docker) ![Tests](https://img.shields.io/badge/tests-13%20passing-brightgreen) ![License](https://img.shields.io/badge/license-MIT-green) 一款用于解析、分析和报告 CAN 总线日志文件的 CLI 工具 —— 这是每辆现代车辆用于 ECU 间通信的协议。能够检测异常、生成结构化报告,并模拟真实的驾驶会话以供测试。 ## 问题背景 车辆试驾结束后,工程师们通常会面对包含数千帧数据的原始 CAN 总线日志。人工识别洪泛攻击、未知 ID 或信号丢失既缓慢又容易出错。本工具可自动化这一过程。 ## 功能特性 - 🔍 **异常检测** — 洪泛、未知 ID、信号丢失 - 📄 **双重报告输出** — 结构化 JSON + 可视化 HTML 报告 - 🎮 **日志模拟器** — 生成注入了异常的真实驾驶会话 - 🐳 **Docker 化** — 完全可复现的环境 - ✅ **13 个 Pytest 测试** — 解析器和分析器逻辑全覆盖 ## 架构 ``` .log file → Parser → Analyzer → Reporter ↓ Anomaly Detection Engine (Flooding / Unknown ID / Dropout) ``` ## 快速开始 **使用 Docker:** ``` docker build -t can-bus-analyzer . docker run can-bus-analyzer ``` **不使用 Docker:** ``` pip install pytest python3 -m src.cli simulate # generate sample log python3 -m src.cli analyze samples/drive_session.log ``` ## CLI 用法 ``` # 生成注入异常的模拟 log python3 -m src.cli simulate --frames 1000 # 生成干净的 log(无异常) python3 -m src.cli simulate --clean # 分析 log 文件 python3 -m src.cli analyze samples/drive_session.log # 自定义 output 路径 python3 -m src.cli analyze samples/drive_session.log \ --json output/my_report.json \ --html output/my_report.html ``` ## 示例输出 ``` ╔══════════════════════════════════════╗ ║ 🚗 CAN Bus Analyzer v1.0 ║ ║ Automotive Log Analysis Toolkit ║ ╚══════════════════════════════════════╝ ✅ 500 frames parsed, 0 lines skipped 📊 Total frames : 500 🔑 Unique IDs : 6 🔍 Anomalies : 1 ⚠️ Anomalies found: 🟡 [WARNING] UNKNOWN_ID: ID 0X7FF not in known ID list 📁 Reports saved: output/report.json | output/report.html ``` ## 异常类型 | 类型 | 严重程度 | 描述 | |------|----------|-------------| | `FLOODING` | CRITICAL | 某个 ID 占据了超过 40% 的帧 | | `UNKNOWN_ID` | WARNING | 不在已知白名单中的 ID | | `DROPOUT` | WARNING | 预期出现的 ID 在日志中从未出现 | ## 运行测试 ``` python3 -m pytest tests/ -v ``` ## 项目结构 ``` ├── src/ │ ├── simulator.py # Drive session log generator │ ├── parser.py # CAN frame parser │ ├── analyzer.py # Anomaly detection engine │ ├── reporter.py # JSON + HTML report generator │ └── cli.py # Command-line interface ├── tests/ │ ├── test_parser.py │ └── test_analyzer.py ├── samples/ # Sample log files ├── output/ # Generated reports ├── Dockerfile └── requirements.txt ``` ## 相关性 CAN 总线分析是汽车和电动汽车工程流程中的核心任务。本工具模拟了真实世界的工作流程,即在固件更新或硬件验收之前,处理试驾后的日志文件以验证 ECU 行为。
标签:CAN Bus, CAN总线, Docker, ECU验证, PE 加载器, Python, SecOps, 云安全架构, 代码示例, 信号注入, 安全防御评估, 异常检测, 数据分析, 无后门, 日志模拟, 汽车安全, 溢出攻击检测, 物联网安全, 请求拦截, 车联网, 车载网络, 配置审计, 配置错误