针对CMS的网络攻击中的快照回滚研究(二)

 

这项研究有机会研究了超过300,000个不同网站生产的每晚备份。在此过程中评估了基于CMS的网站的攻击情况,并评估了备份和还原保护方案的有效性。令人惊讶的是,发现成千上万次攻击的演变表现出清晰的长期多阶段攻击模式。

提出了TARDIS,一种来源推断技术,它可以仅基于网站托管公司已经收集的每晚备份来调查和补救针对CMS的攻击。在行业合作伙伴的帮助下,将TARDIS应用于这30万个网站的夜间备份,发现了20,591次攻击,持续时间为6到1,694天。

 

0x01 Design

A.时间相关和取证恢复

现在,基于为每个快照收集的空间度量,TARDIS尝试在快照之间将这些指标临时关联起来,以识别在网站内发展的可疑活动。在这里,TARDIS被编程为在n天滑动的时间窗口内跟踪发展情况(例如n = 20表示通过比较20天来跟踪空间度量中的发展情况)。在此阶段,TARDIS将任何时间快照ψi上的空间度量集Mi与滑动窗口(i-n <x≤i)中所有先前时间快照的空间度量Mx进行时间关联,以捕获持久的攻击关系并提取时间线事件。

度量M中根据空间元素分配的模式表示可以检测到的长期多阶段攻击行为。基于空间量度的布尔组成构造规则来对这些行为进行编码。这些规则被设计为与各个指标无关,并且基于长期的多阶段攻击所经历的阶段的不变性。下表显示了作为当前实施的一部分而应用的代表性规则集。

此外,通过一次考虑两个连续的时间快照来实现将模式封装在空间量度中的事件的时间相关性。特别是,将2元组的Mi-1,Mi传递到TARDIS的时间相关阶段,在该阶段根据下表的攻击模型对其进行查询。将攻击标签集Li和严重性分配给每个时间快照,从而以增量方式构建攻击时间线。分配给攻击标签的严重性会告诉研究者哪个标签比其他标签更重要。

上表中列出的规则反映了见解背后的总体直觉。例如,正在运行的示例W682886具有两种混淆代码注入的情况:

(1)可疑混淆代码注入到现有的未混淆元素中。

(2)附加到已经混淆的元素上的附加混淆代码。

基于此观察结果,如果混淆的空间元素elj(ψi)∈Vi的大小增加(即,混淆的攻击进度),或者如果脚本指令离群值标记为elj(ψi)而不是elj(ψi-1)(即混淆的)将代码注入到现有的未混淆元素中,然后将代码度量Obfus(elj(ψi))∈Mi,然后将攻击标签“混淆代码注入”附加到快照ψi的集合Li上。对于W682886,将在2018年4月21日,6月7日和6月13日分配此标签。

注意,多个空间元素elj(ψi)∈Vi可以为每个时间快照产生多个标签。例如,可能存在与Obfus(elj(ψi))∈Mi相关的三个空间元素(即3个文件中包含混淆代码),而与ExtM相关的其他四个空间元素为(elj(ψi))∈Mi(即四个伪装成gif的shell脚本)。在这种情况下,混淆标签注入和特权升级这两个事件标签都被附加到集合Li上,并且该集合Li的并集的最高严重性被分配给时间快照ψi。由于一个空间要素,多个标签也有可能被分配给一个时间快照,也就是说,对手可以将良性文件移动到隐藏目录中,并注入可疑的混淆代码。在这种情况下,防御逃避标签和混淆代码注入标签都将附加到集合Li上,并遵循前面所述的最高严重性分配。

D.入侵窗口恢复

有了攻击标签,TARDIS便会通过解析空间元素,空间度量和分配的攻击标签(即V,M,L i)的三元组的连续对来提取折中窗口。算法1给出了此过程的伪代码。算法1中的1-3行描述了如何以三元组V,M,L作为输入,如何从连续的V,M i-1对中为ψi处的每个快照计算差分空间度量DiffAttri。 V,M i(例如,调用表I中所示的差异文件类型信息)。

如算法1的第8-16行所示,然后使用AVF算法在差分空间度量DiffAttri上计算属性值频率(AVF),并对其进行处理,以按可疑活动的顺序对时间快照ψi进行排名。 AVF算法在具有多个属性的分类数据上表现良好,在案例中为差分空间度量。在典型的AVF应用中,要检测的异常数量是预先编程的。在这里,TARDIS不用选择要检测的异常数量,而是使用AVF算法将可疑窗口中的时间快照按最可疑到最不可疑的顺序进行排序。

