美国DARPA“配置安全”项目分析

作者:齐义胜

2017年11月,美国防部高级研究计划局(DARPA)信息创新办公室(I2O)发布“配置安全”(Configuration Security, ConSec)项目公告,寻求能够对复杂系统的配置进行自动分析和改善的创新研发方案。2018年11月,美国DARPA与美国Perspecta公司的研究部门Perspecta实验室签署ConSec项目首份合同,该项目为期三年半的研发由此正式开始。本文概述ConSec项目背景,探讨其技术内容,跟踪其进展情况,并给出其带来的启示。

一、项目背景

随着软硬件技术的发展,专用硬件正逐渐被通用组件所取代。现在很多复杂系统都是利用商用现货(COTS)产品(例如路由器、可编程控制器)组合而成的(称之为“组合式系统”),价格低廉的商用现货设备正在取代用途单一的专用设备。由于物联网的发展和接入网络的组合式系统(包括飞机、关键基础设施等)日益增多,人类面临前所未有的技术多样性。从在设计时很少考虑安全问题的消费级物联网设备,到很容易被远程控制的工控系统,可接入网络、可通过网络监控的功能日益多样,范围越来越大,这些新接入网络的组合式系统带来了网络攻击面的扩张。与此同时,受规模经济的影响,平台的通用型越来越强,多样性在不断下降。例如,CPU市场现已主要由ARM处理器、x86处理器和流处理器所占据。事实上,规模经济不仅影响消费级市场,也影响着各种工业平台和军事平台——这些平台中原本使用的定制专用组件已经在很大程度上被廉价的通用可编程组件所取代。

可编程组件的普及使配置安全问题日益凸显。可编程组件的行为由软件和配置所决定,因此带来了新的攻击维度,这是以前使用专用硬件时不曾有过的新问题。为了扩大适用范围,提供这些商用现货组件的厂商总是希望其产品更灵活、更通用。但这种灵活性实际上把安全责任推给了系统所有者。许多产品在打开包装时采用的是默认配置,要根据实际情况更改某些配置项后才能投入使用。系统所有者必须对各个组件进行恰当配置,避免因某些实际上不需要的功能而招致攻击。换言之,必须通过恰当配置把通用性强的商用现货设备调整为恰如实际所需的设备。这种配置工作通常技术性强,对系统安装和运维提出了较高的要求。系统越复杂,整个系统的配置难度越大,稍有不慎就可能为攻击者留下可乘之机。

在这样的时代背景下,美国DARPA于2017年11月发布公告,为“配置安全”(ConSec)项目征求创新研究方案,希望研发能对军事平台各组件或子系统自动生成、部署和执行安全配置的系统。这些安全配置应充分考虑系统中可能存在的安全漏洞,在确保系统正常运行的同时最大限度地缩减攻击面。ConSec系统将把每个组件的配置都作为组合式系统的行为与安全要素,自动生成并部署更安全的配置,在无需开发新软件或大幅度更换硬件的情况下增强组合式系统的安全性。由于负责提供控制输入,人也是这些组合式系统的有机组成部分。可由人识读的标准操作规程(例如飞行员在排查故障时用的对照检查表)阐明了操作人员应遵循怎样的操作顺序。ConSec系统必须能够理解这些人机交互,并代替操作人员进行交互。

二、技术内容

ConSec项目包括4个技术域(technical area, TA),分别是理解组合式系统(编号为TA1)、生成安全配置(TA2)、攻击测试(TA3)和系统集成与评估(TA4)。为便于讨论,下文把所针对的组合式系统称为“目标系统”,用“组件”来指称目标系统中可进行配置的部分。图1是ConSec系统示意图。

图1 ConSec系统示意图

(一)理解组合式系统

