一种多源网络安全威胁情报采集与封装技术
2018-10-17徐留杰翟江涛丁晨鹏
◆徐留杰 翟江涛 杨 康 丁晨鹏
一种多源网络安全威胁情报采集与封装技术
◆徐留杰 翟江涛 杨 康 丁晨鹏
(江苏科技大学电子信息学院 江苏 212003)
以高级持续性威胁为代表的新型威胁已成为网络空间安全对抗的主要形式。为快速响应这种有组织的威胁活动,近年来威胁情报生成和共享技术研究成为热点问题。现有的威胁情报研究在数据采集形式及来源上往往存在不足,共享效率也不能满足系统需求,本文首先搜集整理公开的网络威胁情报源,通过网络爬虫获取相关数据,接着,针对不同来源综合采用网络爬虫技术及基于邮件自动解析的威胁情报搜集与获取技术,最后设计实现以JSON格式封装的威胁情报库。本文工作可有效提高威胁情报的全面性和分享的快速性,为网络空间防御提供情报支持。
威胁情报;情报共享;python爬虫;邮件解析
0 引言
威胁情报的概念最初是在2012年在美国政府发布的《大数据研究和发展倡议》中提出来的。威胁情报是将孤立的、杂乱无章的威胁信息转化为具有固定格式的威胁情报,从而能够对威胁信息有一个规范化的整理,便于之后对威胁数据的深度分析。
目前,越来越多的网络安全公司参与到威胁情报系统的构建中来,最先一步开始的有美国的Fireeye、IBM、AlienVault等公司,经过多年的研究,现已步入正轨,形成了比较完备威胁情报体系。2015年随着国家安全法的颁布,国内也有相当一批安全公司加入到威胁情报系统的构建中来,其中比较成熟的有360威胁情报整合中心、天际友盟、Threatbook(微步在线)等。
在学术界,对于网络安全威胁情报系统的研究也越来越深入,Kuo-Chan Lee等人针对社交网站中关于网络安全方面的博客,通过社会网络挖掘算法、自然语言算法等方式对网络中安全方面的专家对于网络安全的一些讨论进行深度挖掘,从中发现威胁情报。文章通过对专家论坛的搜集挖掘,可以更早地发现安全问题,以及解决方法。Qiang Li等人提出了一种基于威胁情报的网络攻击属性关联分析方法,该关联分析方法主要应用于目标攻击的实际应急响应案例中,从中获得更多有用的信息。该关联分析方法旨在将网络中采集到的恶意站点、域名、IP地址等进行关联,找到不同网络攻击的攻击模式。Jon C. Haass等人通过对美国威胁情报共享技术和框架进行研究,研究了三个主流的标准:STIX、TAXII、OpenIOC,介绍了三个标准的内容和作用。当前的应用是通过TAXII来传递共享数据,用STIX来对威胁情报进行描述,OpenIOC是通过XML语言来实现的安全威胁情报共享框架,是一种情报共享的规范,用来对网络攻击行为进行详细的描述。Kathleen M.Moriarty等人通过对威胁情报共享传输方式的研究,旨在得到一种快速、稳定并且能够保证传输过程中结构不发生改变的传输方式。由于高级可持续性网络攻击事件的出现,网站反爬虫技术的发展,传统的情报获取方法难以获得全面的数据,很难应对复杂的攻击事件,而且随着情报结构越来越复杂,原始的结构化语言在封装和解析速度方面仍显不足。
因此,为了进一步提高威胁情报的全面性和共享效率,本文首先调研了公开的网络安全情报源,然后针对不同的源设计实现了一套基于网络爬虫与邮件自动解析的数据获取方法,接着,研究了标准化威胁情报的生成和共享技术,最后提出以JSON格式对威胁情报进行封装。
1 多源威胁情报数据搜集
1.1 基于网络爬虫的数据主动获取技术
互联网中有许多公开的威胁情报源,搜集方可采用网络爬虫技术来获取相关数据。据不完全统计,国内外的主要威胁情报提供商信息如表1所示。
表1 主要威胁情报提供商
对于一些开源网站,比如Freebuf、Securelist等开放性安全资讯平台,由于未设置反爬虫机制,可以很顺利地通过爬虫获取数据,然而大多数网站都会设置反爬机制,这就需要在实现爬虫时对爬虫进行伪装,使得反爬机制认为是人在浏览,而不是机器。常见的反爬虫机制和处理方法如表2所示。
表2 常见的反爬虫机制和处理方法
有的网站会结合多种反爬虫手段,下面介绍针对某威胁情报网站的数据爬取。
首先在进入之前会有个账号密码登录,如下图1所示。这就需要在配置爬虫的时候,添加Cookie用来伪装身份ID。Cookie可以在网页的Request Headers中获取。
图1 登录界面
接着进入到情报页面,首先该网站的请求方法是POST,所以使用静态网页爬虫的方法只能爬取该网页的外部框架,而没有数据信息。该网站的数据是通过ajax请求调用到前端的。ajax请求的内容如下图2所示。
图2 ajax请求内容截图
这就相当于查询条件,需要发送给数据库系统,这个条件包含了关键字、开始时间、结束时间、页数、每页呈现数据的数量等。将其转化成json格式发送给数据库。
然后用Beautifulsoup解析网页,设置筛选条件,去除网页模板,筛选出所需数据,最终获取到的数据如下图3所示。
图3 爬虫获取数据截图
1.2 基于邮件自动解析的数据获取
现在有许多网络安全组织机构为了分享获取到的情报,接受邮件订阅的方式,首先需要注册一个邮箱并订阅此邮件,接着就会收到该机构推送的每日威胁情报信息,包括网络攻击事件新闻报道、网络攻击的目标机构、恶意软件、安全漏洞、攻击手段、可疑IP地址等,邮箱内容如下图4所示。
图4 邮件内容截图
要实现对邮件内容的获取,需要用到Python的内置模块poplib,由于使用的是python来获取邮件,所以要打开相应的协议。这里以163邮箱为例,需要开启pop/smtp/imap协议,如下图5所示。
图5 163邮箱开启POP协议截图
然后通过python里面piplib模块的POP3进程去连接该邮箱的POP3服务器,发送用户名和密码,获取邮件内容,并下载到本地。解码后的邮件内容如下图6所示。
图6 python获取的解码后的邮件内容截图
此时的邮件内容包含了很多无用的数据,而且还带有html模板,需要通过正则表达式对数据进行清理,筛选出所需数据。
2 标准化威胁情报格式封装
2.1 威胁情报格式
类似于用于漏洞描述的CVE(Common Vulnerabilities & Exposures)规范格式,威胁情报也有其固定的格式,目前主流的有三种:CybOX、STIX、TAXII。
CybOX(Cyber Observable eXpression)主要提供一套标准且支持扩展的语法,用来描述判断威胁的指标;STIX(Structured Threat Information eXpression)提供了描述威胁情报内容的方法,比如利用手段、攻击目标、攻击目的、身份等多项特征,详细地描述威胁攻击事件的细节;TAXII(Trusted Automated eXchange of Indicator Information)旨在提供安全的传输和威胁情报信息的自动化交换。当前的应用是通过TAXII来传递共享数据,用STIX来对威胁情报进行描述,用CybOX来提供威胁情报词汇。
STIX的7要素如下图7所示。
图7 STIX标准7要素
2.2 标准化格式封装技术
2.2.1数据预处理
前文获取的情报又可以分为三种:第一种是已经形成了标准化的威胁情报格式或者说具备生成STIX格式的内容,比如天际友盟,相似的站点还有微步在线、思睿嘉得等。第二种是像Freebuf在报告中嵌入了恶意IP地址、恶意软件样本、恶意域名以及关于该恶意软件的TTP情报(战术、技术、攻击过程)。第三种是一些钓鱼网站共享平台,或针对某一恶意软件的恶意地址共享平台。
对于第一种威胁情报数据,首先通过网络爬虫对该网站的数据进行爬取,通过数据清洗拆除网站html模板,获取所需数据。而对于第二种数据,由于关键数据都嵌在报告里,需要先从网页中移除模板,只保留文章内容部分,再通过正则表达式、自然语言算法、人工定位等方式获取STIX标准化格式描述所需要的数据。对于第三种数据,只有恶意的IP地址、域名、哈希值等,并不能描述成标准化格式,所以需要利用第三方分析软件对其进行深入的挖掘分析。整个标准化格式生成的流程如下图8所示。
图8 STIX格式生成流程图
2.2.2封装技术研究
以前大多数威胁情报规范格式都是通过XML(可扩展标记语言)编译的,XML最初的设计目的是为了弥补HTML的不足,后来逐渐用于网络数据的传输和描述,所以本身保留了HTML的一些特征,会带有标记符号,处理的效率就成为很大问题。而且客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码。本文所要介绍的是一种新的更为轻量级的数据交换格式:JSON(JavaScript对象标记)。
下面通过实验对比两种封装技术,实验环境如下:
硬件:一台笔记本电脑,其配置为:处理器:Intel Core i5;内存:4G;硬盘:1T。
软件:浏览器:IE11;实验服务器为:Tomcat7.0;实验开发工具:MyEclipse2016。
数据来源:多源情报采集得到的数据经过预处理保存到数据库,数据库中字段为:恶意软件、TTP描述、利用手段、IOC指示器、攻击目标、应对措施、威胁来源。
服务器端取出数据,通过JSON和XML对数据进行封装,下面是对其中一个名叫Bladabindi的恶意软件的封装结果,对比图如图9所示。
通过浏览器分别解析JSON和XML格式的数据,根据数据的增多,浏览器解析数据所用的时间如表3所示。
图9 标准化格式封装对比图
表3 浏览器解析时间对比表
从上面可以看出,相比于传统的XML,JSON主要优点如下:
(1)描述语言简单;采用JSON键值对来保存数据,类似于Python语言中的字典描述方式,例如:{"Threatname":"C&C"}。
(2)传输效率高;相比于XML存在很多html标记字符,JSON数据并没有很多无关的字符,占用带宽小,所以调用效率也就比较高。
(3)易于解析;客户端JavaScript可以简单通过eval()读取JSON数据。
(4)支持多种语言;JSON支持C、JavaScript、python、Ruby、Java等语言,从而方便了服务器端的解析。
(5)易于维护;由于JSON支持多种语言,能够直接为服务器端代码使用,从而降低了维护的时间和精力。
3 结束语
本文通过对威胁情报生成和共享技术的研究,探索威胁情报信息的搜集方法,提出以JSON代替XML来构建威胁情报标准化格式,创建新型威胁情报共享协议。目前,随着网络攻击手段的日益复杂,威胁情报的重要性得以体现,为了提高情报的准确性,在提高情报挖掘技术的同时更需要对情报共享技术进行更加深入的研究。
[1]李瑜,何建波,李俊华,余彦峰,谭辉.美国网络威胁情报共享技术框架与标准浅析[J].保密科学技术,2016.
[2]Barnum S. Standardizing cyber threat intelligence information with the Structured Threat Information eXpression (STIX™)[J]. MITRE Corporation, 2012.
[3]Haass J C, Ahn G J, Grimmelmann F. ACTRA: A case study for threat information sharing[C]//Proceedings of the 2nd ACM Workshop on Information Sharing and Collaborative Security. ACM,2015.
[4]Ring T. Threat intelligence: why people don't share[J]. Computer Fraud & Security, 2014.
[5]C Cheng,J Li,Y Wang An Energy-Saving Task Scheduling Strategy Based on Vacation.Queuing Theory in Cloud Computing《Tsinghua Science & Technology》, 2015.
[6]Liao X, Yuan K, Wang X F, et al. Acing the IOC game: Toward automatic discovery and analysis of open-source cyber threat intelligence[C]//Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. ACM,2016.
[7]钟友兵.基于多维数据的威胁情报分析研究[D].中国民航大学,2017.
[8]S, Swathi ,A, Thushara,S Kamal Parallel Job Scheduling in Cloud with Lookahead and Workload Consolidation International Journal of Computer Applications,2014.
[9]谭智.基于大数据技术的网络异常行为检测系统设计与实现[D].江西财经大学,2016.
[10]贺斌,杨元瑾.大数据安全分析管理平台研究综述.网络安全技术与应用,2016.
[11]Bahman Keshanchi,Nima Jafari Navimipour Priority- Based Task Scheduling in the Cloud Systems Using a Memetic Algorithm《world scientific》,2016.
[12]赵阳.大数据时代对国家安全的挑战及对策研究.山东师范大学,2015.
[13]汤淼淼.大数据背景下的企业信息安全评价及对策研究.大连海事大学,2015.
[14]J Liu,XG Luo,XM Zhang,F Zhang A new mult i-objec tive bi-level programming model for energy and locality aware multi-job scheduling in cloud computing 《Future Generation Computer Systems》, 2014.
[15]徐文韬,王轶骏,薛质.面向威胁情报的攻击指示器自动生成[J].通信技术,2017.
[16]Wagner C, Dulaunoy A, Wagener G, et al. MISP: The Design and Implementation of a Collaborative Threat Intelligence Sharing Platform[C]//Proceedings of the 2016 ACM on Workshop on Information Sharing and Collaborative Security. ACM,2016.
[17]李建华.网络空间威胁情报感知、共享与分析技术综述[J].网络与信息安全学报,2016.
[18]闫智.基于行为监控的大数据安全及隐私保护机制研究.北京工业大学,2014.
[19]LI Wu Jun,ZHOU Zhi Hua.大数据哈希学习:现状与趋势.Science Bulletin,2015.
[20]Zhimao,Chen,ZHANG,Massinanke,Sambourou.Super Large Data Sets Clustering by Means Radial Compression. Chinese Journal of Electronics,2013.
本文受到国家自然科学基金(No.61702235,61472188,61602247,U1636117),江苏省自然科学基金(No.BK20150472,BK20160840)的支持。