经典案例

  • 首页
  • 经典案例
  • 识别错误配置的物联网政策,使用 AWS IoT 设备防御 官方博客关于物联网

识别错误配置的物联网政策,使用 AWS IoT 设备防御 官方博客关于物联网

  • 2026-01-27 14:46:55
  • 7

利用 AWS IoT Device Defender 识别配置错误的物联网策略

关键要点

在这篇文章中,我们介绍了 AWS IoT Device Defender 的新审核功能,旨在帮助用户识别物联网策略中使用通配符时可能出现的配置错误。这种功能可以更简单地发现问题并采取必要的纠正措施,从而提升物联网解决方案的安全性。

引言

我们很高兴地宣布 AWS IoT Device Defender 新增了一个 审核功能,该功能旨在识别使用通配符时可能出现的配置错误。 AWS IoT Device Defender 是一个完全托管的物联网安全服务,可以帮助您审计和监控 IoT 设备群,同时持续保障您的 IoT 配置安全。安全配置错误,例如过于宽松的策略,可能会允许设备访问意外资源,这是导致安全事件的主要原因之一,并可能危及您解决方案的安全性。通过新的 AWS IoT Device Defender 审计功能,您可以更轻松地识别缺陷、排查问题并采取必要的纠正措施,从而改进物联网解决方案的安全性。

背景

AWS IoT Core 策略 是 JSON 文档,它们遵循 AWS 身份与访问管理IAM策略的相同约定。通过 AWS IoT Core 策略,您可以控制对 AWS IoT Core 数据平面的访问。AWS IoT Core 数据平面包括连接 AWS IoT Core 消息代理并发送和接收 MQTT 消息的操作。同样,数据平面操作还可以帮助您通过 AWS IoT Device Shadow 获取或更新设备的状态。该功能使设备的状态对应用和其他服务可用,无论设备是否连接到 AWS IoT。

在某些情况下,客户可能会因 IoT 策略通配符与 MQTT 通配符之间的混淆而错误配置 IoT 策略。如果客户以某种方式配置 IoT 策略,设备可能被错误地过度订阅,从而接收本应被明确拒绝的主题的数据。

本文将讨论两种类型的配置错误,以及如何使用 AWS IoT Device Defender 审核来识别和修复这些潜在的 IoT 策略配置错误。

在 MQTT 和 AWS IoT Core 策略中使用通配符

MQTT 和 AWS IoT Core 策略使用不同的通配符字符,您应该在仔细考虑后选择它们。在 MQTT 中,通配符字符“”和“#”用于 MQTT 主题过滤器,以订阅多个主题名称。“”表示单个 MQTT 主题级别,而“#”表示多个 MQTT 主题级别。AWS IoT Core 策略使用“”和“?”作为通配符,遵循 IAM 策略的约定。在策略文档中,“”表示任意字符组合,而问号“?”表示任意单个字符。在策略文档中,MQTT 通配符字符“”和“#”会被视为没有特殊含义的字符串。要描述多个主题名称和主题过滤器,请在策略的资源属性中使用“”和“?”通配符字符,替代 MQTT 通配符字符。

在选择策略文档中使用的通配符字符时,请注意“”字符并不局限于单个主题级别,而“”字符在 MQTT 主题过滤器中是有局限的。为了将通配符约束为单个 MQTT 主题过滤器级别,考虑使用多个“?”字符。请参考文档 获取示例,以了解 MQTT 和 AWS IoT Core 策略中使用的通配符字符。

配置错误的两种类型

类型 1: 当客户希望设备接收整个主题空间“building/”的消息,但不希望接收与“building/controlroom/”相关的特定子主题时,会发生此错误。

在这个例子中,主题过滤器旨在拒绝访问,但使用通配符的结果却是允许访问。在包含通配符的允许语句的策略中,如果拒绝语句有一个允许资源的子集,那么拒绝主题消息可能会通过订阅通配符被访问。

{ Effect Allow Action Subscribe Resource /topicfilter/building/

Effect Deny Action Subscribe Resource /topicfilter/building/controlroom/#

Effect Allow Action Receive Resource /topics/building/}

然而,当设备订阅“building/#”时,它会接收到来自“building/controlroom/3”的消息。这是因为主题“building/#”与允许的“building/”匹配,从而授权了设备的订阅操作。需要注意的是,在应用程序代码中,“building/#”与所有数据匹配,且设备已被订阅,因此会接收所有匹配的主题数据。

当您在 AWS IoT Core 策略中为 MQTT 客户端指定主题过滤器时,MQTT 通配符字符“”和“#”被视为字面字符串。它们的使用可能导致意外行为。

如何修复它:

{ Effect Allow Action Subscribe Resource /topicfilter/building/

Effect Deny Action Subscribe Resource /topicfilter/building/controlroom/

Effect Deny Action Receive Notresource /topic/building/controlroom/}

修复此问题后,设备将接收发布在主题/下的任何主题的消息例如“building/commonarea”,但不会接收任何在“building/controlroom/”下发布的消息例如“building/controlroom/3”。

可以存在合理的用例导致作者以这种方式进行配置,例如,允许维护人员访问特定区域例如“/building/controlroom/3”。因此,在我们的 AWS IoT Device Defender 审核检查中,我们将其称为潜在配置错误,并留给用户决定这是有意的还是意外的配置错误。