TA1需能推导出目标系统的语义,并针对目标系统必须经历的每种操作上下文建立功能模型,每个组件的配置参数必须对应到语义功能描述。这里所称的操作上下文是指目标系统必须支持的执行模式。TA1必须根据所提供的文档而推导出所有可能的操作上下文。例如,对于军舰,必须考虑其在海上航行、在港口停泊、在船厂维修等各种操作上下文。为此,TA1承包方需根据目标系统的用户手册、操作说明书等文档,或通过分析待配置组件的软件/固件,生成可由机器识读的、对应于各操作上下文的功能需求,并建立操作人员与系统进行交互的模型。这意味着TA1系统至少应能识读非结构化的普通文本,或许还需要具备识读图表(例如网络拓扑图)的能力。DARPA要求TA1系统至少应能分析x86、ARM和MIPS架构的软件/固件,并要求关注如何以自动化方式完成这些任务,尽量减少人工操作。

TA1系统把所生成的可由机器识读的描述和模型提交给TA2,由TA2根据这些信息生成目标系统在各个具体操作上下文中的安全配置。TA1还要负责把TA2生成的安全配置参数部署到目标系统,并采取措施确保这些设置是可审计的、可防止篡改的,由运行时监控子系统对各组件的配置进行监控,以及时发现可能出现的变更。这些变更可能是因系统遭受恶意攻击而引起的,也可能是因系统从一个操作上下文转换到另一个操作上下文而引发的。如果需要由人工对自动生成的模型进行审查和优化,TA1应该对这些必要的人机交互做出描述阐明将为不精通安全或配置的用户提供哪些支持。TA1系统必须运用其对配置参数的语义理解,尽可能减小所生成模型的规模。

TA1的技术难点包括:(1)如何从由人工识读的系统文档中抽取出语义,以生成关于配置参数如何影响系统行为的可由机器识读的模型;(2)缩减每个组件的配置空间,以满足关注安全和性能的需要;(3)根据系统文档,在尽可能减少人工参与的情况下找出目标系统的各种操作上下文并进行建模;(4)对组件的固件/软件进行二进制或源代码分析,根据其配置自动生成每个组件的功能描述;(5)以协作方式创建出通用数据表示,用于和TA2系统交流所形成的模型和表述,能对不同厂商的配置习惯进行正则化处理;(6)开发出能访问、更改和监控某个大型或复杂系统/平台所有不同设备配置参数的系统。

(二)生成安全配置

在配置时,TA2系统基于TA1提供的配置与功能的对应关系,生成用于整个系统的若干个安全配置集合(每种操作上下文对应于一个安全配置集合)。如果需要由人工审核并增加TA1系统未能自动提供的某些约束,TA2应开发出某种操作界面,使操作人员能够更好地理解该如何对系统进行配置。TA2提供的配置必须确保组合式系统的正常功能(包括满足一些非功能需求,例如确保时序的正确),同时删除一些不必要的功能,通过调整一些设置项而缩减攻击面。

在组合成一个整体时,必须对各组件进行深入分析,以防止某个组件的行为给其它组件带来消极影响。例如,交换机的最大传输单位(maximum transmission unit, MTU)通常设置为1518,如果某台交换机的该参数被设置为大于1518,大多数新产品仍可正常运行,一些老设备则可能因不能接收大数据包而无法正常运行。因此,TA2系统应能从整体上进行分析,从而发现和解决这种涉及多个组件的问题。

TA2系统须能生成若干支撑性证据,以说明为什么要采用某种配置设置。这些证据应能使合作伙伴相信新的配置能在确保系统正常运行的同时显著改善系统的赛博安全状况。TA2需要把所生成的配置集合提交给TA1,由TA1进行部署。每个配置集合都应包括可由人识读的描述,说明都有哪些操作上下文、这些操作上下文之间会有怎样的变迁。在运行时的操作界面上,要把这些操作上下文以及为什么要对某个可疑配置做进一步调查等情况都告知操作人员。

TA2的技术难点包括:(1)对TA1提供的系统模型和描述进行组合式分析(包括从不同层面上进行多项分析,也包括对整个系统进行综合分析),以确定出每种操作上下文的最优配置;(2)自动生成可由人识读的证据,说明为什么选用某个配置集合;(3)在配置时和运行时与操作人员进行沟通,从而优化模型或对运行时行为做出解释。

(三)攻击测试

