供應鏈中的魅影:拆解軟體供應鏈管理之資安漏洞 (I)

Ghost in Your Supply Chain

這篇部落格分享我們在資安鑑識與事件回應高峰會 SANS DFIR Summit 上,以〈Ghost in Your Supply Chain〉發表的題目。並將我們的研究分為兩篇文章與大家分享。

我們將透過幾個實際案例,解析 2023 年基於供應鏈針對臺灣的 APT 攻擊。第一個案例是攻擊者利用弱點入侵 MDM 平台,同時運用專案管理系統 Jira 來執行偵查命令,同時蒐集資訊;第二個案例則是攻擊者使用跳島攻擊,攻擊金融體系下的內網基礎設備,造成三間子公司受到衝擊。在最後,我們也將統整所有針對供應鏈攻擊的研究與發現,使供應鏈能有效強化資安防護的部署。


模糊的防禦邊界

現今的資訊系統架構日益複雜,基於內網與防火牆的傳統邊界防禦機制已不敷使用。更加動態、更多點對點 (end-to-end) 的應用情境,如雲端應用、BYOD、WFH 等,都挑戰了企業現有的防禦邊界,其中,供應鏈隱藏的資安漏洞,導致防禦邊界變得更加模糊。

一如大城市有交通、水利、電力、食物等複雜的供應鏈,現今資訊系統也包含許多供應鏈,這些供應鏈也代表企業之間的信任關係,成為進入企業內網的捷徑。例如:供應商可透過 VPN 服務進入企業內網,管理資訊設備;供應商軟體具有雲端管理或升級功能,可透過網路控制內網端點的軟體等等。此類信任關係雖然可以提升服務效率、建立產業生態圈,但也同時使企業資安邊界變得難以界定與防守。

從攻擊者角度而言,當企業漸漸採用了 MDR、SOAR 及威脅情資等防禦機制後,直接滲透的成本相對提高。因此,在龐雜的供應鏈中,找到存在漏洞的供應商,再利用供應鏈隱含的信任捷徑入侵目標企業,成為較容易得手的攻擊方式。另一方面,在特定產業中,通常都有一些關鍵的供應商,提供多數企業相關軟硬體服務。若攻擊者成功入侵這些關鍵供應商,便可以同時對供應商的所有使用者發動攻擊,引發大規模、高衝擊性的資安威脅事件。

在 2023 年,就發生過多起具重大影響的供應鏈資安事件:

1. 3CX 的供應鍊攻擊

2023 年 4 月,VoIP IPBX 軟體開發商 3CX 遭到滲透,攻擊者成功侵入 3CX 資訊系統,將 3CX 網站上的合法軟體,置換成具有後門程式的惡意版本。經過 Mandiant 調查,更發現攻擊者是利用 3CX 的另一個供應商 Trading Technologies 才得以入侵 3CX。這起事件影響了 3CX Desktop App 、每日數量將近超過 1,200 萬的使用者。

2. MOVEit Transfer Managed File Transfer (MFT) 遠端任意執行漏洞

MOVEit 是一款用以加密檔案與保障安全傳輸的軟體,在全球擁有許多使用者。 2023 年 5、6 月期間,陸續被各國資安業者發現存在多個高風險 SQL Injection 漏洞,並被實際利用在攻擊中,影響範圍涵蓋約 32 個國家、超過 2000 多個組織受害。根據不同的資安廠商 IoC ,顯示這些漏洞可能在更早之前就被濫用,俄羅斯勒索軟體組織 Cl0p 便曾將此漏洞武器化,使用在實際攻擊中

3. Okta 客戶支援系統帳密遭駭

2023 年 10 月,知名的身份存取管理廠商 OKTA 被入侵,坦承攻擊者存取了上百位客戶的機敏檔案,且所有用戶帳密都存在外洩的風險。

