使用 亚马逊云科技 IoT Device Defender 识别配置错误的物联网策略

简介

我们很高兴地宣布一项新的 亚马逊云科技 IoT Device Defender 审计功能 ,用于识别在物联网 (IoT) 策略中使用通配符时可能出现的错误配置。 亚马逊云科技 IoT Device Defender 是一项完全托管的 IoT 安全服务,使您能够审核和监控您的 IoT 设备群并持续保护您的 IoT 配置。安全配置错误,例如允许设备访问非预期资源的过度宽松的策略,可能是安全事件的主要原因,并危及解决方案的安全态势。借助新的 亚马逊云科技 IoT Device Defender IoT 策略可能配置不当 的 审计功能,您可以更轻松地识别缺陷、解决问题并采取必要的纠正措施。这可以帮助您改善物联网解决方案的安全状况。

背景

亚马逊云科技 IoT Core 策略 是 JSON 文档。它们遵循与 亚马逊云科技 身份和访问管理 (IAM) Access Management 相同的惯例。使用 亚马逊云科技 IoT Core 策略,您可以控制对 亚马逊云科技 IoT Core 数据平面的访问。亚马逊云科技 IoT Core 数据平面由一些操作组成,这些操作使您能够连接到 亚马逊云科技 IoT Core 消息代理并发送和接收 MQTT 消息。同样,数据层面操作还可以帮助您通过 亚马逊云科技 IoT Device Shadow 获取或更新设备的 状态 ,这是 亚马逊云科技 IoT Core 的一项功能,无论设备是否连接到 亚马逊云科技 IoT,都允许应用程序和其他服务使用设备的状态。

在某些情况下,由于物联网策略通配符和 MQTT 通配符之间的混淆,客户可能会错误地配置物联网策略。如果客户以某种方式配置物联网策略,则可以超额订阅设备以接收主题数据,而设备本应被明确拒绝订阅。

在这篇博客中,我们将讨论两种类型的错误配置,以及如何使用 亚马逊云科技 IoT Device Defender 审计来识别和修复 IoT 策略中这些潜在的错误配置。

在 MQTT 和 亚马逊云科技 IoT Core 策略中使用通配符

MQTT 和 亚马逊云科技 IoT Core 策略具有不同的通配符,您应在仔细考虑后选择它们。在 MQTT 中,在 MQTT 主题过滤器中使用通配符 “+” 和 “#” 来订阅多个主题名称。字符 “+” 代表单个 MQTT 主题关卡,“#” 代表多个 MQTT 主题关卡。亚马逊云科技 IoT Core 策略使用 “*” 和 “?”作为通配符并遵守 IAM 策略的惯例。在政策文件中,“*” 代表字符和问号 “?” 的任意组合代表任何单个字符。在政策文件中,MQTT 通配符 “+” 和 “#” 被视为没有特殊含义的字符。要描述策略的资源属性中的多个主题名称和主题筛选器,请使用 “*” 和 “?”使用通配符代替 MQTT 通配符。

在选择要在政策文档中使用的通配符时,请考虑到 “*” 字符并不局限于单个主题级别,因为 “+” 字符位于 MQTT 主题筛选器中。为了帮助将通配符规范限制为单个 MQTT 主题过滤器级别,可以考虑使用多个 '?'人物。有关 适用于 MQTT 客户端的 MQTT 和 亚马逊云科技 IoT Core 策略中使用的通配符示例 ,请参阅文档。

有两种类型的错误配置:

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

在此示例中,主题过滤器旨在拒绝访问,但使用通配符会导致允许访问。在包含允许语句中带有通配符的主题过滤器和具有允许资源子集的拒绝语句的策略中,可以通过订阅通配符来访问拒绝主题消息。

{

效果:允许

操作:订阅

资源:/topicfilter/building/ *

效果:拒绝

操作:订阅

资源:/topicfilter/building/control_room/ #

效果:允许

操作:接收

资源:/主题/建筑物/ *

}

但是,当设备订阅 “b uilding/#” 时,它会收到来自 “building/ control_room/3” 的消息。

这是因为主题 “ building/#” mat ches 允许 “ building/* ”,授权设备的订阅操作。请注意,在应用程序代码的下方,“ building/# ” 匹配所有数据,并且由于设备已经订阅,它将接收所有匹配的主题数据。

当您在适用于 MQTT 客户端的 亚马逊云科技 IoT Core 策略中指定主题筛选条件时,MQTT 通配符 “+” 和 “#” 被视为文字字符串。它们的使用可能会导致意想不到的行为。

如何修复:

{

效果:允许

操作:订阅

资源:/topicfilter/building/ *

效果:拒绝

操作:订阅

资源:/topicfilter/building/control_room/ *

效果:拒绝

操作:接收

非资源:/topic/building/control_room/ *

}

完成此操作后,设备将接收在 topic/(例如 “ building/common_area”)下的任何主题上发布的消息,但是,设备不会收到在 “building/control_ room/ ”(例如 “ building/control_room/ 3”)下的任何主题上发布的任何消息

在某些合理的用例中,作者可能是这样做的,例如,允许维护人员进入特定的空间(例如 ' /building/control_room/3 ')。因此,在我们的 亚马逊云科技 IoT Device Defender 审计检查中,我们将其列为潜在的配置错误,由用户来决定,这是故意还是非故意的错误配置。

