APP下载

基于深度学习的操作系统多维度安全保护架构

2021-06-08曹玉红陈思羽

工业技术创新 2021年1期
关键词:操作系统神经网络深度学习

曹玉红 陈思羽

摘   要: 操作系统漏洞长期威胁用户隐私安全,给用户带来的不仅是经济损失,更有个人隐私泄漏等威胁。基于操作系统的内存管理、进程管理、IO管理三大核心功能,分析针对各功能的攻击方案的表现形式,提出利用深度学习技术,搭建包含基础数据层、特征提取层、特征学习层、防御行为层的操作系统多维度安全保护架构。基础数据层收集操作系统运行数据,并将原始数据提供给特征提取层;特征提取层对原始数据进行变换,向特征学习层提供易于理解与学习的特征;特征学习层借助深度神经网络,理解特征提取层提供的数据,并将检测结果反馈给防御行为层;防御行为层产生防御行为,并优化特征学习层,降低误判概率,提升检测精度。该架构通用性强,可部署性良好,能检测到未曾发现的攻击。若辅以GPU硬件支持,神经网络的算力资源开销将降低80%。

关键词: 操作系统;多维度安全保护;深度学习;可部署性;GPU;神经网络

引言

最早针对操作系统的攻击产生自1988年11月2日,由就读于康奈尔大学的研究生Robert Tappan Morris(罗伯特·塔潘·莫里斯)发起。病毒从麻省理工学院的UNIX计算机上散播,著称莫里斯蠕虫(Morris Worm)病毒。该病毒虽然内容简单,仅有99行源代码,但危害较大,感染了6 000余个UNIX操作系统,占当时操作系统总数的约10%[1]。该病毒利用的是十分常见的操作系统内存溢出漏洞,其攻击行为造成了广泛的影响,也首次開创了操作系统安全这一安全研究领域的先河。

发展30余年来,已有数以万计的操作系统漏洞被发现或利用。操作系统安全一直受到广泛关注,在CVE当中记录的操作系统相关漏洞超过20 000条,占CVE记录的漏洞总数的1/6以上。2010-2020年被发现并记录在CVE中的操作系统安全漏洞数量统计如图1所示,可以看出Windows操作系统漏洞数量居于首位,接近8 000条。这些广泛存在的漏洞将长期威胁操作系统用户的安全,它们不但可能造成用户信息泄露等一系列的隐私问题,还将导致用户的算力资源被窃取,给用户带来直接经济损失。

然而,针对操作系统的攻击却难以防范,其原因是操作系统安全问题可能来自于操作系统功能的各个维度。深度学习在安全领域的各种成功应用,使得通过深度学习解决复杂的操作系统安全问题成为可能。深度学习不但有强大的表示学习能力,而且善于理解复杂的数据关系。目前,深度学习已被用于恶意流量监测、网络硬件设备异常诊断等一系列安全问题。

本文构建用于解决通用操作系统安全问题的深度学习应用框架。该框架将从操作系统的进程管理、内存管理、IO管理等核心功能入手,形成包含基础数据层、特征提取层、特征学习层、防御行为层的四层架构,从多维度保护操作系统安全,从而突破操作系统安全问题的复杂性、广泛性和时变性。

1  基本理论探讨与研究需求分析

1.1  操作系统的核心功能

Abraham在其著作Operating System Concepts[2]当中将操作系统的核心功能分为三大模块:进程管理、内存管理、IO管理。

(1)进程管理。顾名思义,进程管理的对象是进程。操作系统对进程运行时消耗的硬件资源进行动态分配和调度,并对进程进行严格的访问控制,以防止进程不正当地使用硬件资源,例如越界读写内存、直接访问内核空间等。

(2)内存管理。内存管理的对象是计算机系统的内存硬件资源,其通过分段和分页机制向进程分配内存资源,并保证进程与内核、进程与进程之间具有良好的内存隔离。

(3)IO管理。IO管理的对象为计算机外设,其能够实现一系列IO通信协议。通信协议将外设产生的数据读入内存,交由CPU处理,或将内存当中的数据输出给外设。IO管理功能保证外设无法读写任意内存地址、无法干预计算机系统的正常运行。

1.2  面向操作系统的攻击方案

管理硬件资源是操作系统的基本功能之一,面向操作系统的攻击的根本目的是不正当地操纵合法用户的硬件资源。操作系统安全威胁类型如图2所示,其中面向操作系统的攻击方案繁多,但无论何种攻击方案,都是从操作系统的三大核心功能模块入手的,这最终会导致操作系统的硬件资源被异常使用。

