零基礎資安系列(六)- 電影中酷駭客做的事?關於 APT(Advanced Persistent Threat)

# 前言

電影中的駭客只是敲敲打打幾分鐘就可以竊取商業機密?!
答案是但也不是,為什麼會這麼說呢?
成功的攻擊結果也許只需要短短的幾分鐘就能將商業機密帶走,但在駭客敲鍵盤的那幾分鐘之前,其實就已經花了好幾個月甚至以年記的時間來佈局這幾分鐘的攻擊,那駭客的佈局到底是在佈局什麼呢,這就是今天想和大家分享的,電影中那些酷駭客在完成攻擊前所做的事。

# 釋例

電影中,駭客所執行的方式,其實在業界稱之為進階持續性威脅(Advanced Persistent Threat) 也就是所謂的 APT,那這種攻擊厲害在哪呢?
其實 APT 並不是一種攻擊手法,而是一整套的攻擊手法及流程彙整,舉個例來說,葉問開始學習武術,攻擊的手法不外乎便是左勾拳(Phishing)、右勾拳(OS injection),而當他將這些攻擊進行變化並且整合起來,摸索出克敵之道成為流派之後,便可以稱之為 詠春(APT)!,額外說明一下 APT 與攻擊鏈概念很像,所以我會在下面說明 APT 所擁有的要素和案例說明。

photo by 電影-葉問

# APT(Advanced Persistent Threat)是什麼?

開宗明義,APT 就是以進階有變化的攻擊手法,持續並嘗試不被發現的入侵目標,並且竊取資料掌控系統對目標造成威脅

# 上面提到 APT 通常會包含三種要素:

1.進階性(Advanced)
上勾拳無法打敗對手,但昇龍拳可以
一般使用工具執行的攻擊手法,例如 SQL Injection 的 OR 1=1--' 便不算是一種進階的攻擊手法,若同樣以 SQL Injection 來舉例,可能便是透過公司的網路曝險和相關的測試找出公司使用的資料庫類型以及版本,甚至從錯誤訊息中獲得資訊,藉以構建針對目標的 SQL Injection payload,便可以稱為一種進階的手法。

2.持續性(Persistent)
直接放大絕招容易被閃躲,所以持續不斷的試探,讓對手露出破綻
就像是大開大闔的攻擊總是特別容易被阻擋,因此藉由緩慢而低調的各種測試和收集資訊方式,慢慢的尋找突破口,不求快速有成效,只求持續而且不被發現便可以稱為持續性。

3.威脅性(Threat)
攻擊一定會造成傷勢,攻擊可能造成的傷勢越重表示威脅性越高
駭客攻擊一定有目的,無論是直接透過勒索軟體藉此勒索贖金,或是竊取商業機密資料來獲取利益,甚至是破壞公司的服務或是客戶資料造成商譽受損,這些都是所謂的威脅性。

photo by pexels

# APT 有哪些階段

簡化來說可以分成五個階段
選擇目標:
此階段有各種可能性,無論是因為企業曝光率高,或是競爭對手的僱傭甚至是網路曝險的資訊都有可能導致企業成為駭客的攻擊標的。

收集資訊:
透過各式各樣的工具以及攻擊手法,收集攻擊目標可能導致風險的弱點。

執行滲透:
嘗試將所有收集到的弱點串起,執行攻擊鍊達成階段性的目的,依據不同的最終目的,此階段的目標都可能不同,可能是獲取內部的帳號以及將帳號的權限提高,或者是控制防禦機制,也可能是植入後台收集資訊,或是將散播惡意腳本,此階段通常需要花費許多的時間進行持續性的測試,並且必須低調不能被發現。

分析資訊:
藉由在內部中滲透後獲取的資料進行分析,此階段獲取的資訊有可能是透過帳號提權而獲得的資訊,又或者是埋入後門之後長期收集的資訊進行分析,也可能是漸進性的社交工程,由普通員工到人資到管理階層後收集到的資訊執行分析,確認這些資訊是否足夠讓駭客達成最終目的。

獲取成果:
在這個階段就是大家在電影中所看到的,駭客敲擊幾分鐘的鍵盤,便看到系統被駭客完全掌控,或者是機密資料通通被下載備份。

photo by pexels

# 實例說明

以去年最有名的 SolarWinds 供應鏈攻擊來說明以上階段,這個攻擊事件受害者包括全球最大安全軟體公司之一FireEye以及美國財政部與商務部,以下引號為引用新聞內容,說明結束後會附上新聞連結。

”SolarWinds自2020年3月到6月之間,推出的 Orion 軟體存在名為 SunBurst 的後門,駭客用來於遭感染的系統監控受害組織,同時能夠執行任意指令。“

選擇目標:

“SolarWinds是美國的軟體開發商,研發網路系統及資訊科技基礎設施的軟體,根據官網說明,客戶包括全美五百大企業中的425家、前十大電信業者、美國軍方、美國國防部、國務院、NSAS、國安局、郵政服務、司法部,以及美國總統辦公室。”

這裏可以確定的是目標如果得手,等於間接獲取許多大企業的機敏資訊,至於為什麼會選擇 SolarWinds 就不得而知,有可能是透過層層的篩選目標,包含攻擊成功可能性以及網路曝險程度以及資料保護程度而定。

收集資訊:

