01 · 云IoT平台参考架构与信任边界
1.1 平台功能分层
无论是AWS IoT Core(2015年推出)、Azure IoT Hub(2016年)、阿里云IoT平台、华为云IoTDA,还是企业自建的开源Broker集群(EMQX、Mosquitto、HiveMQ、VerneMQ),其功能架构高度同构,可抽象为六层:
| 层次 | 核心功能 | 主要攻击面 |
|---|---|---|
| 接入层 | 设备连接(MQTT/HTTPS/CoAP)、负载均衡、连接限额 | 伪造设备接入、连接洪泛、协议解析缺陷 |
| 身份层 | 设备注册、证书/令牌签发、策略绑定(如AWS IoT Policy) | 注册端点滥用、策略过宽(iot:*通配) |
| 消息层 | Topic路由、ACL、消息队列、离线消息 | 通配符订阅越权、Retain注入、跨租户泄露 |
| 孪生/影子层 | Device Shadow/孪生文档存储与同步 | 影子覆写=设备状态欺骗、影子读=行为画像窃取 |
| 规则引擎层 | 消息触发动作(转发至Lambda/函数计算/其他Topic/SQL动作) | 规则注入恶意动作、函数权限过宽横向移动 |
| 应用API层 | App/业务系统经HTTPS API管理设备、拉取数据 | API越权(IDOR)、令牌泄露、Webhook签名缺失 |
信任边界判断:平台内部(设备接入区)默认信任TLS通道与设备身份,任何进入消息层的实体即获得按策略放行的能力——因此身份层的策略粒度是全平台的"总闸门"。云厂商托管平台的责任共担模型中,"云本身安全"与"租户配置正确"是两件独立的事;自建Broker则连"Broker实现安全"(解析器内存安全、默认配置)都需自负。
1.2 主流平台安全机制对照
| 机制 | 代表实现 | 典型误配置 |
|---|---|---|
| 策略系统 | AWS IoT Policy(JSON策略,按客户端ID/Topic限定);EMQX ACL(用户名/ClientID/IP/主题四元组) | 策略含"*"通配资源;测试策略直接上生产;设备与策略未按型号分组 |
| 设备影子/孪生 | AWS Device Shadow;Azure Digital Twins;阿里云设备影子 | 影子文档可写权限赋予低信任组件;影子无版本控制导致状态回滚欺骗 |
| 规则引擎 | AWS IoT Rules(SQL语法过滤转Lambda/SNS/Kinesis等);阿里云规则引擎 | 规则转发的函数角色权限过大;SQL过滤器缺失导致敏感Topic全量外发 |
| OTA服务 | AWS IoT Jobs、各云OTA组件 | 升级包未签名或验签在云端而非设备端完成;Job可被低权限账户触发 |
| 审计日志 | CloudTrail类审计、Broker日志 | 日志未覆盖身份层操作;日志留存期短于攻击发现周期 |
02 · 平台IAM与Topic授权:最小权限的工程化
2.1 授权模型设计原则
- 资源-身份-动作三元组最小化:每台设备仅能PUBLISH/SUBSCRIBE自有Topic命名空间(如device/{deviceId}/up、device/{deviceId}/down),禁止使用跨设备前缀与"#"订阅;控制面Topic(OTA/重启/配置)与数据面Topic物理分离命名并独立授权。
- 服务间调用短时令牌化:App→平台API、规则引擎→下游函数,全部使用短期令牌(STS类)而非长效AK;令牌作用域按调用路径收敛。
- 策略即代码(Policy as Code):Topic策略纳入版本管理,变更走评审;自动化巡检"策略漂移"(实际策略偏离基线,如临时放行未回收)。
- 共享订阅的组权限隔离:MQTT 5.0共享订阅消费组按业务系统划分,组内成员最小化;消费端退出即时回收组权限。
2.2 常见越权模式(API层)
| 等级 | 模式 | 说明与防护 |
|---|---|---|
| 高危 | IDOR(不安全的直接对象引用) | API以设备ID为参数但仅校验"已登录"未校验"归属"(如GET /devices/{id}/shadow);防护:服务端逐请求校验资源归属,ID不可枚举(不可预测标识) |
| 高危 | Webhook/回调无签名 | 平台向业务系统推送事件若仅靠"URL保密",可被伪造事件触发业务动作;防护:HMAC签名+时间戳+重放窗口 |
| 中危 | 分页接口数据泄露 | 按cursor翻页接口越权拉取他户数据(cursor含排序键泄露);防护:cursor加密绑定租户上下文 |
| 中危 | 调试端点残留 | Verkada事件的直接教训:暴露的Jenkins等CI/CD构建服务器成为凭据金矿;防护:CI/CD系统禁止公网可达,凭据一律短期化 |
03 · 开源Broker与企业自建:实现层安全
3.1 主流开源Broker安全要点
| Broker | 背景 | 安全要点 |
|---|---|---|
| Eclipse Mosquitto | 最广泛部署的开源MQTT Broker,源自IBM捐献给Eclipse基金会(2013年),C语言实现、极简 | 配置紧凑、默认较保守(allow_anonymous默认依构建而定,部署时显式设置);生产环境配合mosquitto-go-auth等插件对接外部认证;2.0版本(2020年12月)改进了默认行为 |
| EMQX | 国产开源(EMQ公司),Erlang/OTP高并发架构,支持百万级连接与丰富插件生态(认证授权/规则引擎/桥接) | 功能丰富意味着配置面大:Dashboard/REST API默认口令必须首改;规则引擎SQL与桥接出方向需审计;企业版提供审计与增强认证能力 |
| HiveMQ | 德国商业开源路线,企业级MQTT(含MQTT 5.0早期完整支持) | 企业扩展(授权、审计、凯利扩展SDK)需按授权模型评估;Control Center管理面加固 |
| VerneMQ | Erlang实现、支持集群与多协议桥接 | 集群间通信与认证插件配置需审查;运维API暴露面收敛 |
3.2 自建平台的通用硬伤清单
- 管理面与数据面未隔离:Dashboard/REST API与1883/8883同网段发布;应管理面独立VLAN+IP白名单+强认证(含MFA)。
- 监听端口无收敛:默认监听0.0.0.0,含WS/WSS、管理端口;上线前端口清单评审,仅开放必要端口。
- 集群互联无加密与身份:多节点集群同步流量(Erlang分布、Mnesia类复制)明文传输,内网横向后全集群可读——集群互联强制mTLS。
- 无连接级限额与背压:单客户端连接数、订阅数、消息速率无上限,协议层DoS成本低;开启quotas并配流控告警。
- 证书与配置漂移:证书到期未轮换导致服务降级到明文端口;配置管理纳入监控(到期前30天告警)。
开源≠不安全,也不等于安全:开源Broker的实现质量总体较高(Mosquitto/EMQX均有专业维护),其事故多源于"默认配置的部署者责任"——匿名访问、无ACL、明文监听三项叠加,等于把消息总线挂在公网。基线核查(第7页给出工具与清单)是自建平台上线前的强制步骤。
04 · OTA升级链路与设备影子:两大高危控制通道
4.1 OTA链路安全要求
- 三段式防护:①下行通道TLS加密;②升级包完整性/真实性由设备端验签(验签公钥不可替换、算法不降级);③防回滚(版本单调或防回滚熔断)。任何一环缺失即可能重演"恶意固件全量推送"场景。
- 触发权限分级:发起OTA Job的账户/服务最小化;灰度机制(按批次、按设备分组);Job执行结果强制回传审计。
- 与固件课题的接口:固件侧验签实现审计归子课题01/04;本课题负责平台侧Job权限与分发通道安全。
4.2 设备影子的攻防语义
设备影子是"云端权威状态",攻击价值极高:
| 操作 | 攻击者收益 | 防护要点 |
|---|---|---|
| 读影子 | 获取设备配置、运行状态、地理位置等画像数据 | 影子读权限收敛至业务必需;敏感字段加密存储 |
| 写desired | 下发伪造目标状态——设备同步执行即被控制(如"开锁""上报频率""上传地址") | desired写入需控制面权限+应用层确认;关键动作(门锁/支付类)双人复核或设备端二次确认 |
| 版本回滚 | 利用无版本控制覆写旧状态造成混乱 | 影子文档强制version字段单调递增,Broker侧拒绝旧版本写 |
| 影子枚举 | 遍历设备ID拉取全网影子(IDOR) | 设备ID不可预测;API层逐租户校验;影子访问全量审计 |
本节参考来源(第4页)
以下均为真实可查的权威来源(标准组织、监管机构、漏洞库、厂商安全公告与主流安全媒体报道),用于支撑本页事实性表述;涉统计数字均标注原始出处。
AWS IoT Core开发者文档(策略、Device Shadow、Rules Engine、Jobs):docs.aws.amazon.com/iot/latest/developerguide;AWS责任共担模型:aws.amazon.com/compliance/shared-responsibility-model。
Microsoft Azure IoT Hub安全文档(X.509/TPM身份、Device Provisioning Service):learn.microsoft.com/azure/iot-hub。
阿里云物联网平台与华为云IoTDA产品文档(设备影子、OTA、规则引擎):aliyun.com/product/iot、huaweicloud.com/product/iothub.html。
Eclipse Mosquitto项目与文档:mosquitto.org;EMQX文档:emqx.io/docs/en/latest;HiveMQ:hivemq.com;VerneMQ:vernemq.com。
Verkada事件公开报道(2021年3月,Bloomberg等):"Hackers Breach Tens of Thousands of Security Cameras"(2021年3月9日)。
MITRE ATT&CK for ICS 与 ATT&CK 企业矩阵中"无线/协议滥用"相关技术项:attack.mitre.org(用于平台侧威胁建模对照)。
OWASP API Security Top 10(2023版,IDOR对应API1:2023):owasp.org/API-Security/editions/2023/en/0x11-t10。
终审增补 · 软件供应链、SBOM与标签治理新进展2026-09核验
D1. SBOM成为平台侧法定义务要素
云IoT平台与自建Broker同样身处软件供应链治理范畴,SBOM(软件物料清单)要求已进入多国合规框架:
| 框架 | SBOM相关要求 | 平台侧落地动作 |
|---|---|---|
| 欧盟CRA | 制造商须识别并记录产品组件,支持期与漏洞管理义务覆盖全部"含数字元素产品",平台型产品适用 | Broker/SDK/容器镜像组件台账;出口欧盟产品自2027-12-11起满足 |
| 美国NTIA SBOM最小要素(EO 14028) | 定义SBOM数据字段(供应商、组件名、版本、哈希、依赖关系等)的行业基线 | 作为SBOM编制格式基准(SPDX/CycloneDX) |
| ETSI EN 303 645第5.2-3条 | 要求持续监控产品中第三方组件漏洞——SBOM是其前提 | 与第4页"规则引擎函数依赖"审计合并执行 |
D2. FCC Cyber Trust Mark治理进展(2026年)
美国FCC于2024年3月通过Cyber Trust Mark规则(基于NIST IR 8425技术基线),技术准则与ETSI EN 303 645高度互认;2026年8月,FCC选定ioXt联盟为项目牵头管理方,标志该标签制度进入实质运营阶段。对出海消费IoT平台的启示:默认口令清零(第3页)、漏洞披露通道(第5页MV720路径)与SBOM(本增补D1)将成为跨境市场的"三重入场券"。
D3. 自建Broker生命周期治理补充清单
- 版本生命周期台账:跟踪Mosquitto/EMQX等组件的支持版本与EOL日期,停止支持的版本纳入强制升级计划(衔接第3页EOL凭据吊销流程)。
- 插件/SDK最小化:EMQX类丰富插件生态仅启用必需项,每插件独立评估(呼应第5页Kalay第三方SDK教训)。
- 配置漂移检测:将Broker配置文件纳入版本管理,定期与基线比对(衔接第4页"策略即代码")。
增补来源
FCC《U.S. Cyber Trust Mark》官方页面:fcc.gov/CyberTrustMark;FCC 2026年8月选定ioXt为牵头管理方公告:fcc.gov/document/fcc-selects-ioxt-new-cyber-trust-mark-program-lead-administrator。
美国NTIA《Minimum Elements for a Software Bill of Materials (SBOM)》(2021年7月):ntia.gov/files/ntia/publications/sbom_minimum_elements_report.pdf。
NIST IR 8425《Profile of the IoT Core Baseline for Consumer IoT Products》(2022年11月):csrc.nist.gov/pubs/ir/8425/final。