(1)面向进程管理的攻击方案。该方案包含了各种进程控制流劫持方案。最典型的进程控制流劫持的表现形式是:面向返回地址编程(ROP),攻击者以栈区溢出为主要攻击步骤,利用合法进程在内存中驻留的合法代码“拼凑”出恶意程序,并劫持进程的控制流,最终导致“拼凑”出的恶意程序被执行。此外,进程控制流劫持方案还包含了GOT表劫持等方案,但它们的本质均是劫持进程的控制流,以修改进程行为,使既定的代码无法被执行,而使攻击者预定的恶意代码被执行。

(2)面向内存管理的攻击方案。该方案包含了各种内存溢出攻击方案。栈区溢出攻击通过异常输入流覆盖函数的调用堆栈,其目的之一是覆盖函数的返回地址,进而修改进程行为,最终欺诈操作系统产生不正当行为。堆区溢出攻击的原理与栈区溢出攻击相似,但覆盖的对象为内存堆区当中存储的数据,最终将同样导致攻击者预定的恶意行为被操作系统执行。

(3)面向IO管理的攻击方案。该方案包含了发掘IO通信协议的实现或设计缺陷的一系列方案。目前成熟的攻击方案已覆盖常见的外设IO通信协议(USB、NFC、蓝牙等)。攻击者伪装发送IO协议通信单元,构造恶意输入,并获得除合法IO通信之外的其他权限。除外设IO之外,大量成熟的攻击方案也覆盖了文件系统IO与网络IO。

1.3  现有操作系统保护方案的弊端

为防御针对操作系统的各类攻击方案,目前的操作系统将各种保护机制直接编码到操作系统实现当中,或者对已被发现的漏洞进行直接编码修复。

为防御进程管理相关的攻击,文献[3]提出了控制流完整性保护(CFI)方案,以确保既定进程行为的正常进行。但控制流完整性保护方案将给进程带来超过2倍的执行开销。类似的方案还有信息流控制(IFC)方案和指针完整性保护(CPI)方案,但其开销也较大,目前未能广泛使用。

为防御内存管理相关的攻击,Linux 4当中实现了ASLR机制,以预防内存栈区溢出。在glibc中,目前已引入了ptmalloc2堆管理器,修复了各种堆区溢出攻击方案[4]。文献[5]当中引入了模糊测试方法,实现了堆区管理模块的检测,以预防各种面向内存堆区的攻击。

为防御IO管理相关的攻击,目前的保护机制通常对IO通信协议的协议单元进行过滤,希望以此发现IO攻击行为。过滤规则通常由专家根据目前已被发现的攻击进行设计。较为先进的IO管理保护方案通过形式化验证方法发现内核IO通信协议的实现漏洞,从而对其进行修复,防止其被恶意外设利用。

以上操作系统保护方案存在两个典型的弊端。一是这些方案均仅是针对现有的攻击方案而设计的,其面对新型攻击方案的防御能力差。二是这些方案通常仅能针对一类或一种攻击方案,无法应对针对操作系统的攻击具有的多样性。在对操作系统安全要求较高的使用场景下,目前的操作系统保护方案无法全方位地防御与各类操作系统相关的攻击策略。这也正是本文欲借助深度学习强大的表示学习能力,提出操作系统多维度安全保护架构的立意所在。

1.4  深度学习及其应用现状

當前深度学习以深度神经网络为核心。相比于传统的统计机器学习方法,深度学习擅长理解数据当中不易被发掘的关系。深度神经网络通过反向传播算法及其变体算法进行模型更新,并可以借助高性能异构计算设备实现加速计算。深度神经网络的衍生工具诸多,包含擅长处理高维数据的卷积神经网络、擅长处理序列化数据的循环神经网络,以及一系列擅长数据生成任务的对抗学习结构。

目前深度学习在安全领域已有初步应用,如针对恶意流量监测的应用[6]、针对加密流量分类的应用[7]和在异常系统事件检测[8]中的应用。本文则希望借鉴深度学习的方法和理念,构建操作系统多维度安全保护方案,实现深度学习在操作系统安全领域中的应用。

2  架构流程设计

操作系统多维度安全保护方案的工作流程如图3所示,大致分为五个部分:

(1)判断攻击行为的产生。攻击者从操作系统的三大核心功能出发,分别对操作系统的进程管理功能、内存管理功能、IO管理功能进行攻击。这些攻击方案将导致操作系统陷入异常状态,使得硬件资源被不正当使用。

(2)基础数据采集。本文提出的基于深度学习的操作系统多维度安全保护架构将从进程、内存、IO三大角度,分别抽取操作系统状态信息,并对提取得到的信息加以处理,作为深度神经网络的输入数据。

(3)模型理解基础数据。利用上述数据训练深度神经网络,经过训练后的深度神经网络将具备理解所采集的操作系统状态信息的能力,从而可以动态地判定威胁操作系统安全的恶意行为是否存在。

(4)检测结果反馈。若发现恶意的危害行为,则向操作系统的使用者发出提示信息。操作系统的使用者将人工检查恶意攻击行为是否真实存在。若是,使用者将通过管理员权限终止恶意行为,并且将发现的攻击方案用于指导操作系统内核源代码的维护和迭代。另一方面,将动态检测的信息实时备份到云端,为更宏观的操作系统保护应用提供信息依据,用于防御大规模的操作系统的攻击。

(5)动态调整模型。若恶意行为系误判,则将误判信息反馈给检测系统,检测系统将利用这一信息提升检测精度。

3  架构功能模块设计

受传统机器学习服务(Machine Learning as a Service,MLaaS)软件架构启发,将基于深度学习的操作系统多维度安全保护架构设计为图4所示的分层架构,具体分层包括:基础数据层、特征提取层、特征学习层、防御行为层。基础数据层收集操作系统产生的运行数据,并将这些原始数据提供给特征提取层。特征提取层对原始数据进行变换,向特征学习层提供易于理解与学习的特征。特征学习层借助深度神经网络,理解特征提取层提供的数据。最后,将检测结果反馈给防御行为层,防御行为层产生防御行为,并优化特征学习层,以提升检测精度。

3.1  基础数据层

基础数据层与内核交互,收集用于深度神经网络推理和学习的基础数据。按章节1.1~1.2所述,本文假设攻击者从三个不同方面(进程、内存、IO)发起针对操作系统的攻击,因而基础数据层将同样从这三个方面收集操作系统信息。为预防与进程管理相关的攻击,基础数据层采集进程的系统日志,这是因为当进程控制流被劫持而出现异常行为时,异常行为将直接反映在记录进程行为信息的系统日志上。为防御针对内存管理的攻击,基础数据层将实时收集操作系统生成的内存使用统计信息,这是因为当与内存管理相关的攻击发生时,内存的使用率和读写频率将发生明显的变化。为防御与IO管理的相关攻击,基础数据层记录IO设备的接入日志和交互统计信息,这是因为当异常外设与操作系统交互时,其数据传输速率等交互统计信息和接入日志将显著区别于正常外设。

3.2  特征提取层

特征提取层的作用是对基础数据层提取得到的原始数据抽取有效信息,丢弃冗余信息,并进行变换,得到深度神经网络易于理解的数据表示。在这一层面上需要完成两个重要工作:一是对基础数据进行清洗。基础数据层采集得到的数据包含大量冗余信息和与攻击检测任务不相关的信息,对不相关数据进行清洗,将使模型易于挖掘到有用信息,对于提升检测精度有明显帮助。二是对数据进行特征提取。在基础数据层,采集得到的是复杂的异构数据,需要对其进行基础的变换。对于时序化数据,例如采集得到的日志等,应设计对应的日志解析引擎,将文本化的日志数字化;对于非时序化数据,例如采集得到的操作系统统计特征等,应引入均值、方差、协方差等指标,对统计信息的数值范围进行调整与优化。

3.3  特征學习层

特征学习层利用深度神经网络,理解特征提取层变换得到的时序化、非时序化特征,判断操作系统是否遭受攻击行为。对于特征提取层变换得到的时序化数据,可以采用循环神经网络结构,抽取其时间维度上的特征。注意针对操作系统的攻击方案通常包含多个步骤,因而这些步骤顺序进行的特点将被反映到时序化数据表示上,使得循环神经网络结构可以更好地理解并发现攻击行为。对于非时序化特征,可以使用全连接神经网络进行理解,这是因为非时序化特征一般具有较高维度,使用全连接神经网络可以有效控制推理和训练的时间开销。当然,最终需要对时序化信息和非时序化数据的理解结果加以综合,从而输出操作系统异常指数的量化指标。当操作系统异常指数的量化指标高于某一阈值时,则有足够把握认为攻击行为已发生。