类型 2: 当客户希望设备接收整个主题空间“building/camera/”的消息,但不希望接收与控制房间相关的特定子主题例如“building//controlroom”时,会发生第二种错误。拒绝语句中的 MQTT 通配符可能会被设备替换为特定字符串,从而绕过该限制。

迅猛兔加速器免费下载

{ Effect Deny Action Subscribe Resource /topicfilter/building//controlroom

Effect Allow Action Subscribe Resource /topicfilter/building/camera/}

期望的行为是拒绝设备访问“building/camera/controlroom”,但允许访问“building/camera/resident1”。然而,设备可以发送请求到主题“/building//controlroom”,并最终接收到来自主题“/building/camera/controlroom”的消息。

如何修复它:

{ Effect Deny Action Subscribe Resource /topicfilter/building//controlroom

Effect Allow Action Subscribe Resource /topicfilter/building/camera/

Effect Allow Action Receive Resource /topic/building/camera/

Effect Deny Action Receive Resource /topic/building//controlroom}

通过这一修复,IoT 策略将允许设备接收来自以下主题的消息:

/building/camera/resident1

/building/camera/resident2

/building/camera/resident3

但不会接收来自以下主题的消息:

识别错误配置的物联网政策,使用 AWS IoT 设备防御 官方博客关于物联网

/building/camera1/controlroom

/building/camera2/controlroom

/building/anycamera/controlroom

使用 AWS IoT Device Defender 审核检查识别潜在的配置错误

在本节中,我们将展示如何在 AWS IoT 控制台中配置、运行并采取纠正措施,针对前面描述的两种配置错误。

在这个示例中,我们在 AWS IoT 中输入了类型 1 和类型 2,如下所示:

然后,一旦我们运行新“物联网策略可能配置错误”的审计检查,当该检查发现可能配置错误的 AWS IoT 策略时,将返回以下原因代码:

a) POLICYCONTAINSMQTTWILDCARDSINDENYSTATEMENT

b) TOPICFILTERSINTENDEDTODENYALLOWEDUSINGWILDCARDS

AWS IoT Device Defender 的“物联网策略可能配置错误”检查会检查拒绝语句中的 MQTT 通配符字符“”或“#”。通配符在策略文档中被视为字面字符串,可能会导致策略过于宽松。

如何修复它

此审核检查会标记可能配置错误的策略,因为可能存在误报。使用 审核发现抑制 标记任何误报,以确保在将来不再被标记。

您还可以按照以下步骤解决附加到“事物”、“事物组”或其他实体的任何不合规策略:

使用 CreatePolicyVersion 创建新的合规策略版本。将setAsDefault 标志设置为 true。这将使新版本对所有使用该策略的实体生效。验证所有关联设备是否能够连接到 AWS IoT Core。如果设备无法连接,请使用 SetPolicyVersion 将默认策略回滚到先前版本,修订策略并重试。

结论

在本文中,您学习了如何使用 AWS IoT Device Defender 审核找到物联网策略中的潜在配置错误。该“物联网策略可能配置错误”审核功能会检查物联网策略中是否使用了通配符,并在发现潜在配置错误时向您发出警报。然后,您可以遵循安全建议,必要时采取纠正措施。这个新的审计检查使客户更容易减少物联网策略的配置错误,并帮助您提升物联网解决方案的安全性。

如果您使用 AWS IoT Device Defender,请您可以在 AWS IoT Device Defender 的审核部分启用新的审计检查。如果您是首次使用 AWS IoT Device Defender,您可以通过 AWS IoT 控制台中的一键流程来提升您的 IoT 设备群的安全性。更多信息,请参考 AWS IoT Device Defender 的 文档。

作者

Ryan Dsouza 是 AWS 物联网部门的首席解决方案架构师。Ryan 帮助客户设计、开发和操作更安全、可扩展且更具创新性的解决方案,利用 AWS 的广度和深度来实现可衡量的业务成果。他在数字平台、智能制造、能源管理、建筑和工业自动化及 OT/IIoT 安全等行业积累了 25 年以上的经验。在加入 AWS 之前,Ryan 曾在埃森哲、西门子、通用电气、IBM 和 AECOM 任职,服务客户的数字化转型项目。

Andre Sacaguti 是 AWS IoT 的高级产品经理。他专注于构建帮助设备制造商、汽车制造商和来自不同领域的 IoT 客户监控和保护其设备的产品和服务。在加入 AWS 之前,Andre 在 TMobile 和高通构建和推出了 IoT 产品。

标签 授权策略 AWS IoT AWS IoT 最佳实践 AWS IoT 博客 AWS IoT Device Defender AWS IoT Device Defender 审核 AWS IoT 安全 AWS IoT 安全最佳实践 边缘安全 工业互联网安全 物联网安全 MQTT Zero Trust 零信任 AWS


发表评论

提交
迅猛兔加速器正版

迅猛兔官方网站提供全球连线服务,实现一键速度提升,助您畅享网络,加速体验,无论身处何地,轻松连接。

网站地图

找到迅猛兔加速器免费下载