如上一階段所說,此階段與選擇目標習習相關,舉例來說,駭客可能最初是鎖定了美國幾大知名的軟體開發商,接著透過各式各樣的工具以及攻擊手法,收集攻擊目標可能導致風險的弱點,去判斷攻擊成功可能性以及網路曝險程度以及資料保護程度之後,才選擇最終目標,接著再強化收集資訊。

執行滲透:

" SolarWinds 於2019年10月推出的舊版本(2019.4.5200.8890版)裡,駭客已經開始對 Orion 的程式進行小幅度修改,加入了後來才用到的.NET類別(OrionImprovement BusinessLayer),而此時,駭客尚未植入後門的程式碼,ReversingLabs指 出,這個階段的程式碼竄改,很明顯只是概念性驗證攻擊(PoC)。
駭客大致的攻擊計畫,可區分成3個階段:首先,是駭入開發系統,一旦成功,攻擊者接著會注入自己的程式碼,最後查核他們簽署的軟體套件,是否會派送到 Orion 軟體的用戶端。
在駭客植入惡意程式碼的過程中,為了要瞞過 SolarWins 的開發人員,不讓攻擊行動被察覺,他們故步疑陣,採取了許多幾可亂真的做法,來模仿 SolarWinds 開發方式。
例如,在加入 Orion 程式碼的其中一個類別,其名稱駭客就刻意命名為 OrionImprovement BusinessLayer,而讓該公司的軟體開發者與稽核人員,認為是正常的物件。
駭客不只是模仿 SolarWinds 開發團隊的物件命名方式,ReversingLabs 進一步指出,駭客還在此類別中,引用了確實存在於 Orion 程式碼的方法(Method)與程式庫,而這樣的精細手法,同樣存在於這些駭客其他植入的方法。由此可見,駭客應該對於 SolarWinds 基礎程式庫的架構,可說是極為熟悉。“

除了獲得駭入開發系統的權限,也許是透過社交工程或是透過服務逆向獲取權限,也可以看到駭客為了執行攻擊,花時間了解 SolarWinds 基礎程式庫的架構並模仿物件命名方式並引用確實存在於 Orion 程式碼的方法(Method)與程式庫,以上的攻擊都是需要花費許多的時間研究並且執行多次的測試才有可能成功。

分析資訊:
在這個攻擊事件中,駭客在攻擊過程需要不斷的學習 SolarWinds 基礎程式庫的架構,並且確保自己的修改沒有被發現,不斷的執行 POC ,分析結果並確認攻擊的有效性,並且透過一次次的 POC ,從中獲得資訊,反覆的分析和修改攻擊手法。

獲取成果:
最後在許多新聞報導及事件研究中可以看到,駭客除了獲取了 FireEye 的紅隊測試工具以外,也獲取了特定政府客戶的資料,並且也成功存取「部份」內部系統。

參考資料連接:

報導:國家級駭客透過供應鏈攻擊美國財政部與商務部
資安廠商分析 SolarWinds 供應鏈攻擊後門程式,研判駭客自去年底開始攻擊

photo by pexels

# APT 有辦法防禦嗎?

雖然 APT 攻擊有針對性而且客製化的特性,與一般防毒軟體與防火牆的偵測特徵碼的防護機制不盡相同,也因為擁有如此多型態和面向,所以對於企業來說十分難以預防,不過其實仍然能夠從幾個方面來提高駭客成功入侵的難度:

  1. 對於威脅情資和漏洞資訊的了解,進行風險管理,掌握系統漏洞修補及軟體版本更新。
  2. 針對企業內部所有的權限機制進行控管,細化每個人擁有的權限。
  3. 執行事件記錄包括保留系統及檔案伺服器的存取紀錄,確保問題發生時,能第一時間發現並追蹤問題。
  4. 執行如社交工程演練的資安測試及課程,強化全員資安意識。
  5. 定期執行網路曝險以及弱點掃描、滲透測試等,確保企業對於自身服務以及狀態,除了提高駭客的攻擊難度以外,也能在層層篩選中避免成為最終標的。

# 小結

介紹了什麼是 APT ,也以實例說明流程之後,也許有人會產生這根本防不勝防的無力感,不過魔高一尺道高一丈,其實已經有組織分析了知名的駭客組織 APT 手法,並且將這些手法分類歸納,以此建立資安框架,除了將威脅和入侵的描述一致化以外,也有助攻防演練以及資安產品的驗證,而這其實也是我下一篇文章想要說明的重點,希望可以讓大家對於 APT 有更充分的了解,建立更豐富的資安知識庫。

# 延伸閱讀

資安科普番外篇(一)-大意了啊沒有閃!常見網站曝險你中了幾項?!

資安科普番外篇(二)-如何有效率選擇風險進行修復 feat.風險和法規息息相關?!

# 參考資料

資安廠商分析 SolarWinds 供應鏈攻擊後門程式,研判駭客自去年底開始攻擊

Tag

Recommendation

  1. XSS 從頭談起:歷史與由來
  2. Intigriti 七月份 XSS 挑戰:突破層層關卡
  3. 防止 XSS 可能比想像中困難
  4. 從編譯器優化角度初探 Javascript的V8 引擎
  5. 從Indexing的角度切入MySQL-Innodb與PostgreSQL的效能比較

Discussion(login required)