博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第一个 SyScan 360 女讲师揭密:如何揪出潜伏多年的可怕网络间谍——APT 攻击
阅读量:5843 次
发布时间:2019-06-18

本文共 3995 字,大约阅读时间需要 13 分钟。

   
世界上最可怕的网络“间谍”恐怕要属“APT 攻击”,潜伏数年、甚至数十年,默默偷取关键数据,它可能不为钱、不为利,但就是为了搞垮你。

听上去实在是又贱、又狠的一种黑客攻击。

赵雨婷,是第一个登上SyScan 360 安全会议演讲台的女讲师。她是360追日团队中的一员,面对 APT 攻击,这个团队希望像夸父追日一样,一直坚持不懈地进行追击。

第一个 SyScan 360 女讲师揭密:如何揪出潜伏多年的可怕网络间谍APT 攻击

关于 APT 攻击,赵雨婷揭示了一些关于它的秘密。

最近一起重要的 APT 攻击当属11月曝光的蔓灵花 APT 行动。

美国网络安全公司 Forcepoint 发布了一篇报告,该报告主要披露了巴基斯坦政府官员最近遭到了来源不明的网络间谍活动。该报告描述了攻击者使用了鱼叉邮件以及利用系统漏洞等方式,在受害者计算机中植入了定制的 AndroRAT,意图窃取敏感信息和资料。Forcepoint 研究人员认为该组织与 BITTER 相关,而且可能还不止发起了这一起攻击事件。BITTER 攻击始于2013年11月,且多年来一直未被检测到,目前攻击者背景尚未明确。相关 APP 信息包括提供关于印度和巴基斯坦之间的争议地区新闻的 Kashmir News 等。

赵雨婷及团队成员发现,这起看上去和我们没有一毛钱关系的蔓灵花 APT 行动其实也悄悄潜伏在中国地区,受影响单位主要涉及政府、电力和工业相关单位,可怕的是,该组织至今依然处于活跃状态。

最近一年来,和蔓灵花 APT 行动一样“蜚声中外”的,还有下面这些:

第一个 SyScan 360 女讲师揭密:如何揪出潜伏多年的可怕网络间谍APT 攻击

抓出“间谍”第一步

还好,通过对 APT 攻击的行动特征分析,人们已经知道它们的一些行为模式,这正是揪出这个“间谍”的第一步。赵雨婷说,

APT 攻击一般不会停歇,有一些可能会因为被安全厂商披露,导致过去的攻击手段失效,而选择暂时销声匿迹,但只要被攻击的目标还存在价值,这个攻击就会依然持续。另外有一些情况是,攻击者在发动某一次攻击时,已经达到了预期目标,攻击组织可能会选择暂时性蛰伏,但其目的是为了下一次攻击养精蓄锐。

其次,APT 组织是否会对一个目标发动攻击,并不取决于这个目标本身系统安全强弱的防护程度,而主要取决于目标是否有价值。即使,被攻击目标的本身系统防御非常强,只要这个目标存在价值,APT攻击组织也会不计成本对它进行攻击。

真是不到黄河心不死!

再者,APT 攻击者还会拥有大量的 0day (零日漏洞)资源,可以发动针对性攻击。它具有有高度隐蔽性,可以持续数年,甚至数十年不被发现。APT 攻击组织方发动攻击不以直接获取利益为目的,更倾向于窃取敏感数据和破坏基础设施建设。

赵雨婷分析,近年来还发现 APT 攻击逐渐转向跨平台攻击。比如,蔓灵花 APT 行动就同时对 windows 和 安卓平台进行了攻击。

我们认为,在未来 APT 攻击中,针对传统 PC 的攻击将会减少,针对移动设备、物联网设备,甚至工业控制设备的攻击将会持续性增加。

需要的威胁情报——揪出连着的“线”

这是 APT 攻击链的关键环节。攻击者从侦查目标,制作攻击工具,传递攻击工具,利用被攻击目标的漏洞或者弱点来进行突防,拿下全线运行工具,后期远端的维护这个工具,到最后达到了长期控制目标的目的。针对这种现在日益广泛的高级攻击,威胁情报存在于整个攻击的各个环节。

第一个 SyScan 360 女讲师揭密:如何揪出潜伏多年的可怕网络间谍APT 攻击

