APP下载

面向主机的攻击行为分析

2019-01-18孙文贺刘吉强

信息通信技术 2018年6期
关键词:注册表攻击行为勒索

孙文贺 王 健 刘吉强

北京交通大学智能交通数据安全与隐私保护技术北京市重点实验室 北京 100044

背景

随着信息技术的飞速发展,计算机、互联网应用已经深入到人们生活的各个方面,计算机互联网用户不断增加。根据中国国家互联网应急中心(CNCERT)的报告显示,截至 2017年12月份,我国的计算机互联网用户已经达到7.72亿[1]。但我国的网络安全形式不容乐观。据CNCERT抽样监测,2017年我国境内感染计算机恶意程序的主机数量约1256万台,而位于境外的约3.2万个计算机恶意程序控制服务器控制了我国境内约1101万台主机。恶意程序中的蠕虫病毒、木马病毒、僵尸病毒以及最近出现的勒索病毒大多是利用网络进行传输,其最终的攻击目标都是终端(即主机)。恶意程序或黑客等攻击主机的目的主要包括以下的几个方面:窃取机密文件;控制主机、充当跳板;勒索财物;破坏基础设施等。

面对攻击,出现了多种安全防护技术,例如防火墙、NIDS(Network Intrusion Detection System)、HIDS(Host-based Intrusion Detection System)、防病毒软件等。

传统的防护技术在检测和防护方面具有一定的效果,但是也存在一些明显的局限性:缺乏解释能力,不能说明攻击发生时,攻击在主机产生了哪些具体行为以及这些行为对主机带来的影响;缺乏攻击意图分析能力,不能描述攻击的意图和最终攻击目标实现程度等。

本文从攻击行为的角度,分析从攻击开始到攻击完成的整个过程中目标主机上产生的一系列操作行为。首先收集系统产生的操作,分析关键操作,生成攻击行为图;然后从时序的角度分析关键操作,并且统计不同行为的占比;最终对不同类型的攻击提取其攻击行为特征,实现对攻击意图的识别。

1 已有工作

针对主机的异常检测技术,已经存在许多工作。Creech G[2]等使用不连续的系统调用模式,实现了基于主机的异常入侵检测,将语义结构应用于内核级系统调用,以反映隐藏在高级编程语言中的内在活动。Subba B[3]等将系统调用轨迹转换为n-gram矢量模型,然后使用降维方法来减小输入特征向量的大小,进而采用多种基于机器学习的分类器模型来识别入侵过程。林果园[4]系统分析了入侵检测、行为特征选择、软件异常检测、异常用户行为检测等方面,实现了基于主机层面的入侵检测。基于主机行为的研究方法主要分为以下几个类别。

1.1 注册表使用行为的异常检测

Windows操作系统的注册表中存放计算机系统、软件等配置参数,以及权限管理信息等重要数据。因此很多恶意程序往往把注册表作为首选的攻击目标。大多数的病毒、木马会修改注册表以启动自身服务,或者关闭系统的安全防护,亦或是提升自身的操作权限。因此,可以通过对注册表及其键值使用行为的分析,发现入侵行为。

Apap F[5]等提取注册表的五个字段作为注册表信息的特征,收集恶意样本数据,使用C-SVM进行恶意检测。

1.2 系统进程的异常检测

进程是一个计算机系统中程序运行的活体,是真正发挥作用的实体,任何攻击或入侵都是通过相应进程的行为而实现的。因此针对进程异常行为的检测有很重要的作用。攻击通常会产生一些子进程,或者创建一些与系统进程同名的假冒进程以躲避查杀。而且有的攻击会注入其他的进程或者修改其他进程的信息。

Moon D[6]等提出了一种基于主机进程行为信息的恶意软件检测方法,从良性程序中划分恶意软件的特征,并在虚拟机环境中收集特征参数。当可执行程序在主机上运行时,根据所收集的进程特征参数数据来重构每个特征参数的发生频率,以此来检测恶意软件的存在。

1.3 系统文件操作行为的异常检测