类型 2: 当客户希望设备接收整个主题空间 “ 建筑物/相机/*” 的消息时,但不希望接收涉及 control_room 的特定子主题的消息, 如 “建筑/ +/control_room”。在使用特定字符串替换通配符时,设备可能会避开 Deny 语句中的 MQTT 通配符。

{

效果:拒绝

操作:订阅

资源:/topicfilter/building/+/control_room

效果:允许

操作:订阅

资源:/topicfilter/building/camera/ *

}

所需的行为是拒绝设备访问 “ 建筑物/相机/控制室”,但允许访问 “建筑物/相机/ 住宅 1 ”。

但是,设备可以向主题 “/building/ +/control_room” 发送请求,并最终收到来自主题 “/building/camera/control_room ” 的消息。

如何修复:

{

效果:拒绝

操作:订阅

资源:/topicfilter/building/ */control_room

效果:允许

操作:订阅

资源:/topicfilter/building/camera/ *

效果:允许

操作:接收

资源:/主题/建筑物/相机/ *

效果:拒绝

操作:接收

资源:/topic/building/ */control_room

}

通过此修复,物联网策略将允许设备接收来自以下来源的消息:

/建筑物/相机/住宅 1

/建筑物/相机/住户2

/建筑物/相机/住宅 3

但不是来自

/building/camera1/控制室

/building/camera2/控制室

/building/any_camera/控制室

使用 亚马逊云科技 IoT Device Defender 审计检查来识别潜在的错误配置

在本节中,我们将介绍如何在 亚马逊云科技 IoT 控制台中针对前面描述的两种错误配置进行配置、运行和采取纠正措施。

在此示例中,我们在 亚马逊云科技 IoT 中输入了类型 1 和类型 2,如下所示:

图 1:在 亚马逊云科技 IoT 中配置为 “配置不当策略” 的类型 1 策略

图 2:在 亚马逊云科技 IoT 中配置的名为 “misconfiguredPolicyInfo_2” 的类型 2 策略

然后,在我们运行新的 “物联网策略可能配置错误” 的审计检查后,当此检查发现可能配置错误的 亚马逊云科技 IoT 策略时,将返回以下原因代码:

a) 策略_包含_MQTT_WILDCARDS_IN_DENY_STATEMENT

b) TOPIC_FILTERS_INTENDED_TO_DENY_ALLOWED_使用通配符

图 3:亚马逊云科技 IoT Device Defender “物联网策略可能配置错误” 审计检查的结果

亚马逊云科技 IoT Device Defender 的 “物联网策略可能配置错误” 检查会检查拒绝语句中是否有 MQTT 通配符(“+” 或 “#”)。在政策文件中,通配符被视为文字字符串,可能会使其过于宽松。

如何修复

此审计检查将可能存在误配置的策略标记为可能存在误报,因为可能存在误报。使用 审计发现抑制 功能标记任何误报, 这样将来就不会被举报。

您也可以按照以下步骤修复附加到事物、事物组或其他实体的任何不合规策略:

  • 使用 createPolicyVer sion 创建新的、兼容的策略版本。将 setaSdefault 标志设置为 true。(这使得这个新版本适用于所有使用该策略的实体。)
  • 验证所有关联设备都能够连接到 亚马逊云科技 IoT Core。如果设备无法连接,请使用 setPolicyV ersion 将默认策略回滚 到先前版本,修改策略,然后重试。

结论

在这篇文章中,你已经了解了如何使用 亚马逊云科技 IoT Device Defender 审计来发现物联网策略中潜在的错误配置。“物联网策略可能配置错误” 审计功能可检查物联网策略中通配符的使用情况,并在出现潜在错误配置时提醒您。然后,您可以遵循安全建议,并在需要时采取纠正措施。这项新的审计检查使客户可以更轻松地减少物联网策略的错误配置,并帮助您改善物联网解决方案的安全状况。

如果您使用 亚马逊云科技 IoT Device Defender,则可以在 亚马逊云科技 IoT Device Defender 审计部分启用新的审计检查。如果您不熟悉 亚马逊云科技 IoT Device Defender,则可以在 亚马逊云科技 IoT 控制台中通过一键式流程来改善物联网设备队列的安全状况。有关更多信息,请参阅 亚马逊云科技 IoT Device Defender 文档

作者

Ryan Dsouza 是 A WS 物联网的首席解决方案架构师。Ryan 总部位于纽约市,利用 亚马逊云科技 能力的广度和深度,帮助客户设计、开发和运营更安全、更具扩展性和创新的解决方案,以实现可衡量的业务成果。Ryan 在不同行业的数字平台、智能制造、能源管理、建筑和工业自动化以及 OT/IIoT 安全方面拥有超过 25 年的经验。在加入 亚马逊云科技 之前,Ryan 曾在埃森哲、西门子、通用电气、IBM 和 AECOM 工作,为客户的数字化转型计划提供服务。

安德烈·萨卡古蒂 是 亚马逊云科技 IoT 的高级产品经理兼技术经理。Andre 专注于开发产品和服务,帮助来自不同行业的设备制造商、汽车制造商和物联网客户监控和保护其从边缘到云的设备。在加入亚马逊云科技之前,安德烈在T-Mobile和高通公司开发并推出了物联网产品。