去年底爆發的SolarWinds供應鏈攻擊事件,牽連甚廣,美國有多個政府組織、資安業者與大型科技公司都受影響,這幾個月來,當地資安業者持續公布調查與影響,至今都還沒落幕,雖然,這起事件對臺灣影響小,但其實有許多值得我們警惕之處。

由於這起事件的相關消息不斷,資訊量非常多,為了讓大家對此威脅可以有更清楚的認識,最近難得有臺灣資安研究人員針對SolarWinds供應鏈攻擊事件進行說明,特別的是,當中解析了背後攻擊者是如何隱藏不被發現,並進行事件分析與影響性評估。

攻擊手法複雜,至今4個月仍不斷有新的調查結果出爐

關於SolarWinds供應鏈攻擊被發現,最初是資安業者FireEye在2020年12月8日先表明遭駭,該公司紅隊測試的工具外洩。

相隔五天,FireEye在12月13日進一步揭露網路監控軟體公司SolarWinds遭駭,該公司Orion Platform成為供應鏈攻擊的跳板。對此,Fox-IT威脅分析師吳宗育(ZY Wu)指出,從時間點就可看出事件的緊急與嚴重性,因為一般研究人員多是選在平日發布報告,追蹤的人較多,而這篇報告發布時間13日是周日。

事實上,同日CISA也發布了緊急指令,要求聯邦機構立即關閉被植入木馬的SolarWinds系統,而當地媒體也披露有美國財政部與商務部遇害。

這起供應鏈攻擊非常複雜,到現在已經超過4個月,調查還沒完全結束,陸續有美國政府單位、微軟與Malwarebytes等揭露自己被攻擊,並且有更多惡意後門與軟體被發現,包括:FireEye在12月13日揭露的後門程式Sunburst,而在三天後,又有一些資安業者指出發現第2個後門程式Supernova,到了今年1月11日,SolarWinds本身也公布了調查報告,發現攻擊源頭是更早滲透的Sunspot惡意程式,最近3月4日,FireEye與微軟再度公布發現用於第2階段攻擊的Sunshuttle惡意軟體。

因此,許多業者除了公布事件調查與揭露攻擊手法,也提供了相關工具,包括FireEye釋出的相關惡意程式IoCs,以及FireEye Red Team Tool、Sunburst與Summary的IoCs等,還有微軟、CISA釋出的檢查工具,提供企業能夠利用。

SolarWinds供應鏈攻擊事件相關消息不斷,台灣駭客協會理事陳仲寬(CK)針對一連串事件說明時間發生先後,讓大家對事件始末更清楚:
2020年12月9日        | FireEye紅隊測試工具外流
2020年12月13日      | CISA針對SolarWinds Orion發布緊急指令,FireEye揭露發現Sunburst惡意程式
2020年12月13-14日 | 路透社與華爾街日報披露美國財政部與商務部遭供應鏈攻擊
2020年12月15-18日 | 第二支惡意程式Supernova被揭露
2020年12月17日       |
微軟、FireEye與GoDaddy聯手打造該攻擊的銷毀開關
2020年12月17日       | 微軟揭露潛在受害者
2020年12月31日       | 微軟證實SolarWinds駭客存取其原始碼
2021年1月5日            | 美國CISA、DNI與NSA調查報告猜測攻擊者來自俄羅斯
2021年1月6日            | 美國司法部證實遭駭
2021年1月11日          | SolarWinds調查報告公布指出攻擊源頭為Sunspot
2021年1月13日          | CISA指出繞過雲端服務多因素驗證的攻擊案例
2021年1月19日          | FireEye釋出針對Microsoft 365補救措施
2021年1月19日          | Malwarebytes表示自己也遭駭
2021年1月22日          | 微軟揭露攻擊者在第二階段所採取的攻擊行動
2021年2月18日          | 微軟內部調查最後更新揭露
2021年3月4日            | FireEye、微軟揭露新發現的惡意程式Sunshuttle後門

從入侵開始到SolarWinds知曉已是1年3個月後

對於這起事件的資安事件調查,吳宗育指出,以SolarWinds委由CrowdStrike調查的報告內容來看,有三個關鍵的時間點。首先,攻擊者在2019年9月4日,就已經入侵了SolarWinds的內網;第二,到了2020年2月20日,攻擊者正式將Sunburst後門部署到該公司系統環境;第三,直到2020年12月12日,SolarWinds才知道有這個後門的存在。