文件是计算机网络系统中重要的资源,绝大多数信息都是以文件的形式存在物理介质上。一般黑客或者木马程序要窃取重要数据,往往要通过物理介质访问相应文件。绝大多数的攻击都会产生对文件的操作,比如创建文件、写文件、删除文件、修改文件。大多数的木马病毒会调用cmd.exe程序执行脚本语言来启动恶意程序。有的窃密木马会将文件改名,秘密传输到控制端。

李飞兵[7]通过分析文件操作API,将文件操作划分为以时间流和数据流为特征的高级文件行为,在此背景下分析幕后黑客对文件操作的习惯和规律。

1.4 网络传输的异常检测

攻击时网络传输行为是指在攻击期间主机与远程控制主机产生的各种行为。比如攻击开始后突然开始大量访问某个网站,并传输本机的主机信息或者本机的文件。

张永斌[8]等提出持续性分析算法,判断主机与外部特定目标的通信行为是否具有周期性或连续性,提取出可疑的网络行为,判断主机是否感染恶意软件。

罗亚丽[9]等设置截点将注册表、文件、进程、网络通信行为系统调用进行拦截,将拦截到的API函数值作为特征,使用贝叶斯算法对当前系统状态进行异常检测。

除了上述研究,也有以攻击的生命周期层面为背景提出的入侵检测。例如,李春光[10]等提出了一种结合系统调用和过滤器驱动技术的HIPS,将整个攻击生命周期分为5个阶段:探测、渗透、驻留、传播、破坏。每个阶段又定义了不同的操作。最终能对攻击性流量和入侵活动进行拦截。

以上研究虽然能取得不错的检测效果,但是不能全面刻画主机的行为。我们将对文件、进程、注册表和网络的操作综合分析,提出面向主机攻击行为的分析方法。

2 面向主机攻击行为的分析

分析攻击对一个主机产生哪些具体的操作时,首先要提取攻击在主机产生的操作数据,定义主要的操作类型;然后对数据进行自动分析、检测关键特征、生成调用图以及统计分析操作数。图1为本文提出的分析主机攻击行为的总体流程图。

图1 分析主机攻击行为流程图

为了表示系统中观察到的事件,本文使用PerfView和Process Monitor两个工具采集数据。每个事件由时间戳、进程标识符(可执行文件名和pid)、操作类型、标识操作对象的路径、操作结果(成功/失败)和包含附加信息的详细信息组成。使用Process Monitor对操作行为进行定义,其中具体的操作类型如表1所示。

为了进行分析,本文给出的可疑行为定义如下。

1)把针对主机文件且能产生危害的操作分为:创建可执行文件(f1),修改重要系统文件(f2),删除系统重要文件(f3)。

表1 操作行为的具体定义

2)把针对注册表且可能产生危害的操作分为:实现服务自启动(r1),降低系统安全性(r2),取得系统最大权限(r3)。

3)把针对进程且可能产生危害的操作分为:创建系统已有进程(p1),注入其他进程(p2),创建恶意子进程(p3),创建tor服务(p4)。

4)把针对网络且可能产生危害的操作分为:定期向某个窗口发送信息(t1),传输主机信息(t2),某一端口的异常通信(t3)。

5)除了上述所提及的操作之外,不同的攻击产生不同的具体操作。可以划分为以下四种。

a)勒索蠕虫病毒可能产生的具有识别性的操作:产生密钥信息(l1),加密文件(l2)。

b)窃密木马病毒产生的有识别性的操作:记录用户名和密码(w1),记录键盘操作(w2)。

c)下载木马病毒产生的有识别性的操作:上传,下载大量文件(x1),产生远程控制命令(x2)。

d)代理木马病毒产生的有识别性的操作:开启http代理(d1),开启socket代理(d2)。

因此,可以把攻击表示为一个五元组:{F<f1,f2,f3>,R<r1,r2,r3>,P<p1,p2,p3,p4>,T<t1,t2,t3>,<l1,l2,w1,w 2,x1,x2,d1,d2>}。

本文中定义,如果以上五元组的前四个部分每个部分的匹配度超过50%(经过统计分析得到的经验值),就可以认为此时系统处于被攻击阶段。匹配度为样本产生的操作占五元组中事先定义的操作行为的比率。当检测到样本数据有五元组中定义的子行为发生时,记为1,否则,记为0。比如,某一样本针对文件,产生了f1和f2两个操作,即有F{1,1,0},则此时针对文件的可疑行为的匹配度为:2/3≈67%。并且各个元组之间的权重相同。五元组的第五部分,如果匹配到具体操作事件,就归为相应的某个类型的攻击。

