【网络安全技术专题】基于意图的网络的安全挑战及网络攻击技术介绍

文摘   2024-11-11 07:17   贵州  

计算机系统经过几十年的发展,实现了更灵活的可编程性。不出所料,这种可编程性与人类的思维和说话方式更加紧密地融合在一起。这也许在编程语言的演变中得到了最好的体现:一组钝的 1 和 0(机器语言)、小段指令(汇编语言)、具有人类可读语法的早期低级抽象(例如,ALGOL 或 C),以及今天具有复杂操作的高级抽象(例如,Python 或 Go)。在每一代后续版本中,编程语言都描述了更丰富的语义,使所需的功能能够更自然地表达。这种进化不仅使编程变得更容易,而且这种进化使人类能够专注于他们想做的事情,而不是应该如何对机器进行编程

来做。换句话说,高级语义的演变使人类能够专注于意图而不是机制。

计算机网络也发生了类似的演变。早期的计算机网络是需要手动配置的静态配置计算机。随着时间的推移,网络语义演变为分布式、自配置的交换机和路由器。但是,随着现代网络(例如,大型企业、数据中心)的复杂性,这种模型变得不可扩展且不可持续,因为网络运营商必须处理交换机上的各个规则来配置和调试网络。

近年来,软件定义网络 (SDN) 的开发通过捕获有关网络操作的更丰富的语义来满足这一需求。SDN 将控制平面(即有关流量的决策)与数据平面(即流量本身)分开,23带有一个 SDN 控制器,作为中央有利位置。然而,这种分离仍然要求网络运营商了解其网络的低级协议和策略规则,同时应对增加的复杂性、多样化的环境和可扩展的功能需求。

目前,网络演进的下一个进展来自基于意图的网络 (IBN)。非正式地,IBN 允许网络运营商(即网络管理员或网络程序员)描述他们希望在网络中发生的事情的高级意图,而不是如何使用单个流量规则或特定协议来实现这些操作。这种方法类似于表示更丰富的操作和指令集的更高级别的编程语言。

但是,与采用高级抽象的编程语言一样,这种抽象的代价是进一步扩大提供给运营商的接口与网络中使用的实际流量转发规则和协议之间的语义差距。不幸的是(而且至关重要的是),迄今为止尚未系统地探讨这种语义差距的潜在安全和隐私影响。

在本文中,我们简要概述了 IBN 提供的优势和机会。根据这些特征,我们系统地分析了 IBN 带来的独特安全挑战,并提出了应对这些挑战的几个机会。鉴于工业界和学术界最近对 IBN 的兴趣,我们认为,对 IBN 安全态势的透彻理解将促进对网络这一最新发展的更大兴趣和部署。

IBN 通过抽象出网络实施细节来减轻这种负担,例如数据平面转发规则、网络配置协议(例如 OpenFlow、SNMP、OSPF、BGP)和底层物理(或虚拟)拓扑。

IBN 已由开放网络基金会 (ONF) 标准化,27互联网研究任务组 (IRTF),12和 3RD发电合作伙伴项目 (3GPP)。1尽管这些标准之间存在术语差异,但它们都有一个通用模型,其中集中式意图控制器(或 IBN 控制器)根据意图生命周期管理各种类型的意图。意图控制器可以作为网络操作系统 (NOS) 或 SDN 控制器的子系统来实现。

在开源社区中,开放网络自动化平台 (ONAP)、开放网络操作系统 (ONOS) 和 OpenDaylight (ODL) 为网络运营商提供了高级意图接口。从行业来看,包括思科 IBN 在内的多款商用产品正式支持 IBN10和 Juniper Apstra。26此外,Google 还宣布在其最新的基于 SDN 的环境中内部使用 IBN。14

intent 属性。IBN 的关键特性在于网络应该做什么的意图。运算符将用户定义的意向指定为必须满足的常规属性或约束的声明性集。以前的努力3,29,31提出了可以合并到 Intent 中的多种属性,并且为表达策略扩展属性是一个活跃的研究领域。

例如,一些基本的网络属性可以表示为 intent 中的约束:

可访问性保证网络中节点之间的连接(例如,“允许 IP 地址为 10.0.0.1 的主机与 IP 地址为 10.0.0.2 的主机通信”)。

Waypointing 指定路由的部分或完整路径(例如,“发往数据库服务器的流量应首先通过防火墙”)。

带宽为特定目的分配数据层面带宽(例如,“发往数据库服务器的流量应最大为 500 Mbps”)。

隔离强制将流量与其他流量物理或虚拟隔离(例如,“用于灾难恢复的流量必须使用专用和冗余的网络切片,以避免在网络中产生单点故障”)。

Intent 还可用于将类似的设备组合在一起(例如,组织部门内的所有主机),并且可以将多个约束连接在一起。Intent 可能包括有状态约束(例如,“防火墙必须将具有 5 个以上失败连接到监控服务器的流量)或时间约束(例如,”来自营销团队的流量仅允许在周一至周五的上午 9 点到下午 5 点之间使用”)。

