USB 安全、授权、USB/IP 与产品加固
1. 威胁
USB设备可提供恶意:
- descriptors;
- class protocol;
- HID输入;
- network interface;
- storage内容;
- firmware updater;
- composite interfaces;
-PD/Type-C行为。
物理接入不应等同信任。
2. Authorization
Sysfs:
1 | /sys/bus/usb/devices/usbN/authorized_default |
可默认不授权新设备,再由策略daemon按port/VID/PID/class批准。VID/PID可伪造,不能作为高安全唯一身份。
3. USBGuard/LSM
用户态USBGuard可建立设备策略;结合lockdown、SELinux/AppArmor和udev权限限制usbfs、serial、storage及HID设备节点。
4. usbfs
/dev/bus/usb/* ioctl允许control/bulk传输、claim interface和reset。权限过宽可绕过高层daemon策略或攻击firmware。
5. Gadget安全
ConfigFS可改变设备身份和functions。限制写权限,量产仅暴露必要ACM/FunctionFS/UVC等。ADB、RNDIS/ECM、可写Mass Storage均扩大攻击面。
6. USB/IP
usbip/:
- stub导出物理USB device;
- VHCI在客户端导入;
- VUDC导出gadget controller。
USB/IP把USB信任边界扩展到网络。原生协议不应被视为提供强认证/机密性,应置于受控网络/VPN并限制daemon权限。
7. Type-C/PD
限制source功率、电压和role swap;不可信充电器不应自动获得data role。可采用charge-only策略或数据授权。
8. DMA
USB device一般通过Host controller DMA,外设本身不像PCIe直接DMA主内存,但恶意数据仍可攻击HCD/class parser。IOMMU可限制controller DMA故障影响,但不能替代协议安全。
本树RK3588 USB controller DT节点未声明iommus属性,不能假定xHCI/DWC3 DMA已受IOMMU隔离;应以运行时IOMMU group、boot log和最终DTB核实。
9. 固件
USB设备firmware loader会从 /lib/firmware下载blob。使用只读、签名/校验、版本受控的镜像。
10. 裁剪
产品禁用不需要的:
- USB/IP;
- VHCI/VUDC;
- legacy class;
- generic USB serial;
- Gadget functions;
- usbtest;
- debugfs/verbose logs;
-自动授权。
11. Cables与阻断器
Charge-only cable/data blocker只能作为物理策略补充;Type-C PD、Alt Mode和e-marker仍需考虑。
12. 审计
记录最终 .config、DTB、allowed classes、port策略、Gadget配置、PD PDO和firmware hash,并对插拔/畸形descriptor/fuzz进行回归。
正在加载留言…