工程科学学报 Chinese Journal of Engineering 基于强化学习的工控系统恶意软件行为检测方法 高洋王礼伟任望谢丰莫晓锋罗熊王卫苹杨玺 Reinforcement learning-based detection method for malware behavior in industrial control systems GAO Yang.WANG Li-wei,REN Wang.XIE Feng.,MO Xiao-feng.LUO Xiong.WANG Wei-ping.YANG Xi 引用本文: 高洋,王礼伟,任望,谢丰,莫晓锋,罗熊,王卫苹,杨玺.基于强化学习的工控系统恶意软件行为检测方法工程科学学报, 2020,42(4:455-462.doi:10.13374j.issn2095-9389.2019.09.16.005 GAO Yang,WANG Li-wei,REN Wang.XIE Feng.MO Xiao-feng.LUO Xiong.WANG Wei-ping,YANG Xi.Reinforcement learning-based detection method for malware behavior in industrial control systems[J].Chinese Journal of Engineering,2020,42(4): 455-462.doi:10.13374j.issn2095-9389.2019.09.16.005 在线阅读View online:https::/oi.org10.13374.issn2095-9389.2019.09.16.005 您可能感兴趣的其他文章 Articles you may be interested in 基于管道流体信号的自振射流特性检测方法 Detection method of the self-resonating waterjet characteristic based on the flow signal in a pipeline 工程科学学报.2019,41(3:377htps:/ldoi.org10.13374.issn2095-9389.2019.03.011 基于增强学习算法的插电式燃料电池电动汽车能量管理控制策略 Energy management control strategy for plug-in fuel cell electric vehicle based on reinforcement learning algorithm 工程科学学报.2019,41(10):1332htps:1doi.org/10.13374斩.issn2095-9389.2018.10.15.001 基于最大池化稀疏编码的煤岩识别方法 A coal-rock recognition method based on max-pooling sparse coding 工程科学学报.2017,397):981 https::/1doi.org10.13374j.issn2095-9389.2017.07.002 文本生成领域的深度强化学习研究进展 Research progress of deep reinforcement learning applied to text generation 工程科学学报.2020,42(4:399 https:/1doi.org/10.13374.issn2095-9389.2019.06.16.030 基于GPR反射波信号多维分析的隧道病害智能辨识 An intelligent identification method to detect tunnel defects based on the multidimensional analysis of GPR reflections 工程科学学报.2018,40(3:293htps:doi.org10.13374j.issn2095-9389.2018.03.005
基于强化学习的工控系统恶意软件行为检测方法 高洋 王礼伟 任望 谢丰 莫晓锋 罗熊 王卫苹 杨玺 Reinforcement learning-based detection method for malware behavior in industrial control systems GAO Yang, WANG Li-wei, REN Wang, XIE Feng, MO Xiao-feng, LUO Xiong, WANG Wei-ping, YANG Xi 引用本文: 高洋, 王礼伟, 任望, 谢丰, 莫晓锋, 罗熊, 王卫苹, 杨玺. 基于强化学习的工控系统恶意软件行为检测方法[J]. 工程科学学报, 2020, 42(4): 455-462. doi: 10.13374/j.issn2095-9389.2019.09.16.005 GAO Yang, WANG Li-wei, REN Wang, XIE Feng, MO Xiao-feng, LUO Xiong, WANG Wei-ping, YANG Xi. Reinforcement learning-based detection method for malware behavior in industrial control systems[J]. Chinese Journal of Engineering, 2020, 42(4): 455-462. doi: 10.13374/j.issn2095-9389.2019.09.16.005 在线阅读 View online: https://doi.org/10.13374/j.issn2095-9389.2019.09.16.005 您可能感兴趣的其他文章 Articles you may be interested in 基于管道流体信号的自振射流特性检测方法 Detection method of the self-resonating waterjet characteristic based on the flow signal in a pipeline 工程科学学报. 2019, 41(3): 377 https://doi.org/10.13374/j.issn2095-9389.2019.03.011 基于增强学习算法的插电式燃料电池电动汽车能量管理控制策略 Energy management control strategy for plug-in fuel cell electric vehicle based on reinforcement learning algorithm 工程科学学报. 2019, 41(10): 1332 https://doi.org/10.13374/j.issn2095-9389.2018.10.15.001 基于最大池化稀疏编码的煤岩识别方法 A coal-rock recognition method based on max-pooling sparse coding 工程科学学报. 2017, 39(7): 981 https://doi.org/10.13374/j.issn2095-9389.2017.07.002 文本生成领域的深度强化学习研究进展 Research progress of deep reinforcement learning applied to text generation 工程科学学报. 2020, 42(4): 399 https://doi.org/10.13374/j.issn2095-9389.2019.06.16.030 基于GPR反射波信号多维分析的隧道病害智能辨识 An intelligent identification method to detect tunnel defects based on the multidimensional analysis of GPR reflections 工程科学学报. 2018, 40(3): 293 https://doi.org/10.13374/j.issn2095-9389.2018.03.005
工程科学学报.第42卷,第4期:455-462.2020年4月 Chinese Journal of Engineering,Vol.42,No.4:455-462,April 2020 https://doi.org/10.13374/j.issn2095-9389.2019.09.16.005;http://cje.ustb.edu.cn 基于强化学习的工控系统恶意软件行为检测方法 高 洋,王礼伟2,39,任望,谢丰),莫晓锋234,罗熊2,34区,王卫苹2,34 杨 玺) 1)中国信息安全测评中心.北京1000852)北京科技大学计算机与通信工程学院,北京1000833)北京科技大学人工智能研究院.北京 1000834)材料领域知识工程北京市重点实验室,北京1000835)北京市智能物流系统协同创新中心.北京101149 ☒通信作者,E-mail:xuo@ustb.edu.cn 摘要网络环境下的恶意软件严重威胁着工控系统的安全,随着目前恶意软件变种的逐渐增多,给工控系统恶意软件的检 测和安全防护带来了巨大的挑战.现有的检测方法存在着自适应检测识别的智能化程度不高等局限性.针对此问题,围绕威 胁工控系统网络安全的恶意软件对象,本文通过结合利用强化学习这一高级的机器学习算法,设计了一个检测应用方法框 架.在实现过程中,根据恶意软件行为检测的实际需求,充分结合强化学习的序列决策和动态反馈学习等智能特征,详细讨 论并设计了其中的特征提取网络、策略网络和分类网络等关键应用模块.基于恶意软件实际测试数据集进行的应用实验验 证了本文方法的有效性,可为一般恶意软件行为检测提供一种智能化的决策辅助手段. 关键词恶意软件:检测方法:强化学习:特征提取:策略网络 分类号TP273 Reinforcement learning-based detection method for malware behavior in industrial control systems GAO Yang.WANG Li-wep),REN Wang,XIE Feng,MO Xiao-feng LUO Xiong,WANG Wei-ping,YANGXi) 1)China Information Technology Security Evaluation Center,Beijing 100085,China 2)School of Computer and Communication Engineering,University of Science and Technology Beijing,Beijing 100083,China 3)Institute of Artificial Intelligence,University of Science and Technology Beijing,Beijing 100083,China 4)Beijing Key Laboratory of Knowledge Engineering for Materials Science,Beijing 100083,China 5)Beijing Intelligent Logistics System Collaborative Innovation Center,Beijing 101149,China Corresponding author,E-mail:xluo@ustb.edu.cn ABSTRACT Due to the popularity of intelligent mobile devices,malwares in the internet have seriously threatened the security of industrial control systems.Increasing number of malware attacks has become a major concern in the information security community. Currently,with the increase of malware variants in a wide range of application fields,some technical challenges must be addressed to detect malwares and achieve security protection in industrial control systems.Although many traditional solutions have been developed to provide effective ways of detecting malwares,some current approaches have their limitations in intelligently detecting and recognizing malwares,as more complex malwares exist.Given the success of machine learning methods and techniques in data analysis applications,some advanced algorithms can also be applied in the detection and analysis of complex malwares.To detect malwares and 收稿日期:2019-09-15 基金项目:国家自然科学基金资助项目(U1736117.U1836106):北京市自然科学基金资助项目(19L2029.9204028):北京市智能物流系统协 同创新中心开放课题资助项目(BILSCIC-2019KF-O8:北京科技大学顺德研究生院科技创新专项资金资助项目(BK19BF006:材料领域知 识工程北京市重点实验室基本业务费资助项目(FRF-BD-19-012A)
基于强化学习的工控系统恶意软件行为检测方法 高 洋1),王礼伟2,3,4),任 望1),谢 丰1),莫晓锋2,3,4),罗 熊2,3,4) 苣,王卫苹2,3,4), 杨 玺5) 1) 中国信息安全测评中心,北京 100085 2) 北京科技大学计算机与通信工程学院,北京 100083 3) 北京科技大学人工智能研究院,北京 100083 4) 材料领域知识工程北京市重点实验室,北京 100083 5) 北京市智能物流系统协同创新中心,北京 101149 苣通信作者,E-mail:xluo@ustb.edu.cn 摘 要 网络环境下的恶意软件严重威胁着工控系统的安全,随着目前恶意软件变种的逐渐增多,给工控系统恶意软件的检 测和安全防护带来了巨大的挑战. 现有的检测方法存在着自适应检测识别的智能化程度不高等局限性. 针对此问题,围绕威 胁工控系统网络安全的恶意软件对象,本文通过结合利用强化学习这一高级的机器学习算法,设计了一个检测应用方法框 架. 在实现过程中,根据恶意软件行为检测的实际需求,充分结合强化学习的序列决策和动态反馈学习等智能特征,详细讨 论并设计了其中的特征提取网络、策略网络和分类网络等关键应用模块. 基于恶意软件实际测试数据集进行的应用实验验 证了本文方法的有效性,可为一般恶意软件行为检测提供一种智能化的决策辅助手段. 关键词 恶意软件;检测方法;强化学习;特征提取;策略网络 分类号 TP273 Reinforcement learning-based detection method for malware behavior in industrial control systems GAO Yang1) ,WANG Li-wei2,3,4) ,REN Wang1) ,XIE Feng1) ,MO Xiao-feng2,3,4) ,LUO Xiong2,3,4) 苣 ,WANG Wei-ping2,3,4) ,YANG Xi5) 1) China Information Technology Security Evaluation Center, Beijing 100085, China 2) School of Computer and Communication Engineering, University of Science and Technology Beijing, Beijing 100083, China 3) Institute of Artificial Intelligence, University of Science and Technology Beijing, Beijing 100083, China 4) Beijing Key Laboratory of Knowledge Engineering for Materials Science, Beijing 100083, China 5) Beijing Intelligent Logistics System Collaborative Innovation Center, Beijing 101149, China 苣 Corresponding author, E-mail: xluo@ustb.edu.cn ABSTRACT Due to the popularity of intelligent mobile devices, malwares in the internet have seriously threatened the security of industrial control systems. Increasing number of malware attacks has become a major concern in the information security community. Currently, with the increase of malware variants in a wide range of application fields, some technical challenges must be addressed to detect malwares and achieve security protection in industrial control systems. Although many traditional solutions have been developed to provide effective ways of detecting malwares, some current approaches have their limitations in intelligently detecting and recognizing malwares, as more complex malwares exist. Given the success of machine learning methods and techniques in data analysis applications, some advanced algorithms can also be applied in the detection and analysis of complex malwares. To detect malwares and 收稿日期: 2019−09−15 基金项目: 国家自然科学基金资助项目 (U1736117,U1836106);北京市自然科学基金资助项目 (19L2029,9204028);北京市智能物流系统协 同创新中心开放课题资助项目 (BILSCIC-2019KF-08);北京科技大学顺德研究生院科技创新专项资金资助项目 (BK19BF006);材料领域知 识工程北京市重点实验室基本业务费资助项目 (FRF-BD-19-012A) 工程科学学报,第 42 卷,第 4 期:455−462,2020 年 4 月 Chinese Journal of Engineering, Vol. 42, No. 4: 455−462, April 2020 https://doi.org/10.13374/j.issn2095-9389.2019.09.16.005; http://cje.ustb.edu.cn
456 工程科学学报,第42卷,第4期 consider the advantages of machine learning algorithms,we developed a detection framework for malwares that threatens the network security of industrial control systems through the combination of an advanced machine learning algorithm,i.e.,reinforcement learning. During the implementation process,according to the actual needs of malware behavior detection,key modules including feature extraction,policy,and classification networks were designed on the basis of the intelligent features of reinforcement learning algorithms in relation to sequence decision and dynamic feedback learning.Moreover,the training algorithms for the above key modules were presented while providing the detailed functional analysis and implementation framework.In the application experiments,after preprocessing the actual dataset of malwares,the developed method was tested and the satisfactory classification performance for malware was achieved that verified the efficiency and effectiveness of the reinforcement learning-based method.This method can provide an intelligent decision aid for general malware behavior detection. KEY WORDS malware;detection method;reinforcement learning;feature extraction:policy network 在国家信息安全的范畴中,与国家基础设施 恶意软件检测器.但是,当新的恶意软件变种加入 相关联的工业控制系统的安全占据着极其重要的 到训练数据集时,模型需要逐步重新训练,所以需 地位川目前,互联网环境下的工控系统安全是一 要更多的计算时间来估计检测的概率。基于深度 个重要的关注点,对其中非正常行为的监测主要 学习的新解决方法虽然在计算准确率方面有了较 围绕网络层面和使用端分别进行防护.网络端防 大提升,但是存在着计算效率不够理想和智能自 护通常是指网络流量进行分析,主要是指对工业 适应学习能力不强等局限性.基于上述考虑,本文 控制系统的特定协议、各种终端(包括移动终端) 主要基于强化学习这一高级机器学习算法来实现 的流量异常等进行分析:使用端的防护主要是识 恶意软件行为的检测与识别 别样本的异常行为来分析.本文主要研究终端方 强化学习是机器学习的范式和方法论之一, 的工控系统安全防护问题,对其中的恶意软件进 可针对智能体(Agent),描述和解决其在与环境的 行检测和分析,以提高监测预警的准确性和可用 交互过程中,通过学习策略以达成回报最大化或 性.当前应对的方法主要基于人工线下检查,对于 实现特定目标的问题,强化学习算法在信息论、博 存在的安全隐含,还是以讨论解决方案为主,并不 弈论、自动控制等领域有一定应用阿但是,将强 具备智能化特点.因此,研发恶意软件的智能检测 化学习方法直接用于恶意软件检测方面的工作还 算法,具有重要的现实意义四 很少.目前虽然已有一些工作切,但为了进一步提 一般来说,可以通过提取恶意软件的特征码 升检测效率和智能化程度,考虑采用本文的解决 来判断该程序是否属于某一类已知的恶意软件, 方法.虽然恶意软件自身的内部程序结构有差异, 虽然这样对已知特征的恶意软件能有很高的识别 但其恶意行为最终必须落实到实际的动态行为 率,但对于恶意软件的某些新型变种而言,检测效 中.因此本文决定使用行为序列分析方法对恶意 果可能不太理想)从长远的角度来看,随着新型 软件的行为序列进行分析,提取出合适的行为特 恶意软件的变种不断出现,病毒库将会变得日渐 征,然后通过这些特征,对恶意软件进行判别和分 臃肿.因此通过更新病毒库来检测新型变种的方 类.由于这种基于序列特征的分析操作,与强化学 法,虽然可行,但总是落后于恶意软件发展和更新 习适用于序列决策特征相符合⑧.这种需要对序列 的速度.因此,我们需要寻找新的能够识别恶意程 数据进行逐步操作的问题,可以使用强化学习中 序的有效方法.随着深度学习等高级算法在众多 的策略梯度来解决 领域上的成功应用,于是大量的研究者开始尝试 基于上述分析,本文针对恶意软件检测这一 使用这些新兴技术来解决这一问题. 特殊应用背景,设计了一种基于强化学习模型的 深度学习模型能够分析较长的系统调用序 应用实现方法框架,并完成了应用测试. 列,并通过捕捉高层次的特征为语义学习做出更 1理论基础 好的决策.Xiao等利用前向神经网络和循环神 经网络对权限申请和系统调用进行特征分析,从 1.1恶意软件检测的分析方法 而检测恶意软件.Su等)将多层次的特征输入到 目前用于分析恶意软件特征的主流方法有两 深度置信网络这一深度学习模型,进而将学习到 大类:静态分析与动态分析 的恶意软件的典型特征输入到基于支持向量机的 在静态分析方法方面,可以直接基于恶意程
consider the advantages of machine learning algorithms, we developed a detection framework for malwares that threatens the network security of industrial control systems through the combination of an advanced machine learning algorithm, i.e., reinforcement learning. During the implementation process, according to the actual needs of malware behavior detection, key modules including feature extraction, policy, and classification networks were designed on the basis of the intelligent features of reinforcement learning algorithms in relation to sequence decision and dynamic feedback learning. Moreover, the training algorithms for the above key modules were presented while providing the detailed functional analysis and implementation framework. In the application experiments, after preprocessing the actual dataset of malwares, the developed method was tested and the satisfactory classification performance for malware was achieved that verified the efficiency and effectiveness of the reinforcement learning-based method. This method can provide an intelligent decision aid for general malware behavior detection. KEY WORDS malware;detection method;reinforcement learning;feature extraction;policy network 在国家信息安全的范畴中,与国家基础设施 相关联的工业控制系统的安全占据着极其重要的 地位[1] . 目前,互联网环境下的工控系统安全是一 个重要的关注点,对其中非正常行为的监测主要 围绕网络层面和使用端分别进行防护. 网络端防 护通常是指网络流量进行分析,主要是指对工业 控制系统的特定协议、各种终端(包括移动终端) 的流量异常等进行分析;使用端的防护主要是识 别样本的异常行为来分析. 本文主要研究终端方 的工控系统安全防护问题,对其中的恶意软件进 行检测和分析,以提高监测预警的准确性和可用 性. 当前应对的方法主要基于人工线下检查,对于 存在的安全隐含,还是以讨论解决方案为主,并不 具备智能化特点. 因此,研发恶意软件的智能检测 算法,具有重要的现实意义[2] . 一般来说,可以通过提取恶意软件的特征码 来判断该程序是否属于某一类已知的恶意软件, 虽然这样对已知特征的恶意软件能有很高的识别 率,但对于恶意软件的某些新型变种而言,检测效 果可能不太理想[3] . 从长远的角度来看,随着新型 恶意软件的变种不断出现,病毒库将会变得日渐 臃肿. 因此通过更新病毒库来检测新型变种的方 法,虽然可行,但总是落后于恶意软件发展和更新 的速度. 因此,我们需要寻找新的能够识别恶意程 序的有效方法. 随着深度学习等高级算法在众多 领域上的成功应用,于是大量的研究者开始尝试 使用这些新兴技术来解决这一问题. 深度学习模型能够分析较长的系统调用序 列,并通过捕捉高层次的特征为语义学习做出更 好的决策. Xiao 等[4] 利用前向神经网络和循环神 经网络对权限申请和系统调用进行特征分析,从 而检测恶意软件. Su 等[5] 将多层次的特征输入到 深度置信网络这一深度学习模型,进而将学习到 的恶意软件的典型特征输入到基于支持向量机的 恶意软件检测器. 但是,当新的恶意软件变种加入 到训练数据集时,模型需要逐步重新训练,所以需 要更多的计算时间来估计检测的概率. 基于深度 学习的新解决方法虽然在计算准确率方面有了较 大提升,但是存在着计算效率不够理想和智能自 适应学习能力不强等局限性. 基于上述考虑,本文 主要基于强化学习这一高级机器学习算法来实现 恶意软件行为的检测与识别. 强化学习是机器学习的范式和方法论之一, 可针对智能体(Agent),描述和解决其在与环境的 交互过程中,通过学习策略以达成回报最大化或 实现特定目标的问题,强化学习算法在信息论、博 弈论、自动控制等领域有一定应用[6] . 但是,将强 化学习方法直接用于恶意软件检测方面的工作还 很少. 目前虽然已有一些工作[7] ,但为了进一步提 升检测效率和智能化程度,考虑采用本文的解决 方法. 虽然恶意软件自身的内部程序结构有差异, 但其恶意行为最终必须落实到实际的动态行为 中. 因此本文决定使用行为序列分析方法对恶意 软件的行为序列进行分析,提取出合适的行为特 征,然后通过这些特征,对恶意软件进行判别和分 类. 由于这种基于序列特征的分析操作,与强化学 习适用于序列决策特征相符合[8] . 这种需要对序列 数据进行逐步操作的问题,可以使用强化学习中 的策略梯度来解决. 基于上述分析,本文针对恶意软件检测这一 特殊应用背景,设计了一种基于强化学习模型的 应用实现方法框架,并完成了应用测试. 1 理论基础 1.1 恶意软件检测的分析方法 目前用于分析恶意软件特征的主流方法有两 大类:静态分析与动态分析. 在静态分析方法方面,可以直接基于恶意程 · 456 · 工程科学学报,第 42 卷,第 4 期
高洋等:基于强化学习的工控系统恶意软件行为检测方法 457· 序的可执行文件进行分析,也可以将恶意程序的 略的强化学习,则主要基于概率分布来选择动作 可执行文件进行反编译以此获得程序更为底层的 在本文中,主要采用了基于策略的强化学习算法 特征,然后对其进行分析.例如,Schultz等9首次 相对于基于价值的强化学习而言,基于策略的方 将数据挖掘的相关算法应用于恶意软件分析,其 法可以更加方便地产生一连串的连续动作 通过朴素贝叶斯分类算法得到的分类结果,比基 强化学习在自然语言处理中展示了很好应用 于特征匹配的传统方法具有更高的准确率. 效果.例如,Zhang等um提出了强化学习框架下的 Santos等uoI则是基于操作码序列来进行分析,他 信息提取长短期记忆网络ID-LSTM(Information 们根据操作码的出现频率以及操作码之间的关联 distilled long short-.term memory)模型,可提取到对 性来对恶意软件进行识别和分类.近年来,Zhang 分类问题更有效的序列特征.目前恶意软件动态 等山将可执行文件反编译得到操作码序列,然后 分析主要基于系统调用序列来进行,由于强化学 将这些序列转换成图像的形式,最后通过卷积神 习在产生动作序列方面具有的优势,本文将基于 经网络CNN来进行进一步的特征提取和识别 上述工作,将ID-LSTM模型迁移到恶意软件行为 在动态分析方法方面,该方法主要根据恶意 分析领域,实现优化分析 软件运行时的行为特征来进行分析.这些动态特 2基于强化学习的检测方法 征包括:系统调用、文件读写操作、网络通信行为 以及进程行为等.例如,Tandon和Chan使用规 本文将基于强化学习的自然语言处理方法迁 则学习算法的变体来学习系统调用中的规则信 移到恶意软件行为特征分析领域.借助于强化学 息,以此来检测新型的恶意软件行为、另外,考虑 习具有序列决策和可根据反馈调整策略的特点, 到动态分析方法中,频繁进行数据的采集,因此, 来筛选恶意软件行为序列,从而获得更好的行为 需要有合适的行为采集工具,Willems等]开发 序列特征.利用得到的特征,可以实现恶意软件检 了CWSandbox沙箱,它可以实现自动快速分析 测分类应用 Win32平台上的恶意软件,极大提升了分析效率. 2.1方法框架 基于此沙箱,Rieck等I构建了一个恶意软件分析 整个强化学习模型的总体结构,如图1所示 框架,将恶意软件放入沙箱中运行,然后采集恶意 其中,X=[x1,2,…,是序列数据,表示程序实际 软件运行时的行为特征,然后,基于这些动态特 执行时的一段API调用序列,其中的分量x:是一 征,使用机器学习算法进行识别和分类.此外, 个经过编码后的API调用函数;S,代表特征提取网 Ki等通过构建API(Application program interface) 络当前时刻的状态,是策略网络用来做出决策的 特征数据库,利用对比API序列特征的方法来判 判断依据;a,代表策略网络当前所选择的动作,该 断是否属于恶意软件 动作将影响特征提取网络的提取行为;,是整个 1.2强化学习 序列最终提取出来的特征,用于提供给分类网络, 强化学习近年来引发了广泛的关注.一个基 分类网络根据这个特征来进行分类选择;R,是延 本的强化学习模型包含智能Agent和环境两部分. 迟奖励,它在训练过程中,基于分类网络的预测结 智能Agent通过观察环境的当前状态,然后根据相 果来调整策略网络的参数 应的策略选择方案选择一个动作,将其作用到环 境上.环境将根据这个动作改变自己的状态,并反 Reinforcement learning model 馈给智能Agent一个奖励值.智能Agent根据这个 Xx1x2,…] ↓ 奖励值来判断它所选取动作的优劣程度,并以此 Policy Feature extraction (Classification 更新自己的策略.在不断交互过程中,智能Agent network network netwrok 将逐渐倾向于选择奖励值高的动作.最终,找 Delayed reward:R, 到一个能够完成当前目标,并能获得高奖励的 方案6 图1总体结构 Fig.1 Framework 强化学习根据策略学习的方式可以分为两大 类:基于价值的强化学习以及基于策略的强化学 在这个方法框架中,序列数据X中的每一个 习.在基于价值的强化学习方法中,与环境进行交 API调用函数将会按顺序依次输入到特征提取 互时,每次都将尝试选择价值最大的动作.基于策 网络中,每当特征提取网络接收到一个API调用
序的可执行文件进行分析,也可以将恶意程序的 可执行文件进行反编译以此获得程序更为底层的 特征,然后对其进行分析. 例如,Schultz 等[9] 首次 将数据挖掘的相关算法应用于恶意软件分析,其 通过朴素贝叶斯分类算法得到的分类结果,比基 于 特 征 匹 配 的 传 统 方 法 具 有 更 高 的 准 确 率 . Santos 等[10] 则是基于操作码序列来进行分析,他 们根据操作码的出现频率以及操作码之间的关联 性来对恶意软件进行识别和分类. 近年来,Zhang 等[11] 将可执行文件反编译得到操作码序列,然后 将这些序列转换成图像的形式,最后通过卷积神 经网络 CNN 来进行进一步的特征提取和识别. 在动态分析方法方面,该方法主要根据恶意 软件运行时的行为特征来进行分析. 这些动态特 征包括:系统调用、文件读写操作、网络通信行为 以及进程行为等. 例如,Tandon 和 Chan[12] 使用规 则学习算法的变体来学习系统调用中的规则信 息,以此来检测新型的恶意软件行为. 另外,考虑 到动态分析方法中,频繁进行数据的采集,因此, 需要有合适的行为采集工具,Willems 等[13] 开发 了 CWSandbox 沙箱 ,它可以实现自动快速分 析 Win32 平台上的恶意软件,极大提升了分析效率. 基于此沙箱,Rieck 等[14] 构建了一个恶意软件分析 框架,将恶意软件放入沙箱中运行,然后采集恶意 软件运行时的行为特征,然后,基于这些动态特 征,使用机器学习算法进行识别和分类. 此外, Ki 等[15] 通过构建 API(Application program interface) 特征数据库,利用对比 API 序列特征的方法来判 断是否属于恶意软件. 1.2 强化学习 强化学习近年来引发了广泛的关注. 一个基 本的强化学习模型包含智能 Agent 和环境两部分. 智能 Agent 通过观察环境的当前状态,然后根据相 应的策略选择方案选择一个动作,将其作用到环 境上. 环境将根据这个动作改变自己的状态,并反 馈给智能 Agent 一个奖励值. 智能 Agent 根据这个 奖励值来判断它所选取动作的优劣程度,并以此 更新自己的策略. 在不断交互过程中,智能 Agent 将逐渐倾向于选择奖励值高的动作. 最终 ,找 到一个能够完成当前目标,并能获得高奖励的 方案[16] . 强化学习根据策略学习的方式可以分为两大 类:基于价值的强化学习以及基于策略的强化学 习. 在基于价值的强化学习方法中,与环境进行交 互时,每次都将尝试选择价值最大的动作. 基于策 略的强化学习,则主要基于概率分布来选择动作. 在本文中,主要采用了基于策略的强化学习算法. 相对于基于价值的强化学习而言,基于策略的方 法可以更加方便地产生一连串的连续动作. 强化学习在自然语言处理中展示了很好应用 效果. 例如,Zhang 等[17] 提出了强化学习框架下的 信息提取长短期记忆网络 ID-LSTM( Information distilled long short-term memory)模型,可提取到对 分类问题更有效的序列特征. 目前恶意软件动态 分析主要基于系统调用序列来进行,由于强化学 习在产生动作序列方面具有的优势,本文将基于 上述工作,将 ID-LSTM 模型迁移到恶意软件行为 分析领域,实现优化分析. 2 基于强化学习的检测方法 本文将基于强化学习的自然语言处理方法迁 移到恶意软件行为特征分析领域. 借助于强化学 习具有序列决策和可根据反馈调整策略的特点, 来筛选恶意软件行为序列,从而获得更好的行为 序列特征. 利用得到的特征,可以实现恶意软件检 测分类应用. 2.1 方法框架 X = [x1, x2, ··· , xL] 整个强化学习模型的总体结构,如图 1 所示. 其中, 是序列数据,表示程序实际 执行时的一段 API 调用序列,其中的分量 xi 是一 个经过编码后的 API 调用函数;st 代表特征提取网 络当前时刻的状态,是策略网络用来做出决策的 判断依据;at 代表策略网络当前所选择的动作,该 动作将影响特征提取网络的提取行为;hL 是整个 序列最终提取出来的特征,用于提供给分类网络, 分类网络根据这个特征来进行分类选择;RL 是延 迟奖励,它在训练过程中,基于分类网络的预测结 果来调整策略网络的参数. 在这个方法框架中,序列数据 X 中的每一个 API 调用函数将会按顺序依次输入到特征提取 网络中,每当特征提取网络接收到一个 API 调用 Reinforcement learning model X=[x1 ,x2 ,…,xL ] Feature extraction network Policy network at st hL Classification netwrok Delayed reward: RL 图 1 总体结构 Fig.1 Framework 高 洋等: 基于强化学习的工控系统恶意软件行为检测方法 · 457 ·
458 工程科学学报,第42卷,第4期 函数x之后,便会产生一个当前状态s,并将其送 特征提取网络的工作过程如算法1所示 给策略网络.策略网络根据当前的状态S,进行决 策从而选择一个动作a,反馈给特征提取网络.特 算法1:特征网络提取过程 征提取网络根据动作a,进行相应的更新操作.不 1:初始化co和ho:co=0,ho=0: 断重复上述过程,当整个序列X被处理完之后,特 2:=1; 征提取网络将最终得到的特征,提供给分类网 3:while i<=L 络,分类网络根据这个提取出来的序列特征进行 4: 输入API调用函数x: 分类预测.最后根据预测的结果计算一个延迟奖 5: 计算当前状态:s=c-1⊕h-①x: 励R,反馈给策略网络,以便策略网络更新网络 6: 将S,传递给策略网络; 参数 N 获取策略网络所选择的动作a: 2.2数据预处理 8: if a,=Delete then 在针对恶意软件行为序列处理分析过程中, 9: hh-:cFCi-1; 需要对收集的原始数据进行必要的预处理,以方 10: else if a,=Retain then 便后续模型的训练和测试.整个数据预处理的流 11: h,和c,根据LSTM网络功能进行 程分为三步 正常更新: (I)提取API调用序列:从Cuckoo沙箱生成 12: e计l; 的原始报告中提取API序列数据,并且将每一份 13:输出hL,将其提供给分类网络 报告(每一个样本)单独形成一个API调用序列 文件 2.3.2分类网络 (2)过滤API函数:计算各个API函数的信息 分类网络利用从特征提取网络那里得到的序 增益值,然后设定一个阈值,最后将所有信息增益 列特征hu,来预测当前样本的所属类别.这里的分 值小于阈值的API函数剔除.这样做的目的是,一 类网络设计为一个三层的神经网络(输入层、隐含 方面可以别除对分类帮助不大的API函数,另一 层和输出层),输入是序列特征h=hi,h2,…,hm: 方面也希望尽可能保留较多的原始信息 输出的P)是一个概率分布,用来描述当前序 (3)编码API序列:将每一个API函数编码成 列X所属的可能类别.因为本文目的是区分恶意 一个独热向量,再将整个API序列中的API函数 软件和良性软件,这是一个二分类问题,所以 替换成对应的独热向量即可. ye benign,malicious. 2.3模型设计 在实际训练过程中,分类网络所计算出来的 下面分别介绍图1中三个关键网络模块的设 概率分布,一方面用来估计当前样本所属的类别, 计过程. 另一方面需要利用这个概率分布来计算延迟奖励 2.3.1特征提取网络 R,计算方法如下: 特征提取网络主要基于LSTM网络的功能特 L RL=log2PcW)+y元+b (1) 点来提取时序数据的长距离时序特征.这里的状 态S,定义为:S=C-1⊕h-1⊕x,其中,①表示拼接 其中:P(cX)的值是从分类网络预测结果P(X)中 操作,c1是-l时刻记忆单元中的信息,1是用 获得:c表示样本X的实际所属类别.L是被删除 于存放时序数据累积特征的张量,x是当前输入 掉的API函数的个数(也就是执行Delete操作的 的API调用函数.S,表示当前的状态,一方面考虑 次数):L是原始的序列长度;y则是起到调节删除 了之前序列中所蕴涵的信息,另一方面还考虑了 力度功能的超参数.例如,在相同的情况下,如果 当前的输入,可全面地体现当前的具体状态.动 y的值越大,延迟奖励R第二项的值就会越大,那 作a,定义为:a,e{Retain,Delete.这是一个二元选 么策略网络所得到的奖励也随之变大,因此策略 择,每一个时刻所选择的动作只有两种可能:删除 网络就会更倾向于删除更多信息.此外,在延迟奖 (Delete)和保留(Retain).Retain操作是保留当前 励中增加一个偏置项b.这个偏置项的作用是用来 对应的API函数,而Delete操作则是去除对应的 调节奖励值的正负情况 API函数,被去除掉的API函数将不会对最终的分 2.3.3策略网络 类结果产生影响. 策略网络接收特征提取网络给出的状态S,然
函数 xi 之后,便会产生一个当前状态 st,并将其送 给策略网络. 策略网络根据当前的状态 st,进行决 策从而选择一个动作 at,反馈给特征提取网络. 特 征提取网络根据动作 at,进行相应的更新操作. 不 断重复上述过程,当整个序列 X 被处理完之后,特 征提取网络将最终得到的特征 hL 提供给分类网 络,分类网络根据这个提取出来的序列特征进行 分类预测. 最后根据预测的结果计算一个延迟奖 励 RL 反馈给策略网络,以便策略网络更新网络 参数. 2.2 数据预处理 在针对恶意软件行为序列处理分析过程中, 需要对收集的原始数据进行必要的预处理,以方 便后续模型的训练和测试. 整个数据预处理的流 程分为三步. ( 1)提取 API 调用序列:从 Cuckoo 沙箱生成 的原始报告中提取 API 序列数据,并且将每一份 报告(每一个样本)单独形成一个 API 调用序列 文件. (2)过滤 API 函数:计算各个 API 函数的信息 增益值,然后设定一个阈值,最后将所有信息增益 值小于阈值的 API 函数剔除. 这样做的目的是,一 方面可以剔除对分类帮助不大的 API 函数,另一 方面也希望尽可能保留较多的原始信息. (3)编码 API 序列:将每一个 API 函数编码成 一个独热向量,再将整个 API 序列中的 API 函数 替换成对应的独热向量即可. 2.3 模型设计 下面分别介绍图 1 中三个关键网络模块的设 计过程. 2.3.1 特征提取网络 st = ct−1 ⊕ht−1 ⊕ xt at ∈ {Retain,Delete} 特征提取网络主要基于 LSTM 网络的功能特 点来提取时序数据的长距离时序特征. 这里的状 态 st 定义为: ,其中,⊕表示拼接 操作,ct-1 是 t-1 时刻记忆单元中的信息,ht-1 是用 于存放时序数据累积特征的张量,xt 是当前输入 的 API 调用函数. st 表示当前的状态,一方面考虑 了之前序列中所蕴涵的信息,另一方面还考虑了 当前的输入,可全面地体现当前的具体状态. 动 作 at 定义为: . 这是一个二元选 择,每一个时刻所选择的动作只有两种可能:删除 (Delete)和保留(Retain). Retain 操作是保留当前 对应的 API 函数,而 Delete 操作则是去除对应的 API 函数,被去除掉的 API 函数将不会对最终的分 类结果产生影响. 特征提取网络的工作过程如算法 1 所示. 算法 1:特征网络提取过程 1:初始化 c0 和 h0:c0=0,h0=0; 2:i=1; 3:while i<=L 4: 输入 API 调用函数 xi; 5: 计算当前状态:si=ci−1⊕hi−1⊕xi; 6: 将 si 传递给策略网络; 7: 获取策略网络所选择的动作 ai; 8: if ai=Delete then 9: hi=hi−1;ci=ci−1; 10: else if ai=Retain then 11: hi 和 ci 根据 LSTM 网络功能进行 正常更新; 12: i=i+1; 13:输出 hL,将其提供给分类网络. 2.3.2 分类网络 hL = [h1,h2, ··· ,hm] 分类网络利用从特征提取网络那里得到的序 列特征 hL,来预测当前样本的所属类别. 这里的分 类网络设计为一个三层的神经网络(输入层、隐含 层和输出层),输入是序列特征 ; 输出的 P(y|X) 是一个概率分布,用来描述当前序 列 X 所属的可能类别. 因为本文目的是区分恶意 软件和良性软件 ,这是一个二分类问题 ,所 以 y∈{benign, malicious}. 在实际训练过程中,分类网络所计算出来的 概率分布,一方面用来估计当前样本所属的类别, 另一方面需要利用这个概率分布来计算延迟奖励 RL,计算方法如下: RL = log2 (P(c|X))+γ L ′ L +b (1) 其中:P(c|X)的值是从分类网络预测结果 P(y|X)中 获得;c 表示样本 X 的实际所属类别. L′是被删除 掉的 API 函数的个数(也就是执行 Delete 操作的 次数);L 是原始的序列长度;γ 则是起到调节删除 力度功能的超参数. 例如,在相同的情况下,如果 γ 的值越大,延迟奖励 RL 第二项的值就会越大,那 么策略网络所得到的奖励也随之变大,因此策略 网络就会更倾向于删除更多信息. 此外,在延迟奖 励中增加一个偏置项 b. 这个偏置项的作用是用来 调节奖励值的正负情况. 2.3.3 策略网络 策略网络接收特征提取网络给出的状态 st,然 · 458 · 工程科学学报,第 42 卷,第 4 期