顯然,攻擊者入侵後在內網已經做了很多探查,當了解夠深透後才將後門Sunburst植入,而且,從SolarWinds知道被入侵,回推到最早被入侵的時間點,這段期間長達1年3個月之久。

以Solarwinds在今年1月公布的調查結果來看,Fox-IT威脅分析師吳宗育(ZY Wu)指出,該公司最早被入侵的時間點是在1年3個月前,而且攻擊者行動相當小心,直到摸清楚該公司內網環境的5個月後,才部署Sunburst後門。

更令大家關注的是,在這次供應鏈攻擊中,SolarWinds Orion Platform因為被植入惡意程式而衍生後續的問題,攻擊者是如何在軟體開發流程被滲透,而且不被發現?

吳宗育先簡單說明,以軟體開發流程而言,這裡簡單分成提交(Commit)、編譯(Build)、測試(Test)與部署(Deploy),攻擊者先是打造了一個名為Sunspot的惡意程式,這是用於植入惡意程式的程序(Injector),在軟體開發提交階段,可將一段Sunburst後門與Beacon的程式碼,注入到Orion Platform的程式碼。因此,之後軟體經過編譯、簽章後,就會變成帶有惡意程式的軟體產品。

而且,由於攻擊者已經非常熟悉開發環境與流程,因此當惡意程式處於開發者環境時,並不會執行任何惡意的動作,而是等到軟體更新部署於客戶端時,才會進行下一步,載入其他惡意程式。

為何駭客選擇用供應鏈攻擊入侵?吳宗育也對此做出簡單的說明與分析,一般而言,攻擊者會對目標公司有興趣,而每間公司一定有很多的供應商,彼此之間因生意往來,通常存在信任關係,因此供應鏈攻擊的特點,就是攻擊者會濫用這樣的信任關係,從供應鏈廠商去觸及到公司,其次,在多個供應商中,總有資安人員不足或資安防護有破口的廠商,再者,如果攻擊者的目標不是單一公司,是縱向或橫向的產業鏈,因此整個產業鏈的主要供應商就是一大目標。而在這次Solarwinds供應鏈攻擊事件中,都符合這些供應鏈攻擊的特性。

躲避偵測並偽裝融入環境,到用戶端才藉DNS回傳資訊

關於SolarWinds供應鏈攻擊從發動到大規模植入、用戶察覺的始末,已有許多資安公司揭露,但具體手法是什麼?吳宗育提出說明與分析,例如,攻擊者為了避免SolarWinds開發者與用戶發現惡意程式的存在,設計了許多規避偵測的機制。

而隱藏在Orion Platform的惡意程式,使用了一個名為FNV-1A HASH來加密一系列字串,當執行Sunburst後門時,會先檢查AD網域是否屬於SolarWinds,如果與清單符合,就不會執行,同時也會針對很多防毒驅動程式、處理程序與服務去進行檢查,並且都會經過該HASH來保護,而不被企業防護偵測。

特別的是,攻擊者注入在Orion Platform的程式碼,撰寫方式都與原本程式非常相像,包括變數、函式(Function)的命名,以及程式的結構。例如一行程式碼中寫著assemblyTimestamps,看似檢查時間戳記,但這是用前面所提的HASH加解密隱藏起來,實際作用是惡意程式要檢查的防毒驅動程式與處理程序等。

不僅如此,攻擊者也花很多心思去雕琢這些木馬的通訊,讓企業從網路層面很難發現資料正在外洩,或是後門正在啟動。

此外,當帶有Sunburst後門的Orion Platform被部署到客戶端時,該後門內建主動通知能力的Beacon這時才會啟動,連回C&C中繼站通知攻擊者,而不是由中繼站主動去連線。從上面的隱匿與規避偵測手法即可看出,這起供應鏈攻擊背後的攻擊者,已經非常瞭解環境運作,因此難以被發現。

這個Beacon裡面也藏有不少資訊,仔細分析,更是可以發現這起事件可能針對的目標對象。吳宗育指出,這個Beacon會通知攻擊者它在哪個環境,而通知方式是透過DNS協定,藉由DNS查詢傳回攻擊者的伺服器,並且帶有受害者AD網域資訊。之後,當攻擊者對這個目標對象有興趣時,才會命令Sunburst使用HTTP的後門。

