本文整理自2020北京網(wǎng)絡(luò)安全大會(huì)(BCS)企業(yè)安全運(yùn)營實(shí)踐論壇上京東耿志峰的發(fā)言。
耿志峰,京東安全首席架構(gòu)師,負(fù)責(zé)京東產(chǎn)品與基礎(chǔ)設(shè)施安全、數(shù)據(jù)安全和藍(lán)軍建設(shè)等工作,具有多年大數(shù)據(jù)安全、威脅情報(bào)、黑產(chǎn)對(duì)抗等經(jīng)驗(yàn),是大數(shù)據(jù)安全、企業(yè)安全架構(gòu)設(shè)計(jì)和攻防對(duì)抗等領(lǐng)域?qū)<摇?/p>
我是京東安全的首席架構(gòu)師耿志峰,很高興參加企業(yè)安全運(yùn)營實(shí)踐論壇。我報(bào)告的題目是《以攻為守,黑產(chǎn)攻防的反制之道》,感謝論壇和君哥的邀請(qǐng)。
京東每天都在抵御各種各樣的網(wǎng)絡(luò)攻擊。以前黑產(chǎn)來攻擊京東的時(shí)候,京東是主動(dòng)地感知黑產(chǎn)的攻擊,然后發(fā)現(xiàn)黑產(chǎn)的攻擊點(diǎn),對(duì)攻擊點(diǎn)進(jìn)行重點(diǎn)防護(hù),除此之外,我們也會(huì)通過提前預(yù)演攻擊進(jìn)行防護(hù)。
后來我們發(fā)現(xiàn),只有防護(hù)是不夠的,我們應(yīng)該主動(dòng)去發(fā)現(xiàn)弱點(diǎn),比如我們的產(chǎn)品有哪些漏洞,基礎(chǔ)設(shè)施開放了哪些不應(yīng)開放的端口。
再后來,我們認(rèn)為,弱點(diǎn)是發(fā)現(xiàn)不完的,因?yàn)闃I(yè)務(wù)會(huì)越做越大,弱點(diǎn)也會(huì)隨著業(yè)務(wù)的膨脹而膨脹。當(dāng)然,企業(yè)可以用自動(dòng)化的方法來控制弱點(diǎn)的發(fā)生概率,但是我們更應(yīng)該正視弱點(diǎn)——弱點(diǎn)是不可能被完全消滅的。所以我們開始思考,如何才能站在黑產(chǎn)的角度,對(duì)黑產(chǎn)進(jìn)行對(duì)抗和反制。
作為一家電商公司,京東每天都在遭受各種各樣的攻擊,比如薅羊毛、盜取數(shù)據(jù)、控制服務(wù)器等,甚至還有從名譽(yù)上對(duì)京東進(jìn)行攻擊的。我們就從一個(gè)真實(shí)的案例說起——
前段時(shí)間,我們發(fā)現(xiàn)暗網(wǎng)上有人出售機(jī)器注冊(cè)的賬號(hào)(以下簡稱“機(jī)注賬號(hào)”),里面有很多京東的賬號(hào)。發(fā)現(xiàn)這個(gè)情況以后,我們首先去獲取了一批機(jī)注賬號(hào),在系統(tǒng)里對(duì)它們進(jìn)行了標(biāo)記,然后觀察這些賬號(hào)的行為。我們發(fā)現(xiàn),這些賬號(hào)不僅活躍于暗網(wǎng)的賬號(hào)交易市場(chǎng),它們的利用也非?;钴S。通過標(biāo)記,我們發(fā)現(xiàn)了黑產(chǎn)的主要攻擊點(diǎn),并進(jìn)行了修復(fù)。除了標(biāo)記之外,從這些數(shù)據(jù)本身也可以看出他們的主要攻擊點(diǎn),因?yàn)橥ㄟ^這些數(shù)據(jù)的行為,我們能夠進(jìn)行聚類,從而發(fā)現(xiàn)他們的主要目標(biāo)進(jìn)行修復(fù)。
通常來說,到這里攻防已經(jīng)基本結(jié)束了,但還有其他問題——
機(jī)注賬號(hào)從哪里來的?
為什么這些賬號(hào)能夠機(jī)注?
為什么黑產(chǎn)拿到這些賬號(hào)之后可以實(shí)施后續(xù)的攻擊?
除了企業(yè)資產(chǎn)有弱點(diǎn)之外,更深層次的原因是什么?
首先看第1個(gè)問題,機(jī)注賬號(hào)是怎么來的。我們對(duì)這些攻擊進(jìn)行了溯源,發(fā)現(xiàn)這些賬號(hào)都來源于一個(gè)打碼平臺(tái)。這些打碼平臺(tái)會(huì)提供一個(gè)正常的賬號(hào)注冊(cè)成功所必需的一切條件,比如驗(yàn)證碼等等。我們?cè)谀玫竭@個(gè)打碼平臺(tái)的一些工作原理之后,發(fā)現(xiàn)在注冊(cè)環(huán)節(jié)其實(shí)是可以對(duì)它進(jìn)行一定防御的,這樣就從某種程度上減少了賬號(hào)本身的生產(chǎn)量。
除此之外,黑產(chǎn)在攻擊企業(yè)資產(chǎn)弱點(diǎn)的時(shí)候,為什么能夠準(zhǔn)確地發(fā)現(xiàn),并且大批量的應(yīng)用?首先,我們會(huì)想到黑產(chǎn)有自動(dòng)化的工具,因此,我們要去查找這些弱點(diǎn)和工具,找到以后對(duì)它的利用方式進(jìn)行研判,然后把這些弱點(diǎn)給修復(fù)掉。但是更深層的是,為什么他們能夠發(fā)現(xiàn)這些弱點(diǎn)?京東每天也在進(jìn)行大量的或人工、或自動(dòng)的檢測(cè),為什么沒有發(fā)現(xiàn)?說到這里,我們?cè)谙乱粋€(gè)話題會(huì)繼續(xù)豐富這段內(nèi)容。
到目前為止,我們已經(jīng)對(duì)黑產(chǎn)有了基本的掌握——有人在生產(chǎn)物料,也就是機(jī)注賬號(hào),有人在發(fā)掘公司資產(chǎn)的弱點(diǎn),有人在制作利用賬號(hào)對(duì)弱點(diǎn)進(jìn)行攻擊的工具,這樣才能使整個(gè)鏈條高效運(yùn)轉(zhuǎn)。然而,現(xiàn)在探查到的是否就是黑產(chǎn)攻擊的全貌?不一定。所以在發(fā)現(xiàn)的這些弱點(diǎn)的基礎(chǔ)上,我們做了一些陷阱,通過這些陷阱,果然捕獲到了更多的攻擊行為。隨后,我們對(duì)通過陷阱拿到的所有數(shù)據(jù)進(jìn)行了分析,得到了更多的攻擊信息,挖掘到了更多攻擊路徑,找到了更多弱點(diǎn),掌握了更多黑產(chǎn)動(dòng)態(tài),這是一個(gè)比較典型的案例。
上圖就是黑產(chǎn)攻擊的流量曲線圖。在對(duì)整個(gè)黑產(chǎn)攻擊進(jìn)行監(jiān)控的過程中,隨著監(jiān)控的范圍、方法和手段越來越豐富,我們逐漸探查到越來越多的黑產(chǎn)攻擊,然后把探查到的黑產(chǎn)攻擊放在這張圖上。
這張圖最明顯的特點(diǎn)就是有波谷和波峰,對(duì)比時(shí)間,每一個(gè)峰谷恰好對(duì)應(yīng)著一次漏洞的爆發(fā)或者公司一項(xiàng)重大事件的發(fā)生,以圖中的三個(gè)爆發(fā)點(diǎn)為例:
第1個(gè)點(diǎn)是京東安全的藍(lán)軍挖掘到一個(gè)Apache,頂級(jí)項(xiàng)目大數(shù)據(jù)分析平臺(tái)clean的一個(gè)0day漏洞,我們第一時(shí)間把這個(gè)漏洞貢獻(xiàn)給了Apache基金會(huì),官方也進(jìn)行了公布,并且在隨后不久進(jìn)行了修復(fù)。但就在這公布的一小段時(shí)間里,馬上迎來了一波攻擊,所以一定是有人在盯著這些被大規(guī)模應(yīng)用的中間件的漏洞。
第2個(gè)點(diǎn),也是一個(gè)比較典型的案例,就是業(yè)內(nèi)所熟知的Fastjson漏洞的一次爆發(fā),恰巧在京東618之前,所以也給我們?cè)斐闪撕芏嗬_。從圖中可以看到,因?yàn)樵谶@個(gè)過程中我們投入大量精力進(jìn)行修復(fù),所以它呈一個(gè)交替上升下降的過程,即這是一個(gè)跟黑產(chǎn)對(duì)抗的過程。
第3個(gè)點(diǎn),是京東每年一度的618大促活動(dòng),這次活動(dòng)的前期,黑產(chǎn)攻擊幾乎是一字型上升的態(tài)勢(shì),黑產(chǎn)的攻擊流量大幅增加。所以從這張圖我們能夠看出,所謂的黑產(chǎn)攻擊,跟事件的爆發(fā)、原料的突發(fā)息息相關(guān)。
通過過去一段時(shí)間的運(yùn)營,我們基本上掌握了黑產(chǎn)的兩個(gè)基本特點(diǎn),這里我畫了一個(gè)簡圖——
首先黑產(chǎn)具有目的性,一方面是他們有直接利益驅(qū)動(dòng),另一方面是間接獲利,包括竊取數(shù)據(jù),獲取服務(wù)器的控制權(quán),獲取計(jì)算資源等等,比如在計(jì)算資源里面放置挖礦等木馬,還有一種情況是有一些商業(yè)上的競爭關(guān)系,希望阻斷被攻擊企業(yè)的業(yè)務(wù)連續(xù)性。
對(duì)于這些目的,通常都有不同的金主,也就是所謂的需求方來發(fā)布需求。發(fā)布需求的方式多種多樣,有QQ群、線下等。一旦攻擊者拿到了這個(gè)需求之后,就會(huì)開始實(shí)施攻擊。
但通常來說攻擊者不會(huì)從0開始,不會(huì)重新拉漏洞,收集信息,然后進(jìn)行攻擊,攻擊者往往會(huì)到大的交易平臺(tái)上再去拆解,尋找他希望獲取的物料。
在大的交易平臺(tái)上會(huì)有人提供企業(yè)的漏洞、工具等物料,然后攻擊者就可以利用這些物料組合起來,去實(shí)現(xiàn)金主的需求。
這個(gè)交易平臺(tái)其實(shí)是一個(gè)虛擬的概念,有可能是暗網(wǎng),有可能是各種各樣的溝通群。我們對(duì)這個(gè)工具平臺(tái)上的需求進(jìn)行了三種分類:
第1類是公司資產(chǎn)的弱點(diǎn)。有大量的黑帽會(huì)對(duì)公司資產(chǎn)的弱點(diǎn)進(jìn)行挖掘,比如破解協(xié)議、發(fā)現(xiàn)漏洞、邏輯繞過、魚叉攻擊等等。這些黑帽會(huì)把他發(fā)現(xiàn)的弱點(diǎn)發(fā)布到市場(chǎng)上,以滿足攻擊者的需求。
第2類是工具。通常情況下,工具都是自動(dòng)化批量攻擊,而非手工一次一次進(jìn)行攻擊。所以工具制作者的主要目標(biāo)是要把一些已知的漏洞信息進(jìn)行組合,打磨成一個(gè)工具,例如前面提到的案例,把機(jī)注賬號(hào)輸入,把弱點(diǎn)變成自動(dòng)化的、可以利用的一個(gè)小工具,然后把它們結(jié)合在一起,制造出一個(gè)黑軟,最后在工具市場(chǎng)上發(fā)布和銷售。
第3個(gè)是物料。物料制作者的手中有大量的賬號(hào)、肉雞和流量。流量可以實(shí)施DDoS攻擊,賬號(hào)可以實(shí)現(xiàn)薅羊毛等攻擊,肉雞則可以通過植入木馬,進(jìn)行挖礦、控制或者越權(quán)等操作。
有了這幾個(gè)角色的密切配合,在攻擊者的協(xié)同下,一次企業(yè)所要面臨的攻擊就完整地呈現(xiàn)給了攻擊者,最后實(shí)現(xiàn)金主的需求。
前面是我們對(duì)黑產(chǎn)的一設(shè)想,以及對(duì)他們進(jìn)行的聚類分析,這些黑產(chǎn)分工明確,有上下業(yè)務(wù),有鏈條式的協(xié)作關(guān)系,結(jié)合我們平時(shí)所掌握的攻擊手段,我們分別對(duì)黑產(chǎn)所用到的主要手段進(jìn)行了反制研究——
第一類,物料和信息類的反制方法,即如何對(duì)提供賬號(hào)、肉雞和流量的黑產(chǎn)進(jìn)行反制。
首先,需要探查到這件事情正在發(fā)生,但最大的問題是,我們無法掌握全部信息,甚至掌握的信息已經(jīng)后置,在這里有一個(gè)反制竅門,就是滲透投放。我們偽造一批賬號(hào)、肉雞投到市場(chǎng)上去,來引出更多的線索,比如我們發(fā)現(xiàn)買家是誰,這個(gè)買家是不是還買了其他的賬號(hào)和肉雞,從而擴(kuò)充我們的整個(gè)信息源,提高我們的感知能力。
第二類就是對(duì)工具類攻擊的反制,首先我們會(huì)對(duì)這些工具進(jìn)行收集,在這個(gè)基礎(chǔ)上對(duì)工具進(jìn)行逆向研究,看工具本身是如何實(shí)施這項(xiàng)工程的,并且,從工具本身我們也能挖掘到大量的數(shù)據(jù),最后,工具還可以再投放,再引出更多的工具和數(shù)據(jù)。拿到這些工具和數(shù)據(jù)之后,我們對(duì)它進(jìn)行特征分析,辨別它所使用的流量特征,行為特征,以及其他更多特征,然后對(duì)這些特征進(jìn)行建模,通過模型對(duì)我們自身的流量再進(jìn)行分析,就可以引出更多類似的攻擊。
在拿到這些工具和數(shù)據(jù)之后,我們基本上可以掌握一家公司被攻擊的底貌。掌握這個(gè)底貌之后,就可以辨別這個(gè)團(tuán)伙的明顯特征,不同團(tuán)伙的傾向、偏好和擅長點(diǎn)都不相同,我們對(duì)這些團(tuán)伙進(jìn)行聚類,只要發(fā)現(xiàn)他的一個(gè)蛛絲馬跡,就能夠順藤摸瓜。
因此,在這個(gè)環(huán)節(jié),我們重要的方法是提取特征,隨后進(jìn)行延伸,順藤摸瓜找到這個(gè)團(tuán)伙以及他的上下游,并在合規(guī)的前提下對(duì)這些團(tuán)伙和工具進(jìn)行壓制。
第三類就是前面講到的攻擊的實(shí)施,黑產(chǎn)最終要對(duì)企業(yè)的資產(chǎn)進(jìn)行攻擊來實(shí)現(xiàn)獲利的目的。這個(gè)時(shí)候我們會(huì)設(shè)置一些密碼,把一些流量放出來去觀察黑產(chǎn)的行為,通過蜜罐的方式把這些攻擊導(dǎo)入陷阱。這些攻擊通常來說是自動(dòng)化的,感知能力并不強(qiáng),因此我們可以通過陷阱的方式給他提供假的數(shù)據(jù),以此探查黑產(chǎn)的目的。通過類似蜜罐的收集,我們還可以對(duì)攻擊源頭進(jìn)行定位,比如源頭是一個(gè)IT資產(chǎn),然后再對(duì)這些資產(chǎn)進(jìn)行反制,所有的反制措施和黑客的攻擊手段基本都是一一對(duì)應(yīng)的。
隨著收集的樣本和反制的案例越來越多,我們也基本明確了黑產(chǎn)反制的主要目標(biāo)——
第一個(gè)目標(biāo),是要讓黑產(chǎn)利用的弱點(diǎn)和工具失效;
第二個(gè)目標(biāo),是要迷惑黑產(chǎn),誘敵深入;
第三個(gè)目標(biāo),是要進(jìn)行反擊,對(duì)黑產(chǎn)的源頭——無論是團(tuán)伙還是工具進(jìn)行打擊。
圍繞這些目標(biāo),京東也形成了自身的黑產(chǎn)反制框架——JFC-OPS,分為四大步驟:
第1步:感知。通過監(jiān)控告警數(shù)據(jù),以及暗網(wǎng)流量等,確認(rèn)當(dāng)前是否被攻擊,以及攻擊的種類、方式和攻擊的資產(chǎn)類型。
第2步:引導(dǎo)。我們會(huì)對(duì)可疑流量以及可能發(fā)生的攻擊點(diǎn)設(shè)置一些陷阱,從而推導(dǎo)出更多的攻擊特征、攻擊流量以及攻擊方法。
第3步:對(duì)攻擊進(jìn)行溯源。到底是誰、用何種方式和資產(chǎn)、對(duì)京東的哪些資產(chǎn)進(jìn)行攻擊,進(jìn)行全鏈條的分析,最后得到工具的生產(chǎn)者,攻擊的實(shí)施者以及他們的一些特征,甚至于位置信息。
第4步:溯源之后的反攻。根據(jù)攻擊源和攻擊方式的不同,采用不同的反制手段,讓攻擊語言本身喪失攻擊能力。
通過整個(gè)框架不斷地迭代成熟,從上圖中我們可以看到攻擊流量發(fā)生了轉(zhuǎn)折,但不可忽視的是,安全的本質(zhì)是對(duì)抗,在上圖中也深刻地反映了這一點(diǎn)——我們有我們的反制之道,黑產(chǎn)也有黑產(chǎn)的對(duì)抗之道。
比如在上圖中,某一周我們通過反制,使攻擊流量迅速下降,但是經(jīng)過2~3周的迭代之后,我們發(fā)現(xiàn)攻擊流量又有了新的方法,我們又進(jìn)行了反制,攻擊流量繼續(xù)下降,未來會(huì)一直延續(xù)這樣的過程,只不過對(duì)抗的強(qiáng)度和力度會(huì)越來越大。
前面所有的數(shù)據(jù)我都特意做了脫敏,其中的一些數(shù)量級(jí)以及特征都進(jìn)行了虛化,因?yàn)樵掝}本身比較敏感,感興趣的朋友,可以加我的微信,我們一起聊一下如何對(duì)抗黑產(chǎn)。
我們知道,靠一家公司去對(duì)抗整個(gè)黑產(chǎn)是不現(xiàn)實(shí)的,而且可以看到,黑產(chǎn)分工明確,可能比圖中所呈現(xiàn)的更為細(xì)致,最重要的是他們有利益驅(qū)動(dòng),不會(huì)放棄攻擊。
最后我想講一講在黑產(chǎn)反制的過程中需要注意的問題:
首先,反制過程一定要合規(guī)。如果我們做這件事情沒有合規(guī),那我們跟黑產(chǎn)可能也沒什么區(qū)別。
其次,就是我們會(huì)不會(huì)又被黑產(chǎn)反制,也就是反反制——前段時(shí)間,京東內(nèi)部進(jìn)行紅藍(lán)對(duì)抗,就有過一個(gè)經(jīng)典的案例:我們的攻擊方對(duì)紅軍進(jìn)行了釣魚攻擊,他把這個(gè)過程做的比較容易讓人發(fā)現(xiàn),我們的防守方發(fā)現(xiàn)了以后就進(jìn)行了反制。但是在反制的過程中,攻擊方設(shè)置了一個(gè)攻擊方的陷阱,防守方去反制攻擊方的時(shí)候,反倒中了攻擊方的一個(gè)圈套,留下了自己的一些關(guān)鍵信息,讓攻擊方拿到了更多的權(quán)限,獲取了更大的勝利。
這也是我們?cè)诤诋a(chǎn)反制的過程中一定要注意的一點(diǎn),這個(gè)話題業(yè)界討論還不太多,我也不能透露的非常具體,歡迎大家能夠一起跟我線下交流,也希望君哥的論壇能夠再次組織這方面的探討。