APP下载

一种基于K-Core获取进程流行度识别异常进程的算法及仿真

2020-07-17李智宏王瑶

科技创新导报 2020年14期
关键词:白名单日志进程

李智宏 王瑶

(中国移动通信集团海南有限公司 海南海口 570125)

近年来,大规模网络攻击和信息安全事故层出不穷,涉及的领域越来越广,造成的危害也越来越大[1]。2006年末,“熊猫烧香”事件轰动全国,进近两个月的时间,病毒感染无数门户网站,上百万台电脑感染,凡是中了病毒的电脑,页面上都会显示一张熊猫手中握着香的图片[2]。2010年7月,“震网”(Stuxnet)蠕虫攻击事件浮出水面,震网病毒感染了全球超过20万台电脑,摧毁了伊朗浓缩铀工厂1/5的离心机,只靠U盘传播的震网病毒,破坏了伊朗的核计划[3]。2017年5月“WannaCry”勒索病毒肆虐,短短一个月的时间就席卷全球150多个国家,中毒者要支付大量赎金来解锁自己的电脑文件,如果没有备份,只能乖乖支付赎金,或者放弃治疗,经济损失高达80亿美元[4]。网络攻击和安全事件已经逐步由黑客炫耀技术转变为黑客对经济利益的追逐,转变为国家之间综合实力的竞争。

无论是病毒、木马还是蠕虫,绝大多数的入侵行为都是通过攻击特权进程或者创建特权进程来破坏业务系统的安全性,特定进程通常需要完成有限的、特定的、恶意的行为,因此其行为在时间和空间上比其他业务程序更加异常,如不会像系统进程、业务进程一样在绝大部分主机上存在,只在被入侵的主机上少数存在。基于此,本文介绍了一种基于K-Core来对进程流行度进行排序的算法,根据流行度获取业务系统主机进程白名单库及疑似恶意进程库,来帮助用户识别主机异常进程。

1 背景及研究现状

图1 异常进程检测流程图

进程是系统动态执行操作的基本单位,服务器中的进程不仅是程序的动态实现,还包括对资源的调度和分配活动。服务器中任何恶意程序的执行都会启动相应的异常进程,如木马病毒、蠕虫、僵尸网络和DDoS攻击等恶意攻击都会事先在服务器中安插后门进程。如果能在恶意程序执行初期检测出服务器中的相应异常进程,并采取一定的措施,就能避免遭受更大的损失。

目前对网络攻击的主要防护手段是防火墙和入侵检测技术。防火墙作为内网和外网的一道警戒线,有效地阻挡了大部分的恶意攻击。但防火墙的功能具有较大局限性,它的防御策略是静态的,且只能阻挡来自于外网的攻击。入侵检测技术有效的弥补了防火墙的缺陷,它可以监控主机状态以判断用户行为是否正常。进程监控是网络安全技术的重要实现环节,许多入侵检测系统和杀毒软件都会有监控主机进程的功能。然而入侵检测技术对于异常进程检测的时效性较差,且忽略了进程的全局特性。

图2 异常进程检测流程

图3 进程网络图

图5 进程无向图

图7 原始进程无向网络图

针对现有异常进程检测技术和工具存在的缺陷,本文的目的在于提供一种检测服务器中异常进程的方法与装置,提高异常进程检测的时效性。具体解决的技术问题如下。

(1)部署采集器,采集目标服务器中的进程日志;

(2)基于黑进程库对历史进程日志进行筛选,随后采用K-Core算法训练,通过划定阈值产生白进程库;

(3)基于白进程库,利用大数据平台对目标服务器中的进程日志进行实时且高效的合法性判决。

2 一种基于K-Core的异常进程检测的算法

图4 K-Core算法分解示例图

图6 进程流行度分析运算图

图8 执行两次过程图

图9 执行25次结果图

本文介绍一种自动对采集到的进程按照流行程度进行排序的算法,该算法能够自动生成进程白名单和疑似异常进程,有效摆脱了“过分依赖人”束缚的同时,能够有效应对大数据和云计算发展过程中设备数量众多带来的进程数量巨大的问题。

表1 主机-进程统计表

表2 进程关联统计表

2.1 异常进程检测流程

本文提出一种主机异常进程检测算法(见图1),并将算法封装成一种检测装置。整个装置分为两个白进程库生成和异常进程实时检测两个单元,第一个单元是根据历史进程数据,自动生成进程流行度序列,基于序列生成进程白名单和疑似名单,第二个单是对实时采集进程进行实时检测,识别出疑似异常进程。

2.2 异常进程识别功能模块介绍

本文提出的异常进程检测装置包含四大功能模块,分别是进程日志采集模块、白进程库生成模块、进程日志传输模块以及异常进程检测模块。

2.2.1 进程日志采集模块

监控服务器关于内核的伪文件系统中的进程信息文件夹,并实时将内核创建的进程写入进程日志文件,进程信息包括进程的创建和销毁、进程的运行状态和运行时间、资源占用情况和进程访问网络资源情况。