简而言之,intent 属性增强了如何声明网络行为的表达能力,而无需将重点放在较低级别的详细信息(例如,网络拓扑或网络配置协议)上。这种表现力还降低了网络运营商的复杂性,他们不再需要仅通过低级配置更改来推理行为。

Intent 生命周期。在网络运营商以声明方式指定 intent 和任何关联的 intent 属性后,该运营商会将 intent 提交给 IBN 控制器。intent 遵循 intent 生命周期,如图 1 中的高级别所示。


图 1.IBN 中的 intent 生命周期。

图 1.IBN 中的 intent 生命周期。

生命周期包括两个主要阶段,即实现和保证,最终形成一个反馈循环,以实现自动化、语义丰富的网络功能。


意图生命周期包括两个阶段:实现和保证。这类似于具有编译和调试阶段的编程语言。实现阶段将来自运营商的 intent 转换为一组应用于网络基础设施的网络对象。保证阶段通过从设备读取网络行为并将其重新解释为高级 intent 来确认 intent 的正确性。在这两个阶段中,IBN 控制器不断协调意图和网络之间的不一致;验证网络不变量,例如没有循环或黑洞;并验证高级意图语义。由于 intent 在任何给定时间都存在于特定的生命周期阶段,因此 IBN 可以将每个阶段表示为一个 intent 状态。

在本文的其余部分,我们使用了一个演示示例,即一个营销团队在企业组织的网络中请求网络功能。图 2 显示了 intent 生命周期中相应的抽象和事件。


图 2.IBN 工作流程和对抗性威胁。

图 2.IBN 工作流程和对抗性威胁。

网络操作员(即用户)指定通过数据层面中的低级配置实现的高级网络 intent。IBN 采用网络观察来增强验证、优化和推荐功能。来自网络运营商 (O)、应用程序 (A)、交换机 (S) 和主机 (H) 的攻击可以利用表 1 中的威胁。


Intent fulfillment. The fulfillment phase translates high-level intents to low-level network objects following three stages: translation, compilation, and activation.

译本。Translation 将用户定义的 intent 转换为渠道级 intent。翻译允许非专家用户使用人类语言或声明性语言简单地定义他们想要的目标,IBN 可以利用自然语言处理 (NLP) 或特定领域的编译器来完成这项任务。

汇编。编译将网络级 intent 转换为网络对象,其中包括设备配置信息、数据平面转发规则和网络拓扑等抽象。为了弥合用户和网络行为之间的差距,IBN 控制器使用网络级意图和全局网络视图来计算可以满足要求的可行转发规则。例如,在图 2 中,IBN 控制器通过引用组信息和底层网络拓扑来计算营销团队的主机和数据库主机之间的所有路径。


激活。激活 (Activation) 在底层网络设备中实现和实现网络对象。激活可以委派给现有的负责系统,例如 SDN 控制器。

在图 2 中,激活阶段通过在软件交换机(例如,交换机 S1 和 S2)上发送流(转发)规则、更改设备配置(例如负载均衡器 LB)和执行远程命令来控制网络设备。激活还可以修改可编程设备上存在的可执行代码(例如,由数据平面编程语言 P4 实现的可编程数据平面配置)。对于任何错误,例如 flow table 溢出,IBN 控制器会将错误消息返回到编译阶段,以重新编译对象源自的 intent。

基于意图的网络 (IBN) 使网络管理员能够表达高级目标和网络策略,而无需指定低级转发配置、拓扑或协议。管理员可以定义 intents,以捕获他们希望从网络获得的整体行为,IBN 控制器将此类 intent 编译成安装在网络中并实现所需行为的低级配置。我们发现,当前的 IBN 规范和实现并未指定应强制执行流规则安装顺序,这会导致临时漏洞,攻击者可以在有限的时间内利用不确定的连接行为来获得未经授权的网络访问。在本文中,我们通过通过 ONOS IBN 实施的代表性案例研究分析了此类时间性漏洞的原因及其安全影响。我们设计了 Phantom Link 攻击并演示了一个有效的漏洞利用来突出安全影响。为了抵御此类攻击,我们提出了 Spotlight,这是一种检测方法,可以提醒系统管理员有风险的 intent 更新容易被利用的临时漏洞。Spotlight 使用真实的网络拓扑和策略有效地识别有风险的更新。我们表明,对于超过 1300 个节点的拓扑,Spotlight 可以在平均 0.65 秒的时间内检测到风险更新。

安全挑战

一项市场调查35估计 IBN 市场在 2021 年的估值为 12.7 亿美元,到 2026 年最终将达到 50.9 亿美元。当组织考虑部署 IBN 以增强其网络功能并降低运营成本时,他们还必须在采用计算中权衡 IBN 的安全状况。如果不更清楚地了解 IBN 的安全挑战(和机遇),组织可能会犹豫是否采用 IBN,尽管 IBN 具有运营优势。

如果不更清楚地了解 IBN 的安全挑战(和机遇),组织可能会犹豫是否采用 IBN,尽管 IBN 具有运营优势。