他進一步解釋,透過逆向工程,他們將此DNS查詢資訊解析出來,其中,前15 Bytes是根據受害目標產生的特有字串GUID,接下來15 Bytes則是帶有受害者的AD網域,後面則是固定寫死的字串。

而Sunburst有兩個階段,第一階段是Beacon使用DNS通訊協定回傳資訊,第二階段是後門使用HTPP通訊協定。因此,他們從Passive DNS找出曾經進入第二階段,也就是可以讓攻擊者操作後門的階段,以及其所對應的AD網域名稱,便可找出哪些是攻擊者感興趣的目標,包括:美國政府單位、能源產業、國防產業,以及資安與科技大廠,並用於做影響性評估,因為,在研究間諜行動為目的的攻擊,尋找潛在受害者是一個有用的因子。

攻擊者在軟體開發提交階段下手,透過Sunspot惡意程式將一段Sunbrust後門程式碼,注入SolarWinds Orion平臺程式碼中,並且還會偵測在開發環境時不會執行,使得該軟體發布後就變成帶有後門的程式。

在躲避偵測與偽裝融入環境上,SolarWinds攻擊者注入在Orion Platform的惡意程式會有一份檢查清單,這些都是屬於SolarWinds的網域,目的是當惡意程式處於開發者環境時先不要動作,等到軟體更新部署到客戶端時,才會進一步載入其他惡意程式。而且,這些惡意程式碼的撰寫與程式原本的架構很相像。例如一行程式碼中寫著看似檢查時間戳記的assemblyTimestamps,但其實攻擊者是用HASH加解密隱藏起來,實際作用是惡意程式要檢查的防毒驅動程式與處理程序等。

攻擊者打造的Sunspot惡意程式,是植入惡意程式的程序(Injector),之後會在軟體開發提交階段將一段Sunburst後門程式碼注入到Orion Platform的程式碼。等到軟體更新部署到客戶端時,之後會利用各種客製化的惡意載入器Teardrop、Raindrop,於受害端點植入Cobaltstrike、GoldMax、SiBot、Goldfinder等。

 

關於SolarWinds事件的影響性評估,吳宗育表示,Sunburst有兩個階段,分別為Beacon使用DNS通訊協定傳送,以及後門使用HTTP通訊協定連線,根據他們分析的結果,他們解析出DNS查詢資訊有15 Bytes帶有受害者的AD網域,並從Passive DNS找出曾經進入第二階段,以及其所對應的AD網域名稱,可以確定攻擊者針對許多美國政府單位、能源產業、國防產業,以及資安與科技大廠,安裝屬於第二階段的中繼站(C&C),不過,在任何官方說明公開之前,他們也不知道目標是否受攻擊或受害。

雲端服務的攻擊面向也是這次事件下的另一焦點

從SolarWinds供應鏈攻擊這起事件之中,我們可以學到什麼?台灣駭客協會理事陳仲寬(CK)指出,即便像是FireEye這樣厲害的資安公司,還是可能被攻擊,因此需要做主動式的威脅獵捕,更重要的是,需要回應這些資安事件。

以FireEye為例,他們是第一個能夠發現此威脅的受害者。在他們發現問題後,馬上進行調查,並將結果盡快與社群、產業分享,避免事件擴大,也縮短應對攻擊時間。否則,其他受害者可能到現在還是不知情,並有更多受駭可能。

同時,他指出3個值得重視的焦點。在這起供應鏈攻擊中,有上萬潛在受害者,但實際上攻擊者主要目標僅是數百個單位;其次,SolarWinds被入侵是在DevOps階段,可見攻擊者相當了解其軟體開發環境,在編譯之前就植入,並且等到部署於客戶端才發作。事實上,從過去這幾年發生的軟體供應鏈攻擊來看,諸多開發環節都存在著風險,從程式碼撰寫、第三方程式庫,還有在編譯器(Compiler)、可執行程式(Executables)與後續CI的環節,甚至是更新部署等;最後,是這次的惡意程式相當精緻,堪稱是最複雜也最精密的網路攻擊,足以躲避受害者環境的各種防護。

而在這次事件下,陳仲寬提醒,還有一個新的攻擊面向需要注意,在1月中旬CISA警告,出現繞過多因素驗證來駭入用戶雲端服務的攻擊手法,而這也被外界認為與SolarWinds攻擊事件有關,而這樣的雲端服務攻擊面也相當值得注意。


熱門新聞

Advertisement