什么是基于 IP 的访问控制列表 (ACL)?
Azure 服务标记于 2018 年引入,以简化 Azure 中的网络安全管理。 服务标记表示与特定 Azure 服务关联的 IP 地址前缀组,可用于网络安全组 (NSG)、Azure 防火墙和用户定义的路由 (UDR)。 虽然服务标记的目的是简化启用基于 IP 的 ACL,但它不应是唯一实现的安全措施。
有关 Azure 中的服务标记的详细信息,请参阅“服务标记”。
背景
建议和标准过程之一是使用访问控制列表 (ACL) 来保护环境免受有害流量的影响。 访问列表是条件和操作的语句。 条件定义要匹配的模式,例如 IP 地址。 这些操作指示应执行的操作,例如允许或拒绝。 可以根据端口和 IP 在网络流量上建立这些条件和操作。 基于端口和 IP 的 TCP(传输控制协议)会话通过五元组进行标识。
该元组有五个元素:
协议 (TCP)
源 IP 地址(哪个 IP 发送了数据包)
源端口(用于发送数据包的端口)
目标 IP 地址(数据包的目的地)
目标端口
设置 IP ACL 时,将设置要允许遍历网络的 IP 地址列表并阻止所有其他 IP 地址。 此外,你不仅在 IP 地址上应用了这些策略,还将其应用于端口。
基于 IP 的访问控制列表 (ACL) 可以在网络的不同层级上设置,从网络设备到防火墙。 IP ACL 可用于降低网络安全风险,例如阻止拒绝服务攻击以及定义可以接收流量的应用程序和端口。 例如,若要保护 Web 服务,可以创建 ACL 以仅允许 Web 流量并阻止所有其他流量。
Azure 和服务标记
默认情况下,Azure 中的 IP 地址已启用保护,以生成针对安全威胁的额外保护层。 这些保护包括集成的 DDoS 保护和边缘保护,例如启用资源公钥基础结构 (RPKI)。 RPKI 是一个框架,旨在通过启用加密信任来提高 Internet 路由基础结构的安全性。 RPKI 会保护 Microsoft 网络,以确保没有人尝试在 Internet 上宣布 Microsoft IP 空间。
许多客户在其防御策略中启用了服务标记。 服务标记是按其 IP 范围标识 Azure 服务的标签。 服务标记的值是自动管理前缀列表。 自动管理减少了手动维护和跟踪单个 IP 地址的需求。 自动维护服务标记可确保当服务增强其产品/服务以提供冗余和改进的安全功能时,你会立即受益。 服务标记减少了所需的手动接触次数,并确保服务的流量始终准确。 在 NSG 或 UDR 中启用服务标记是通过指定允许向你发送流量的服务标记来启用基于 IP 的 ACL。
限制
仅依赖于基于 IP 的 ACL 的一个难题是,如果未实现 RPKI,则可以伪造 IP 地址。 Azure 会自动应用 RPKI 和 DDoS 保护来缓解 IP 欺骗。 IP 欺骗是恶意活动的一类,使得你认为可以信任的 IP 不再是你应信任的 IP。 通过使用 IP 地址来假装为受信任的源,流量可以访问计算机、设备或网络。
已知的 IP 地址不一定意味着它是安全或可信的。 IP 欺骗不仅会发生在网络层,还会在应用程序中发生。 HTTP 标头中的漏洞允许黑客注入导致安全事件的有效负载。 验证层不仅需要来自网络,还需要在应用程序中发生。 随着网络攻击技术的不断进步,有必要建立一种信任但需要验证的理念。
展望未来
每个服务在其服务标记中记录 IP 前缀的角色和含义。 如果不考虑服务的性质及其发送的流量,仅靠服务标签不足以确保流量安全。
服务的 IP 前缀和服务标记可能具有超出服务本身的流量和用户。 如果 Azure 服务允许“客户可控目的地”,客户就会无意中允许由同一 Azure 服务的其他用户控制的流量。 了解要利用的每个服务标记的含义有助于了解风险,并识别所需的额外保护层。
最佳做法始终是对流量实施验证/授权,而不是仅依赖 IP 地址。 对客户端提供的数据(包括标头)进行验证,可进一步防止欺骗。
总结
基于 IP 的 ACL(如服务标记)是限制网络流量的良好安全防御,但它们不应是唯一防止恶意流量的防御层。 除了服务标记外,在 Azure 中实现可用的技术(例如专用链接和虚拟网络注入)也可改善安全态势。 有关专用链接和虚拟网络注入的详细信息,请参阅“Azure 专用链接”和“将专用 Azure 服务部署到虚拟网络”。