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