在TARDIS输出整个时间序列的最终攻击标签之前,它将标签集L通过相关标签的逻辑序列验证(算法1中的第4-6行),并评估它们的出现顺序。例如,当分配的唯一标签是“代码生成功能”和“攻击清除”时,已经观察到这些行为是由Web开发人员填充的良性元素引起的,并且没有危害。在这种情况下,标签会保留,但其严重性会降低为“无”。

如果在快照上看到“保持存在”标签比任何其他事件标签(例如“建立立足点”或“恶意软件删除”或任何其他严重程度高的建模规则)早于快照,则因为知道此事件序列在直观上是不可行的,TARDIS已被编程(同样通过先前标签规则的布尔组成)以过滤掉没有逻辑意义的序列。

请注意,TARDIS的折衷窗口仅受8个标签中2个标签的影响,即攻击清除和维持状态。 TARDIS将其他标签的所有组合视为危害窗口的开始。这使TARDIS更加强大,可抵御那些可能试图将乱序的有效载荷部署以混淆TARDIS的攻击者。

一旦验证了分配标签的逻辑顺序,并按可疑活动的顺序对时间快照进行了排序,TARDIS随后将确定危害窗口-第一个和最后一个时间快照之间的时间段,其中包含具有已分配和验证标签的可疑活动同样,选择该窗口以使得针对妥协窗口之外的每个时间快照的AVF得分高于针对妥协窗口内的每个时间快照的AVF得分(算法1第17-21行)。在这段时间里,网站上会进行最大程度的可疑活动,以帮助调查人员将分析范围缩小到一个较小的窗口。发现这些直观的时间相关的空间度量和攻击模型都与设计非常吻合,并且在实践中运行良好。

对于正在调查的W682886网站,从2018年4月1日至6月30日,确定了入侵窗口,从2018年4月21日至6月16日。通过使用AVF算法,TTARDIS为该网站输出以下时间快照,按照最可疑到最不可疑的顺序排列如下:

请注意,这些攻击模型是可扩展的,而与底层CMS无关,即,当识别出新策略时,TARDIS框架被设计为高度模块化,可以轻松更新以捕获新策略的本质以及与之相关的攻击标签。本质上,将攻击建模规则应用于空间度量并沿每个时间快照递增滑动,可使TARDIS沿妥协窗口分配适当的标签L,从而提供事件的时间轴,作为长期多阶段攻击调查的一部分。

 

0x02 Validating our intution

这项研究始于关键见解,即针对CMS的网络攻击表现出表明多阶段攻击的“低和慢”特征。基于此设计了TARDIS来恢复折衷窗口并重建攻击时间线。现在,使用具有基础真实性的网站集来执行多个微基准测试,以验证这种直觉。

数据集和真实标准(Data Set and Ground Truth):初步研究着眼于CodeGuard识别为近期遭到入侵的70个CMS网站的夜间备份。手动调查了这些网站并标记了观察到的攻击模型。将在这里再次使用这70个网站作为真实标准。在这70个网站中,添加了来自93个其他CMS网站的夜间备份的完整历史记录,这些历史记录是从合作者的数据中随机选择的。再次,对这93个新网站进行了手动调查,以获取真实标准(如下所述)。这产生了总共163个网站,每个网站代表在2018年4月至2019年5月的13个月中每晚收集的备份。

为了验证TARDIS的性能,手动调查了163个网站以获得真实情况。首先在本地安装了CMS的全新版本,并删除了每个快照未修改的所有文件。然后,在所有代码文件中搜索了恶意软件有效载荷,并与CodeGuard工程师确认了该发现。如果调查发现有攻击,会在攻击首次出现时标记快照。如果通过回滚清除了攻击,则将其标记为相应的快照。然后,为该危害窗口内的每个快照添加了预期的攻击标签。从163个网站中,发现80个被盗。注意到这与最初的70个(所有这些都已被已知的)有所偏差,但仍然提供了各种良性和恶意案例的测试套件。

使用WhatCMS和CMS Garden确定了每个网站使用的CMS平台。表IV中显示了此数据集中的CMS市场份额分布。该分布大致类似于基于CMS的网站的实际分布,例如,大多数网站都是基于WordPress构建的,而Drupal和Joomla则紧随其后。

 

A.攻击模型的识别

然后深入到被识别为受感染的网站。为了验证TARDIS的攻击时间表重建能力,首先通过TARDIS运行每个网站的备份序列,并记录为每个夜间快照分配的攻击标签。请注意,TARDIS既不需要也不需要访问真实标准来调查网站备份,它仅依赖于空间度量和攻击模型的时间相关性来进行时间线提取,然后将TARDIS输出攻击标签与手动得出的真实标准进行了比较。

