本地 MQTT 安全工具

在部署前发现高风险 MQTT 主题权限

使用固定的逐行 ACL 文档检查 MQTT 通配符错误,以及 RunMQTT 租户、设备和方向风险。分析完全在当前浏览器标签页内完成。

交互检查

在本地检查 ACL 文档

可从安全或故意不安全的 Fixture 开始。检查结果只引用行号,不会把文档发送给 RunMQTT 或 Analytics。

仅在本地分析

策略仅保留在当前浏览器标签页中,不会上传、记录、写入 URL 或保存到 Local Storage。

每行一条指令或规则。注释以 // 开头。

分析文档后即可查看具体到行的检查结果。

固定输入契约

每行只表达一个明确边界

格式刻意保持精简,只描述一个 profile、一个可选的字面租户 scope、一个主体和带方向的 ACL 规则。

RunMQTT 设备 Fixture
// Comments start with //
profile runmqtt
scope tenants/acme
principal device sensor-42
publish tenants/acme/devices/sensor-42/telemetry
subscribe tenants/acme/devices/sensor-42/commands/#

使用 profile mqtt 仅执行协议检查;使用 profile runmqtt 还会检查 scope、设备和方向。

每条 ACL 规则以 publish、subscribe 或 both 开头,后接且只接一个 MQTT 主题过滤器。

RunMQTT scope 是 Linter 用来发现租户逃逸的字面主题前缀;它不会上传或添加到 Broker。

规则集

明确区分标准检查与产品检查

每条结果均标为 MQTT 或 RunMQTT,避免混淆协议要求与产品特定安全模型。

MQTT 过滤器语法

依据 MQTT 主题过滤器规则检查 # 的位置、+ 是否独占一层、UTF-8 长度、空字符和过宽的根通配符。

重复与重叠

查找重复权限,以及同方向上已被更宽规则包含的过滤器。

RunMQTT 边界

检查规则是否位于声明的字面 scope 内,以及设备主体是否使用了其他设备 ID 或通配符。

RunMQTT 方向启发式检查

标记设备向命令通道发布、订阅遥测通道,以及对单向通道授予双向权限的情况。
方法与 FIXTURE

提供可复现规则,而不是评分

Linter 返回确定性的规则代码和行号,不虚构安全评分,也不推断运行时执行结果。

MQTT 语法与重叠行为以 OASIS MQTT 5.0 主题规则为依据。
页面与自动化测试共用安全和故意不安全的 Fixture。
解析器、规则引擎、Fixture 和测试均位于公开 GitHub 仓库。
仓库的 MIT License 覆盖 Linter 代码和 Fixture。
限制

静态检查结果不是安全审计

结果无告警只代表所提供的文档通过了已建模检查。Broker 配置和负向授权测试仍然是最终依据。

Linter 不连接 Broker,也不确认 Broker 的实际 ACL 行为。
拒绝规则优先级、继承角色、共享订阅和厂商扩展不在模型范围内。
遥测和命令方向判断依赖命名约定,需要人工复核。
请勿粘贴凭证或 Payload;输入格式只需要主题权限。