以上事件都說明了供應鏈威脅是現代資安產業的一個重要課題。然而,究竟何謂「供應鏈問題」呢?為了更具體理解供應鏈攻擊,奧義智慧研究團隊進一步分析了供應鏈資安事件的根因、分類供應鏈威脅,並發展出不同的應對方式。

供應鏈威脅分類

2023年奧義智慧研究團隊曾在日本資安分析師研討會 JSAC 發表【揭秘針對臺灣金融單位的供應鏈攻擊手法】,在此演講中我們將供應鏈攻擊分成四個種類(圖 1 )。

圖1 供應鏈攻擊四大類型
圖1 供應鏈攻擊四大類型

我們依據兩個維度進行分類:初始受駭單位,以及受駭軟體的生命階段。在初始受駭單位維度,攻擊者除了直接攻擊受害單位,也有許多案例是先打下供應商,再間接攻擊受害單位;因此,我們將供應商再細分為系統開發商和服務提供商。另一個維度,我們則以受駭軟體的生命階段作為區分,因為軟體在開發、派發、運行等不同階段中,都有可能遭遇不同的攻擊。

嚴格來說,供應商軟體漏洞 (Vulnerability in Supplier’s Software) 這並非供應鏈獨有,而是一項存在已久的資安議題,因此從各方面來說,並不能算是供應鏈威脅。但從供應鏈整體而言,這仍是一項不得不討論的議題,因此我們還是把它放在圖 1 裡。

根據圖 1 ,我們可以更細緻地發現前述 2023 年的三個案例,其實屬於不同的類型:

  • 3CX 的供應鍊攻擊是「軟體被植入惡意軟體」(Malware Implanted in Software) 類別。
  • MOVEit Transfer managed file transfer (MFT) 遠端任意執行漏洞是「供應商軟體漏洞」類別。
  • Okta Passwords Compromised 則屬於「外包商資料外洩」(Data Leaks from Out-soucer)。

由此可知,供應鏈安全是一個多元的議題,無法以單一解法因應所有威脅。

軟體供應鏈威脅流程

在四種供應鏈威脅中,「軟體被植入惡意軟體」與「供應商軟體漏洞」是主要針對軟體供應鏈的類型,我們透過軟體開發生命週期的各階段(圖2),來分析軟體供應鏈潛在的威脅。

圖2 軟體開發生命週期
圖2 軟體開發生命週期

完整的軟體開發生命週期可以大致分成三個階段:

  1. 開發 (Develop) 階段:從原始碼到產生軟體。
  2. 部署 (Deploy) 階段:將軟體部署到使用者端。
  3. 使用運行階段 (圖中標示 Client 的範圍):在使用者端執行軟體的過程。

每個階段還包含了多個步驟,其中有許多部分皆可能遭受供應鏈攻擊:

圖3 開發階段的程式碼資安隱憂:Stack Overflow
圖3 開發階段的程式碼資安隱憂:Stack Overflow

在軟體開發過程中,程式碼是最基本的原物料、也是相對脆弱的環節,因為多數開發人員在撰寫程式時會參考官方文件、網路資訊及參考書等,但這些參考資訊,很有可能是功能正確、卻未必顧及開發應有的安全性。2015 年便有研究指出,Stack Overflow 上提供的程式碼可能具有安全隱憂,若不假思索地複製貼上,可能會造成軟體安全問題(圖3)。

圖4 開發階段的程式碼資安隱憂:SolarWinds SUNPLOT 事件
圖4 開發階段的程式碼資安隱憂:SolarWinds SUNPLOT 事件

程式碼相關的資安事件,包括著名的 SolarWinds SUNPLOT 供應鏈事件(圖4),攻擊者在成功入侵企業後,將軟體程式碼中添加了後門,使最終完成的軟體也具有後門的功能。

圖5 開發階段的函式庫資安隱憂
圖5 開發階段的函式庫資安隱憂

函式庫也是軟體供應鏈攻擊的管道之一,自 2019 年便有開源函式庫被置入惡意程式的案例,Event-stream 是其中一個案例;2023 年的 PyPI 套件管理系統宣布因為有太多惡意函式庫而暫停註冊(圖5),也彰顯了函式庫受攻擊後的影響。

