HOME > 解決方案

高保真度軟體供應鏈攻擊偵測

2021/12/30




在過去一年裡,我們中許多人都聽過「軟體供應鏈」這個詞。不管是好是壞,它現在是我們防禦上的術語之一了,不會很快消失。相反地,它在很多方面都已經讓我們筋疲力盡,並且夜不成眠。好吧,沒辦法睡覺的可能只是我們 Splunk 的 SURGe 團隊。

去年,在發生 Solarwinds Orion 的供應鏈攻擊之後,我們決定仔細研究軟體供應鏈攻擊。我們知道這將是一個極具挑戰性的題目,尤其是需要考量大量的軟體、服務、基礎設施、人員以及構成我們運算生活的所有其他事物。事實證明,軟體供應鏈攻擊比我們想像的要常見得多。歐盟網路安全局 (EINSA) 最近  發布了一份報告,詳細說明僅在 2020 年 1 月至 2021 年 7 月期間,就發生 25 起已知的軟體供應鏈攻擊。 


 
來源:https://www.enisa.europa.eu/publications/threat-landscape-for-supply-chain-attacks

在過去的幾個月裡,我們開始了一些研究,探索是否能找到可以偵測供應鏈攻擊的方法,並為這個網路防禦鞭長莫及的角落提供一些線索。我們刻意將範圍限制在可能有助於偵測關鍵伺服器上的異常活動。側面來看,這些異常活動就很嚇人,更不用說是修補了。為什麼要限制範圍?事實上,偵測供應鏈攻擊並不容易。其實是挺難的。另外,如 SURGe 團隊總監 Ryan Kovar 所說,我們還希望確保無論最終結果如何,這個研究對大多數的讀者都有幫助,而不僅僅是有經驗的人員。

仔細考慮之後,我們得出的結論是先將重點放在 JA3 和 JA3s 雜湊,將是一個有趣且可能有用的方向。我剛說是哪個神奇的字串?很高興你注意到了。我們不會在這裡詳細介紹,但你可以想像它是一種相當簡單但巧妙的方法,來對用戶端和伺服器之間的 TLS 交易進行指紋識別。我知道,你一定想知道更多資訊。我們建議您可以參考 Lee Brotherson 的一些驚人研究,還有更多來自 Salesforce 的優秀人士對公開他們的 JA3 來源程式碼的研究。讀完之後,您會對 TLS 指紋識別和 JA3 的工作原理有了更深入的了解。

可以做一些示範嗎?
當然!除了增長上述見聞,我們來看一些有用的資訊。一篇 Splunk 的部落格文章沒有 Splunk 的螢幕擷取畫面,那怎麼像話?我們開發的查詢之一,是使用 Splunk 的 anomalydetection 命令。在這個查詢中,我們試圖在關鍵伺服器網路區塊 192.168.70.0/24 的 Zeek 日誌中找出一些異常的 TLS 工作階段。

sourcetype="bro:ssl:json" ja3="*" ja3s="*" src_ip IN (192.168.70.0/24)
| anomalydetection method=histogram action=annotate pthresh=0.0001 src_ip, ja3, ja3s
| stats sparkline max(log_event_prob) AS "Max Prob", min(log_event_prob) AS "Min Prob", values(probable_cause) AS "Probable Causes", values(dest_ip) AS "Dest IPs", values(server_name) AS "Server Names", values(ja3) AS "JA3", values(src_ip) as "Source IPs" count by ja3s
| table "Server Names", "Probable Causes", "Max Prob", "Min Prob", "Dest IPs", ja3s, "JA3", "Source IPs", count
| sort "Min Prob" asc


執行查詢後,我們能夠能在資料中看到一些值得仔細檢視的異常情況。那就是連線到 manic.imperial-stout.org 和 update.lunarstiiiness.com 的 TLS 工作階段。 
 


為了讓這些結果更好用,我們還可以在查詢中包含一個允許列表。藉此,可以讓一些較正常主機 (例如合法的軟體更新工作階段) 不會出現在我們的結果中。

 
 

現在我們取得了一些結果。所有的可疑查詢都出現在列表的頂端,那邊就是可疑資料出現的地方。


精彩預告,還有更多資訊可以挖掘嗎?
我們不僅花了很多時間進行研究,還撰寫了一份精美的白皮書,提供了遠比這篇部落格文章還多的細節。覺得意猶未盡?沒問題。Ryan Kovar 和我也在 Splunk 年度會議 .conf21 上就這個主題發表演說。你可以看看我們的會議內容「捕獵已知的未知:供應鏈攻擊 (SEC1745C)」,看看我們在講台上有多麼風光。還想要更多資訊?我有沒有提到我們已經寫好了一份白皮書?您可以從中取得我們開發的所有查詢,以及我們專為這個研究開發的一些程式碼。其中之一,是一個能產生模擬 Zeek SSL 日誌 的異常 TLS 工作階段的好技巧。 

還想要更多資訊?您找對人了。您也可以和 Boss of the SOC (BOTS) 一起演練,就像現在一樣。John Stoner 設計並建立了一個軟體供應鏈場景,這是我們研究工作不可或缺的一部分。 
如果您著重開發安全營運領域的軟體供應鏈,我們強烈建議您觀看 Dave Herrald 和 Chris Riley 在今年 .conf21 的演說「使用 Splunk 啟用開發安全營運和保護軟體工廠」(SEC1108C)。他們整理了了許多超棒的內容,讓您可以更加了解如何在開發安全營運管道中使用 Splunk,以更有效地防禦和偵測軟體供應鏈攻擊。

領先一步
鎖定軟體供應鏈的攻擊不會消失。隨著我們不斷改善網路防禦的能力,攻擊者也會提升自己以便領先我們一步。這種貓捉老鼠的遊戲就是網路防禦的本質。這就是我們夜不成眠的原因,因為我們必須努力想出創新和獨特的方法來幫助每個人發現攻擊者並保持安全。可惜的是,這裡提出的研究並非靈丹妙藥。它無法解決今天的軟體供應鏈問題,或是根本解決不了。不過,它能幫上忙的地方,是為所有人提供另一種保持領先對手一步的工具和方法。運氣好的話,它還將有助於開啟話題並激勵其他人找出更別出心裁的偵測方法,讓我們都能一夜好眠。 

 
作者
Marcus LaFerrera