迄今为止,IBN 内部独特和固有的安全挑战还没有系统化。本节的目标是强调此类安全挑战,并根据 intent 实现和 intent assurance 这两个生命周期阶段对其进行分类。我们注意到,在某种程度上,所有挑战都归因于运营商的网络视图与网络设备中的低级实现之间的巨大语义差距。

威胁模型。我们考虑了基于 IBN 中各种参与者的威胁模型,包括网络运营商、网络应用程序、网络转发设备(例如,交换机、路由器)和主机(即最终用户生成的流量)。图 2 显示了攻击者和攻击面的概述。

如图 2 所示,即使意图控制器本身被认为是可信的,攻击者仍然可以攻击 IBN 中的几乎所有阶段,从而产生负面后果。从控制平面来看,攻击者可能是网络运营商内部人员或恶意网络租户。从数据层面,网络主机上的攻击者可以将任意数据包发送到网络中。此类攻击者可能能够间接利用控制器配置,攻击具有已知漏洞的现有网络设备,或部署与 intent 控制器交互的恶意网络功能。

表 1 概述了 17 种威胁 T1–T17,本节的其余部分将对这些威胁进行解释。我们强调这样一个事实,即这些威胁中约有一半已被证明可以在生产质量实施中被利用,这些实施都标有相关的示例 CVE 标识符。

VPNInspector:对 VPN 生态系统的系统调查

Reethika Ramesh (密歇根大学), Leonid Evdokimov (独立人士), Diwen Xue (密歇根大学), Roya Ensafi (密歇根大学)


由于公众对在线隐私和安全风险的认识不断提高,虚拟专用网络 (VPN) 的使用一直在迅速增长。这种增长推动了 VPN 生态系统扩展到一个价值数十亿美元的行业,新的 VPN 提供商经常涌入。尽管如此,VPN 生态系统仍然没有得到严重不足的研究,关于 VPN 的有限研究依赖于费力的手动流程。需要一种解决方案,使研究人员和普通用户能够调查他们的 VPN 提供商。

在这项工作中,我们介绍了 VPNalyzer,这是一个能够对 VPN 生态系统进行系统、半自动调查的系统系统。我们开发了一个跨平台工具,其中包含一个全面的测量测试套件,其中包含 15 项测量,用于测试服务、安全和隐私要素、错误配置和泄漏等方面。使用 VPNalyzer 工具,我们对 80 个桌面 VPN 进行了最大规模的调查。

我们的调查揭示了几个以前未报告的发现,突出了 VPN 生态系统中的关键问题和实施缺陷。我们在 26 家 VPN 提供商的隧道故障期间发现了流量泄漏的证据,这严重暴露了敏感的用户数据。我们是第一家在隧道故障期间测量和检测 DNS 泄漏的公司,我们在 8 家提供商中观察到了这一点。总体而言,我们发现大多数提供商缺乏 IPv6 支持,其中 5 家甚至将 IPv6 流量泄露给用户的 ISP。我们观察到,我们认为安全和隐私要素的做法在 VPN 提供商之间并不统一。多个提供商共享底层基础设施,29 家提供商使用第三方公共 DNS 服务。令人震惊的是,10 家 VPN 提供商即使在最安全的配置中也会泄露流量,其中 6 家即使启用了“终止开关”功能也会泄露数据。我们的结果突出了 VPNalyzer 即使在最流行的 VPN 提供商中也能有效地发现问题。Consumer Reports 使用 VPNalyzer 为其用户创建数据驱动的推荐。

跨语言攻击

Samuel Mergendahl(麻省理工学院林肯实验室)、Nathan Burow(麻省理工学院林肯实验室)、Hamed Okhravi(麻省理工学院林肯实验室)

几十年来,针对 C/C++ 等不安全编程语言的内存损坏攻击一直是对计算机系统的主要威胁。事实证明,各种排错程序和运行时漏洞利用缓解技术充其量只能提供部分保护。最近开发的“安全”编程语言(如 Rust 和 Go)有望通过使用强类型系统以及适当的编译时和运行时检查来防止内存损坏错误,从而改变这种范式。这些语言的逐步部署被吹捧为在可以用安全语言开发整个应用程序之前提高现有应用程序安全性的一种方式。这在 Firefox 和 Tor 等流行应用程序中尤为明显。在本文中,我们系统地分析了多语言应用程序的安全性。我们表明,由于安全语言中的语言安全检查和应用于不安全语言的漏洞利用缓解技术(例如,控制流完整性)可以破坏漏洞利用的不同阶段以防止控制劫持攻击,因此攻击者可以小心地在语言之间操纵以发起成功的攻击。从本质上讲,我们说明了在各种语言中做出的不相容的假设集使攻击成为可能,而这些攻击在每种语言中都是不可能的。我们研究了这些攻击的不同变体并分析 Firefox,以说明此问题的可行性和程度。我们的研究结果表明,逐步部署安全的编程语言,如果不格外小心,确实会对安全性造成不利影响。

原文进入知识星球下载:全文资料已上传知识星球:




软件工程技术交流
本公众号用于分享软件设计/软件工程化管理/CMMI/GJB5000等技术知识,将分享关于嵌入式软件设计/编码/测试等技术知识,同时分享软件工程的管理经验。
 最新文章