圖6 開發階段的編譯器資安隱憂
圖6 開發階段的編譯器資安隱憂

2015 年發生的 XcodeGhost 則是編譯器被攻擊的實例,攻擊者散佈偽造的 Xcode 開發工具供社交開發人員下載,用此偽造的 Xcode 開發工具編出的軟體會自動被植入後門程式,代表即使是編譯器等開發工具,也潛藏了供應鏈攻擊的風險(圖6)。

圖7 部署階段的資安隱憂:CCleaner 事件
圖7 部署階段的資安隱憂:CCleaner 事件

在部署 (Deploy) 階段,也發生過供應鏈攻擊案例,例如 2018 年系統清理軟體 CCleaner 遭植入後門,感染超過 227 萬台電腦,擴及全球大型科技業、電信公司等產業(圖7)。

圖8 部署階段的資安隱憂
圖8 部署階段的資安隱憂

在部署階段發生過的供應鏈攻擊事件,還包含:2019 年發生的 ASUS Shadow Hammer 、前述的 3CX 供應鏈攻擊等。下一章節分享的 Jira 腳本執行器濫用案例,由於 Jira 類系統常與 CI/CD 的工具整合,這也同時意味著攻擊者可能破壞 CI/CD 的流程。最後,我們近期發現另一起稱之為 Typing Ghost 的攻擊行動,則是針對軟體更新管道發動攻擊,會在下一篇部落格中介紹。

接著,我們將分享兩個近期觀測到的供應鏈事件,更仔細了解供應鏈攻擊樣貌。

供應鏈案例分析流程圖
案例一:濫用 JIRA 腳本執行器 (Script Runner)

Jira 主要功能為問題追蹤、錯誤追蹤、敏捷專案管理等,由於我們所服務的客戶場域內 EDR 偵測到疑似 webshell 攻擊活動,因此啟動了事件分析調查。攻擊者透過 tomcat web 服務來啟動 powershell 指令,嘗試下載可疑檔案,在一般正常狀況下,除非是 web 原生功能有支援對主機執行指令,否則此行為是相當可疑的行為。

除此之外,客戶的 SOC 也偵測到有一台 VPN 主機一直嘗試對內網多台 web 服務進行大規模掃描,然而發生事件的這台 web 並沒有提供對外服務,因此客戶想查明攻擊來源、攻擊者如何利用 web 服務來啟動 powershell,以及 web 是否存在弱點。

圖9 事件攻擊流程圖
圖9 事件攻擊流程圖

經過調查,我們認為此事件主要是攻擊者先針對僅提供給供應商使用的 VPN 伺服器執行大規模掃描,確認 VPN 伺服器是否有可濫用的弱點或帳號,在取得 VPN 伺服器權限後,接著針對內網多台 web 服務大範圍掃描,藉此發現一台有對外提供服務、且使用弱密碼的主機 Mac MDM(客戶也說明此台 Mac MDM 主機有許多未修補的弱點)。駭客取得此主機權限後,便開始嘗試登入內網的 Jira 網頁,最終以弱密碼的管理者帳號成功登入 Jira web 管理頁面、利用 Jira 腳本執行器在此主機執行 powershell 指令,並嘗試下載可疑檔案。此事件裡駭客雖然沒有成功地橫向移動 (Lateral Movement),但若能利用 Jira 腳本執行器、的確是可以執行此類擴散攻擊。

有關供應商使用的 VPN 伺服器被偵測到大量針對內網 web 的掃描紀錄,我們分析了 VPN 伺服器 Web Access Log,發現在攻擊期間內,確實有一個屬於 Alibaba 的 IP(8.213.196.159)針對 VPN 伺服器網頁有大量存取紀錄(圖10),與客戶藍隊確認後,此存取行為也並非正常業務行為。

圖10 VPN 伺服器 Web Access Log
圖10 VPN 伺服器 Web Access Log