所谓威胁情报,就是 APT 将可能在这些环节露出蛛丝马迹,安全人员如果能够发现,就能抓到其中最关键的“线头”,顺藤摸瓜指日可待。

在攻防斗争史中,安全人员曾认为漏洞是唯一能威胁企业安全的途径,事实上,漏洞只是其中之一。钓鱼邮件、员工利用社交网络泄露的个人信息、黑客撞库产生的密码等都可能是 APT 攻击潜伏进来的钥匙。

虽然 APT 攻击“安静而又危害极大”,在攻防较量中,安全人员也在一步一步搜集攻击者暴露的信息。

  1. 能够观察到的行为,也是威胁情报当中最基本的信息。比如,用户网络数据异常,网络系统遭到了破坏等,其次是威胁的特征指标,这些特征可以用来判断用户是否真的遭受了这个威胁的攻击,包括威胁处理的条件,威胁可能造成的影响,威胁的有效时间和测试方法等。

  2. 对事件的描述,主要包括事件发生的时间、位置、事件的日志等。然后是技术手法,从手段、技术、过程三个纬度,对安全事件进行了较为全面的描述,一般包括恶意攻击的行为,恶意攻击者采用的工具和整个工具的攻击链,对漏洞造成的影响等。还有受害者和被攻击目标的信息,一般包括被攻击系统的基本信息,在 APT 攻击中,通常会针对不同系统定制不同的攻击策略,以及可能在这个攻击中被利用的漏洞信息等。

  3. 最后是攻击者的信息,只有到这个层次上,安全人员才会考虑关注攻击者的动机——他为什么要发起这次攻击?攻击的发起方到底是谁?

赵雨婷说,

我们结合自己的研究经验对威胁情报也有细化的解读——威胁情报是一种基于证据的描述威胁的一组关联的信息,通常包括威胁相关的环境信息,采用的手法机制,指标影响等。更细化一下,就会指具体的攻击组织,恶意域名。这里的恶意域名通常是远控的 IOC,恶意文件的 HASH 和 URL 以及威胁指标之间的关联性,时间纬度上攻击手法的变化。这些汇总在一起会形高级威胁情报。除此之外,我们所关注的情报,还包括传统威胁种类的扩充,包括木马远控,僵尸网络,间谍软件,Web后门等。

锻造抓捕利器——机器学习

第一个 SyScan 360 女讲师揭密:如何揪出潜伏多年的可怕网络间谍APT 攻击

按照赵雨婷给出的机器学习在威胁情报中的模型,机器学习三个基本元素分别是任务、经验、性能。任务利用机器学习来处理威胁情报,对经验 E 的选择会直接影响最后流程产出的效果,所以在择经验 E 时需要考虑以下几点:

第一,选取的经验是否能为系统的决策提供直接或者间接的反馈;

第二,机器学习的决策要自主性,主要是指机器学习要能通过对自身的评估、估计、规划来做出最终的决策,尽量不要受到人工控制;

第三,训练的样例是否尽可能接近真实世界的实例分布,只有选取的样例更接近真实数据时,整个流程的性能才会非常高,也就是说,性能 P 通过这种相似性来衡量;

之所以要有这么一套看上去十分复杂的流程,是为了利用机器学习来处理威胁情报,检测并识别出 APT 攻击中的恶意载荷,提高 APT 攻击威胁感知系统的效率与精确性,让安全研究人员能更快实现 APT 攻击的发现和溯源。

手把手教你“海底捞针”

那么,到底机器学习是如何帮助甄别威胁情报,从茫茫数据大海中捞取一根有用的针?

这里需要介绍一下背景。

机器学习分为两类:监督学习和无监督学习。很多机器学习的问题都是在解决类别归属的问题,也就是给定一些数据,要判定每条数据是属于哪些类,或者是这条数据可以和哪些其他的数据归为一类,如果一上来就直接对输入的数据进行建模,通过数据内在的属性和联系让机器自动分类,这就属于无监督学习。

如果一开始就知道了本身数据的类别,并且给其中一部分数据打上了标签,通过对这些已经标好类别的数据进行归纳总结,然后得出数据到类别的映射函数,再用映射函数对剩余的数据进行分类,这种就属于监督学习。