2.1 操作行为统计

为了进一步分析不同攻击的特征,本文统计攻击产生的具体操作,包括对文件、进程、注册表、网络的操作。分别统计以上各种具体操作的次数,分析哪种子操作占有较高的比率,这样可以知道攻击的主要行为操作类型。进而增加样本特征,提高检测效率。

Fleck D[11]等为分析哪些攻击是由用户触发的,哪些攻击是自身启动的,使用了统计操作行为的方法。

本文使用Process Monitor采集到的一条数据表示为一个操作。OpNum表示某一攻击在主机运行期间产生的总的操作数,SumTypeNum表示某一类型操作的总数量。SumTypeNum/OpNum表示某个操作类型占攻击产生的所有操作的比例。

2.2 攻击数据自动分析

此次实验基于传统的病毒分析步骤[12]进行分析,主要是对攻击期间关键操作进行匹配识别。这一部分使用程序进行自动识别。对关键行为进行匹配后,将会产生一个表示攻击类型的五元组。本文主要按照以下的步骤对操作数据进行检测识别。

1)创建文件用于启动恶意程序。

调用cmd.exe程序执行脚本语言。

2)创建可执行文件。

创建与系统进程同名的可执行文件,比如csrss.exe。

3)修改注册表,实现服务自启动。

HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrent Version 下所有以“run”开头的键值;HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion 下所有以“run”开头的键值; HKEY-USERS.DefaultSoftwareMicrosoftWindowsCurrentVersion下所有以“run”开头的键值。

4)修改注册表键值以降低安全性。

HKLMSoftwareMicrosoftSecurityCenter”Firew allOverride”=1HKLMSoftwareMicroSoftSecurityCe nter”AntiFirewallDisableNotify”= 1。

5)获取系统权限。

获取注册表的全部权限。

6)创建子进程。

调用cmd.exe程序执行脚本语言。

7)注入其他系统进程以隐藏自身。

注入explorer.exe、svchost.exe、csrss.exe等系统进程。

8)网络连接,发送信息,接受指令。

9)具体行为意图包括:窃取用户的账号、记录用户键盘活动、加密文件、远程控制窃取主机文件、DDos攻击、窃取财物(网银木马)、充当跳板。

3 实验

3.1 实验环境

使用一台单机环境的Windows主机进行实验。具体操作配置如下。硬件条件:CPU为Intel(R) Core(TM)i7-6700@3.4GHZ 3.4GHZ,内存8.0GB。操作系统:Windows7。开发平台:Pycharm。开发语言:python。

本实验运行的木马病毒样本如表2所示。

将以上样本分时段植入实验机器。使用Process Monitor工具收集攻击运行期间前5分钟的关键操作,并保存导出。此过程中尽量关闭其他软件,以减小其他软件带来的干扰。

表2 木马病毒样本

3.2 实验内容

下面以勒索病毒Herty为例进行一次详细分析将此样本植入实验主机,开启Process Monitor工具采集主机数据,同时关闭其他应用程序。此过程共采集到大约63207条数据。下面对实验中识别到的关键操作进行分析并展示了部分操作数据。

1)伪装成系统进程,开机自动启动木马服务。

操作数据:"HKEYCURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRunClientServer Runtime Subsystem"设键值为"STRING="C:DocumentsandSettingsAllUsersApplicationDataWindowscsrss.exe"。

2)在系统上创建Tor服务。

操作数据:C:UsersAdministratorAppDataRoaming orgeoip。

3)调用cmd.exe程序执行脚本语言。

操作数据:Commandline:C:Windowssystem32cmd.execechoonerrorresumenext:CreateObje ct("WScript.Shell").Run"C:UsersAdministratorDocumentsherty.exe",1: >"C:UsersAdministratorAppDataRoamingMicrosoftWindowsStartMenuProgramsStartupx.vbs"。用于开机后自动启动木马程序。

4)注册表生成解密前公钥密码。

