阅读这篇文章之前,如果你对APT一无所知,可以先了解一下APT三个字的英文,A-Advanced,P-Persistent ,T-Threat。
前段时间火眼发现了一个基于供应链攻击的黑客组织攻击事件,并将黑客组织命名为UNC2452/Dark Halo,看到这个名字,就想起了Dark Hotel,国内外各安全厂商也都在第一时间拿到了APT攻击的后门样本,并对样本进行详细分析。
之后又有国内外的一些厂商跟踪分析了攻击样本中使用的DGA算法,并通过解密DGA算法,找到了一些受害者客户的数据,至于溯源到的这些客户里有没有误报的,已经不重要了,反正是溯源到了,接着又有越来越多的国内外安全厂商发布了自己的相关报告,报告基本内容就是大同小异,有些厂商加了自己的一些猜测推理啥的,包含微软也发报了报告,也对后门进行了详细分析以及DGA部分,同时还推广了一波自己的产品拦截技术等。
我研究了十几个国内外不同的安全厂商针对此事发布的报告,能分析的基本都分析了,其实这个事能做的就只能到这里了,作为一个专业的安全厂商能在第一时间内拿到攻击的样本,并做出快速响应,提供相应的检测清除以及防御解决方案就可以了,如果真的需要进行下一步的溯源分析,也只能联系SolarWinds公司配合,进行内部的调查取证分析了,但如果SolarWinds不配合,或者SolarWinds不找你做溯源取证分析,各大安全厂商基本能做的事就是这些了。
至于攻击者是如何攻击SolarWinds恐怖也只有曝光的黑客组织Dark Halo或其他攻击SolarWinds的黑客组织才最清楚了,因为大部分安全厂商是没办法去找Solar Winds进行溯源取证分析的,所以溯源分析也就到此为止了,至于其他的一些什么分析就是纯猜测了,没啥意义,随便怎么猜测都可以,而且就算SolarWinds找专业的安全厂商进行溯源分析,最后的报告也不会对外发布,黑客的攻击手法的相关细节也不会曝光,有些不懂的人还会说,难道全球的安全厂商能做的就是这些?是怎么攻击的,我还是不知道呀,其实确实也只能做这些,或者说能报道的也只能是这些了,更多的溯源分析大部分安全厂商也没有办法去做,因为SolarWinds没有找他们溯源,其次就算找到了完整的攻击链,你也看不到报告,就说到这里了,懂的人自然就懂了。
所有对外发布的APT报告最大的价值就是品牌宣传,说白了就是”秀肌肉”,告诉客户我有能力帮你找到并处理APT攻击事件,同时我有APT数据,我还有产品能检测和防御,我能帮助你发现企业中可能存在的APT攻击事件,因为现在全球还有多少政府或企事业单位已经被黑客攻击了,无时无刻不在监控和盗取政企的重要数据,其实是未知的,这也是全球的安全厂商做安全的意义,事实上真实的客户APT报告是不会对外发布的,都是定向发给客户的,没有哪个安全厂商会把自己重要客户的APT事件报告发到外面,这样做没有任何意义,给客户保密是安全从业人员最基本的素养。
经常在一些安全大会上听到一些人讲APT攻击,以及APT溯源分析啥的,其实一些人还没有搞清楚APT攻击是啥意思,就在谈论APT溯源分析,啥是APT都不知道?为什么叫APT?APT攻击的目的是什么?
啥是APT:APT就是高级可持续性威胁攻击
我们要讨论某个攻击行为的时候,为什么称这类攻击为APT,其它攻击不是APT呢:为什么火眼发现的这个东西就是APT攻击事件,并不是因为他使用了供应链攻击技术,供应链攻击仅仅是APT攻击使用的一种高级技术,所以供应链攻击仅仅是代表了A,仅只有A,是不能叫APT,完整的APT攻击一定是:A-高级,使用了一些高级的攻击手法,比方供应链攻击手法,利用了一些系统或应用的0day漏洞,或者使用了很多以前未见过的各种组合攻击方式等,然后这些仅仅是A,还需要P。
P-持续性,在黑客组织攻击成功之后,一定会在受害者机器上驻留植入后门,以达到长期监视受害者,盗取重要数据的目的,P就是APT攻击最后释放的高端远控后门,也称为APT特马,一个高级特马的免杀效果在一定程度上决定了一个APT组织技术的高低。
只有满足了这两点才能叫APT,高级可持续性攻击,很多人其实并不理解什么是APT,也没搞清楚APT的本质是啥,也不懂为啥叫APT,还有APT的重点是什么?
APT的目的:黑客组织使用一些高级可持续的攻击方法和手段,通过长期监视目标,获得目标的重要数据,持续监控获取数据是APT的关键,具体强烈的政治和经济目的。
以后别人再跟你谈APT的时候,你就先问他啥是APT,怎么定义这个事件是APT的,再跟他聊后面的溯源分析,如果连APT都没有搞清楚,就没有必要聊下去了。
我在面试的过程中会遇到不少人在自己的简历中写APT啥的,也遇到不少人聊APT,其实很多人连APT是啥都没有搞清楚,有些人说APT:使用一些0day漏洞攻击就说是APT,发个钓鱼邮件,使用鱼叉攻击,水坑攻击手法就说是APT,其实都是不准确的,这些只能叫APT攻击的一种手法,使用了这种攻击手法的安全事件,并不一定就是APT攻击事件,APT攻击事件的核心一定要找到P,没有P(APT特马),再高级的攻击手法,也只能叫AT事件,这次攻击事件仅仅是利用了一些高级手法的威胁事件而已,并不能称为APT。
我常常说我们做安全就跟当警察是一样的,做安全就是为了保障我们的客户安全,当警察是为了保障人民群众的安全,我们在客户现场溯源分析的过程,就和警察在刑事犯罪现场推理案件的过程是一样的,警察破案,一切的根本是基于证据的,没有证据,如果一切仅仅都是猜想,猜想是定不了罪的,同时当企业被黑客攻击之后,我们需要从客户的机器上进行溯源分析,获取相关的证据和数据,客户的机器其实就是“犯罪现场”,存留在机器上的样本就相当于受害者的“尸体”,我是很喜欢看刑侦类电视剧的,比方《法证先锋》《刑事侦缉档案》《插翅难逃》《神探狄仁杰》《重案六组》《鉴证实录》等,基本都看了好几遍,相信很多朋友也看过。
大家可以发现要想破案的关键因素之一首先就是要保留作案现场,如果作案现场被破坏会加大破案的难度,同时最后大家会发现,警察一定要找到受害者的“尸体”,不管是不是一具完整的“尸体”,或者仅仅是“尸体”的一些残留物质,找到受害者“尸体”是定罪的关键因素之一,有些极端的犯罪份子会“毁尸灭迹”,警察会通过各种技术手段找到“尸体”残骇,这种“毁尸灭迹”类型重大刑事案件一般是比较难侦破的,往往需要去收集和寻找更多的证据,有时候甚至还需要和犯罪份子打心理战,通过心理战突破他的防线,从而破案,但是不管是哪一个案件,一切都是拿证据和事实来定罪的,纯凭猜测是没有办法定罪的。
当我们在处理客户应急响应的时候,存留在客户机器上的样本就是我们要找的“尸体”,只有先找到“尸体”才能定义它为一个重大的刑事案件,如果连“尸体”都没有找到,是没有办法定义的,从“尸体”中去寻找证据和答案是最有效也是最直接的方法,首先警察会将“尸体”移交给专业的法医人员进行检测和分析,判断死者的大体死亡日期(样本的感染时间),死者的年纪(样本的编译时间),死者此前是否有受到过侵犯和死者的死亡原因(样本的静态和动态行为特征),从这些可以大致判断犯罪份子大概的行凶时间(黑客攻击时间),行凶过程以及死者的死亡原因。
APT溯源的关键问题是要有客户的犯罪现场,如果没有犯罪现场,一般的安全厂商能做的事就是通过从犯罪现场找到的受害者的“尸体”(样本)进行溯源分析了,所以如果一个安全厂商又没有犯罪现场,又没有拿到受害者的“尸体”(样本),就在那里大谈溯源分析,APT溯源分析,基本就是纯扯淡,这种报告完全不用看,可以看国内外各大安全厂商发布的APT报告,“尸体”(样本)分析是必不可少的一部分,不管有没有客户现场,如果连简单的“尸体”(样本)分析都没有,就跟能法医的报告都没有拿到,就几个警察在那里推判猜测,是没有任何意义的,一切的犯罪都是要基于证据的,没有证据,推论和猜测就毫无意义了。
APT攻击应该如何溯源?一定是有什么异常,先从异常入手,不管是多么高端的APT组织一定会在机器上驻留信息,因为这是APT的核心之一,没有P,不能算是APT攻击,仅仅是AT攻击或普通的T攻击,APT攻击一定是有P的,那我们最好的方式就是从P入手,从而溯源推理出整个攻击事件。
P就是“尸体”(样本),所有的APT攻击的最后都会保留一个“尸体”(样本),这个“尸体”(样本)就是P,不同水平的APT组织使用的P的技术不一样,判断是一个APT组织技术的高低标准之一就是P能存留多长时间不被安全厂商发现,如果一个APT组织的P在十年之后都没有被全球的各安全厂商发现,那这个APT组织一定是最厉害的APT组织之一,一般的P的存活时间不到一天,厉害的一周,更厉害的几周,几个月,顶级的可以存留几年甚至更长时间不被发现。
当然判断一个安全厂商的安全能力的标准也就是发现P的能力了,不管你用什么方法,管你什么AI,大数据,算法等等,只要你能第一时间发现客户机器上的P,分析出黑客做了什么事,同时能追踪到黑客的攻击手法以及攻击流程,这就是代表你的安全能力的。
当我们拿到P之后,如果想溯源,能做的第一件事情就是分析研究P,这就需要一名经验丰富优秀的法医了,一个优秀的法医并不是他的解剖技术有多好,而且他的经验丰富,分析解剖的“尸体”很多,见过的“尸体”更多,一般的“尸体”一个经验丰富的法医在很短的时间内就能大概判断出“尸体”的特征,这和我们在分析样本的时候是一样的,当你对各种不同类型的样本都很熟悉之后,分析过的样本越来越多之后,你就会很快的定位到样本的关键信息。同样一名优秀的警察也是他的Q法有多准,而且他的办案经验比较丰富,能快速的推理出案件的关键信息等。
其实P(样本)就是APT的核心,没什么好辩解的,针对样本的分析就是APT分析的关键,首先需要从样本中找到更多有价值的东西,如果一次APT攻击事件连样本都没有找到,就纯猜测没啥意义,APT报告的核心就是对样本的分析,如果一篇报告连基本的样本都没有分析清楚,就大谈APT攻击,攻击手法什么的,就是纯扯,就像这次如果火眼不公布样本,其他厂商能分析啥?推测啥?其实啥也不会知道?
APT攻击过程中黑客能留下的最实在最有价值的东西就是样本,样本也是你能与黑客组织”对话“最直接的桥梁,所有的一切结论都是基于样本分析得出来,然后再通过获取到更多的样本数据推论出更多的结论,不然就是纯猜测,没有任何事实依据可言,如果你觉得对已知或未知的APT事件的样本逆向分析价值不大,只能说明一点:你分析的样本真的太少了,你见过的样本太少了,你处理的安全攻击事件太少,你的经验不足而已,对安全的理解不够深入。
APT溯源分析不是单靠数据就能解决的,更多的是需要经验丰富的安全人员进行定向的取证分析,首先需要有犯罪现场(客户),如果没有犯罪现场(客户),就只能通过获取到的APT事件的“尸体”(样本)进行技术分析取证,然后再通过自家的数据进行跟踪分析了,所以这就是为啥大部分安全厂商对外发布的APT事件都是以样本分析为主的,有些顺带会写一些应急措施以及相关的可能受影响的客户,真实的APT攻击事件的客户溯源以及提供给客户的APT报告是一定不会公开分享的,因为里面会涉及到客户的重要的数据以及客户产品中重要的安全问题,这种报告都是定向输出给客户的,对外输出的APT报告基本都是为了宣传自家的安全厂商有这种安全分析能力以及数据能力,因为当真正有客户找你进行APT溯源分析的时候,才是真正展示一个厂商安全能力的时候,其它的时间都是要练兵,正所谓,养兵千日,用在一时,平时没事的时候,就是要多去分析样本,研究漏洞原理,多去熟悉一些常用的黑客攻击手法,见的多了,经验自然就丰富了。
如果连样本都不去分析,常见的漏洞和攻击手法都不知道有哪些,平时也没有机会接触一些APT攻击事件,那如何锻炼自己的APT溯源分析能力,如何能快速的定位问题,找到安全攻击事件的关键信息,就相当于一个法医,从来不解剖研究“尸体”,一个警察从来不去犯罪现场调查取证,就纯靠意淫,或者看看别人的报告,就凭自己的想象断案,基本就是扯淡,所以如果你要跟我讨论APT溯源什么的,我首先会问你有没有抓到APT事件的样本(P),有没有分析过事件中的样本(P),从P中找到了什么有价值的信息没有,或者有没有发现可疑的日志信息(犯罪现场),如果连基本的样本(P)都没有拿到,也没有去犯罪现场(日志信息)分析过,我觉得咱们暂时没啥讨论的必要,纯意淫没啥价值,浪费时间和精力。
这里还说一点,就是前面说的APT数据,因为现在做安全的人喜欢说数据这个词,其实一切都是数据,代码是数据,样本也是数据,特征是数据,行为也是数据,网络流量还是数据,这一切皆为数据,单纯的说APT数据也是没有啥意义的,一定要有具体的东西,比方APT 样本二进制代码数据,漏洞规则数据,威胁情报IOC数据,APT攻击行为数据等等,安全厂商能做的事,就是基于现有的APT历史数据和最新的APT事件攻击样本,建立APT数据库,然后关联更多的数据,APT数据的积累其实也是一个平常练兵的过程,因为当你没有客户来找你的时候,或者你没有受到APT攻击的时候,通过收集和整理之前的一些APT事件的数据,形成一个APT的知识数据库,积累自己的办案经验,也是一种方法。
这些APT攻击事件文档其实就是警察办案后的案卷存档,通过整理这些案卷,进行标准化的保存,方便进行信息的检索和关联,从而可以对案件的侦破起到一定的作用,所以现在安全厂商都在进行APT相关数据的运营,APT数据的积累是需要一个长期的过程的,但这种方式对一些关联的APT组织是有很大的帮助的,但是对于一些新型的APT组织帮助不大,不过APT数据的收集和整理是必不可少的一部分,这就相当于对全球刑事案件的档案管理一样,但仅仅依靠APT数据是没办法溯源分析最新的APT攻击事件的,需要专业的经验丰富的安全专家对客户进行溯源分析,调查取证。
APT溯源的过程就是一个警察破案的过程,警察怎么破案的,我们做安全的就怎么去做溯源分析,犯罪现场和受害者人“尸体”是所有重大刑事案件中两个最关键的东西,一切的一切都是需要证据的,没有证据,利用什么数据来扯淡,一切靠猜想,是没有任何意义的。
如果一个人跟你说基于AI技术、大数据技术,还有其他啥技术,就可以分析检测未知APT攻击,基本可以断定这个人是不懂APT的,可能连APT是啥都不知道,任何高级安全威胁事件的溯源分析,都不能仅仅依靠产品或者数据,实战经验丰富的安全从业人员是必不可少的,只有这些经验丰富的安全人员才最了解黑客,更别说是一些高端未知APT攻击了。
未来网络安全事件,一定是以定向攻击为主的,同时APT攻击手法也一定为成为未来安全攻击的主流,通过APT攻击获取国家政企业重要的数据,并长期对国家政企业进行监控,达到黑客组织攻击的目的。
好了,就写到这里了吧,真正深入研究并理解安全的人,一看就明白了,看不懂的人,也没办法,就踏踏实实花时间多去研究安全,提升一下自己的安全能力和对安全的理解,再多经历一些事情,经历多了自然就明白了,说真的,虽然现在很多人做安全,但并不是每个做安全的人都懂安全,也并不是每个做APT研究的人都懂APT,一些人说使用什么产品就能检测APT,利用什么算法就能检测APT啥的,这些都是基于已有的APT数据进行检测,真正的未知APT攻击事件,基于现在这些已知的数据肯定是检测不出来,不管你用什么算法,你有什么数据,基本都没用,真实的只有当APT事件真实发生之后,有某些异常产生,然后再通过经验丰富的安全研究人员基于这些异常所在的环境对异常进行跟踪溯源分析之后,确认为APT攻击事件,再快速应响,最大限度的帮助客户减少因为APT攻击事件造成的重大损失。
只有真正接触过很多客户真实APT攻击案例,做过很多客户重大安全应急响应溯源分析,并且经验丰富的基础安全研究人员才是发现APT攻击事件的关键,这是一种非常强的安全分析研究能力,这种能力并不是一朝一夕能达到的,需要经过长时间的训练,那么针对以后可能发生的一些未知的APT攻击事件,我们如何能快速发现,以及我们现在能做什么呢?其实很简单,就是不断的积累安全分析与研究经验,以后当别人跟你讨论安全,或者跟你讨论APT的时候,你首先要判断的是这个人值不值得你花时间去跟他深度的探讨一些问题,如果大家都不在一个层次,对安全的理解都不在一个层次,点到为止即可,安全的路还很长,不管未来时代怎么发展,不管平台如何变化,框架如何更新,概念如何炒作,安全问题总是会一直存在,可能不同的时代表现形式不一样吧了,安全是一个过程,并不是开发个什么新平台,推出什么新产品就完事了的,是需要长期的运营的,而且随着现在国际形势的发展,未来这种定向有目的未知的黑客组织发起的APT高级攻击事件在国与国,企业与企业之间会越来越多,安全发展的这么多年,你会发现其实核心的东西其实一直没有变,做为一名安全从业人员,只需要做到:坚持,不忘初心。