1 概述与介绍
作者描述了一种新颖的协作框架,该框架通过利用语义丰富的知识表示和与不同机器学习技术集成的推理功能来协助安全分析人员。文中介绍的认知网络安全系统从各种文本源中提取信息,并使用一种扩展的UCO安全本体的将其存储在知识图谱中。该系统将知识图谱和基于网络的传感器的各种协作代理组合在一起,进行推理从而为安全管理员提供高质量情报。
目前市面上各种各样的安全工具和系统可用于检测和缓解网络安全攻击,包括入侵检测系统(IDS),入侵检测和防御系统(IDPS),高级安全应用设备(ASA),下一步代入侵防御系统(NGIPS)和一些云安全工具和数据中心安全工具。但是网络安全威胁及其相关的防御成本正在飙升。复杂的攻击者仍然可以在受害者的系统上花费超过100天的时间而躲避防御。根据Microsoft的一项研究,每天产生23,000个新的恶意软件样本,而一家公司的数据泄露平均成本约为340万美元。从信息泛滥到响应速度慢等多种因素,使现有技术失效,无法减少这些网络攻击造成的破坏。
早期的安全监视系统(例如IDS和IDPS)开始向安全分析人员发出警报时,现代安全信息和事件管理(SIEM)系统应运而生。 Splunk,IBM QRadar和AlienVault是一些商业上可用的SIEM系统。典型的SIEM从企业中的大量计算机中收集安全日志事件,集中汇总此数据,然后对其进行分析以向安全分析人员提供警报。尽管摄取了大量的主机/网络传感器数据,但它们的报告仍然难以理解,嘈杂并且通常缺乏可操作的详细信息,研究显示有81%的用户经常被误报信息困扰,在此类系统中缺少的是协作推理能力,不仅是聚合来自主机和网络传感器的数据,而且还包括它们的集成以及推理威胁情报和从协作源收集的感知数据的能力。
这篇论文描述了一种基于多部分之间协作的早期检测网络安全攻击认知系统。首先从多个威胁情报源中获取有关新发布的漏洞的信息,并将其表示在机器可推断的知识图谱中。在该知识图谱中也可以表示被监视的企业网络状态通过集成来自协作传统传感器(例如主机IDS,防火墙和网络IDS)的数据。系统将威胁情报与观察到的数据融合在一起,以尽早在漏洞利用开始之前发现攻击,这种认知分析不仅减少了误报,而且减轻了分析人员的认知负担。威胁情报的数据来源包括多种文本来源,利用UCO通用的语义模式整合来自如STIX, CVE, CCE, CVSS, CAPEC, CYBOX和STUCCO的数据
为了监测网络状态,系统开发了多个代理(Agent?),包括进程监视代理,文件监视代理和Snort代理,它们分别在各自的计算机上运行,并将数据提供给认知安全推理Cognitive CyberSecurity(CCS)模块,该模块是本系统的核心模块,用来对代理监测的数据和存储的知识图谱来检查各种网络安全事件
2 背景描述
尽管安全领域中存在多种工具,但是攻击检测仍然是一项艰巨的任务。攻击者通常会适应新的安全系统,并找到避开它们的新方法。
网络攻击监测目前的三大挑战:
- 在漏洞公开利用前响应修复:Wannacry在3月发布,在五月中旬开始大规模传播,系统应当做到快速发现修补。
- 网络攻击变种:根据特征和规则进行网络检测的方法容易被网络攻击绕开
- APT持续威胁:·APT可以在多个步骤实施,检测方法应当具有不断适应新网络威胁的能力。
3 相关工作
- 安全事件管理系统(SIEM):Security and Event Management 安全事件管理系统整合来自不同来源的信息,例如管理来自不同来源的日志,对各种事件进行关联分析以及向系统管理员发出警报的机制,比如IBM QRader可以管理日志,检测异常,评估漏洞以及对已知事件进行取证分析,其威胁情报来自IBM X-Force。市面上其他SIEM还有LogRhythm, Splunk, AlienVault, Micro Focus,主要功能是实时监控,威胁情报,行为分析,数据和用户监控,应用程序监控,日志管理和分析
- 本体语言:本体以三层体系结构构建,该体系结构由最低层的特定于域的本体,将多个域聚在一起并定义在一起的中层本体以及定义为可能的通用本体的高层本体组成。CRATELO 本体结构由Oltramari创建用来识别不同的网络完全威胁,包括结合了不同域本体的安全操作本体(OSCO),扩展安全概念的安全相关中间本体(SECCO)。Ben-Asher 设计的混合本体的模型,将以网络数据包为中心的本体(代表网络流量)与自适应认知能力相结合,然而SIEM并没有使用本体论的方法来合理使用,这篇论文从更大更全面的角度为安全威胁进行了研究,首先CCS(认知网络安全)模块利用UCO本体整合表示网络威胁信息,它的扩展有助于将标准的网络查杀链阶段链接到各种主机和网络行为(行为由Snort和监视代理之类的传统传感器检测到),同时这些扩展可以纳入各种文本信息,从而更深入认识检测网络安全事件。
网络安全的认知方法
认知方法即知识图谱;知识推理,这篇论文的认知策略涉及从各种情报来源获取知识和数据,并将它们组合到一个现有的知识图中,该知识图谱中已经包括如攻击方式,先前的攻击,用于攻击的工具,指标等的网络威胁情报数据。然后根据来自多个传统或非传统的传感器数据进行推理分析,检测和预测网络安全事件。
机器可以通过知识图谱中的节点路径包括的经验信息来推理结论,此外为了应对在结构上存储和处理有关网络安全知识的挑战,引入了kill chain概念(七个步骤,侦查跟踪,武器化,载荷投递,漏洞利用,安装植入,C2命令控制和目标行动), 在这篇论文工作中,将kill chain表示在知识图谱中并连接与其相关的所有信息,如步骤中使用的潜在工具和技术,例如,我们将工具nmap与侦察步骤相关联,并且当诸如Snort之类的传统网络检测器检测到它的存在时,我们就推断出潜在的侦察步骤。将网络攻击信息围绕攻击链展开表示可以有助于知识图谱像安全分析人员一样推理,通过知识图谱和网络数据可发现其他可能存在的攻击步骤,但不是所有的网络攻击可以都应用了这七个步骤,随着推断的指标越来越多,系统对发现网络攻击的可信度也越来越高,网络攻击信息围绕攻击链展开表示还有以下优点:
- 有助于轻松地将文本来源的信息吸收到知识图中:知识图谱中存在信息wannacry利用了永恒之蓝漏洞,当发现NotPetya也利用该漏洞时,可以推断识别NotPetra活动的指示器
- 识别变种的攻击手段:攻击者经常使用不同的工具来进行类似的活动,比如nmap和Solar Wind都是侦查阶段使用的工具,根据工具之间的联系仍然可以推测攻击阶段。
系统将攻击者根据知识和复杂度分成低中高三类,(script kiddies,intermediate,advanced state actors),
图1 系统流程图
5 系统架构
5.1系统输入层
- 知识输入:安全知识来源包括文本信息(blog,twitter等)和一些结构化信息(STIX,TAXII),NER技术抽取实体生成RDF,可参考VKG
- 嗅探器/检测器输入:网络嗅探器(Snort,Bro等),host主机监测(文件监控,进程监控和防火墙等),以日志形式输入
最后专家可以定义特定的规则来检测复杂行为或复杂的攻击,同时还可以定义一下标准,比如IP的白名单,所有输入都需要经过Intel-Aggreate模块进一步处理。
5.2认识推理模块(Cognitve CyberSecurity Module)
CCS是系统核心模块,输出为可信的/可执行的情报,这部分系主要做的是知识表示,CCS模块基于UCO本体做延伸(OWL格式),使得它可以利用输入的网络嗅探器数据比如Snort,IDS等和cyber-kill chain的信息,使用SWRL(Semantic Web Rule)来确定实体entity的规则。比如在攻击链中的某个阶段检测到特定的IP地址,name推断这是一次特定的攻击行为。
在CCS模块,对于异常事件可以进行统计分析和子图分析,首先通过传感器建立事件间的关联规则然后对他们进行聚类来分析事件流中的轨迹模式。HMM隐马尔可夫模型可以用来学习模式(已经标注的数据)并且识别数据流中相似的模式,可以使用任何标准技术来生指示器/指标,只要它们采用标准OWL三元组的形式即可,即可将其输入CCS知识图中。Jena中的RDF/OWL推理机也是CCS的一部分。
5.3 数据聚合模块(Intel-Aggregate Module)
此模块(IA模块)的主要作用是将输入的传感器的数据和其他形式的数据映射到UCO本体,并转换为OWL格式。
5.4 实验实施(Proof of Concepr Implemention)
论文工作实现了一个称作网络安全认知协助的系统,类似于赛门铁克的数据安全中心,其主节点是CCS模块,用来检测各种网络事件并且对在主机上收集统计数据的传感器进行统一调度配置,如下图所示,不同的传感器将各自的状态数据传输给CCS模块然后CCS整合所有信息进行推论。
图5-1 CCS架构图
每个Cognitive Agents包括一个传统传感器和IA数据整合模块,IA模块可以设置可与多个传感器配合,最后以UCO本体,RDF/OWL数据格式的形式传输到 CCS模块。此实验包括了进程监控;文件监控和Snort网络检测。
- Process Monitoring Agent: 包括一个进程监视器和一个IA模块,并在网络上所有的主机上运行,模块监视计算机中的不同进程及其父级层次结构,同时收集诸如内存和CPU使用率之类的统计信息,并且识别出进程正在访问和/或修改的文件,尤其注意受限制的文件。进程的监视工具使用的是Python psutil,监视器维护自己的进程表(系统中所有进程的列表),以便它可以监视每个进程的状态,即该进程是否已创建或正在运行或已退出。
- File Monitoring Agent: 包括一个文件监视器和一个IA模块,并在网络上所有的主机上运行,为了避免监视所有文件和目录,当检测到可疑文件时,系统会维护敏感列表,可疑文件一般是是通过新过程创建或修改的新文件,从网络上下载的大文件或从大容量存储设备复制的文件。发送到CCS模块的信息(RDF格式)包括修改文件的过程,大小,创建方式以及其他文件元数据。工具使用的是Python Watchlog。
- Snort Agent: 包括一个Snort 日志处理器和一个IA模块,读取Snort输出的日志文件并且转换成RDF传输到CCS模块
CCS模块使用配置有SWRL规则引擎和Jena推理机的Apache Fuseki 服务器,CCS获取Cognitive Agent的RDF/OWL格式输入,并且将输出反馈给前端Web界面,Web端动态的显示信息,例如源和目标IP,传感器检测的活动以及观察到的复杂事件,当发现网络攻击时,前端会发出攻击报警。 如下图所示:
图5-2 系统前端展示图
6 使用场景示例
这篇工作以勒索软件攻击的具体用例测试了系统的有效性。描述了针对用例场景设计的定制勒索软件攻击,测试中使用的网络拓扑,认知协助系统在检测到攻击时采取的一系列步骤以及我们对认知协助系统的评估。
6.1 勒索软件设计
攻击目标定位具有CVE-2017-0143漏洞(SMB协议有关的缓冲区溢出)的Win7系统主机,使用Metasploit 工具利用此漏洞攻击计算机,一旦勒索软件获得访问权限后,它将恶意软件脚本从攻击者的计算机下载到受害计算机。恶意软件脚本的攻击步骤如下:
- 下载可执行文件以加密文件
- 从攻击主机下载公钥
- 根据可能潜在敏感文件位置列表来发现被攻击机器中的敏感文件和文件夹,比如默认的Thunderbird电子邮件客户端存储位置,默认的Outlook位置,并避免使用系统文件,因为对其进行加密可能会妨碍启动
- 将所选文件拆分为多个块,并为每个块生成一个随机密钥
- 使用AES加密每个块中的文件(RSA通常不用于加密大文件)和相应的随机密钥
- 安全删除与加密数据对应的原始文件
- 创建一个包含所有加密文件位置和用于加密的相应随机密钥的文件
- 使用RSA和下载的攻击者公钥加密此新生成的文件
- 安全地删除带有块信息的原始文本文件
图6-1 攻防网络图
6.2 建立攻防网络
这篇工作将对这次勒索软件的攻防网络进行建模,图示如下三部分
- 攻击主机:系统为Ubuntu16,装有自定义脚本和Web服务器,攻击脚本负责扫描包含漏洞的主机并识别他们的IP,一旦收集完IP地址后,它将发送格式错误的SMB数据包获取被攻击计算机的访问权限,下一步是将勒索软件脚本从攻击计算机下载到受害计算机,然后开始执行,该机器还将运行一个网络服务器,该服务器托管勒索软件脚本,加密软件等,以及为每个请求的IP地址生成,发送和保存公私钥对的机制。
- 受害主机:win7系统并存在CVE-2017-0143漏洞,添加文件监控和进程监控并且创建了两个分别名为”Documents” 和”Pictures”的文件夹。
- CCS主机:核心检测技术安装在CCS主计算机上,该计算机运行两个主要组件。第一个是Fuseki服务器,服务器装有Jena(标准的OWL DL推理程序),修改的UCO本体和相关的SWRL规则,第二部分是CCS模块,主要功能是提取有关主机活动和可能的新攻击的新信息,运行分析并动态更新CCS仪表板。此外也可以也可以在此计算机上运行嗅探器(也可以在其他机器上运行然后将数据传到CCS)。
6.3 攻防时间线
在此部分列举攻防时间线是为了检查系统是否可以检测到勒索软件攻击,首先对知识图谱中的通用知识更新,包括网络攻击链和网络攻击等知识,并且此系统证实了在知识图谱仅包括通用知识也可以检测到网络攻击行为。 下图展示了攻防时间线:
图6-2 攻防时间线
- 攻击者使用Nmap在目标被攻击计算机上执行端口扫描
- Snort检测到端口扫描并报告给CCS模块
- 攻击者使用攻击脚本(永恒之蓝)来利用受害主机
- Snort检测到网络中格式错误的SMB数据包
- 成功利用后,攻击者会将恶意软件注入受害者计算机
- 第一个攻击脚本开始从受害者计算机运行恶意软件
- 该恶意软件现在开始下载加密软件,密钥等
- 加密软件和密钥将下载到受害者计算机中。恶意软件的下一个任务是使用下载的工具检测敏感文件及其加密
- Snort会检测来自未知/潜在错误IP地址的下载任务
- 文件监控检测到从Internet下载的新文件
- 在执行加密的同时,恶意软件会修改许多敏感文件,并且文件监控将其报告给CCS模块
- 当对较大的文件执行加密时,处理器使用率显示较大的值,并且流程监控将其报告给CCS模块
在上述测试中,CCS模块中的知识图谱部分纳入了勒索软件的信息,比如“Wannacry is a ansomware” 和“Wannacry uses malformed SMB packets to exploit”,那么在Step2 Snort报告端口扫描的时候可能会被CCS推断出潜在的侦查化阶段,Step4当Snort检测到错误格式的SMB数据包,此时不能确定是一次攻击,因为它可能只是一些错误数据包,在随后的第9步到12步,系统检测到位置来源的下载任务;敏感文件修改和处理器使用率的提高。从知识图谱上,我们知道勒索软件攻击的“目标操作”的典型特征和指标包括敏感文件修改以及加密导致的处理器使用率高,然而在正常使用时,这些情况也可以发生,例如,用户可能已经手动修改了文件,下载并安装了建立Internet连接的新应用程序,然后运行它们。单独使用这些指标的情况不能用于可靠地检测勒索软件。但是,CCS系统从文本信息中已经知道有新的勒索软件攻击利用错误的SMB数据开始攻击。该信息与来自各种传感器的数据结合后,CCS系统推断系统中正在发生类似于Wannacry攻击的攻击。
总结
这篇论文描述了一个针对网络攻击的多协作的认知推理协助系统,知识图谱部分与之前介绍的VKG相同,另外将主机和网络探测器的信息也利用IA数据转换模块生成RDF,同时纳入了经验信息,比如学习到的攻击模式,SWRL规则,它基于此知识来检测与网络安全相关的复杂事件并预测可能发生的攻击。该工作还开发了概念验证CCS系统,该系统具有认知仪表板,可将网络安全事件报告给安全分析人员,待完成工作需要考虑可扩展性,需要更多的传感器的数据,并且细化UCO本体提高其表示和推理时间限定的数据和信息的能力,并且支持STIX2.0,并还正在实施一个系统,以从TAXII服务器的提要中连续地向知识图中添加新的网络威胁情报数据。