操作数据:RegSetValueHKLMSOFTWAREWow6432NodeSystem32Configurationxpk-BEGINPUBLIC KEY(生成的部分)-MIIBojANBgkqhkiG9 w0BAQEFAAOCAY8AMIIBigKCAYEAu1nEgF8haqpQ 0RbCkh。

5)创建文件,为用户留下解锁信息。

操作数据:创建文件README1、README2、README3、README4、README5、README6、README7、README8、README9、README10于"C: "路径下。

6)文件加密。

遍历系统磁盘指定文件类型的文件,解密公钥密码,使用公钥进行文件加密,修改文件类型为DA_VINCI_CODE文件,将文件名进行加密处理。

操作数据:"C:UsersAdministratorAppDataLocalTempstate ""C:UsersAdministratorAppDataLocalTemplock ",state文件存储Torversion信息。

7)修改桌面背景,显示勒索信息。

操作数据:RegSetValue HKCUControl PanelDesktopWallpaperType:REG_SZ,Length:120,Data:C:UsersAdministratorAppDataRoaming6E70967C6E70967C.bmp。

8)启动服务功能,发起指定连接请求。

Herty勒索病毒产生的行为如图2所示

描述Herty勒索病毒产生的特定操作的五元组为:{F<1,1,1>,R<1,0,1>,P<1,1,1,1>,T<1,1,0>,<1,1,0,0,0,0,0,0>},可以看出前四个部分每个部分都超过50%匹配,后一个部分产生了加密文件和生成密钥的操作,此时可以认为是在对文件进行加密,进而判别此攻击为勒索的攻击。

Herty勒索病毒产生的时序调用图如图3所示

勒索病毒产生的行为数统计如表3所示。

图2 Herty勒索病毒产生的行为

图3 勒索病毒随时间产生的操作

通过上表可以看出此勒索病毒在运行期间一共产生了63207个子操作。其中对文件的操作数Sum TypeNum为55952个,占到了总事件的88.4%。对进程的操作数SumTypeNum为2613个,占到总事件的4.1%。对注册表的操作数SumTypeNum为4630个,占总事件的7.3%。而对网络的操作数SumTypeNum为12,只占到总数的0.01%。通过以上统计,本文发现Herty勒索病毒的主要操作集中在文件部分。这也与勒索病毒主要是对主机文件进行加密的操作有关。

所有样本的五元组匹配结果如表4所示。

样本产生的操作行为统计如表5所示。

表3 勒索病毒产生具体操作的统计

表4的结果显示,我们提出的基于行为特征的匹配检测攻击行为的方法,能准确地根据行为特征检测出相应的攻击。表5显示了我们统计的样本在运行期间操作行为的数量。其中,对于网络的操作很少,可能是因为与其通信的主机(如控制端)位于国外。另外,可以从结果中得出:全部的样本产生的操作都集中于文件和注册表。其中样本1和样本2为勒索病毒样本,它们都对文件产生了很多的操作。样本3属于代理类木马,它对注册表产生的大量的操作。样本4属于下载类的木马,本应该会产生大量网络传输行为,但是由于网络的原因,没能产生相应的操作。样本5和样本6属于窃密木马,同样对文件和注册表产生了大量的操作,用于操作文件和获得权限。

表4 五元组匹配结果

表5 操作行为统计结果

4 总结

本文提出的面向主机的攻击行为分析方法,是基于具体操作行为实现的。把主机的系统操作分为四个大类:文件、注册表、网络、进程。又将这四个大类细分为许多子操作,这些子操作涵盖了系统操作的主要行为。同时使用基于木马病毒分析的流程,编程实现自动分析数据,识别出主要的高危操作。最后又对操作进行统计,分析攻击规律。本文提出的分析方法实现了在主机端对攻击行为的刻画,实现了攻击的分类检测。

猜你喜欢

注册表攻击行为勒索
住院精神病人暴力攻击行为原因分析及护理干预
基于人工蜂群算法的无线网络攻击行为的辨识研究
情绪勒索:警惕以爱之名的伤害
遭遇勒索
勒索
获奖产品介绍:对勒索病毒说不
——美创科技“诺亚”防勒索系统向勒索病毒“宣战”
更上一层楼 用好注册表编辑器
注册表的便捷用法
高职生共情、宽恕、攻击行为的关系研究
注册表编辑器也玩“失忆”