我們在分析 Jira 的 log 時,發現攻擊來源是前述的一台 Mac MDM 主機,因此我們也調查了 Mac MDM 的 Web Access log,發現 Mac MDM Web 同時也被大量掃描,且攻擊來源也是 VPN 伺服器(圖11)。

圖11 Mac MDM Web Access Log:大量掃描
圖11 Mac MDM Web Access Log:大量掃描

另外,由於 Mac MDM 需要管理 Mac 裝置,因此允許了外部人員使用 MDM 功能來遠端管理主機,在 Mac MDM Web Access log 中看到的 mdm_connect 字樣,表示的確有人從外部使用 MDM 功能來遠端管理主機(圖12),這隱藏著一個很大的管理問題:若外部存取人員是駭客,那麼駭客便可以任意控制多台 Mac 裝置。

圖12 Mac MDM Web Access Log:遠端管理主機
圖12 Mac MDM Web Access Log:遠端管理主機

接著,在分析 Jira Access Log 時,我們還發現 Jira 網頁回應了大量的 302、go http client 則是本次用來大量存取網頁的 agent ,據此判斷該掃描程式是使用 Go 語言撰寫(圖13)。

圖13 Jira Proxy Access Log
圖13 Jira Proxy Access Log

在此事件的程序呼叫圖中(圖14),可以看到是透過 tomcat 來啟動多筆指令,例如啟動 powershell、啟動 cmd 等,此行為與 webshell 的攻擊很相似,webshell 攻擊時也會看到利用 web 服務來執行惡意指令,常見的web 服務如 w3wp 是 iis 的服務、httpd 是 apache 的服務、或利用 PHP 程式來對主機執行指令,分析時我們便看到透過 parent process web 服務來啟動更進一步的攻擊指令。

圖14 程序呼叫圖
圖14 程序呼叫圖

駭客透過 web 服務執行惡意指令的狀況如圖 15:使用 tomcat 執行 ping 來確認主機是否可對外連線、執行情蒐指令(如 whoami、dir 等),以及執行 powershell 來下載可疑檔案。

圖15 透過 web 服務執行惡意指令
圖15 透過 web 服務執行惡意指令

在調查 Mac MDM 和 VPN 伺服器的 web log 之前,我們早已觀察到駭客利用 powershell 針對 VPN 伺服器測試連線和利用 certutil 從 Mac MDM 主機下載 AD 管理工具等行為(圖16),因此,我們便能預先判斷 Mac MDM 和 VPN 伺服器應該也已受駭。

圖16 Mac MDM 和 VPN 伺服器遭駭
圖16 Mac MDM 和 VPN 伺服器遭駭

除此之外,我們在分析 Jira 的 security log 時,也發現了透過 VPN 伺服器和 Mac MDM 伺服器存取 Jira 的紀錄,且 Jira 的管理者帳號已經被成功授權,意味著駭客已利用此帳號登入網頁。除了 Jira 管理者帳號,駭客也曾針對 Jira 相關帳號資訊進行瀏覽,判斷是想找到更多可利用的帳號(圖17)。

圖17 駭客瀏覽 Jira 相關帳號資訊
圖17 駭客瀏覽 Jira 相關帳號資訊

由於先前我們觀察到 web 服務 tomcat 啟動執行惡意指令時、Jira 的 access log 也看到了大規模的腳本執行器執行紀錄,我們認為此次攻擊可能是利用 Jira 腳本執行器的功能來執行惡意指令。我們進一步發現 web application log 中,有駭客執行 powershell 嘗試下載可疑檔案的指令紀錄,並曾針對 C2 執行 ’nslookup xxx.drxj5u6m[.]dnslog.pw’ 來驗證 DNS 是否可被解析,這是常發生在執行 DNS tunnel 攻擊時、用來傳送和接收攻擊者的指令。透過 Jira 的 application log ,我們驗證了先前的判斷是正確的,證實本次攻擊者的確是使用 Jira 腳本執行器來發動攻擊。

