杂谈APT(上):现状

  • A+
所属分类:安全文章

--------------------------------------------------

这一篇只是关于APT现状的总结和思考,没有什么先进的理念,也只是为了引出下篇的一个铺垫。

如果对APT已有深刻理解和自己想法的话,这一篇看与不看都无所谓了。

--------------------------------------------------


1】概念


关于APTwiki里的定义是这样的:

通常是出于商业或政治动机,针对特定组织或国家,并要求在长时间内保持高隐蔽性。高级长期威胁包含三个要素:高级、长期、威胁。高级强调的是使用复杂精密的恶意软件及技术以利用系统中的漏洞。长期暗指某个外部力量会持续监控特定目标,并从其获取数据。威胁则指人为参与策划的攻击。


这就很像狗血肥皂剧里的“隔壁老王”,呃 总觉得有点不对劲,但不出个车祸换个血什么的,大概永远都不会知道真相

杂谈APT(上):现状

未满13岁少年,查看此图时请询问家长


2APT 说的不是技术


我是个很偏执的人 —— 比如我看到别人写DDOS或是将其发音为D-DOS(滴,道思),我都会觉得很难受。所以我写的东西里,一般都会是DDoSWebWindowsLinuxUNIX …… 发音也会遵循整词或缩写的发音方式。


APT也一样,很多人跟我谈过APT技术,这让我很困惑。

在我看来,这就好像战争中一种常听到的战术 —— 占领制高点,但究竟如何占领制高点,这个打法恐怕会很多了。大家应该都会围绕着“占领制高点”去讨论方法,但应该没有人会将“占领制高点”本身称为方法吧。


所以,APT不过是一系列攻击过程最终造成的一些结果串联起来的合集,而非一种具体的技术手段,说是威胁最好,说是结果勉强也能接受,但下次你要是跟我讲APT技术原理什么的,不要怪我抽你。


3】攻击过程


APT的三个要素是“高级、长期和威胁”。

根据这三个要素,结合已知案例,我将APT分为两类常见场景:


第一类:利用高级漏洞或技术的攻击过程

即,使用了未知漏洞(0-day)或新的技术手段(例如,绕过特定防护的手段),这类APT过程一定是 0-day(或新技术手段) + 传统漏洞 + 传统工具 相结合的一个过程,换言之,0-day 可能是用来在关键位置的精准打击,以达到确定性的结果,否则将0-day用于批量打击或是用于不确定性结果的试错打击的话,其潜在的损失成本就过大了 —— 以下为了描述方便,就将这样的攻击过程统称“0-day攻击”,虽不严谨,但写起来足够方便 :)


第二类:过程复杂但漏洞或技术手段并不罕见

以下将这类攻击统称为“复杂性攻击”。这类攻击往往是由于目标系统复杂、涉及业务数量多、以及IT设备数量庞大,这样的系统中,“木桶原理”造成的短板缺陷足够凸显,偌大的一个系统很可能因为内部蜘蛛网一样的信任关系以及一道弱口令就造成全盘失守 —— 这种案例在过去十几年中见过的真可谓数不胜数。


4】防护/检测 特点


面向APT的防护与检测场景目前常见的有三类,我这里就不具化到产品,而只是以技术分析做一些罗列。

在我看来,这些行为只能是在APT过程中针对特定环境中的确定性结果的一种捕获,只具备局部发现能力,面对真正的APT还是差距甚远。但不得不提的事实却是,以现有技术手段,能达到这样的效果其实也算是一种不错的妥协了,毕竟APT不是一个两个点或一两个人的事情:


第一类:已知技术特征监测

这就是指,对那些已暴露出来的APT行为的关键点或整个行为进行监测。比如,stunxnetduquflame等一系列的被明确定义成为APT的病毒。如此精妙的程序一定不只存在于一两个环境中,但这样的程序被利用在如此复杂的攻击过程之中时,如果在多个环境中存在的话,也一定会根据其应用环境有过特别的定制,不过,其行为特征或部分关键技术特征一定是可以被侦测到的。

所以针对此类问题的快速响应可用于一批还未被发现的APT案例中去,这也是威胁情报(threat intelligence)所期望解决的一种情况。


第二类:非确定性的0-day监测

当前,0-day攻击仍然是APT中的一个重点。

如同上面所描述的那样,关键点的确定性打击如果有一个0-day在手会变得非常轻松,换作是谁,谁都会希望在此时使用。而且,更为重要的是,0-day是前期信息技术不对称所造成的一个非常重要的产物 —— 在对立国家或组织掌握了大份额市场中的操作系统、网络应用、甚至网络基础设施的0-day时,它就成为了一种“高纬度向低纬度”进行降维打击的最佳利器。但是,随着技术的革新,那些老旧的、占有市场大额的势力也正在被逐步淘汰(例如,M$及其捆绑的附属软件都不得不开始免费或降低费用),再加上“国产化”、白帽子卖漏洞、组织收漏洞、黑产冲击、多组织竞争 等问题,多数0-day 就会出现“有权不用、过期作废”的问题,甚至有些0-day真的是还没来得及用就已经作废。所以,一旦进行APT攻击的组织拿到一个可用的0-day时,在第一次出现“确定性的结果”时,其出手使用0-day的概率便会变得非常大。

因此,很多APT的检测都会利用基于行为的沙箱来做0-day发现,并以此作为APT的一个重要标志。


第三类:业务监测

