
目录1. 项目背景2. 集成工具3. 技术栈4. 工作流4.1 代码扫描4.2 固件扫描4.3 全部扫描5. 扫描报告6. 安全处理7. 主要版本记录8. 当前状态ISO/SAE 21434 要求对车载软件和固件做系统性静态分析。大厂用 Coverity / Klocwork / LDRA对小型 Tier-2/Tier-3 供应商来说授权费太贵。作者自己搭了一套开源工具链整合平台 FSC Scanner自托管、免许可费备份下设计和用法。1. 项目背景ISO/SAE 21434《道路车辆 — 网络安全工程》要求主机厂和供应商在整个产品生命周期内对车载软件和固件做系统性威胁分析与代码审查。大型整车厂和 Tier-1 通常使用商业工具Coverity、Klocwork、LDRA 等但这些工具对小型 Tier-2/Tier-3 供应商授权费用高昂、部署复杂。FSC Scanner 的目标是为小型汽车软件团队提供一套自托管、免许可费、开箱即用的合规辅助工具把主流开源静态分析工具整合到统一工作流输出符合 21434 审计要求的扫描报告。主页2. 集成工具工具用途cppcheckC/C 代码静态分析内置 MISRA C 2012 插件flawfinder危险 C/C 函数调用检测CWE 映射detect-secrets源码中的硬编码凭据与密钥检测binwalk固件签名识别与文件系统提取firmwalker提取目录中的密码、密钥、证书等敏感数据搜索checksecELF 二进制安全加固检查NX/PIE/RELRO/Canarytrufflehog深度凭据与密钥泄漏扫描3. 技术栈前端Vue 3 Element Plus中英文双语界面切换后端FastAPI SQLite无外部数据库依赖部署Docker 一键起无外部依赖dockercompose up-d# 浏览器打开 http://localhost:51734. 工作流4.1 代码扫描新建项目 → 新建版本 → 上传源代码压缩包或源文件支持批量混合上传→ 配置工具预设选哪些工具、cppcheck MISRA 规则集→ 点「Scan」→ 实时进度日志SQLite 轮询每 2s 刷新→ 扫描完成查看 HTML 报告。代码上传是增量追加模式新文件不覆盖已有文件方便分批上传大项目。上传后展示提取文件目录树最深 5 层。4.2 固件扫描固件支持多文件批量上传每个固件独立扫描、各出独立报告。扫描顺序优化为快速工具优先checksec → binwalk → firmwalker → trufflehog大固件优化binwalk 签名扫描自动限制前 50 MB--length专用超时 120s避免整体卡死。4.3 全部扫描「Scan All」按钮代码扫描 所有固件扫描并发执行。每个固件卡片独立显示实时扫描进度日志。扫描进行中禁止重复发起扫描或删除固件后端 409 保护。5. 扫描报告正式审计文档风格——深蓝文档头 全框线表格表头冻结有返回顶部按钮单 HTML 文件可独立查看。报告 API 实时从 SQLite 重建渲染模板更新后无需重新扫描。可按严重性/工具过滤代码报告包含版本号和完整分析文件列表。6. 安全处理# 解压时防路径穿越zip slip / tar traversaldefsafe_extract(archive,dest):destPath(dest).resolve()formemberinarchive.members:target(dest/member.name).resolve()ifnotstr(target).startswith(str(dest)):raiseValueError(f路径穿越:{member.name})archive.extract(member,dest)删除项目时同步清除所有本地文件上传、提取目录、报告。7. 主要版本记录版本时间主要变更1.0.02025-06初始版本多项目/版本管理代码固件扫描HTML 报告Docker 部署1.0.12025-06多文件批量上传目录树预览实时进度日志1.0.22025-06中英双语 UI报告重构为统一平铺表格1.0.32025-06修复 flawfinder CSV 大小写 bug、detect-secrets 扫描失败、MISRA 11,403 条误报1.0.42025-06多固件独立上传/扫描/报告Scan All 并发执行1.0.52025-06大固件 binwalk 限速优化代码增量追加模式1.0.62025-06报告全面重设计正式审计文档风格修复 zip slip 安全漏洞1.0.72025-06修复面包屑、toast 重复通知、删除前 409 保护8. 当前状态v1.0.7作者自用工具主要面向小型汽车软件团队做 ISO/SAE 21434 合规辅助。集成的各开源扫描器各自遵循其原始开源协议FSC Scanner 本身不提供商业授权。