文章列表

EP42 - 資安攻擊的七個步驟|網路攻擊鏈

Podcast連結


Cyber Kill Chain網路攻擊鏈

Cyber Kill Chain是由 Lockheed Martin公司的三個研究員 Eric Hutchins, Michael Cloppert 跟 Rohan Amin 所推出的一個框架。

Cyber Kill Chain 白皮書 - Intelligence-Driven Computer Network Defense Informed by Analysis of Adversary Campaigns and Intrusion Kill Chains

Cyber Kill Chain 官方網站 - The Cyber Kill Chain | Lockheed Martin

他們透過軍事行動上常見的攻擊鏈來分析資安攻擊,並把資安攻擊拆解成七個步驟:

cyberkillchain

我們今天來透過Cyber Kill Chain來帶大家了解一個常見的駭客攻擊行動是長什麼樣子,再看看我們能夠怎麼樣把應對攻擊的準備做到更好。

Reconnaissance 偵查

偵查和搜集各種關於目標的資訊,了解目標有什麼值得攻擊的點、有哪些弱點、以及攻擊成功的機率高不高。

通常偵查會分為被動式以及主動式:

被動式偵查

透過像是Open Source Intelligence 公開情報來源這類型的手法去搜集各種公開的資料。

駭客會從目標的網站內容、Facebook、Instagram、LinkedIn等等的各種社交軟體上去搜集有用的資訊,有時還可以透過一家公司公布的職缺資訊去推斷他們使用的是哪種系統跟軟體。

主動式的偵查

用一些工具去掃描目標的網站和系統來知道他們使用的是哪種系統、哪個版本的系統,有哪些Port是打開的。接著再去分析這些搜集來的資訊看看目標使用的系統有沒有一些已知的漏洞可以拿來利用,或是可能可以被利用的破口。

防禦手法

減少公開的資料,如果我們不把資訊公開,駭客也就沒就沒有辦法蒐集到這些資訊。

以技術面來看,我們要減少系統暴露在外的訊息,這包含了公開的Port、系統的錯誤訊息、一些連線請求回傳的header 或是metadata等等的資訊,如果沒有把這些資訊隱藏保護好,駭客會可以透過這些資訊知道我們用的是哪個系統和版本。

我們還可以利用HoneyPot或是CanaryToken這類型的警示工具,讓我們在被掃描和偵查的時候可以收到通知。

Weaponization 武裝

尋找以及製造攻擊的工具

駭客會透過在偵查過程中搜集來的資料,來對目標的系統製作對應的攻擊工具。這個步驟的複雜程度會因為目標的不同而有很大的差異。

如果目標使用的系統和軟體有已知的漏洞,駭客可以透過像是Metaploit或是Exploit-DB等等的工具直接取得現成的攻擊工具。

如果目標使用的是比較複雜的系統,或是系統沒有已知的漏洞的話,攻擊者就會需要自己寫攻擊程式,有時候還會需要結合很多不同的漏洞來完成一個有效的攻擊程式。

在這些過程中,駭客不僅僅需要製作出一個可以用的攻擊程式,他還會需要將這個攻擊程式做適度的偽裝,來避免之後在使用的過程中被目標發現。

防禦手法

對於武裝最有效的防禦手法就是更新並修補漏洞

當系統/軟體釋出了更新不僅代表著我們現在使用的系統/軟體有漏洞可能造成安全性上的威脅,還代表了這個漏洞的資訊已經被公開了駭客有可能已經在利用這個漏洞來進行攻擊了。

透過更新來修補這些已知的漏洞,就可以降低駭客透過一些已知或是現成的工具來攻擊我們的機率,大幅度的增加攻擊的困難度。

Delivery 遞送

把攻擊工具送進目標的系統裡

駭客有很多方式可以做到這件事,像是惡意的網站、夾帶著有毒附加檔案的Email、藏有木馬的盜版軟體、惡意的擴充套件。有個駭客還會把藏有惡意程式的隨身碟亂丟在目標會出沒的環境中,期待目標會因為好奇把它撿起來插到自己的電腦裡面。

通常駭客會透過在偵查階段搜集來的資訊,來選擇最容易讓目標上鉤的遞送方法。

防禦手法

正確的資安觀念跟防禦意識

當我們有了正確的觀念以及防禦意識的時候,我們就會知道不要去點開一些來路不明的網站連結或是Email附件、不要下載盜版的軟體、不要把路上撿到的隨身碟插到自己的電腦裡。

這些聽起來都是很基本的觀念的做法,但如果我們能夠將這些防禦意識建立起來的話就可以阻止駭客很多的遞送管道了。

防毒軟體跟一些瀏覽器擴充套件也可以保護我們、幫我們擋下一些惡意網站跟程式。

Exploitation 開採

確認遞送的惡意程式有成功的被執行並取得一定的控制權

即便成功的在上一個步驟終將攻擊程式送到了目標的系統也不代表惡意程式真的會被執行,就像是我們收到了一個email的附加檔案我們也不一定會把它打開一樣。