设置时间窗口定时获取服务器中所有进程的快照并写入进程日志文件,所述进程包括系统进程、第三方服务程序启动的进程和用户启动的进程。

2.2.2 白进程库生成模块

首先,根据黑进程库对进程历史日志进行筛选,过滤出显著的异常进程。针对剩余进程日志,构建如图3所示的进程网络图,在服务器中比较流行的进程对应的顶点在进程网络中的重要性较高。因此找出服务器进程网络中的重要顶点,即可找出服务器中的合法进程,进而建立白进程库。具体检测流程如图2所示。

利用K-Core算法计算进程网络图各顶点的Core值,Core值高于阈值的顶点对应的进程为合法进程,并写入白进程库,步骤如下:

(2)找出网络中“度值”最小的顶点,其“度值”为k,然后取,然后依次剪除度为k的节点,这些被剪除的节点对应的K-Core值为;

(4)重复步骤(2),直到网络中所有节点均被剪除,即可得到顶点的重要性分组。

2.2.3 服务器进程日志传输模块

利用数据管道如Kafka,从目标服务器获取进程数据并传输到大数据分析平台。如图4所示,实时输入目标服务器的所有进程数据,经过Kafka传输,Spark大数据平台分析,然后向用户实时输出异常进程的相关信息。

2.2.4 异常进程检测模块

在大数据平台上利用白进程库实时检测目标服务器异常进程,并从服务器进程日志中抽取异常进程的特征信息,包括进程启动时间、运行时间、资源占用情况、状态、文件关联和用户关联信息等。

3 算法仿真及实验结果

在上文提到的四个模块中,白进程库生成模块是本文的核心,为了更便于理解这一部分将已一个示例说明异常进程及白名单库生成的全过程,并利用python对采集到的进程样本进行仿真实验。

3.1 基于K-Core算法识别异常进程示例

两个进程若存在在同一台主机上,说明进程有联系,统计所有两两进程同时出现的次数,如表2所示。

根据表2绘制对应进程无向图如图5所示。

利用K-Core[5-8]对进程流行度进行排序(见图6),首先排除在外的是E节点,E节点排除后还要考虑对其他进程节点的影响,本文中按照70%的影响因子计算删除节点对其他节点的影响。

经过K-Core算法计算后主机进程重要性排序为(A、C)、D、B、E。大部分主机都存在的是系统进程、业务进程的可能性较高,而只有少部分主机存在的进程为异常进程的可能性高,基于这个原则,设定一定的阈值,将重要性排序靠前的纳入进程白名单库,而重要性排序靠后的纳入疑似异常进程库,告警进行人工核实。

3.2 python仿真结果

为了验证算法的有效性,本文挑选一个25台服务器规模的小型业务系统,25台服务器共采集到503个进程采集其进程进行利用python进行效果仿真,实验结果如图7~图9所示。

最终试验结果显示,该小型业务系统流行度较高的进程为bash、kworker、watchdog、kthreadd这些为系统进程,因此纳入白名单库。而流行度较低的疑似异常进程为ueksinzina、obggtvdung这种只有少数两台管理服务器才安装的业务进程,虽然在本文中不是异常进程,但是在大型应用场景,该类只有少数主机才存在的进程需要纳入疑似异常进程进行人工核实。

3.3 仿真结论

经过仿真实验,可以看到本文提出的识别异常进程的算法具有一定的可行性,能够对业务系统主机进程根据流行程度进行排序,重要性排序靠前的进程的确为业务正常进程,重要性排序靠后的进程虽然不是异常进程,但是流行程度较低。

本文提出的基于K-Core主机异常进程识别算法的与现有技术相比,具有以下几个先进性,首先文章将图计算方法应用于服务器异常进程检测,其次可通过无监督的方式产生服务器进程白名单库以及疑似异常进程库,最后结合大数据平台能够实时分析大量服务器上的进程日志并提取异常的进程相关信息。

4 结语

本文介绍了一种构建“服务器—进程”的网络拓补图,并基于K-Core算法对主机节点流行度进行排序构建进程白名单和识别异常进程的算法,并提取小型业务系统主机进程对算法进行验证,实验结果表明本文将图计算方法应用于异常进程识别,算法简单有效,能够准确识别流行度较高的业务进程、系统进程,并发现流行度较低的疑似恶意进程。

目前算法仅在小型业务系统进行验证,随着云计算、物联网技术的发展,主机规模成倍剧增,下一步作者将进一步研究将算法应用于大量服务器进程日志场景中。

猜你喜欢

白名单日志进程
基于白名单的车道工控系统信息安全解决方案
一名老党员的工作日志
核电厂仪控系统安全防护策略研究及应用
扶贫日志
债券市场对外开放的进程与展望
游学日志
公布洋大学“白名单”远远不够
社会进程中的新闻学探寻
一种基于粗集和SVM的Web日志挖掘模型
我国高等教育改革进程与反思