安全技术运营的学习与笔记8
2023-4-30 15:8:50 Author: OnionSec(查看原文) 阅读量:10 收藏

这一篇写安全技术运营中利用属性特征等在威胁发现中的思路,属于Hunting思想,很有意思的。

推荐书籍《情报驱动应急响应》、《Attribution of Advanced Persistent Threats》扩展阅读

威胁发现是很重要的能力,如果发现不了威胁,在安全运营中就会认为自己当前的环境很安全,但其实攻击者说不定已经偷偷进来了,一直在潜伏。结合近几年公开的一些勒索组织的双重勒索案例就能发现这种情况一直存在,以前可能是获取到机器的控制权后就直接加密文件或数据了,讲究短平快,而如今对Top10流行的勒索团伙的活动进行观察发现,他们会在开始加密数据前就一直在内部潜伏,偷偷地窃取数据或文档资料(可能需要DLP产品的应用),有时候为了找到最有价值的资产而往往需要潜伏一段时间一点点地对内移动自己的痕迹,扩大自己的战果。在未加密数据前,他们与常规的入侵活动没什么不同,都是为了获得控制权而不断地使用各种方法甚至于分工协作,而最终加密数据的行为会曝光之前的潜伏行动,这是与一般或定向性攻击活动不同的一点,属于破坏型活动。等发现被入侵了(数据被加密了)其实对于安全运营人员或企业来说已经是事后了,解密的概率很低。前期防御是最有价值的,但是是不好衡量价值的,这个是在从事安全方向上比较尴尬的事情,在应急响应中对于事后的复盘与加固也是有价值的,只有解决了已有的风险,才能保证下次被入侵的概率会降低,这个思路其实业界已经有非常成熟的模型指导了。

威胁发现是一种主动挖掘风险的能力或实践,基本覆盖了安全方向的方方面面,有时候也被人戏称检测工程师,但大家的本质还是主动挖掘风险补救或避免更大的损失。其实回到自身的工作内容中,一个最大的挑战就是“提高云端某一类安全能力”,在这个大目标下就是不断地分解子目标。一般上云的场景是大数据场景(有成本门槛),和以往的手工作坊分析威胁不一样,要最终实现的是半自动化到全自动化的转变,也是一个持续演变的过程,这是非常有挑战的事情(挑战同样蕴含着压力)。书里提及了很多内容也和这块交叉,觉得比较受益。

在云端能力中,文件也是重中之重,在文件中发现威胁并转变为恶意文件也是一个非常重要的环节。在之前的笔记中学习并记录了各种特征的应用,其实只能解决非常基础的问题,非常基础的问题在业界其实是已经经过多年实践了,都是前人宝贵的经验所累积的。但在安全方向上可能每个阶段都得解决不同的问题,因为与人的对抗总是在不断进步的,前几天的Code Insight发布后其实也有不少安全研究人员对prompt进行攻击,结果表明可以误导分析结果。

在云端场景下(目前也是在逐步转变思路)面对的数量是不同的,想象一个场景,每天需要面对几万个文件做鉴定,此时靠手工作业意义不大了,专注细节也意义不大了,会不会脱壳去混淆也意义不大了。在此种场景下,优先考虑自动化分析的策略,这是第一步,等这些步骤完成后,就是威胁发现的过程。因为云端有了大量的数据,如何从这些数据中发现威胁也是需要很多的技巧。文件场景下,除了保存文件的哈希值与鉴定值外,可能会保留文件的元数据,也就是文件的属性特征,属性特征是从一个类别的恶意程序中提炼共同点,这些点往往不能作为判定恶意的标准,但可以作为参考。对于后端挖掘风险是非常有帮助的。

属性特征中的数字签名是优先考虑的特征,数字签名的出现本身就是为了保证文件不被篡改。但是数字签名本身并没有非常严格的申请机制,因此会遇到一些场景,比如恶意文件会存在正常的数字签名或者一些知名机构的官方签名等。因此如果靠数字签名的黑白名单去进行分析可以面对大部分的场景,但是会漏报上述提及的场景,此时正如书里提及的需要设计一些规则或系统来发现这些场景的恶意利用。利用大数据的方式可以发现那些数字签名属性中异常的数据,而异常的数据往往可能是新的未被发现的风险(发现一般方法发现不了的风险也许是很有价值的),这块对于主动hunting也是非常有帮助的。其实这个数字签名威胁发现的系统就属于一个子方向,还真不是写的这么容易,这个过程涉及工程化与实践运营效果的结合。