因此確保遞送的惡意程式成功的被執行讓駭客取得目標系統一定的控制權,這樣才有辦法繼續執行接下來要做的事。

防禦手法

我們可以透過防毒軟體,企業/組織還可以配合使用入侵偵測系統來偵測或是阻擋駭客遞送進來的惡意程式,避免我們不小心執行了這些惡意程式。

Installation 安裝

駭客要確保能夠持續地保持在目標的系統內

透過安裝木馬、後門或是像是Rootkit這類型會入侵電腦的BIOS或是韌體的攻擊工具,來確保即使電腦重開機了,他們安裝的惡意程式也會再次被執行。有些Rootkit甚至不怕電腦重設,因為他們入侵了比作業系統更底層的部分,因此即使我們刪掉所有的檔案重灌電腦也沒有用。

這對於駭客來說最重要的點在於不要讓前面所做的所有努力白費,不然如果辛苦植入的惡意程式在目標發現電腦怪怪的,把電腦重開機以後就不能用的話,就會需要把前面四個步驟全部重新來過。

防禦手法

這裡的重點會從抵擋住駭客變成偵測出駭客了,畢竟駭客都已經完成開採的話就表示我們該有的防護已經失效了。我們就會透過偵測系統和電腦內部的活動,來看看有沒有不正常活動跡象。

資安資訊和事件管理系統和帶有使用者行為分析功能的防毒軟體都會是可以幫我們偵測出這些不正常活動的工具。

Command & Control 發令&控制

我們會把發令和控制的英文Command and Control 簡稱為C2

駭客攻擊通常不單單只是想辦法入侵系統然後快速的發動攻擊那麼簡單而已,很多的攻擊行動都會在入侵了目標以後先潛伏並搜集資料再見機行事。有時還要把已經入侵的電腦當作跳板,去入侵更深入更機密的系統,因此當惡意程式成功安裝在目標以後,很多駭客會做的事就是與惡意程式建立連線通道,讓駭客手動控制這個惡意程式,透過這個方式來依照情況下達更精確的下一步指令。

這麼做的好處是,駭客不需要在最一開始的武裝過程中就把所有東西寫好,畢竟大部分的時候駭客是不知道目標的內部系統長什麼樣子的很難在入侵之前就知道之後要做的每一件事。透過建立起C2連線,駭客就可以在成功進入目標系統以後再根據當下蒐集到的資訊去做下一步的判斷跟行動,這樣就可以避免掉很多錯誤的嘗試,從某些角度來看也比較不會被發現。

防禦手法

阻斷惡意程式跟C2伺服器間的連線

我們可以透過防火牆或是網路入侵阻擋系統去阻擋這些連線,我們也可以透過之前跟大家介紹過的威脅情資 Threat Intelligence來取得所有已知的C2伺服器資訊,並擋下所有跟這些C2伺服器的連線。

Actions on Objectives行動

駭客的最終目標

這個最終目標會因為很多因素而有所不同,可能是為了錢、商業機密、政治因素,最近也聽到越來越多針對目標的上游廠商或是下游客戶所發起的供應鏈攻擊

一般來說,如果完成了行動這個步驟,就代表駭客成功地進行了一次攻擊。

防禦手法

要阻止駭客的行動會因為駭客的目標不同而有所不同,因此很難有一個萬用的方法。

但是我們可以透過之前跟大家介紹過的威脅模型分析 Threat Modeling,透過攻擊者的角度去思考我們有哪些重要的資產可能會是駭客的目標,接著透過分析的結果針對重要的資產去做保護,這樣就可以增加駭客攻擊的難度並降低行動的成功機率。

結語

大家在了解了Cyber Kill Chain中的七個步驟以後,應該會發現要完成一起成功的駭客攻擊並不是一件太容易的事。

我們在電影裡面看到的那些可以在幾秒鐘內就駭入別人系統的駭客場景在現實生活中是不太可能發生的,駭客從準備、測試、到入侵這些流程是會花上好幾個禮拜、好幾個月的。電影裡面那些不切實際的駭客場景還是看看就好,不要當真。

站在防禦的角度來看Cyber Kill Chain的話,我們可以透過攻擊鏈來幫助我們判斷我們遇到的資安事件是在哪個階段、嚴重程度到哪裡、又有哪些防禦方法。

我們只要在七個步驟中的任何一個步驟阻止了駭客,把這個攻擊鏈打破,駭客的攻擊就不會成功。

雖然這麼說,但我不建議大家只針對其中一個環節去做防禦,畢竟我們不會知道駭客會透過哪種方式來攻擊我們,我們也不敢保證我們的防禦能做的滴水不透,因此最好的方式會是在每一層都建立防護措施,透過很多層的縱深防禦來保護自己,這樣一來即使駭客成功突破了其中的一層,我們還是會有其他的保護,這樣才會是一個比較完善的保護措施。