网络规模的发展和网络服务的日益丰富极大增加了网络管理的复杂性和艰巨性,迫切需要某种有效的技术手段来缓解网络管理人员的负担。业界已提出包括软件代理、主动网络和策略管理等技术手段,提高了对网络的管理和控制能力。但是这些管理手段仍是反应式的,不能适应业务目标或用户需求的动态变化。
针对这种情况,基于自主计算模式的自主网络管理技术(ANM)应运而生,并在近年来得到普遍关注和研究。自主管理允许将管理操作委派给网络元素自身来缓解网络管理的负担,管理员只需指定高层管理目标而不需关注具体管理操作细节。也就是说,ANM系统的目标是在不需要人为干预(或最小化人为干预)情况下以独立和自治的方式预测、诊断和解决网络中出现的各种问题,并能适应网络规模结构和用户服务需求的动态变化。
然而,自主网络面临大量各种各样的安全威胁,网络脆弱性管理和评价是确保网络安全的重要手段之一。
基本特征和网络架构
自主网络具有一系列鲜明的自主管理特征,主要体现在四个方面:自配置提供了自动配置网络组件和服务以简化网络操作的方式;自优化根据系统管理规律通过主动检测和调整网络参数以优化网络服务性能;自愈可以自动检测、诊断和修复网络中存在的软硬件故障;自保护提供了识别和防御潜在网络威胁和攻击的行动和方法。
自主网络实体以闭环的形式控制网络系统的动态行为,涉及网络环境的外部输入激励和网络自身的内部反馈调节。具体来说,自主网络实体的控制行为通常包括以下步骤:实时监控网络状态,分析网络可用信息,谋划未来行为,按照特定的高层目标来执行生成的操作计划。尽管这种自主操作目的是解决高层目标需求,但具体实现比较复杂并且面临诸多难题。
此外,自主实体在根据高层应用目标执行一系列操作时不可避免地会带来网络脆弱性和安全隐患,如自配置和自优化由于片面追求网络性能执行的某些操作而给网络攻击者带来可乘之机。为此,自主网络和系统迫切需要一种网络脆弱性评价和安全管理机制。
自主网络中的脆弱性管理是需要考虑的核心问题并且不限于自配置、自优化、自愈和自保护操作。自主网络中的脆弱性管理隶属和服务于自主管理操作,通过一个闭环控制来评价和修复自主管理活动产生的各种脆弱性状态,从而最大限度确保网络安全。脆弱性评价和管理可以分解为脆弱性发现、脆弱性描述和脆弱性检测三类活动,并将其嵌入到自主网络管理的常规操作中。
脆弱性管理
自主管理操作在追求网络优化目标的同时可能会带来各种意想不到的脆弱性问题,如造成网络不稳定、服务不可用和信息泄密等。脆弱性管理包括脆弱性评价和脆弱性恢复。本文关注脆弱性评价工作,包括脆弱性发现、描述和检测过程。
关于系统脆弱性的研究早已有之,并广泛存在多个领域。例如,在军事应用领域,脆弱性通常指系统不能抵抗敌方生成的恶劣环境的程度。在信息技术领域,脆弱性是始终存在的客观事实,如系统威胁和信息安全问题,并且随着信息系统的应用普及此类问题层出不穷。为此,脆弱性管理也成了信息系统不可或缺的一项关键任务,并且研制开发了许多相关系统。例如,通用脆弱性揭示系统用于识别所有已知的系统脆弱性,安全内容自动化协议(SCAP)可以自动执行脆弱性管理活动。
随着自主计算的发展,我们希望将脆弱性管理集成到自主网络管理整理中。从自主计算的演化发展路径看,脆弱性管理的核心在于基于高层安全管理目标通过感知和收集网络状态信息来发现和检测可能存在的脆弱点并采取适应性行动。为了检测脆弱点,需要为系统定义一组指明系统期望的正常操作和安全状态的策略规范,然后根据系统既定策略和目标,将脆弱性管理过程涉及的活动映射为自主网络管理中的相关一系列操作,如图所示。自主管理器包括要活动阶段构成一个闭环循环过程,即监测/感知、分析、学习、规划/决策和执行。自主管理器对被管对象提供资源管理接口,对管理用户提供自主管理接口,可将自主管理器视为被管设备和上层用户之间的管理中间件。
从图中不难看出,脆弱性评价阶段需要利用可用的安全知识来发现安全问题并进行分类,随后的脆弱性修复阶段需要根据预定的策略调整和执行计划来尽量修复网络脆弱点并将网络恢复到安全状态。自主网络管理使管理员只需制定合理的高层策略和目标,而将底层的管理操作细节交给自主管理器执行。但是,必须考虑和评估自主管理操作对网络安全性带来的影响。例如,针对性能优化的自主操作很可能会牺牲系统安全性能。
为此,需要考虑采取一些能够解决目标冲突或降低自主管理操作影响的措施和机制。但是迄今为止,很多配置管理关注确保配置的正确性和对服务的影响,而很少有研究工作真正涉及自主网络或系统的脆弱性管理问题。因此,今后的自主管理必须在设计实现时考虑集成脆弱性影响评估和脆弱性修复操作。
网络管理的复杂性与关键业务的性能紧密相关,在尽量降低网络管理投入的成本的基础上平衡网络服务性能和安全性。现有的许多工作常使用包括贝叶斯网络在内的推理方法来分析设计要素和行为决策之间的关系,并评估分析设计更改造成的安全风险和影响。然后,可以利用分析评价结果来决策实施合理的配置更改行为和风险修复操作,以便平衡应用性能和安全风险。增加系统脆弱性评估和诊断对于自主系统管理是非常重要的环节。例如,基于多代理的系统脆弱性检测机制可以为系统提供大量的相关安全威胁和系统漏洞信息,并基于系统脆弱性历史记录预测其今后的趋势,以便自主安全管理机制及时采取应对措施。
如前所述,脆弱性评价和管理可以分解为脆弱性发现、脆弱性描述和脆弱性检测三类活动,具体内容将在下面逐一说明。
脆弱性发现
洞悉整个系统所有潜在的脆弱性是脆弱性发现希望达到的目标,为此需要开发和研究了解和发现脆弱性的工具和方法,这对于保护自主网络系统也是至关重要的。从更大的安全生态系统而言,系统安全性不仅涉及系统脆弱性和安全缺陷发现,而且还要考虑系统中的各类人员的行为和动机。此外,现有的很多方法各自为政,没有纳入自主网络管理的统一框架下,也缺少足够的自适应性和扩展性。本节主要概述当前一些常用的有潜力的脆弱性发现技术和手段。
1.基于测试的脆弱性发现方法
基于测试的脆弱性发现方法非常适合于发现未知的系统脆弱性。举例来说,软件应用开发人员追求软件功能和可用性,而软件测试人员需要对开发的软件进行全面测试来确保其正确性、完整性和健壮性。测试包括白箱测试、黑箱测试和灰箱测试:白箱测试允许测试人员访问待测软件的内部结构、算法和代码,如静态分析;黑箱测试则不向测试人员提供软件内部实现的信息,如动态分析和性能测试;灰箱测试综合了上述两种测试的特点,在了解部分软件内部信息的基础上安装黑箱方式进行测试,如内部数据库测试。
尽管传统的测试技术能够发现众多软件问题,但是测试者一般关注软件的功能正确性而不是安全可靠性。常规的测试输入难以发现隐藏的未知脆弱性,为此可以采用基于随机输入并利用攻击特性的模糊测试技术,通过向目标软件产生异常不规则输入并评测软件行为来俘获潜在安全缺陷。由于测试输入空间巨大难以穷举,因此模糊测试常采用两种方法,即数据生成和数据变异。此外,考虑到自主系统受高层策略控制,也可将测试方法嵌入到自主管理框架以便自动检测系统状态是否满足预定义的策略。
2.网络取证方法
网络取证通常指归档所有网络流量并对其进行特定分析已评价网络活动的过程。网络取证隶属于数字取证技术,数字取证过程涉及多个阶段,包括证据识别、保存、收集、检查、分析和展示。尽管网络取证目前主要用于传统的计算机系统安全领域,但是也可以很好集成到自主网络管理体系中并发挥重要作用。相比于先验式的测试放方法,网络取证方法属于反应式方法。衡量网络取证技术的指标包括:有效性、证据一致性、完整性、可跟踪性和可重现性。为了提高网络取证的效果,可以综合多种可用的取证工具。
3.基于经验的方法
充分利用以往的系统经验和历史数据可以增强发现和应对新安全问题的能力。例如,基于案例的推理(CBR)是一种非常有效的检测未知脆弱性的方法,利用针对原有问题的解决方案在调整改造后用于当前出现的类似问题。同样,在自主网络中也可以利用CBR方法来支持网络自配置。此外,自主网络可以充分利用这种已有的经验知识来辅助自主管理。
脆弱性描述
无论采用何种脆弱性发现技术和手段,都需要一种标准的机器可理解的脆弱性描述方法,以便将这些技术手段集成到自主网络管理框架中。此外,在发现系统脆弱性缺陷到通知系统管理员或自主管理引擎再到采取适当的行动来修复脆弱性期间,可能会出现新的安全隐患。
因此,有必要构建一种健壮和一致的机制来描述、分析、检测脆弱性并及时传递相关信息。针对这一问题,MITRE公司开发了通用脆弱性和安全漏洞词典,这是一种标准化已知信息安全隐患和漏洞的积极尝试,针对每种发现的安全隐患给予唯一的标识和基于自然语言的描述。CVE词典可以增强自主系统的安全意识,但CVE只是简单的标记安全隐患的存在,而不能做出有效的安全评估。最近几年,基于脆弱性签名的脆弱性分析技术广泛用于入侵检测和入侵防御系统,通过分析业务流量来检测特定的流量模式和潜在的攻击。但是,这种基于签名的脆弱性分析方法和告警信息交互机制都还缺少成熟的标准。同时,各安全机构和企业开发的脆弱性描述语言缺乏兼容性和互操作性。
值得欣慰的是,目前有关机构正在开发语言试图标准化脆弱性描述的通用语言,如VulnXML、ADV.L和OVAL。OVAL目前已逐渐发展成为一种脆弱性描述的事实标准,OVAL基于XML开发,将脆弱性视为可以在目标系统上观察到的相关条件的逻辑组合。此外,以OVAL为范本,NIST正在开发安全内容自动化协议(SCAP)。可以预见,今后将标准化的脆弱性描述语言集成到自主网络中必将大大增强网络的脆弱性意识和安全管理能力。
脆弱性检测
一旦发现和描述了脆弱性,检测脆弱性的机制无疑成为自主网络和系统的一项核心技术。当执行脆弱性检测和评估活动中,应充分利用来自不同渠道提供的安全隐患信息。
1.设备脆弱性检测
对设备脆弱性进行评估需要调查可能导致设备遭受攻击的特定状态和条件。尽管如网络扫描这样的黑箱技术可以在不了解设备内部细节的情况下提供有用的信息,但是灰箱技术通过访问设备内部状态可以更准确的对设备脆弱性进行检查。例如,以上提到的基于OVAL语言可以对系统脆弱性进行描述和评价,并且可看作是一种灰箱技术。OVAL脆弱性描述和评价过程的主要步骤包括:制定配置策略,将策略编码为OVAL定义,收集数据,OVAL分析,以及OVAL结果报告。当前,业界也基于OVAL语言开发了一些简易、可靠和健壮的脆弱性检测工具,如基于C内核的Ovaldi和基于Java内核的XOvaldi。XOvaldi是一种轻量级的脆弱性检测机制,非常适用于移动设备。
2. 网络脆弱性检测
网络脆弱性检测和设备脆弱性检测的一种扩展,需要对网络中的多个相关联的设备及其上运行的服务进行扫描,以便检测各种可能的脆弱点。当前,常用的网络扫描工具包括端口扫描器、漏洞扫描器和Web应用扫描器,如Nmap、Nessus、OpenVAS和SAINT等。这些扫描器通过分析设备的响应来了解特定的端口、服务和应用是否激活并且是否有异常,进而检测系统安全漏洞和缺陷。另外,业界还开发了许多用于网络脆弱性和分析和预测的推理引擎和工具,如基于逻辑推理的网络安全分析器MulVAL。与设备脆弱性检测机制各自为政不同,多台单个设备安全可靠并不代表包含多个设备的网络不存在安全威胁,因为多个网络设备的组合可能带来意想不到的存在于分布式系统中的安全隐患。因此,网络脆弱性检测和评价必须在高层策略的统一指导下有效综合多种网络脆弱性扫描和分析工具,以便从整体上检测和评价网络脆弱性。最后,自主网络管理引擎可以根据脆弱性分析和评价结果做出适当的脆弱性修复决策。
脆弱性表示可能被攻击者利用的系统缺陷或安全问题,攻击图描述攻击者为达到入侵系统的企图所执行一系列活动和步骤。前者关注系统的状态,后者专注攻击者的行为。通过将脆弱性检测中获得的信息与现有的攻击图相关联,可以了解攻击者如何在入侵过程中利用存在的系统脆弱性,特别是自主网络元素的脆弱性,进而增强自主系统抵御潜在威胁的能力。例如,可以根据了解的系统脆弱点和攻击路径来构建自主诊断机制。与传统的在特定端口上监听客户请求的网络服务不同,自主网络元素需要动态通过传感器和激励器与网络环境交互来提供服务。
上述攻击图针对攻击行为进行分析,但是无法对攻击的概率进行定量评价。为此,有些研究工作考虑根据获得的系统脆弱性和攻击历史数据来定量评估系统的安全风险,进而指导系统的策略配置和自主操作行为。
结语
尽管自主网络管理有着很大的吸引力和美好前景,但在当前的网络管理系统中实现自治性面临巨大的技术挑战。例如,如何设计有效的脆弱性评价模型,如何高效地将传统的网络脆弱性发现、描述和检测机制有机地融入自主网络管理的统一框架中,如何分布式地协调脆弱性管理的各种活动来优化网络服务性能。自主网络管理是未来网络管理的发展趋势之一,必将引起学术界和产业界的重视,从而更好推动该领域的研发工作。
来源:《网络安全和信息化》杂志
作者:王海涛 宋丽华 彭志专
(本文不涉密)
声明:本文来自网络安全和信息化,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。