如果某种数字签名在恶意文件中占比非常高,直接给一个高可疑值,下次遇到携带相同的未知文件直接给判黑。在所有比较大的官方数字签名白库中进行统计,一旦发现某个未知文件的数字签名的相似度非常接近,且该文件没有属性信息可认为这个文件非常可疑,可能是遇到伪装签名的情况,在继续进行思路探索就能列举出一些挖掘的技巧,当然这块并不是在自己电脑上做实验这么简单,而是大数据的场景,设计威胁发现的系统不是一蹴而就的。

“在数字签名特征的应用过程中,遇到的最大挑战是签名盗用问题。”白签名是黑客手中用来突破安全软件的高级武器,白签名的被盗用情况也是在这些威胁中常见的一种,经常发现一些rootkit存在正常的数字签名,而且签名信息来源于国内一些企业(一般情况就是被盗用了)。如果数据量足够多且数据库结构丰富,可以利用程序的覆盖度(广度属性)和孤立度(同组织下的正常软件之间会存在相同的信息而交叉)来判断是否异常,这块因为涉及数据量很大,需要采用图挖掘算法应用(有一些门槛,存储与数据和算法的应用),属于聚类或族的关联,那些不在一个族里的未知文件可能是有问题的。

书中提及了一个利用威胁情报的视角来发现这类风险的示例,如下进行了学习与理解。提取威胁情报的过程中经常见到的安全事件是会发现采用了白加黑的利用,这通常可以在端点进行检测(因为白加黑组织文件投递的最终点就是端点),比如可疑的加载路径,以及运行目录下文件数量非常小(正常应用程序会有很多的组件文件)等特征来识别,这些是可以被绕过的,或者更进一步在进程内存中扫描检测,这要求需要平衡性能与资源问题。在云端安全技术运营的视角下,还有没有其他方法来检测这种利用攻击吗?如果反问下自己,是不是能编写或提出类似的解决方案呢?

通过总结白加黑利用的特点得到如下内容:

1、被利用的模块文件名不能改变,不然无法被正常母体文件加载成功。

2、一般情况下作为组合文件一起被投递,所以不会是正常使用的软件安装路径。

3、白加黑的组合文件的行为比正常文件差异大,例如可能会出现不同以往的网络回连行为或者其他行为。

4、一般会出现只有1个白文件或1个黑文件的情况组合,还有一些情况是三个文件一起组合出现,但是与正常的软件目录下的文件数量差异很大。

通过这些特点,可以得到一些挖掘的思路,因为威胁发现的主要来源就是异常,异常就是非常可疑的行为,通过属性特征在云端视角下可以使用同源度的方法,如果发现一个被加载的黑模块与历史已有的数据进行比对,发现与正常文件模块的内容差异很大,则认为是可疑的,不过要考虑到数据的积累与比对还有运营,如何获取到正常文件的所有模块的内容标准值(基线)。传播方式可疑度,如果一个白加黑的组合程序的整个生成链与正常的白文件的生成链不同,那也可以认为是可疑的。因为恶意文件总归是要实现自己的功能,只是恶意文件的文件名借用了正常的模块文件名,所以可以借用行为可疑度,这个属于行为检测方向的应用。软件完整度指的是加载的路径与以往正常文件的历史记录有很大偏差,除去测试的原因,很有可能就是存在白加黑利用,这个也和端点检测时的思路有交叉,通过这些维度的检测进行合并打分就能得出一个判断的结论。整体来说,通过对这一部分的精读学习,在针对安全威胁检测进行设计检测系统与策略时,确实应该通过观察特征或特点,然后结合事件的具体表现来设计检测方案,然后在此基础上进行业界新思路的学习应用与测试,整体来说这部分内容更多的偏向安全检测与数据挖掘结合,随着积累的数据越来越多,单纯地规则运营与打分提升会很缓慢,会存在天花板。因此后续肯定会采用应用AI的方式对数据进行分析与挖掘来发现异常,这个过程是持续的,并不是一次性就解决完全。

最后的书中总结,基于数据分析和挖掘的属性特征。在现代化的安全防御工程中,特征系统不仅没有被淘汰,反而注入了大数据新特性,是机器学习静态挖掘威胁的数据基础,成为互联网威胁发现的一个重要方法。

下一篇会涉及安全技术运营中的行为规则挖掘与机器智能(使用AI类算法来解决具体问题的方式)的应用,内容很有门槛,需要精读学习的时间会很长。


文章来源: http://mp.weixin.qq.com/s?__biz=MzUyMTUwMzI3Ng==&mid=2247485126&idx=1&sn=0c2acc618680424a6eff3aeb4b7f9dc9&chksm=f9db5185ceacd893f81fbf8634e381ef9e1c69eb8cb01572f21f26abe1792e383731415ecfe4#rd
如有侵权请联系:admin#unsafe.sh