运维日志里隐藏的安全危机,你知道怎么挖吗?听听专家怎么说
引言
在很多安全分析类产品建设的过程中都会涉及到关联分析,比如日志分析、soc、态势感知、风控等产品。关联分析可以认为是这类产品中最核心的能力之一。
这个概念从命名上看就知道,千人千面,每个人的想法和理解都各不相同。很多甲方都会提关联分析,如果再细问要做什么样的关联分析,估计大多数甲方都不太能详细描述出来,很多乙方对此也是藏着掖着,可能是核心机密不愿意细说。
下面就来聊一下我对关联分析模型的一点思考。
一、概述
有很多公司在自己的产品介绍中说自己的产品有多少种内置规则等等,仔细分析就会发现,很多规则是一个模型演变出来的,比如主机密码猜测、数据库密码猜测、网络设备密码猜测等,这些规则背后可以理解为一个模型。
所以,我认为评价一个产品分析规则好坏的关键点不全是内置多少种有效的规则,对关联规则模型支持的多少也可以作为评价的一个重要指标,正如道生一,一生二,二生三,三生万物。
当然,分析规则的分析能力还要依托于日志解析的准确度和广度,日志解析得越准确,广度越广,对分析的支撑能力就越强。
![](https://static001.geekbang.org/infoq/1e/1e08377029d4b7879abc468d7128745a.png)
关联分析模型从大的分类看大概有以下 5 种:
1、基于规则的关联分析
2、基于统计的关联分析
3、基于威胁情报的关联分析
4、基于情境的关联分析
5、基于大数据的关联分析
这些模型大概是业内提的最多的,但仔细分析,其实里面的内容并不是完全在一个维度上,里面还会有一些交叉和关联。下面就对这 5 种常见的关联分析方法进行介绍:
二、基于规则的关联分析
基于规则的关联分析是目前最常用的一种关联分析模型,这种关联分析模型是指按平台预先内置的关联规则,或者用户自定义维护的关联规则,对安全事件进行分析。平台接收到经过范式化的安全事件以后,通过事件维度与告警规则进行匹配,一旦匹配到符合条件的规则,告警就会被触发。在规则设定的时间窗口内,平台会将多条成功匹配规则的安全事件进行关联,并按规则设定进行告警。
关联规则主要模拟攻击者的攻击行为,将平台采集的范式化后的日志,通过有效的字段组合,进行规则模型匹配分析。基于规则的关联分析,主要针对于已知安全事件的分析,还要基于企业实际网络结构、业务场景进行调整,满足企业实际环境的需求。
基于规则的关联分析的特点是:准确、可理解,只要规则没有问题得出的结论就是没有问题的,但规则如何去做,这就是规则模型的内容。下面就介绍下一些常用的规则模型:
2.1 单条日志关联规则
单条关联分析模型是基于规则的模型中最简单的一种方式,它的主要思想就是根据一条日志中的内容进行分析,比如 Linux 下一条常用的登录日志:
从这个日志中就有很多的信息,比如直接信息包括时间、主机名、进程名、事件类型、用户、源ip、端口;间接信息包括资产信息、账号信息、源ip地理信息等。当这些丰富的信息解析出来后,我们可以定义很多的分析模型:
非上班时间登录:
这个就是说在非上班时间进行了登录行为,主要判断标准就是时间和登录成功事件。
非上班地点登录:
这个就是说在非上班地点进行了登录行为,主要判断标准就是登录IP和登录成功事件。这个场景在很多风控中也会应用,比如出差登录QQ邮箱,QQ可能会发个异地登录提醒,如果在网上第一次用信用卡进行美金支付,客服会打电话确认这个操作是不是你本人所为等。
绕堡垒机登录:
这个就是说在不在堡垒机上进行了登录行为,主要判断标准就是登录IP是否是堡垒机IP和登录成功事件。
越权登录:
这个根据业务逻辑比如某些账号不能登录某些服务器。主要判断标准就是登录账号,登录目标IP和登录成功事件。
国外登录:
这个就是说在登录的IP地址不是国内的IP进行了登录行为,主要判断标准就是登录IP是否是国内IP和登录成功事件。
通过上面实例可以发现根据一条日志结合事件类型和业务等可以分析出非常多的告警行为。
2.2 事件数量告警
在很多攻击场景中,仅靠一条事件是不能发现攻击行为的,比如密码猜测行为,当有一条密码登录事件发生的时候,我们不能说这个是密码猜测行为,只有在一个短时间内发生了超过阈值数量的登录失败行为时,我们才能初步界定这次行为是密码猜测行为。这种行为就是事件数量告警。这种模型主要有几个部分:
时间维度,就是一段时间内;
阈值维度,达到阈值的数量;
条件维度,满足某些条件。
比如刚才说的密码猜测,在三分钟内,登录失败的阈值达到6次以上,我们可以认为是一个密码猜测攻击行为。
当然还有很多这种模型的类似规则,比如账号猜测,病毒爆发,CC攻击等行为。
经常有些甲方提出来的跨设备的关联分析其实也可以归于这种模型,比如同一个IP在短时间内有多个产品发生了包含这个IP的日志。
![](https://static001.geekbang.org/infoq/76/76f18a23382da3d64952a86399c46c81.png)
2.3 多值事件数量告警
在有些情况下,事件数量告警是不能满足某些攻击场景,比如端口扫描、主机扫描等行为,这种行为的特性也是通过多条事件来判断,但仅仅通过数量是没有办法确定是否是攻击。比如端口扫描,你不能说短时间端口访问了100次就算是扫描行为,但是如果短时间不同端口访问了100次以上,大概率应该是一个端口扫描行为。这种模型主要有几个部分:
时间维度,就是一段时间内;
阈值维度,达到阈值的数量;
不同维度,类型相同但内容是不相同的;
条件维度,满足某些条件。
通过这些内容进行分析组合,可以分析出更多的场景,比如主机扫描就是1分钟同一个源IP访问不同主机的同一个端口数量超过100个就可以初步判断为主机扫描;比如分布式账号猜测,同一个账号登录失败的源IP地址在一分钟内出现了20个不一样的源IP可以判断为分布式账号猜测等等。
2.4 时序告警
这是一种比之前的模型更复杂的告警模型,这种模型在很多更复杂的场景中用到,比如:非上班时间登录ftp服务器,上传了一个脚本,然后下载了敏感文件行为。这种情况从大概率上看应该是一次违规行为,当然条件和内容可以演变。这种行为具有明显的特征就是时间顺序。比如“杀伤链”模型的六个阶段“发现-定位-跟踪-瞄准-打击-达成目标”也具有时间顺序的特征,只是这种时间序列的来源是告警而不是原始的事件。
![](https://static001.geekbang.org/infoq/58/58c271cb31ae974857c57b1e0beaa002.png)
三、基于统计的关联分析
基于统计模型的关联规则和之前的模型有些不太一样,有的公司用动态基线、基于行为的分析等叫法,本质上应该都可以归于这一类模型。这种模型在用户行为异常分析中也大量使用(用户异常行为分析目前也有很多用机器学习算法来实现的)。
具体来说就是阈值没有办法提前知道,需要通过计算前面的一段时间的数据得到阈值,然后根据阈值进行计算偏离的方法。比如流量异常模型,很多的客户不一定知道平时的流量到底是多少才是正常的,这个时候就需要进行动态计算,比如今天9点到10的流量比前一周9点到10点流量的平均值增加了80%。这个情况就可以理解为流量异常模型。DDOS就是一种常用的统计异常模型:
![](https://static001.geekbang.org/infoq/64/645eda092d8c6c6a4fe4fdd0d80933b0.png)
在异常行为分析中可以大量使用这种模型,比如访问异常、操作异常、下载异常等。
还有种比较特殊的统计关联分析是低频行为分析,低频分析本质上也是一种统计行为分析,只是这种统计指标平时比较少,有可能在大量的数据中被淹没。这种情况下选择指标就比较重要。
(备注:文章属于赛克蓝德原创,赛克蓝德是专注于数据分析、安全分析、分析服务的提供商。如需转载请完整保留作者公司信息。)
四、基于威胁情报的关联分析
基于威胁情报数据的关联分析,是企业安全管理平台未来的主要发展趋势,它可以大大提升安全事件分析效率和对威胁行为的检测能力和响应速度。
情报数据包括IP指纹、web指纹、IP信息、域名信息、漏洞库、样本库、IP信誉、域名信誉、URL信誉、文件信誉、C&C信誉等。
通常情况下,企业安全管理平台与部署在云端的威胁情报平台互联或者把第三方情报数据定期导入到内网。经过安全管理平台的关联分析引擎生成的本地安全告警,与得到的威胁情报数据进行关联,通过对IP信誉、域名信誉、URL信誉、文件信誉、C&C信誉等多个维度的匹配,分析出安全告警的可信程度,过滤掉告警中的噪音事件,从而增加了本地安全告警的精准度,使得企业安全管理人员可以迅速定位威胁来源和相关联的资产和业务,并及时通过工单和处置流程进行快速响应;同时,利用威胁情报可以对攻击者进行深入分析和溯源取证。
从模型来看,基于情报的关联分析并不是一种新的模型,它可以算是一种新的数据维度。比如以前没有情报的时候并不知道一个IP是否是恶意IP,一个URL是否是恶意URL,当有了情报后,可以拿这个数据和情况数据对比来确定是否是恶意行为。这种模型可以理解为单条事件模型的一个扩展,比如源IP使用就是判断源IP维度是否在情报的黑名单内,sourceIP in(情报)。
五、基于情境的关联分析
基于情境的关联分析是指将安全事件与当前的实际运行的环境进行关联,根据更多业务信息、环境信息进行相关性分析,识别安全威胁。比如基于资产的关联,根据事件中的IP地址与资产的信息进行关联;比如基于漏洞的关联,将安全事件与该事件所针对的目标资产当前具有的漏洞信息进行关联;基于其他告警的关联,将安全事件与该事件所针对的目标资产当前发生的其他告警信息进行关联;基于拓扑的关联,结合网络拓扑中网络区域内的告警进行关联。
从模型来看,基于情境的关联分析也不是一种新的模型,它也可以算是一种新的数据维度的分析。比如在日志范式化中增加资产信息、漏洞信息、网络结构信息等。和其他高级关联可以归于事件数量告警的一个升级,只是事件告警的来源是事件,这个告警的来源是已经产生的告警,这个模型依然可以归于事件数量告警。整体上看,情境分析的模型基本上还是之前的模型,但分析的难度还是比较大的,因为这些情景很多都是动态变化的,目前大多数分析模型还是基于已经范式化后的事件,当这些情景发生变化或者事前没有进行范式化补充这些信息的时候,这种情况会大大增加分析的难度。
六、基于大数据的关联分析
目前我们已经进入了大数据时代,人类的生产生活每天都在产生大量的数据,并且产生的速度越来越快。而安全事件的数量也是类似的,每天产生的数据越来越多。其实大数据早就存在,只是一直没有足够的基础架构和技术来对这些数据进行有价值的挖据。随着科技的不断进步,对大数据的处理分析能力也越来越强。
从模型来看,基于大数据的关联分析也不是一种新的模型,它主要的特点是利用了大数据技术去处理分析数据,比如存储、检索、聚合等。利用大数据平台的能力可以分析以前由于数据太大不能分析的场景。但在大数据分析领域也有很多数据关联性分析算法:相关性分析、回归分析、交叉表卡方分析等,但这些模型在安全分析的过程有多大的作用和效果,目前没有太大的研究,目前我这边还是用传统的分析模型利用大数据架构的能力进行安全分析。
七、小结
前面介绍的是目前传统的一些分析模型方法,可以作为对安全分析产品中关联分析是否灵活的一个评价依据。当然安全分析的前提是日志解析的准确性,准确解析日志也是一个非常复杂的过程,这块也分预处理和后处理等内容,后面有时间也会介绍下此部分的内容。
安全攻防对抗一直在不停演变,目前也出现了一些新的模型,比如基于预测模型的关联分析、基于机器学习的分析等,这部分目前还没有太多的心得。关联分析模型本身是一个比较复杂的话题,我尽量保证内容观点正确,但本人才学疏浅,文中若有不足之处欢迎大家批评指正。
(备注:文章属于赛克蓝德原创,赛克蓝德是专注于数据分析、安全分析、分析服务的提供商。如需转载请完整保留作者公司信息。)
评论 (2 条评论)