TA3需要开发多种工具、技术和规程,以挖掘复杂组合式系统中基于配置的典型漏洞。TA3将在“白盒”模式下操作,能获取TA1和TA2的所有输出数据,也能获得所有原本由人识读的文档。对每个用以测试的目标系统,TA3首先审查其标准配置设置,并在必要时进行更改,以形成所需要的攻击面。这些基于配置的漏洞将成为对TA1和TA2配置集合进行评估的基线。在测试评估结束时,TA3必须把被测试的目标系统恢复到测试前的“已知良好”状态。

TA3要进行的攻击测试不同于传统的渗透测试,因为TA3的攻击测试要求必须仅利用TA1和TA2配置集合中的安全漏洞而实施攻击。在对目标系统进行这种攻击测试时,禁止实施造成内存错误、面向返回语句的攻击及其它软件层级的攻击。

TA3还负责对ConSec软件本身进行架构评审,并与TA1和TA2协作,防止攻击者利用ConSec系统破坏目标系统的安全性。对TA3的评价主要考查其在上述条件下自动生成攻击路径的能力,以及TA3能给TA1和TA2带来哪些改善。

TA3至少要解决如下技术难点:(1)开发仅借助与配置/组合相关的漏洞而对目标系统实施攻击的工具、技术和规程;(2)评估利用ConSec系统对目标系统实施攻击的可能性;(3)生成带有设定漏洞的初始配置集合,并在TA1和TA2部署了新的配置集合后评估在安全方面有哪些改善;(4)自动完成用于第一阶段的技术、战术和规程,以增强TA3为第二、三阶段更大规模目标系统提供支撑的能力,最大限度减少人工参与。

(四)系统集成与评估

TA4负责按照ConSec既定指标对TA1和TA2系统进行评估,并对TA1和TA2两种系统进行集成,从而形成配置时子系统和运行时子系统。ConSec项目将以自动化方式完成目前通常由人工完成的操作,对TA1和TA2系统的及时评估将有助于实现这种从人工到自动化的转换。TA4需要研究用哪些客观指标来评估整个ConSec系统在安全方面带来的改善,还需要研究用哪些方法确保即使在部署某个错误的配置集合时系统的必要功能也不会被误删或更改。

TA4必须提供一个简单的模拟/仿真测试环境,并需要在本项目正式开始后3个月内投入使用。该测试环境应能随本项目的推进而不断完善,为自动化回归测试与评估提供支撑。TA4应充分考虑TA1和TA2提供的容器化软件,这些软件采用得到共同认可的通用数据格式,经恰当组合后可形成配置时子系统和运行时子系统。TA4负责完成该集成过程,并假定来自TA1和TA2的各个软件都足够成熟,不需要由TA4花费大量时间挖掘其中的安全漏洞。

TA4负责协调对由DARPA选定的目标系统进行能力演示和演练评估,并把TA1和TA2的各个软件集成为配置时子系统和运行时子系统。在Consec项目的各个阶段,TA4都需要与美军和试验环境所有者进行各种协调,确保对Consec系统的功能、效果及用户体验进行高效的测度和评估,并负责审核TA3是否在每次演练结束时把测试环境恢复为“已知良好”状态。

TA4还负责协调TA1和TA2,就具体接口规范和系统总体设计达成一致。从第一阶段中期开始,TA4负责把来自TA1和TA2的各个软件集成为配置时子系统和运行时子系统,并在每两个月提交代码时进行自动化测试。

TA4至少应解决如下难点:(1)促使TA1和TA2就通用数据格式达成一致,这些格式应能屏蔽厂商设定的参数名称及语义;(2)协调组织在有限的物理目标系统上开展演练,并迅速确认试验环境是否已被恢复为“已知良好”状态;(3)开发新的指标及系统分析框架,用以评估ConSec系统的研发进展及生存能力;(4)创建简单的测试环境,支持对TA1和TA2的成果进行自动化回归测试;(5)把TA1和TA2的各种工具有机集成起来,形成顺畅的工作流,支持未来的转换。三、进展情况

DARPA信息创新办公室(I2O)于2017年11月发布“配置安全”(ConSec)项目公告,称计划总共用42个月,分三个阶段完成,见图2。

