张 军
(中国太平洋保险股份有限公司,上海 200233)
安全分析是一个涵盖许多技术的概念与实践。安全分析将分析技术和方法应用到安全案例,目标是为了实现更有效的威胁检测,提升威胁监控和响应的效率,从而保护信息安全和网络安全。安全分析的对象包括各种类型的安全数据,如日志、网络流量元数据、应用程序事务记录和端点执行记录等。安全分析在发展过程中,经历了不同的发展阶段。基于计数器原理的初始阶段。此阶段安全分析主要保障基础网络设备的使用安全,基本是基于计数器原理,当一定时间内访问量超过一定阈值就认为是异常,需采取必要措施。主要的功能是防范拒绝服务(DoS)攻击和降质(Reduction of Quality,简称RoQ)攻击,保证网络的正常可用和服务质量。
随着网络的发展,网络流量不断丰富,网络应用日益增长,用户的各种信息在互联网上流转,攻击目的也发生了变化,从最初的破坏网络可用性发展到获取用户信息和经济利益等。这个阶段往往有大量的安全专家参与,利用专家的安全知识制定复杂的规则,基于规则进行流量分析,安全分析进入规则分析时期。
现阶段的安全分析。规则在简单场景、已知威胁发现等方面有着重要作用,也将持续发挥一定的作用。但是,随着威胁场景越来越复杂,关联的数据越来越多,规则在这些复杂场景或未知威胁发现方面显得力不从心。随着机器学习和人工智能的快速发展,机器学习算法融入安全产品,作为规则的有益补充。
安全分析的演进方向。基于多流量多来源数据,利用图分析和深度学习,让机器自动从中找出一些规律和发现异常,将是安全分析未来演进的重要方向。
深度学习是一个具有多个隐层的非线性神经网络结构。深层神经网络由一个输入层、数个隐层和一个输出层构成。每层有若干个神经元,神经元之间有连接权重。每个神经元模拟人类的神经元细胞,节点之间的连接模拟神经细胞之间的连接。
深度学习与网络安全[1-3]标志性的事件。全球第一个基于深度学习提供商业化网络空间安全解决方案的公司(Deep Instinct)于2015年11月在旧金山成立。该公司宣称其安全解决方案能够抵御未知攻击,能够即时检测0-day漏洞的威胁和APT攻击。2016年1月,Symantec公司也宣布采用深度学习技术检测利用0-day漏洞的病毒工具。
目前,深度学习在信息安全中的应用还处于起步阶段,但是为当前的信息安全领域提供了新的思路。随着深度学习的发展,深度学习在信息安全上的应用越来越成熟,越来越广泛。
随着云计算相关技术的发展,可以将云计算与深度学习技术结合起来研究信息安全防治技术[4-5]。
当今世界信息技术迅猛发展,人类社会正进入一个信息社会,社会经济的发展对信息资源、信息技术和信息产业的依赖程度越来越大。在信息社会中,信息己成为人类宝贵的资源。近年来,互联网正以惊人的速度在全球发展,互联网技术已经渗透到各个领域。然而,互联网发展而带来的网络系统的安全问题变得日益突出,受到了越来越多的关注。因此,网络安全和信息安全已成为关系国家安全的重大战略问题[6]。
Gartner公司在2016年对信息安全状况进行了一些评估和预测[7]:从现在起至2020年,由于企业信息安全团队的数字化管理能力存在问题,将直接导致60%的数字化企业发生信息安全事件,同时60%的企业在信息安全方面的预算将会花在威胁快速检测和安全应急响应上。
面对越来越复杂的威胁,安全厂家如何设计安全分析产品,用户如何设计或从众多安全分析产品中选择真正有价值、适合自身的产品,成为问题的焦点。
现阶段,安全分析面临的主要挑战包括:
(1)轻易上马,分析技术预估不足。面对越来越复杂的安全威胁,为了急于找到安全分析的解决方案,安全厂家或用户常常在没有进行适当调查,没有全面了解面临的问题的情况下,盲目选择“安全分析”技术。
(2)错误理解安全分析的作用和成本代价。安全厂家或用户高估了机器学习的作用,认为非监督的机器学习或深度学习方法可以解决绝大多数安全案例问题,不需要专业知识,可以开箱即用;低估了安全分析实施和运营成本,以为只需要在廉价的商品硬件上运行,不需要太多的运营和维护。这往往导致最终无法实现安全目标。
(3)用户被动接受夸大宣传。基于案例的安全分析技术验证和测试不足,导致用户无法选择真正合适的分析技术和产品。
(4)错误预估安全分析实施难度。一是用户没有充分理解和规划安全分析案例,没有充分考虑需要的时间、资源和机制,很多时候项目或产品需要快速上线,设计和开发时间短,导致准备不足,实施效果与期望偏差很大。二是安全分析机制仍然未有效应用。在项目生命周期中,用户没有投入大量时间和资源,运营效率和效果往往与预期差距大。
缺乏足够详细的目标和清晰定义的案例是导致安全分析失败的最常见原因。不同的案例,不同的分析方法,实施策略会不同,实施的难度、时间和需要的资源各异,最终整体成本和实际达到的效果也不一样。
为了实现安全分析目标,首先要有详细的业务目标和清晰定义的案例,根据数据源情况选择合适的安全分析方法,这是安全分析取得成功的基础。
安全分析的关键是厘清案例、安全分析方法和安全分析所需数据之间的关系,如图1所示。Gartner研究中,关注的是一系列特别难以解决的案例,安全分析非常适用于检测事件,为有效捕获、描述和分类这些案例提供建议[9]。
图1 案例之间的关系
技术的进步、计算和数据存储的成本直线下降,安全事件的可用历史数据已经创造了一个环境。其中,“安全分析”的数据科学方法即机器学习,可用于“真实世界”中的一些案例。这些安全分析显示出越来越大的潜力,可以对抗一些最先进和持久的安全威胁。
机器学习有下面几种定义[8]。第一种,机器学习是一门人工智能科学,主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能。第二种,机器学习是对能通过经验自动改进的计算机算法的研究。第三种,机器学习是用数据或以往的经验优化计算机程序的性能标准。
机器学习可以分成下面几种类别。第一种,监督学习。监督学习从给定的训练数据集中学习一个函数,当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集要求包括输入和输出,也可以说是特征和目标。训练集中的目标由人标注。常见的监督学习算法包括回归分析和统计分类。第二种,非监督学习。监督学习和非监督学习的差别在于训练集目标是否由人标注,它们都有训练集且都有输入和输出。非监督学习与监督学习相比,训练集没有人为标注的结果。常见的非监督学习算法为聚类。第三种,半监督学习。半监督学习介于监督学习与非监督学习之间。第四种,增强学习。增强学习通过观察来学习做成如何的动作。每个动作都会对环境有所影响,学习对象根据观察到的周围环境反馈来做出判断。
分类是机器学习非常重要的一个组成部分,目标是根据已知样本的某些特征判断一个新的样本属于哪种已知的样本类。分类问题也被称为监督式学习(Supervised Learning),根据已知训练区提供的样本,通过计算选择特征参数,建立判别函数,以对样本进行分类。
回归是一种统计学上分析数据的方法,目的在于了解两个或多个变数间是否相关、相关方向与强度,并建立数学模型以便观察特定变数来预测研究者感兴趣的变数。具体来说,回归分析可以帮助人们了解在只有一个自变量变化时因变量的变化量。一般来说,通过回归分析可以由给出的自变量估计因变量的条件期望。
深度学习是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。
深度学习是机器学习中一种基于对数据进行表征学习的算法。观测值(如一幅图像)可以使用多种方式表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等,而使用某些特定的表示方法更容易从实例中学习任务。深度学习的好处是用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取特征。
Gartner的连续自适应信任与风险评估(CARTA)的自适应安全态势提供了一个框架,将案例家族通过层次化、条理化的方式进行归类[9]。
这个框架可以扩展到在网络安全中很难解决的案例家族(检测事件)。它们是安全监控和操作的关键组成部分,也是执行安全分析方法的供应商的活跃领域。框架和扩展的“攻击保护”元素如图2所示。
案例分为两大类。一类是以用户为中心的案例。用户是对组织的IT资源(包括雇员)有合法访问权的人。然而,这也可以包括承包商或第三方合作伙伴。人们表现出无限多的性质是不确定的行为,因为人类不能用有限状态机来描述。
另一类是以实体为中心的案例。实体是指非人类的设备或过程,包括终端设备,如网络、路由器、打印机,甚至应用程序或OS进程。实体表现出有限的行为,这些行为可以确定,作为实体的行为可以被机器人互相映射。
图2 自适应安全态势框架
案例越复杂或越广,识别和预测威胁及其行为的难度就越大,结果安全分析方法不得不更加复杂,实现和操作适当的解决方案更为昂贵。行为可预测性是可以考虑的分析技术复杂性的一个很好的标识。使用丰富的(并且干净的)数据和简单易懂的模式的案例,将受益于基于传统机器学习技术和基于规则实现的能力的强大分析模型。
业务目标:通过分析业务操作日志数据,根据用户操作次数、操作间隔、操作频次等特征,识别出用户的操作行为是否存在外挂行为。
数据情况:业务操作系统的业务操作日志数据,包含用户工号、操作类型、操作对象、操作时间等字段,详细记录了用户业务操作行为。
模型算法:取最近一个月用户操作日志数据,模拟外挂操作行为特征如连续性、间隔稳定性和操作频率高等,加工用户操作时间间隔、操作天数和操作次数等特征,根据分位数原理探索设置各操作类型的外挂行为阈值,从而检测出疑似外挂行为的操作工号及其相应的操作类型。
模型测试与评估:初步检测出存在外挂行为的工号,得到客户确认。
外挂行为识别说明:业务目标很明确,即识别用户的操作行为是否存在外挂行为。对应的数据锁定到业务操作日志数据,不需要拓展额外的数据源,经过充分的业务理解和业务分析,可提炼出需要分析的特征字段,通过分位数原理设置外挂行为阈值,利用简单规则达成业务目标。整体上,实施成本低,效果也很好。
业务目标:通过分析HTTP请求数据,识别网站后门通信行为,能够在大规模通信下发现异常行为。
数据情况:收集已经标注含webshell的HTTP请求数据,一部分作为训练集,另一部分作为测试集。
模型算法:已经有标注好的数据集,所以选择监督学习算法。HTTP请求数据作为文本进行处理,先分词提取path、key、value等关键信息,然后增加如path长度、key长度、value长度及各种统计信息熵,综合上述信息作为模型输入源。采取5-fold的交叉验证分割训练集,综合分析决策树、SVM和随机森林等算法的结果后,最终选用随机森林作为算法进行训练和预测。
模型测试与评估:在2017中国网络安全技术对抗赛初赛第2题F1-score达到98%,效果非常好。
Webshell检测说明:检测的目标是识别webshell,并在大规模通信下发现异常行为。由于有大量已标注的样本数据,所以直接选择学习效率高的监督学习算法,经过模型评估选择随机森林来训练和预测,实现了预期的业务目标。此分析聚焦到识别webshell,同时满足大规模通信下发现异常行为的要求,没有盲目拓展数据源,选择的数据源和分析方法匹配度良好,模型效率高,模型抗干扰能力也很强,在大规模通信下具有很好的鲁棒性。
业务目标:统计各页面入度、出度、访问量、来访IP、请求方法、响应状态码等维度,利用机器学习算法分析web应用日志,检测出异常页面。
数据情况:web中间件日志。
模型算法:模型假设条件是大多数用户访问的页面是证券公司正常页面,这些页面的被访问情况相对近似。给页面打标签需要大量的人工,且随着业务的更新,旧的标签很有可能失效,故这里使用非监督的异常检测算法。在对比高斯混合模型、孤立森林和局部异常因子三种算法的优缺点后,最终敲定孤立森林为上线使用的模型。
模型测试与评估:在某证券公司实际生产过程中发现Webshell的利用,并通过溯源发现被利用上传漏洞;发现某证券公司内部网页存在漏洞,被黑客利用获取用户信息;发现一些管理员权限的网页被暴力破解(未破解成功)等。
异常页面检测说明:此案例相对复杂。首先,从页面角度而不是单条记录的角度进行分析,维度多,业务复杂;其次,异常页面类别复杂,没有足够的已标注异常页面样本,所以选择非监督的异常检测算法;最后,异常情况是不定期发生的,对于模型效果的验证提出了挑战。在实际分析时,把客户最关心、危害最大的webshell检测放在首要位置,在攻防对抗的实战中效果很好。此分析中,在大量前期需求分析和调研的基础上,规避大而全的业务分析目标,聚焦到一个重要的点上,选择合适的异常检测算法,达成了业务目标。
业务目标:给定域名历史解析记录以及域名对应的whois信息记录,通过对给定恶意域名的通信行为溯源关联分析,挖掘出隐藏在后面的黑客组织的身份和关联域名IP资源信息。
数据情况:一是DNS解析记录表,二是域名对应的whois信息表。这两个表中最关键的是domain、ip、user和 email信息。
模型算法:由于目标是要挖掘恶意域名背后的黑客组织的身份和关联域名IP资源等信息,所以首要目标是要把这些关系建立好,找出相互之间的关系,真正达成业务目标。
图(Graph)数据库及图分析技术,对于处理大规模复杂关系数据集有着天然的优势。图数据库本身就是为解决传统数据库无法表达对象之间复杂关联关系而设计的。选择图数据库进行溯源分析,图的节点由domain、ip、user和email四类组成。如果任两者出现在DNS解析表的同一条或者whois的同一条记录中,则表示两种之间有直接联系,建立一条边,边的权重按照业务理解中的关系远近设置,整个关系图就建立起来了。
给定恶意域名(ip、user或email),利用Dijkstra算法可以很快找到关联的节点信息。
模型测试与评估:在2017中国网络安全技术对抗赛决赛第1题,溯源成功。
攻击溯源分析说明:攻击溯源分析在安全分析中有着至关重要的作用,安全分析找到攻击不是最终目的,希望找到攻击的来龙去脉,然后针对性地采取防御或者响应措施。而攻击溯源分析也是相对较难的课题。首先,溯源分析一般涉及多个数据源;其次,要找出各个因素之间的关联关系;最后,要排查出最关键的因素。
要找出恶意域名后面的黑客组织及其相关资源信息,数据源聚焦到DNS和whois信息。由于要关联分析,逐步探索,所以选择了具有天然优势的图分析技术,最终实现的效果也很完美。
安全分析将其检测事件用案例对比描述为结构化方法的四个案例类别,最大限度地减少歧义并理解要考虑的安全分析方法(参见表1)。
表1 检测事件案例对比
从上面安全分析案例可以看出:
(1)明确的业务目标和清晰定义的用例是安全分析成功的基础。有了明确的业务目标和清晰定义的案例,寻找合适的数据源,匹配相应的分析方法,才能达成业务目标。
(2)从简单案例开始,安全分析更容易成功。上述案例中,外挂行为识别和webshell检测相对简单,而异常页面检测和攻击溯源分析,无论从业务理解、数据源选择还是分析方法的选择,都比较复杂。项目实践中,可以从类似外挂行为识别这样的简单案例开始。这样业务目标容易实现,实施和运营成本也较低,然后逐步实现后面两个案例。
(3)不要迷信深度学习等机器学习技术,选择合适的分析技术最重要。在外挂行为识别案例中,只需要设置简单的规则就能取得很好的效果,实现业务目标。这时如果片面选择深度学习等技术,会需要更多的数据,不但有可能达不到期望效果,还会增加技术难度、实施和维护成本。
(4)案例选择要充分考虑成本因素。安全分析除了案例和分析技术选择外,还要考虑项目(产品)实施难度,要充分考虑时间、资源和落地机制等因素,确保在生命周期内有效运营。例如,异常页面检测和攻击溯源分析两个案例,项目实施难度和后期运营成本都较高,在实际项目中需要权衡各方面因素,尤其是成本因素,从而决定是否应用这类案例。
本文系统性描述了安全分析和安全分析方法,阐述了安全分析进化路线,分析了Gartner自适应安全态势框架建立案例分类的理论和框架。在此基础上,利用不同层次案例进行了安全分析实践,将理论与实践相结合,指导在具体的安全分析实践中如何做到成本、效益的均衡和有效。
从基于案例的安全分析实践中可以得出:
(1)具体案例为指引的安全分析,对日志等的收集目的性更强,更有针对性,避免了日常分析存在的数据收集不全或者过多而导致的各种问题;
(2)在具体案例指引下,能更好地考虑数据收集成本、模型复杂度、计算成本等综合成本,能够更有效地开展安全分析工作;
(3)选择合适的案例是安全分析成功的基础。不同的分析方法成本不一样,实施策略也不同,选择恰当的安全分析方法是成功关键。综合考虑产品实施、产品运营的各个方面,确保产品成功实施、成功运营达到业务目标。下一步研究将聚焦到如何设计案例框架上,这对于安全分析具有重要意义,也具有较大挑战。