圖18 駭客執行 powershell 指令紀錄
圖18 駭客執行 powershell 指令紀錄

接著,我們調查了攻擊時間內的 Jira 稽核紀錄,其中有多筆駭客執行的高風險腳本,例如圖 19 中呈現的:透過管理員帳號執行 powershell 來下載可疑檔案的稽核紀錄,這與我們前述分析的內容相符。

圖19 Jira 稽核紀錄
圖19 Jira 稽核紀錄

有鑑於本次事件的及早偵測和緊急處置,讓駭客還沒有機會使用 Jira 在內網橫向移動,但若是駭客想要濫用此管道在技術上也是可行的,我們提供了此類攻擊的範例,以及腳本執行器的腳本如何撰寫(參考圖 20 ,將右框紅字替換成左邊所列的指令即是可運作的腳本)。

由此可知,駭客可以在內網情蒐後,執行 credential dump、取得合法憑證,再透過例如 psexec 系統工具於內網橫向移動、植入 Cobalstrike 惡意程式,或執行可於內網進行穿透的 proxy 工具 shinysock 等,皆可達到持續性 (Persistence) 的攻擊目的。

圖20 內網橫向移動攻擊範例
圖20 內網橫向移動攻擊範例

本事件的 MITRE ATT&CK 技巧與 IoC 列表如下:

MITRE ATT&CK

Indicators of Compromise

- 139.180.159[.]74

- 45.76.188[.]249

- 8.213.196[.]159

- xxx.drxj5u6m[.]dnslog.pw

小結
  1. 隨著 IT 架構多元化與供應鏈架構複雜化,企業防禦邊界已經越來越模糊,相對應的資安機制也應更加細緻化。奧義智慧研究團隊將供應鏈攻擊分成四個種類:軟體被植入惡意軟體 (Malware Implanted in Software)、跳島攻擊 (Island Hopping Attack)、供應商軟體漏洞 (Vulnerability in Supplier’s Software) 及 外包商資料外洩 (Data Leaks from Out Sourcers)。這四種攻擊的根因各不相同,需要應用不同的資安機制。
  2. 我們透過軟體開發流程與組成元素,側重分析軟體被植入惡意軟體 (Malware Implanted in Software) 和供應商軟體漏洞 (Vulnerability in Supplier’s Software) 此兩類軟體供應鏈攻擊的案例。
  3. 在濫用 Jira 腳本執行器案例中,攻擊者透過供應商的 VPN 作為初始入侵手段,亦屬於跳島攻擊 (Island Hopping Attack) 類型;此攻擊方式在討論供應鏈安全時常常被忽略,但在我們實際觀察到的案例中相當常見。
  4. Jira 一類專案管理系統,不僅被作為工單系統使用,通常也具有一定的程式執行權限,因此可以對端點執行指令,甚至可以執行持續性及橫向移動等後滲透攻擊。針對此類威脅,我們建議啟用 Jira 的 MFA (Multi-Factor Authentication) 功能,加強保護 Jira 帳號安全。

Writer: CK Chen

關於 CyCraft

奧義智慧科技(CyCraft Technology)是一家專注於 AI 自動化技術的資安科技公司,成立於2017年。總部設於台灣,在日本和新加坡均設有子公司。為亞太地區的政府機關、警政國防、銀行和高科技製造產業提供專業資安服務。獲得華威國際集團(The CID Group)和淡馬錫控股旗下蘭亭投資(Pavilion Capital)的強力支持,並獲得國際頂尖研究機構 Gartner、IDC、Frost & Sullivan 的多項認可,以及海內外大獎的多次肯定。同時也是多個跨國資安組織和台灣資安社群的成員和合作夥伴,長年致力於資安產業的發展。

訂閱奧義智慧電子報

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
點擊此按鈕,即表示您同意奧義智慧的隱私權政策,並同意奧義智慧使用您所提供的資訊並寄送資訊給您。您隨時可以取消訂閱。