C11
共享 3D 打印机的恶意 G-code 物理边界守门器
A Physical-Safety Gatekeeper for Shared 3D-Printer G-code
1 · 创新命题
中 面向学校 makerspace 和图书馆共享 3D 打印机,做一个打印前守门器:把 G-code 中的温度、运动、 挤出与固件命令还原为时间序列,与该机型已核实的物理边界比较,阻止超温、越界运动和危险宏,同时 生成可解释报告;相对肉眼检查切片预览,专门覆盖“外观正常但命令危险”的文件。 EN A pre-print gatekeeper for school and library 3D printers that reconstructs temperature, motion, extrusion and firmware commands from G-code, blocks out-of-envelope jobs, and explains why—catching files whose preview looks normal while their machine instructions are unsafe.
2 · 背景与空白
OctoPrint 可远程管理打印机并有插件生态,PrusaSlicer/Cura 做切片预览,Marlin/Klipper 固件内置限位与 热失控保护;但旧机固件、禁用保护、宏命令和机型配置差异会留下缝隙。学术界已有 3D 打印网络安全与 声学侧信道研究;本题不做攻击教程。空白在:为共享打印队列提供独立于固件的、机型特定物理包络 验证,并以受控台架证明误阻与危险拦截,而不是仅做字符串黑名单。
3 · 可检验假设
H1 对 ≥ 500 个正常作业与 ≥ 120 个合成危险变体,守门器对超温、越界、异常挤出与危险命令的 召回 ≥ 0.95、正常作业误阻 ≤ 2%,解析时间 ≤ 原切片时间的 20%。 H2(机制)状态机/物理包络相对关键词黑名单将绕过样本召回提高 ≥ 25 个百分点,尤其能识别相对 移动与宏展开后的越界。
4 · 量化验收标准
- 【方法学校验 · 硬门槛】 用自建解析器复现 Marlin/Klipper 官方文档至少 30 个G-code 状态转换算例,最终坐标、挤出量和设定温度与参考模拟器偏差 ≤ 1%;用校准方块验证估计打印时长 偏差 ≤ 10%。此条不过,后续全部结论无效。
- 500 正常文件按模型/切片配置划分;危险变体由公开命令语义合成,不发布可直接伤害设备的集合。
- 极不平衡检测报 PR-AUC、召回、精确率、误阻率,明确不报 accuracy;同一 STL 的变体不得跨集。
- 只在自有、成人监督、限温断电台架测试;真实加热器另设硬件热熔断,不以软件保护软件。
- 基线含切片器预览、关键词规则、固件默认检查;报告每类漏报而非一个总分。
5 · 数据与工具
| 用途 | 来源 / 工具 |
|---|---|
| 文件/解析 | Marlin、Klipper G-code 文档,PrusaSlicer/Cura 样例;方言差异需逐机型建档 |
| 管理接口 | OctoPrint 插件或独立上传代理;插件能力边界按版本 需核实 |
| 台架 | 自有入门 FDM 打印机、外置温度记录器、带熔断/急停插座;价格 需核实 |
| 校验 | 固件官方状态算例与校准方块 —— 仅用于校验与对比,不计入数据贡献 |
| 安全 | 不执行未审查危险文件;公开数据只保留抽象特征和安全化变体 |
能力边界:正确 G-code 也可能因机械故障起火。致命错误是把守门器当作热失控保护的替代品; 它只能做上传前附加检查,硬件熔断和现场管理仍必需。
物理包络应由打印机铭牌、固件配置和管理员批准共同生成,不能照抄网络上同系列机型参数。复合命令、 单位切换、相对/绝对坐标和重置原点会改变后续全部状态,解析器必须保留完整轨迹;任何未实现方言都应 拒绝自动判绿。对误阻文件还要记录管理员最终是否放行,以估算真实工作流成本。 还须验证同一文件在模拟器与实机读取到的单位、原点和固件宏是否一致;一旦不一致,该方言只能显示 unknown。管理员覆盖警告后,系统应留下理由与文件哈希,便于事后追溯而不保存用户模型内容。
6 · 赛季执行路径
- 第 1–2 周:30 个状态算例与校准方块硬门槛。
- 第 3 周:冻结机型包络;第 4–5 周实现相对坐标、宏与温度状态机。
- 第 6 周:整理 500 正常作业;第 7 周生成并人工审查 120 安全化变体。
- 第 8 周:按模型分组评估;第 9 周做关键词基线与消融。
- 第 10 周:限温台架和误阻工作流测试;第 11–12 周访谈管理员、简述和演示。
7 · 新颖性边界
不声称:不发明 G-code 解析;不保证防火;不发现打印机零日;不公开危险利用步骤。 已有工作:OctoPrint 管理队列;PrusaSlicer/Cura 预览;Marlin/Klipper 提供固件保护;学术界有 3D 打印网络安全研究。本项目贡献是共享 makerspace 的机型特定物理包络、上传前解释与公开的 危险拦截—误阻基准。护城河类型:存量改造(C)+ 极端具体(G);机型/固件/宏规则库是壁垒。
8 · go/no-go
第 3 周末:打印时长或坐标校验偏差 > 15%,具名降级为 单一 Marlin 机型、禁用宏的静态检查器, 保留物理包络主结论。 第 7 周末:安全审查后可用危险变体 < 80 个,收窄到超温和越界两类;第 9 周若误阻 > 8%, 降级为上传警告 + 管理员确认,不自动拒绝。