3.4  防御行为层

防御行为层的作用是当判定恶意攻击行为产生时,对操作系统的使用者进行通知,并采取及时的防御措施。此时,操作系统的使用者将采用人工方式对操作系统进行诊断。如果发现特征学习层误报,则将误报结果反馈给特征学习层,特征学习层将根据反馈结果调整模型,以提升检测精度;当人工诊断发现恶意攻击行为确凿,则可以及时对攻击行为进行阻断,并利用发现的攻击行为修复操作系统漏洞,进而指导操作系统的优化与设计。此外,防御行为层还对检测结果进行云端备份,这些备份信息为大规模网络攻击诊断与分析提供了数据支持,指导与数据挖掘相关的其他一系列安全研究工作。

4  效果评估

本文提出的基于深度学习的操作系统多维度安全保护架构从操作系统的三大核心功能出发,全方位地防御来自操作系统各个方面的攻击。相比于传统的防御方案,其优点有三:一是不针对特定一种攻击方案进行防御,而是防御各类与操作系统相关的攻击,打破了防御措施和攻击方案的一对一关系;二是可以防御未被发现的攻击,鉴于本架构不是针对已被发现的攻击方案而设计的,因而当未被发现的攻击发生时,本架构仍然可以发现攻击行为并采取防御措施;三是本架构的可部署性高,不限定于特定操作系统,无需修改内核源代码。

然而,本架构的应用最好具有GPU硬件支持,因为本架构也会为操作系统的运行带来额外开销。鉴于本架构大量使用了深度神经网络,因此在没有GPU计算资源的支持下,本架构将大量消耗CPU算力资源。当引入GPU硬件支持时,本架构的计算开销将被负载到GPU上,从而节约CPU的算力资源。此外,GPU可将神经网络的计算开销降低至CPU计算时的20%,从而显著节约计算成本。

5  结束语

本文将深度学习作为关键技术,从操作系统的三大核心功能及相应的攻击方案出发,提出了操作系统多维度安全保护方案。相比于传统方案,本方案通用性强,可部署性良好,并能检测到未曾被发现的攻击。基于深度学习的操作系统多维度安全保护架构是一种新型安全防护策略,对网络信息安全研究、安全可信操作系统建设具有重要意义。

参考文献

[1] Morris worm [EB/OL]. [2020-11-21]. https://en.wikipedia.org/wiki/Morris_worm.

[2] Abraham S, Greg G, Peter B G. Operating System Concepts: 7th edition [M]. Wiley, 2009.

[3] Ding R, Qian C X, Song C Y, et al. Efficient Protection of Path-Sensitive Control Security[C]// Proceedings of 26th USENIX Security Symposium. USENIX, 2017.

[4] Silvestro S, Liu H Y, Liu T Y. GUARDER: A Tunable Secure Allocator[C]// Proceedings of 27th USENIX Security Symposium. USENIX, 2018.

[5] Eckert M, Bianchi A, Wang R Y, et al. HEAPHOPPER: Bringing BoundedModel Checking to Heap Implementation Security[C]// Proceedings of 27th USENIX Security Symposium. USENIX, 2018.

[6] Mirsky Y, Doitshman T, Elovici Y, et al. Kitsune: An Ensemble of Autoencoders for Online Network Intrusion Detection[C]// Network and Distributed Systems Security (NDSS) Symposium. IOS, 2018.

[7] Liu C, He L, Xiong G, et al. FS-Net: A Flow Sequence Network For Encrypted Traffic Classification[C]// IEEE INFOCOM 2019 - IEEE Conference on Computer Communications. IEEE, 2019.

[8] Shen Y, Mariconti E, Vervier P A, et al. Tiresias: Predicting Security Events Through Deep Learning[C]// ACM SIGSAC Conference on Computer and Communications Security (CCS). ACM, 2018.

猜你喜欢

操作系统神经网络深度学习
基于人工智能LSTM循环神经网络的学习成绩预测
基于图像处理与卷积神经网络的零件识别
基于自适应神经网络的电网稳定性预测
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
智能手机操作系统的分析与比较
国产桌面操作系统中虚拟化技术应用研究
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
深度学习算法应用于岩石图像处理的可行性研究
基于深度卷积网络的人脸年龄分析算法与实现