谭玲玲,杨 飞,张 洋,易军凯
(北京信息科技大学 自动化学院,北京 100192)
近几年“蠕虫式”勒索病毒软件给计算机网络安全带来了巨大的威胁和挑战[1-2],利用危险漏洞“Eternal Blue”(永恒之蓝)开发出的WannaCry勒索病毒[3-4],是网络安全界进行网络攻防典型的应用案例。高级持续威胁(advanced persistent threat,APT)也是近年来兴起的另一类网络攻击[5],曾以震网、火焰、极光等事件引起美国国家安全局(National Security Agency,NSA)等机构的重视。为应对网络安全问题,我国发布了《国家网络空间安全战略》和《网络空间国际合作战略》,并于2017年6月1日开始施行《网络安全法》。面对日趋复杂的网络安全环境和攻击威胁,单靠基于检测的防御手段而被动地响应无法从根源解决安全问题[6-8]。远程渗透技术全面考虑了攻击者利用网络主机上的漏洞侵入目标网络的所有可能路径[9-11]。但传统的渗透测试缺少明确的目的,没有具体的渗透路径规划策略,可控性弱。因此,一种行之有效的手段是综合运用网络环境和漏洞,开展网络渗透测试中的动态导航技术研究。本文将机器学习与网络安全技术相结合,将当前以“人工”为主的渗透测试转变为以“人工智能”为主,提出了网络空间动态导航的网络渗透框架及相应技术。
在传统网络空间攻防过程中,利用漏洞强行突破成功率较低。为了实现对靶节点的渗透,本文借鉴物理空间中的动态导航理论和技术,提出网络空间动态导航架构,利用网络渗透中的动态导航和精确制导技术,快速突破中间节点并渗透到靶节点。网络空间动态导航技术体系架构如图1所示。
1)网络空间漏洞测绘技术。使用网络空间的设备指纹智能提取技术,利用深度学习算法,建立网络设备指纹知识库;利用网络设备漏洞匹配与验证技术,通过漏洞数据库对网络中存在的漏洞进行检测与更新;利用网络设备测绘技术,给出基于知识图谱描述含有漏洞的网络设备之间的拓扑关系,建立网络拓扑测绘地图。
2)网络空间路径规划技术。利用网络空间路径规划的约束要素,实现约束条件形式化描述,建立约束条件知识库;利用约束知识库优化推理方法,建立约束要素推理引擎;利用源点到靶节点的优化路径探测,实现网络空间路径规划。
3)网络空间动态导航技术。利用网络空间的动态导航技术,实现精确制导。包括:基于网络空间的态势感知地图,远程渗透规划路径上的中间节点;研究约束要素的变化应对策略,实现源节点到靶节点的动态导航。
2.1.1 网络空间的设备指纹智能提取
对网络设备端口发送探测数据包,并接收设备端口返回的数据包,利用深度学习方法对返回的数据包进行解析,提取深度指纹特征,技术路线如图2所示。
将网络设备返回的数据包映射为二维图像,利用深度神经网络进行分类和识别。将收到的数据包视作16进制文件,文件中的每个字节范围都在00和FF之间,对应灰度图的1个像素点。由此将16进制文件映射为1张灰度图,进一步将数据包映射成RGB彩色图的形式。对于16进制文件,连续的3个字节可以分别对应于RGB图像中的3个通道,即第1个字节对应R通道的值,第2个字节对应G通道的值,而第3个字节对应B通道的值。由于设备返回的数据包为变长结构,若最末端数据不足3个字节,则用FF 值填充。使用如下公式将数据包每一组值转换为RGB图像的3个通道的值:
(1)
之后,将得到的像素点按照“长度×宽度”二维矩阵的方式进行排列,便得到1张RGB彩色图。不同数据包图像化后的纹理存在差异性,所以将这种图像纹理作为网络设备指纹特征去进行提取和判断。
2.1.2 网络设备漏洞匹配与验证
网络设备漏洞匹配与验证技术由漏洞库管理和漏洞验证两部分组成。其中,漏洞库管理部分实现网络设备信息安全漏洞库的建立、更新和漏洞匹配;漏洞验证部分负责根据漏洞库管理子系统创建的漏洞库内容向目标设备发送测试样本,通过监控、分析设备返回数据完成漏洞匹配与验证,异常监控模块的结果会发送给漏洞库管理子系统进行漏洞库的更新。技术路线如图3所示。
漏洞库管理子系统由下至上划分为数据层、管理层和决策层3层结构。数据层是网络设备漏洞数据的存储层。管理层负责漏洞匹配和更新数据层中存储的漏洞库数据。决策层负责对漏洞数据库进行检索。漏洞验证子系统实现对待测网络设备的漏洞测试和检验。在网络设备漏洞的描述信息中一般都含有协议、操作系统、应用软件等特有的与设备相关的特征信息,将这些特有的关键词作为查询和匹配的依据。通过相似度匹配算法对待识别数据信息同漏洞库进行匹配来完成漏洞识别。
2.1.3 网络拓扑地图测绘
采用基于知识图谱的网络拓扑地图测绘技术,描述包含漏洞的网络设备拓扑关系,实现网络空间漏洞分布的测绘与展示。该部分技术路线如图4所示。知识图谱构建方法如下:1)采用“自顶向下”的方式,首先建立物理设备之间的关系,再考虑物理设备之间的属性;2)采用结构化数据库,同时抽取数据库数据知识和字段;3)对指纹库与漏洞库中抽取的知识进行知识消歧融合,区分出同名异体或异名同一实体;4)对知识图谱所涉及的网络设备进行本体建模;5)基于构建好的本体,将从数据源中抽取并融合后的知识与本体对应,形成实体。由于结构化数据的固定性,实体与属性之间的关系通过样本数据训练进行构建;6)将构建的实体、属性及关系组成(实体1,关系,实体2)和(实体,关系,属性)两种形式的三元组,存入图数据库中,构建完成网络设备知识图谱;7)三元组通过可视化的方式呈现,构成了基于知识图谱的网络设备拓扑测绘地图,分析知识间的关联关系,推理出网络设备拓扑结构中的漏洞。
2.2.1 路径规划约束要素知识库构建
在漏洞拓扑基础上,依据漏洞节点渗透约束要素选择最优渗透路径。建立约束要素知识库,如图5所示,该知识库包含规则子知识库和漏洞节点信息子知识库,分别标注了中间节点选取规则和最优路径规划规则,以及漏洞节点的自治系统(autonomous system,AS)和网络协议(internet protocal,IP)信息、节点设备指纹信息和节点之间的路径连接信息等,如图6所示。
2.2.2 路径规划约束要素推理引擎
在约束要素知识库构建完成之后,利用知识库推理来进行最优化路径的选择。首先需要构建约束要素推理引擎,推理引擎的任务是确定可用规则,并按照一定的控制策略选出规则执行。根据源节点和靶节点IP信息及中间节点选取规则知识库推理中间节点IP的工作过程如图7所示。
2.2.3 优化路径探测方法
路径探测问题可理解为一个节点序列标注问题,确定对应的最优路径规划规则。隐马尔可夫模型[12]可解决序列标注问题。在隐马尔可夫模型的基础上,选用诸如A*等启发式搜索策略来确定整个路径规划过程。根据网络拓扑关系,以起始点作为顶点,以攻击图的形式给出网络中的渗透路径信息。在漏洞利用关系图中对攻击路径进行搜索时,根据搜索的起始点不同分为两种搜索方式:一种是从攻击者开始,称为前向搜索算法;另一种是从渗透目标开始,称为后向搜索算法。另外,根据漏洞关系形成漏洞利用图后,对利用图进行遍历,获取可能的攻击路径。对每条渗透路径采用启发式搜索算法的代价函数进行评价并选出代价最优的路径。
2.3.1 网络空间导航
根据路径规划的结果,在沿途各节点部署网络空间导航器,根据路径信息建立各自的路由表,将收到的数据包从对应接口发送至下一跳节点,进而送达靶节点。
导航器分为导航控制器和导航器两部分,导航器框图如图8所示。
导航控制器部署在源节点,与路径规划引擎相互协同,为各导航器下发/更新路由信息,控制导航器的工作,是网络空间导航技术的大脑。导航器部署在沿途各节点上,通过特定端口接收上一节点发来的路由信息和数据包,建立各自的路由表,提供导航服务;同时,导航器动态感知各节点的状态,并实时通知导航控制器,是网络空间导航的双手和眼睛。
路由表的建立过程如下:
1)链路标签的分配。导航控制器为规划路径中的每条链路分配链路标签。为隐藏路径信息,标签采用一个短而定长的、只具有本地意义的标识符,使得网络渗透操作节点的真实IP更加隐蔽,防止攻击点被溯源定位。标签封装在传输数据中,其长度短,便于沿途节点查找,可以支持任意的网络协议封装。
2)路由信息的生成。导航控制器将规划出的路径分割成多端链路,将规划路径转换成一组链路标签的有序排列。同时,导航控制器结合网络拓扑,确定沿途每个节点是否与靶节点相邻、节点两端的链路标签、节点接入链路所使用的接口号、节点上导航器使用的TCP/UDP端口号等信息。导航控制器利用这些信息,分别为每个节点生成一份路由信息,并下发给各节点上的导航器。
3)导航器的部署。导航控制器按照由近到远的顺序,逐个在沿途节点上部署导航器,并逐个下发路由信息。具体过程如下:首先在节点1部署导航器并下发节点1的路径信息,待节点1的路由表建立完成后,再通过节点1向节点3部署导航器并下发节点3的路径信息,待节点3的路由表建立完成后,再通过节点1、3向节点5部署导航器并下发节点5的路径信息,以此类推。导航示意如图9所示。
4)路由表的建立。导航器从特定端口接收到本节点的路由信息时,建立/更新自身路由表,用于指导报文的转发;接收到其他节点的路由信息时,按路由表将路由信息转发给下一节点。路由表维护每个标签对应的转发接口、下一跳节点、下一跳链路标签、标签操作类型和完成封装的信息(包括端口,协议,封装格式等)。每个节点仅收到与自己相关的转发信息,这样极大提高了节点渗透的隐蔽性。
数据包的转发过程:
①源节点将首条链路的标签压入数据包的内部,发送给网络。
②各节点上的导航器从特定端口号接收数据包,根据链路标签查找路由表,用下一跳链路对应的标签交换原有的标签,用下一跳导航器使用的端口号修改外层封装,保证下一跳导航器顺利接收数据包。将修改后的数据包从路由表指定出接口发送到下一节点。
③倒数第二跳节点与靶节点相邻,收到带标签的数据包后弹出标签,将数据包内容从路由表指定出接口发送出去,发到靶节点。
标签操作:
①标签压入动作。在源节点上发生,在报文外层封装与数据内容之间插入标签。
②标签交换动作。在中间节点发生,节点根据标签路由表,用下一跳链路的标签交换原有标签。
③标签弹出动作。在与靶节点相邻的倒数第二跳节点发生,将标签剥离掉,转发后续数据。
2.3.2 网络动态态势感知
依托强化学习与态势感知技术,设计面向网络路径导航、适配动态网络环境的动态导航机制。基于动态态势感知的路由表生成机制如图10所示。在网络感知模块中通过触发定时更新机制对网络拓扑与链路状态进行监测,对路由需求、网络拓扑以及链路状态进行感知更新。上述功能模块的输出为强化学习训练模块提供输入来生成最优等效转发路径,再根据其更新导航路径;通过感知公有路由表,发现本机的路由无等效路径,则将此信息返回给源节点或超级节点,通过路径规划引擎重新下发更新的路由。
2.3.3 动态导航
将网络探测、远程渗透隐藏在正常的HTTP通信中,使HTTP通信承载远程渗透的工具,实现对防火墙的穿透,并加强远程渗透攻击的稳定性和隐蔽性,通过路径规划引擎实现从操作节点至靶节点的精确制导。动态导航示意图如图11所示。
1)路径规划引擎。路径规划引擎为自建或其他已经被渗透的服务器,用于转发数据,将路径规划引擎搭建在操作节点与目标网络之间。如果控制端掌控了足够多的被控端,控制端可以把多个被控端设置成路径规划引擎代理服务器,这有利于大规模网络设备部署,能够实现多路径的资源共享,具有网络反馈速度快、易于实现网络资源的协调等优点。
2)超级节点路由策略。采取网络分布式超级节点路由策略。该路由策略利用设备扫描技术,选取长时间开机、性能稳定的网络节点,将其部署成分布式超级节点。超级节点与路径规划引擎之间进行通信,并下发出路径规划信息,如图12所示,从而实现对动态路径规划的控制与管理。超级节点部署完成后,将自身的路由发布给局域内的节点。超级节点路由策略易于实现负载均衡,提高导航效率。
3)网络通讯自我保护。在网络渗透过程中,为了防止被溯源可以采取以下几种手段:通过检测网卡是否处于混杂模式来检测主机是否正在运行网络嗅探器;列举主机当前运行的所有进程的名称,来检测主机操作系统自带的网络查看工具;列举所有正在打开的窗口的标题,检测窗口的标题中是否含有“网络”、“流量”字样的字符串,当检测到存在以上情况时暂停网络渗透的网络活动。有效消除人员组织关联、攻防特征关联、作战手法关联、通信链路关联、实施路径关联等强关联带来的潜在作战安全风险,对渗透提供额外的安全保护措施,提升网络作战的安全性。
网络空间中的动态导航新概念为远程渗透提供了理论基础。本文基于深度神经网络的设备指纹智能提取技术和知识图谱的设备拓扑测绘方法,建立网络漏洞拓扑测绘图。在此基础上建立了远程渗透路径动态规划方法,借助导航控制器建立路径上各节点的路由表,导航器按照路由表将收到的数据包从对应接口发送至下一跳节点,从而将数据包按规划路径送达靶节点。依托强化学习与态势感知技术,设计了面向网络路径导航、适配动态网络环境的动态导航策略机制。本文提出的动态导航框架为远程渗透目标提供了理论依据,以理论来指导实践。