以攻为守:黑产攻防的反制之道
2020-09-21
来源:互联网安全内参
本文整理自2020北京网络安全大会(BCS)企业安全运营实践论坛上京东耿志峰的发言。
耿志峰,京东安全首席架构师,负责京东产品与基础设施安全、数据安全和蓝军建设等工作,具有多年大数据安全、威胁情报、黑产对抗等经验,是大数据安全、企业安全架构设计和攻防对抗等领域专家。
我是京东安全的首席架构师耿志峰,很高兴参加企业安全运营实践论坛。我报告的题目是《以攻为守,黑产攻防的反制之道》,感谢论坛和君哥的邀请。
京东每天都在抵御各种各样的网络攻击。以前黑产来攻击京东的时候,京东是主动地感知黑产的攻击,然后发现黑产的攻击点,对攻击点进行重点防护,除此之外,我们也会通过提前预演攻击进行防护。
后来我们发现,只有防护是不够的,我们应该主动去发现弱点,比如我们的产品有哪些漏洞,基础设施开放了哪些不应开放的端口。
再后来,我们认为,弱点是发现不完的,因为业务会越做越大,弱点也会随着业务的膨胀而膨胀。当然,企业可以用自动化的方法来控制弱点的发生概率,但是我们更应该正视弱点——弱点是不可能被完全消灭的。所以我们开始思考,如何才能站在黑产的角度,对黑产进行对抗和反制。
作为一家电商公司,京东每天都在遭受各种各样的攻击,比如薅羊毛、盗取数据、控制服务器等,甚至还有从名誉上对京东进行攻击的。我们就从一个真实的案例说起——
前段时间,我们发现暗网上有人出售机器注册的账号(以下简称“机注账号”),里面有很多京东的账号。发现这个情况以后,我们首先去获取了一批机注账号,在系统里对它们进行了标记,然后观察这些账号的行为。我们发现,这些账号不仅活跃于暗网的账号交易市场,它们的利用也非常活跃。通过标记,我们发现了黑产的主要攻击点,并进行了修复。除了标记之外,从这些数据本身也可以看出他们的主要攻击点,因为通过这些数据的行为,我们能够进行聚类,从而发现他们的主要目标进行修复。
通常来说,到这里攻防已经基本结束了,但还有其他问题——
机注账号从哪里来的?
为什么这些账号能够机注?
为什么黑产拿到这些账号之后可以实施后续的攻击?
除了企业资产有弱点之外,更深层次的原因是什么?
首先看第1个问题,机注账号是怎么来的。我们对这些攻击进行了溯源,发现这些账号都来源于一个打码平台。这些打码平台会提供一个正常的账号注册成功所必需的一切条件,比如验证码等等。我们在拿到这个打码平台的一些工作原理之后,发现在注册环节其实是可以对它进行一定防御的,这样就从某种程度上减少了账号本身的生产量。
除此之外,黑产在攻击企业资产弱点的时候,为什么能够准确地发现,并且大批量的应用?首先,我们会想到黑产有自动化的工具,因此,我们要去查找这些弱点和工具,找到以后对它的利用方式进行研判,然后把这些弱点给修复掉。但是更深层的是,为什么他们能够发现这些弱点?京东每天也在进行大量的或人工、或自动的检测,为什么没有发现?说到这里,我们在下一个话题会继续丰富这段内容。
到目前为止,我们已经对黑产有了基本的掌握——有人在生产物料,也就是机注账号,有人在发掘公司资产的弱点,有人在制作利用账号对弱点进行攻击的工具,这样才能使整个链条高效运转。然而,现在探查到的是否就是黑产攻击的全貌?不一定。所以在发现的这些弱点的基础上,我们做了一些陷阱,通过这些陷阱,果然捕获到了更多的攻击行为。随后,我们对通过陷阱拿到的所有数据进行了分析,得到了更多的攻击信息,挖掘到了更多攻击路径,找到了更多弱点,掌握了更多黑产动态,这是一个比较典型的案例。
上图就是黑产攻击的流量曲线图。在对整个黑产攻击进行监控的过程中,随着监控的范围、方法和手段越来越丰富,我们逐渐探查到越来越多的黑产攻击,然后把探查到的黑产攻击放在这张图上。
这张图最明显的特点就是有波谷和波峰,对比时间,每一个峰谷恰好对应着一次漏洞的爆发或者公司一项重大事件的发生,以图中的三个爆发点为例:
第1个点是京东安全的蓝军挖掘到一个Apache,顶级项目大数据分析平台clean的一个0day漏洞,我们第一时间把这个漏洞贡献给了Apache基金会,官方也进行了公布,并且在随后不久进行了修复。但就在这公布的一小段时间里,马上迎来了一波攻击,所以一定是有人在盯着这些被大规模应用的中间件的漏洞。
第2个点,也是一个比较典型的案例,就是业内所熟知的Fastjson漏洞的一次爆发,恰巧在京东618之前,所以也给我们造成了很多困扰。从图中可以看到,因为在这个过程中我们投入大量精力进行修复,所以它呈一个交替上升下降的过程,即这是一个跟黑产对抗的过程。
第3个点,是京东每年一度的618大促活动,这次活动的前期,黑产攻击几乎是一字型上升的态势,黑产的攻击流量大幅增加。所以从这张图我们能够看出,所谓的黑产攻击,跟事件的爆发、原料的突发息息相关。
通过过去一段时间的运营,我们基本上掌握了黑产的两个基本特点,这里我画了一个简图——
首先黑产具有目的性,一方面是他们有直接利益驱动,另一方面是间接获利,包括窃取数据,获取服务器的控制权,获取计算资源等等,比如在计算资源里面放置挖矿等木马,还有一种情况是有一些商业上的竞争关系,希望阻断被攻击企业的业务连续性。
对于这些目的,通常都有不同的金主,也就是所谓的需求方来发布需求。发布需求的方式多种多样,有QQ群、线下等。一旦攻击者拿到了这个需求之后,就会开始实施攻击。
但通常来说攻击者不会从0开始,不会重新拉漏洞,收集信息,然后进行攻击,攻击者往往会到大的交易平台上再去拆解,寻找他希望获取的物料。
在大的交易平台上会有人提供企业的漏洞、工具等物料,然后攻击者就可以利用这些物料组合起来,去实现金主的需求。
这个交易平台其实是一个虚拟的概念,有可能是暗网,有可能是各种各样的沟通群。我们对这个工具平台上的需求进行了三种分类:
第1类是公司资产的弱点。有大量的黑帽会对公司资产的弱点进行挖掘,比如破解协议、发现漏洞、逻辑绕过、鱼叉攻击等等。这些黑帽会把他发现的弱点发布到市场上,以满足攻击者的需求。
第2类是工具。通常情况下,工具都是自动化批量攻击,而非手工一次一次进行攻击。所以工具制作者的主要目标是要把一些已知的漏洞信息进行组合,打磨成一个工具,例如前面提到的案例,把机注账号输入,把弱点变成自动化的、可以利用的一个小工具,然后把它们结合在一起,制造出一个黑软,最后在工具市场上发布和销售。
第3个是物料。物料制作者的手中有大量的账号、肉鸡和流量。流量可以实施DDoS攻击,账号可以实现薅羊毛等攻击,肉鸡则可以通过植入木马,进行挖矿、控制或者越权等操作。
有了这几个角色的密切配合,在攻击者的协同下,一次企业所要面临的攻击就完整地呈现给了攻击者,最后实现金主的需求。
前面是我们对黑产的一设想,以及对他们进行的聚类分析,这些黑产分工明确,有上下业务,有链条式的协作关系,结合我们平时所掌握的攻击手段,我们分别对黑产所用到的主要手段进行了反制研究——
第一类,物料和信息类的反制方法,即如何对提供账号、肉鸡和流量的黑产进行反制。
首先,需要探查到这件事情正在发生,但最大的问题是,我们无法掌握全部信息,甚至掌握的信息已经后置,在这里有一个反制窍门,就是渗透投放。我们伪造一批账号、肉鸡投到市场上去,来引出更多的线索,比如我们发现买家是谁,这个买家是不是还买了其他的账号和肉鸡,从而扩充我们的整个信息源,提高我们的感知能力。
第二类就是对工具类攻击的反制,首先我们会对这些工具进行收集,在这个基础上对工具进行逆向研究,看工具本身是如何实施这项工程的,并且,从工具本身我们也能挖掘到大量的数据,最后,工具还可以再投放,再引出更多的工具和数据。拿到这些工具和数据之后,我们对它进行特征分析,辨别它所使用的流量特征,行为特征,以及其他更多特征,然后对这些特征进行建模,通过模型对我们自身的流量再进行分析,就可以引出更多类似的攻击。
在拿到这些工具和数据之后,我们基本上可以掌握一家公司被攻击的底貌。掌握这个底貌之后,就可以辨别这个团伙的明显特征,不同团伙的倾向、偏好和擅长点都不相同,我们对这些团伙进行聚类,只要发现他的一个蛛丝马迹,就能够顺藤摸瓜。
因此,在这个环节,我们重要的方法是提取特征,随后进行延伸,顺藤摸瓜找到这个团伙以及他的上下游,并在合规的前提下对这些团伙和工具进行压制。
第三类就是前面讲到的攻击的实施,黑产最终要对企业的资产进行攻击来实现获利的目的。这个时候我们会设置一些密码,把一些流量放出来去观察黑产的行为,通过蜜罐的方式把这些攻击导入陷阱。这些攻击通常来说是自动化的,感知能力并不强,因此我们可以通过陷阱的方式给他提供假的数据,以此探查黑产的目的。通过类似蜜罐的收集,我们还可以对攻击源头进行定位,比如源头是一个IT资产,然后再对这些资产进行反制,所有的反制措施和黑客的攻击手段基本都是一一对应的。
随着收集的样本和反制的案例越来越多,我们也基本明确了黑产反制的主要目标——
第一个目标,是要让黑产利用的弱点和工具失效;
第二个目标,是要迷惑黑产,诱敌深入;
第三个目标,是要进行反击,对黑产的源头——无论是团伙还是工具进行打击。
围绕这些目标,京东也形成了自身的黑产反制框架——JFC-OPS,分为四大步骤:
第1步:感知。通过监控告警数据,以及暗网流量等,确认当前是否被攻击,以及攻击的种类、方式和攻击的资产类型。
第2步:引导。我们会对可疑流量以及可能发生的攻击点设置一些陷阱,从而推导出更多的攻击特征、攻击流量以及攻击方法。
第3步:对攻击进行溯源。到底是谁、用何种方式和资产、对京东的哪些资产进行攻击,进行全链条的分析,最后得到工具的生产者,攻击的实施者以及他们的一些特征,甚至于位置信息。
第4步:溯源之后的反攻。根据攻击源和攻击方式的不同,采用不同的反制手段,让攻击语言本身丧失攻击能力。
通过整个框架不断地迭代成熟,从上图中我们可以看到攻击流量发生了转折,但不可忽视的是,安全的本质是对抗,在上图中也深刻地反映了这一点——我们有我们的反制之道,黑产也有黑产的对抗之道。
比如在上图中,某一周我们通过反制,使攻击流量迅速下降,但是经过2~3周的迭代之后,我们发现攻击流量又有了新的方法,我们又进行了反制,攻击流量继续下降,未来会一直延续这样的过程,只不过对抗的强度和力度会越来越大。
前面所有的数据我都特意做了脱敏,其中的一些数量级以及特征都进行了虚化,因为话题本身比较敏感,感兴趣的朋友,可以加我的微信,我们一起聊一下如何对抗黑产。
我们知道,靠一家公司去对抗整个黑产是不现实的,而且可以看到,黑产分工明确,可能比图中所呈现的更为细致,最重要的是他们有利益驱动,不会放弃攻击。
最后我想讲一讲在黑产反制的过程中需要注意的问题:
首先,反制过程一定要合规。如果我们做这件事情没有合规,那我们跟黑产可能也没什么区别。
其次,就是我们会不会又被黑产反制,也就是反反制——前段时间,京东内部进行红蓝对抗,就有过一个经典的案例:我们的攻击方对红军进行了钓鱼攻击,他把这个过程做的比较容易让人发现,我们的防守方发现了以后就进行了反制。但是在反制的过程中,攻击方设置了一个攻击方的陷阱,防守方去反制攻击方的时候,反倒中了攻击方的一个圈套,留下了自己的一些关键信息,让攻击方拿到了更多的权限,获取了更大的胜利。
这也是我们在黑产反制的过程中一定要注意的一点,这个话题业界讨论还不太多,我也不能透露的非常具体,欢迎大家能够一起跟我线下交流,也希望君哥的论坛能够再次组织这方面的探讨。