上表列出了163个网站的微基准测试结果。 CMS平台在第1列中列出。对于每个CMS平台,随后的各对列显示TARDIS标记为包含每个攻击标签的网站数(用#表示)和那些误判案例的标签数(用#表示)。 (由#FP)),即为该网站得出的基本事实不包含该攻击标签。例如,表的第3行显示了8个基于Joomla的网站中TARDIS标记的混淆代码注入,其中一个是FP。还要注意,在已知的干净网站中检测到的所有攻击标签都被标记为FP。

从表中可以观察到以下几点:TARDIS的攻击模型以单独的方式高精度地检测了受感染网站内的攻击标签。如表所示,标签提权和建立立足点的FP数量为零。此外,混淆代码注入,保持状态,丢弃恶意软件以及攻击清除标签的FP计数分别较低,分别为1、1、3和4,突出了TARDIS的攻击模型检测准确性。

最重要的是,当在一个网站中同时考虑所有这些攻击模型时,TARDIS可以修剪单个误报。 TARDIS验证记录的攻击标签的逻辑顺序,计算入侵窗口,然后将网站标记为已入侵或未入侵,如§III-C所述。此过程修剪了代码生成功能标签中的39个FP中的38个,清除了所有4个FP,删除了恶意软件中的所有3个FP,防御了9个FP中的8个进行了逃避,并且仅有一个经过混淆代码注入的FP,有效删除了94.7个表V中列出的FP的百分比。

另一个观察结果是,不同CMS平台的攻击策略差异很大,但是所有攻击都带有一些标签。特别是,在所有受感染的CMS中都可以看到维护状态,恶意软件丢弃和防御规避标签。真实数据证实了这一点。这看起来似乎很直观,但是它证实了预感,即以CMS为目标的攻击绝大多数都表现出长期存在的多阶段攻击行为。

注意,TARDIS在163个网站中记录了115个具有代码生成功能的网站(在多阶段攻击中使用的一种常见策略)。但是,从表中用于代码生成功能的#FP列标签中,发现在39个网站中,这些标签是FP。这可以归因于CMS的开源性质以及CMS插件开发人员遵循的各种编码实践。另一个明显更高的FP(71个网站中的9个)是防御逃避;这些是由于存在混淆处理,用于防止对付费CMS插件的可见性,乍看之下,这些插件看上去像是多阶段攻击行为。

B.多阶段攻击时间表

根据TARDIS,记录了每个网站报告或“未破坏”的入侵窗口。通过将TARDIS的正确性与为163个网站手工记录的危害标签进行比较来评估其正确性。结果列于下表。

表分别在第1列和第2列中显示了CMS平台及其分布。第3列(#GT)列出了通过手动调查得出的此数据集中的受感染网站的真实情况。第4至6列显示了TARDIS输出其危害窗口的网站数量。第4列(#TP)表示TARDIS折衷窗口输出与实际情况相匹配的网站数量,第5列(#FP)表示TARDIS产生的误报数量。在这里,FP本质上是一个“虚假警报”,这意味着TARDIS产生了一个破坏窗口,但是已知该网站没有受到破坏。第6列(#FN)列出了TARDIS入侵但未识别的网站数量。

总体而言,TARDIS发现共有83个网站受到了多阶段攻击的感染。有趣的是,这些攻击中有50%以上是针对WordPress CMS的。除了来自70个已知受威胁的网站之外,TARDIS在添加的93个网站集中还发现了10种其他攻击。

TARDIS报告了针对这80个受感染网站的攻击时间表,与实际情况相符。手动验证确认了此结果的正确性,没有发现任何包含TARDIS遗漏的攻击的网站,因此显示的FN计数为零。

请注意,TARDIS生成了3个FP,即表的第4列显示了3个网站(其中一个来自WordPress,Drupal和TYPO3 CMS)。手动调查显示,所有3个网站均包含用户开发的安全性插件,这些插件的代码模糊化,类似于攻击者使用的策略,导致TARDIS为这些网站输出入侵窗口。请注意,有几个包含混淆代码(Sucuri,Wordfence等)的公共安全插件,但是TARDIS可以通过检查其是否属于带有许可信息的CMS安全插件来处理此类众所周知的良性混淆案例。

 

0x03 Conclution

TARDIS提供了一种新颖的来源推断技术,可重构攻击阶段并实现从攻击中的快速恢复。使用代表每个快照的空间量度的时间相关性,TARDIS恢复了折衷窗口和攻击阶段的进展。 TARDIS发现了20,591个长期遭受多阶段攻击的受害者的网站,并且被证明在基于CMS的网站中揭示攻击的准确性很高,而与底层CMS无关。正在与CodeGuard合作,以通知网站所有者并补救已识别的攻击。

在接下来的文章中,将介绍TARDIS的在野部署和案例研究,以及相关工作和局限性。

(完)