图2 ConSec的进度安排

其中,第一阶段和第二阶段是在民用系统(例如车联网系统、工控系统)上进行验证,第三阶段则是在国防部的涉密系统上进行验证。整个项目计划安排6次能力演示,并经受5次演练的检验。该项目提出的各阶段指标见表1。

表1 ConSec项目的指标

第一阶段(搭架筑台) 第二阶段(初始部署) 第三阶段(高复杂系统)
TA1:模型逼真度 状态空间的80% 状态空间的80% 状态空间的90%
TA1:文档摄入 速度10倍于人工,准确度达60% 速度10倍于人工,准确度达70% 速度10倍于人工,准确度达80%
TA1:部署时间 速度达人工的1.5倍 速度达人工的5倍 速度达人工的30倍
TA2:配置空间覆盖度 覆盖60% 覆盖75% 覆盖90%
TA2:风险消减 消减85% 消减85% 消减85%
TA3:正确性保证 基本保证(40%) 形式化保证(80%)

该项目原计划在2018年7月签署首份合同。实际上到2018年11月,美国DARPA才与美国Perspecta公司的研究部门Perspecta实验室签署ConSec项目首份合同。作为该项目的总承包方,Perspecta实验室负责“实现攻击面最小化的上下文优化配置”(OCCAM)系统的设计、开发、演示、测试和交付。OCCAM系统将能自动生成正确且安全的配置,同时生成可由人类识读的相关证据,以便于把整个平台升级到新的配置。

四、启示

启示1. 配置不当是导致安全漏洞的重要原因,必须高度重视。

正确的配置对于系统的高效、安全至关重要。事实上,系统或组件的各种配置日益复杂,已成为安全漏洞的重要来源。2016年的一份研究报告分析了在对若干种真实系统的渗透测试中发现的1500个漏洞,发现有27%是完全因配置不当而造成的,另有40%在一定程度上是因为配置不当而造成的。换言之,共有67%的安全漏洞与配置不当有关。安全漏洞是网络攻防活动能够发生的前提,是系统不安全的根源。为确保系统安全和尽可能避免安全漏洞,必须高度重视配置问题,美军的ConSec项目为借助自动化手段克服人类的认知局限性提供了新思路。

启示2:进行恰当配置对用户要求较高,配置自动化难度很大。

随着技术的发展,所部署的系统日益复杂,如何对这样的系统及其组件进行恰当配置,是系统所有者或用户面临的严峻挑战。很多情况下,不得不借助厂家的技术力量,即由设备生产厂家派专业人员到现场进行技术保障。当某个系统集成了多个厂家的产品时,还需要多个厂家同时派人到现场保障。实现配置自动化是减轻这种配置保障压力的有效途径。但分析ConSec项目可以看出,配置自动化涉及到自然语言处理、机器学习、行为建模、测试评估等诸多技术挑战,难度相当大。美国在上述多个领域有多年的积累,但对该项目的开展仍相当谨慎,这种谨慎正是技术难度大的体现。

启示3:为确保新研系统取得预期效果,必须加强测试评估。

美军已经建立了比较完善的对新研系统或新采办系统进行测试评估的机制。其常态化的测试评估包括研制测试和作战测试两大阶段,近年来还呈现出一体化的趋势;测试内容既包括可用性、可靠性、互操作性等传统项目,也包括以网络安全为代表的新内容。虽然已经积累了比较丰富的经验,但在某些方面仍有较大的改善空间。例如,美国防部把安全测试加入装备研制和采办流程已有近10年历史,但近两年的作战测试年度报告仍连续强调“所有被测系统均存在对遂行任务具有重要影响的网络安全漏洞”。对于ConSec这样的创新研发项目,以较多的演示和演练进行测试评估,正是美军“基于试验,结果驱动”理念的生动体现,值得我们借鉴。

声明:本文来自网信防务,版权归作者所有。文章内容仅代表作者独立观点,不代表士冗科技立场,转载目的在于传递更多信息。如有侵权,请联系 service@expshell.com。