赵雨婷指出——无监督学习是机器学习未来发展的一个趋势,但是基于目前的技术水平,她和团队还是更倾向采用监督学习来处理威胁情报,毕竟技术层面上来看更成熟。

采用监督学习的一般过程是:首先是准备训练数据,从训练数据中抽取所需要的特征向量,把特征向量及对应的标记一起放到学习算法中,训练得出一个预测模型,再用相同的特征选取方法,作用于新测试数据,得到用于测试的特征向量。最后使用预测模型对这些带特征向量进行预测,并得到最终结果。

简单而言,处理过程就是特征抽取、筛选、训练和验证。在特征抽取与筛选部分,首先准备训练数据,即一切可以收集到的真实准确的数据,都可以尝试拿来作为威胁情报处理流程的输入数据。在这些大数据中抽取所需要的特征,即特征抽取,将原始数据逐条转化为特征向量,会得到初始向量集。然后就可以对初始特征集进行一次特征筛选,筛选出想要的高效特征,形成特征向量。数据特征的抽取与筛选,主要是为了达到提升模型的目的。如果选取了过多特征,就会浪费服务器资源。如果选取了一些不良特征,就会大大影响模型的精确度。

在训练生成模型的过程中,赵雨婷和团队会从两方面入手:一方面是样本的相关静态特征,另一方面是一切能够观察到的动态行为。

以 PE 文件为例,会先做一个特征抽取,抽取 PE 文件的一些静态特征。比如,文件描述、可执行代码静态数据,签名附件等,形成初始的特征集后,对它进行降维,即特征转化,最后重复上面的这个过程,对模型进行验证。在训练过程中一个比较重要的点是——要维护自己的训练样本,这些训练样本统称为训练集,我们的训练集通常由人工鉴定和算法结合选取出来,训练集的好坏直接影响了最终模型的效率。

预测模型还需进行检测和验证,以保证性能是高效和准确的。在模型检测过程中,赵雨婷及团队会采取留一验证和交叉验证结合使用的方法。

留一验证是什么?举个栗子!

比如,在现有的 APT 样本事件样本集中,抽取一个 APT 事件不参与模型训练,等模型生成后用模型来扫描这个 APT 事件,检验相关的威胁情报扫描结果。

交叉验证就是多次使用留一验证,保证每次不参与训练的事件都不一样,这样是为了保证每一条可以用到的数据都参与了模型验证和训练的过程,会使优化后的模型更加可信。

在实验室阶段,这些方法通常用于检测模型的有效性,在这套流程正式上线前,我们会选择设置一个压力池。压力池中有很多数据,在上线前会对池子里的所有数据进行扫描,然后对扫描结果进行评估,如果这个扫描的结果符合我们的预期效果这个流程才会正式上线。

虽然利用机器学习来挖掘高级威胁情报目前效果不错,但是赵雨婷告诉雷锋网(公众号:雷锋网),还有一个瓶颈——如何要在时间纬度上实现交叉验证。

   
  
  本文作者:
本文转自雷锋网禁止二次转载,
你可能感兴趣的文章
**json_encode:让Json更懂中文(JSON_UNESCAPED_UNICODE)
查看>>
Java数据库编程——事务
查看>>
具体解释Android中AsyncTask的使用
查看>>
通过备份初始化合并复制时的报错的解决
查看>>
ASP.NET HttpModule URL 重写 (一) 【Z】
查看>>
外行观察者模式
查看>>
【原创】kafka client源代码分析
查看>>
ASP.NET Web API与Owin OAuth:使用Access Toke调用受保护的API
查看>>
机器学习算法与Python实践之(四)支持向量机(SVM)实现
查看>>
JVM学习笔记(一)------的基本结构
查看>>
得到鼠标的屏幕坐标
查看>>
博客园的找找看
查看>>
Android Bitmap 加载与像素操作
查看>>
(剑指Offer)面试题4:替换空格
查看>>
公众平台手机版来临 微信公众平台推出手机版运营中心
查看>>
SQL SERVER2005事务日志已满 解决方法
查看>>
iOS开发-automaticallyAdjustsScrollViewInsets属性
查看>>
Hadoop2源码分析-YARN 的服务库和事件库
查看>>
Canvas 图片灰度
查看>>
C#+无unsafe的非托管大数组(large unmanaged array in c# without 'unsafe' keyword)
查看>>