FireEye 报告里的数据告诉我们,Web门户已经成为APT的一个新入口,是传统入口的五倍之多。而邮件系统则是APT的一种重点目标或是重要环节,所以,伴随着这样的入口论和目标论,也出现一些以业务结果导向的监测。

比如,Web防护设备上加上点花样来解决门户监测及防御,邮件网关上融合点DPI之类的东西来解决邮件问题。其实说到底,也就是第二类别(0-day沙箱)到特定业务的针对性应用。

但也会有些人在这类比较传统的方案上加上点新酒,比如,现在很多厂商学习黑客的思路应用了安全大数据 —— 黑客搞大数据无非就是把他所有可能的潜在受害目标的任何信息都积累起来(个人及IP在互联网上暴露出来的信息),安全公司玩大数据的话,那也必然是类似思路,就是把黑客暴露在互联网上的信息采集起来,也搞一个库来二次关联整理。

这样,相对传统方式好点的效果就在于,有人打过来了,如果这个人在库里出现了可匹配的特征,那么,根据他过往的行为和信息,就可以判断这是否是一次值得深度关注和跟踪的攻击。


但无论如何,以上三类监测,都是以“结果导向”进行监测的。

结果导向是当前安全检测、监测和防护的主要手法,例如,常见的黑名单也是一种结果导向,只不过相对这里所说的更微观一些。

结果导向的问题在于,过分关注临门一脚而射门前的传带配合只知皮毛 —— 所以好的教练讲战术,不好的教练只会让你像个傻X一样苦命射门。


而在真正的APT过程中,除了最终的那个打击点之外,其实还会有很多附属伤害。而在我看来,过程中的附属伤害是必须考虑进去的,原因有两点:


  • 附属伤害造成的损失可能不会小于最终“你以为的那个结果”所带来的伤害


就好象很多人都以为,真正的敏感数据应该是存储在特定的业务服务器上一样。其实,更多可能出现的事实则是 —— 敏感数据只是在特定的业务服务器上存储的相对集中而已,而多数情况,都是敏感数据以不同形式分布在一些你可能都不知道其存在的服务器中,或是干脆分散在不同的业务小能手的笔记本电脑上。但黑客作为“挖矿能手”来说,翻出这些你都不知道的服务器里的数据或是打掉几个员工的笔记本可比你想象的简单多了。也会比去寻找那个扎满了篱笆的业务服务器来说显得更容易一些。


  • 附属伤害是“你以为的那个结果”的前奏,因此附属伤害很可能是一个指标性的判断


虽然我没有亲历过APT,但我也在上百个节点组成的大型业务系统中游走过(当然是授权的)。凭借这么多年的经验,我自认为除了精通业务的内鬼以外,一些真正的执行者在内部游走过程中摸索的手段未必会比我们高深多少。但就算如此,我们还是留下了一些列蛛丝马迹,整个环节可发现、可预警、可防治。

另外,在这个过程中,我们也确实顺手搞出来很多其他比既定目标价值更大的东西 —— 这是最初大家都没有想到的。


5】案例 —— HBGary Federal


我印象里,
Anonymous 的各类活动中(至少从发布出来的看),好像没有什么特别精彩的入侵,一般都是打打流量,而有时候流量还小的可怜。但是对 HBGary 那一次好像不太一样,而且他们后来还把整个过程总结出来,这个案例算不得严格的APT过程,但却有不少相似性(尤其像我所说过的复杂性攻击),也能比较好的解释我所说的“附属伤害”问题。

关于这次攻击,anonymous 自己的描述参考这里:

http://arstechnica.com/tech-policy/2011/02/anonymous-speaks-the-inside-story-of-the-hbgary-hack/1/


或是参考我画出来的两条攻击路径:


杂谈APT(上):现状


路径1

老旧为下线的CMS系统存在注入 -> 拿到HASH -> 彩虹表 -> CEO和COO密码 -> COO密码可用于 support.hbgary.com 远程管理 -> 本地提权 -> 本地挖数据

路径2

从拿到CEOCOO密码开始 -> CEO密码可用于邮件系统管理员密码 -> 邮件欺骗获取rootkit.com的账户但因安全配置而导致无法登陆 -> 进一步欺骗管理员开放各种安全设置最终成功进入系统


这个案例仅供对号入座。



6】摆脱局限性


其实,说了这么多,大概都可以看出来,APT之所以解决的不好,主要是因为监测和检测手段的局限性,而这种局限性又来自于系统中各个层面各自为战而导致的信息无法互相融合和畅通的转换,因此,七层应用无法知道四层流量发生了什么,只能各说各话各做各事,很多东西甚至可能重复检测而却又产生不同的结果。


所以,这追溯到一个问题 —— 为什么我关掉BLOG三年多之后又开始提笔写文章。因为 ThreatIntelligence 这样简单的一个概念和思路,却可以把我以前的很多困惑解决,而我一直在APT上的困惑也是类似 —— 因为APT需要一个中立方来协调一切、组织一切, ThreatIntelligence 这东西带给我的不是什么可吹、可追的虚幻概念,而是让我看到了产业内期望联合到一起、整合资源的一种姿态,这种姿态真的可以改变很多现状和瓶颈。


虽然,在未来很长一段时间内Threat Intelligence 在国内的发展肯定不如最初设想的那么美好,但是,有希望却总是好的。



************ 未完,待续 ************

下篇预告

结合威胁情报以及通用网络架构进行分层识别威胁,并勾勒出多路径化的威胁识别思路(此法不是针对APT,是通用思路)。


本文始发于微信公众号(Piz0n):杂谈APT(上):现状

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: