天天看點

黎巴嫩尋呼機爆炸事件 引發軟體供應鍊安全管理憂思

黎巴嫩尋呼機爆炸事件 引發軟體供應鍊安全管理憂思

防走失,電梯直達安全島報人劉亞東A

黎巴嫩尋呼機爆炸事件 引發軟體供應鍊安全管理憂思

來源:數字社會發展與研究

作者:崔偉

引 言

9月17日下午三點,黎巴嫩有幾千台尋呼機同時響起了哔哔聲,提示使用者檢視資訊,幾秒鐘之後,這些尋呼機同時爆炸,整個黎巴嫩陷入一片混亂,造成至少12人死亡,約2800人受傷。

近段時間以來,各方已經從政治、軍事、外交等不同角度對這起事件進行了深入的分析。本文将着重從技術角度,分析尋呼機的供應鍊在其中扮演的角色,進而引出今年的另外一起并不是那麼引人注目,但是在軟體開發者群體中造成重大影響的“XZ後門事件”。最終結合這兩起事件,說明對于軟硬體供應鍊管理的必要性,和目前已有或者即将出台的一些措施。

這些尋呼機是怎麼引爆的?

八零後或者更加年長一點的讀者,對于“尋呼機”并不陌生。二十多年前,它還是我們日常生活中不可或缺的通信工具,它的工作原理是:使用者先呼叫尋呼台,說明自己的呼叫對象和資訊;尋呼台将資訊發送至對應的尋呼機。機主通過尋呼機,就能看到呼叫資訊。它的工作流程如下圖所示:

黎巴嫩尋呼機爆炸事件 引發軟體供應鍊安全管理憂思

▲ 尋呼機的工作原理,作者繪制

課間飯後,“哔哔”之聲響起,大家看到别人發來的問候資訊,或者需要回電,就到處找公用電話回電話,這是當年常見的場景。但是,随着移動手機逐漸走入曆史舞台,尋呼機在中國市場中幾乎已經走入通信博物館。

黎巴嫩尋呼機爆炸事件 引發軟體供應鍊安全管理憂思

▲ 很多七零後、八零後都曾經擁有一台這樣的裝置,中國聯通展覽照片

那麼,為什麼今天還有人需要使用尋呼機(Pager)?

事實上,這是一個一直相當穩定的市場,也有着一群長期的供應商,因為在移動網際網路時代,它依然具備一些獨特的優勢。下表列出了它相對于手機的優劣:

對于一些特殊組織而言,最看重的是它的“單向資訊傳輸”功能,也就是不會暴露被叫使用者的具體位置,類似于收音機。

但是這樣做也存在一個明顯的劣勢:尋呼機的保密性和安全性較差,一旦呼叫服務公司被攻破,就可能會收到惡意的、虛假的資訊。這正是這些爆炸的尋呼機收到了一個惡意引爆資訊的原因。

那麼,尋呼機本身為什麼會爆炸呢?

顯然,光靠自身的小型電池,是不可能造成如此嚴重的後果的。

爆炸專家通過對爆炸視訊的研究表示,傳呼裝置中應被放置了大小與鉛筆橡皮擦相仿的小型炸藥,這些炸藥可能在投放前經過了改裝。該型号傳呼裝置的電池是可拆卸的,采用的是锂電池,确有可能被改裝安放炸藥。

是以綜合而言,這起事件中涉及了三個核心的環節:

黎巴嫩尋呼機爆炸事件 引發軟體供應鍊安全管理憂思

尤其是其中第二步,顯然是最難的,因為需要在神不知鬼不覺之中,改變正常産品的内部構成,又能夠通過一系列的後期測試,在日常的檢查中(例如飛機安檢)又不會露出馬腳,這需要大量的準備工作和技術手段。

在這起事件中,根據媒體的追蹤,一家位于歐洲的空殼公司早在三年前,就和尋呼機的制造廠商建立起了合作關系,一開始隻是進口,後來提出自己制造,并獲得該品牌的授權。

通過這種方式,空殼公司得以對産品進行篡改,進而最終結合特定的提示資訊,引爆尋呼機。

黎巴嫩尋呼機爆炸事件 引發軟體供應鍊安全管理憂思

▲ 此次事件中爆炸的尋呼機,其中“Gold Apollo,. LTD”公司是原供應商,但是實際産品是空殼公司提供的

開源軟體

是另外一條隐秘的供應鍊戰線

此次事件之後,估計各個國家都會加強對于硬體産品供應鍊的管理。在全球化的生産模式下,一個産品的生産可能涉及多個地區、多家企業,從原材料的采購、零部件的生産,到組裝、運輸和銷售,任何一個環節出現問題都可能導緻嚴重的後果。

但是,明槍易躲,暗箭難防。相對于來源比較容易跟蹤(查詢供貨過程),影響也非常顯著(如爆炸)的硬體供應鍊而言,要防範軟體代碼供應鍊的安全攻擊,則要難得多。

在現代軟體開發中,軟體供應鍊的複雜性日益凸顯,涉及代碼的編寫、開源子產品的使用、軟體庫的內建,以及對各種第三方開發工具和平台的依賴。一個軟體産品可能由多個團隊,甚至多個國家的開發者共同完成,動辄就有幾十萬行、數百萬行代碼。

開發中使用的開源子產品雖然為軟體開發帶來了便利,降低了開發成本和時間,但也帶來了潛在的安全風險,因為這些子產品的開發往往由個别獨立團隊完成,在網際網路上釋出,再由開發者社群自行選擇使用,整個過程中并沒有一個權威機構對其進行專門的稽核和控制,主要依賴于團隊自身。

黎巴嫩尋呼機爆炸事件 引發軟體供應鍊安全管理憂思

▲ 常見開源元件,作者繪制

一旦團隊失控,即最重要的内部稽核權被别有用心的人所獲得,則可能會給使用這些子產品的産品帶來安全隐患。

今年3月,就發生了一起這樣的案例,被稱為是開源軟體史上首個“史詩級”的人為注入漏洞。

XZ-Utils(以下簡稱XZ)是一款開源的無損壓縮指令行工具,是用C語言編寫的跨平台工具,可以用于類Unix系統和Windows系統,目前是大多數Linux發行版本的預設工具之一。幾乎可以說,每台伺服器都有它。

2024年3月29日,微軟工程師Andres Freund在X上發出警告,稱在做測試時,發現XZ的新版本讓SSH 的啟動時間慢了500毫秒。之後,Freund向Openwall項目的開源安全郵件清單報告了他的發現,并引起多家軟體廠商的注意,最終被确認是XZ的5.6.0和5.6.1版本中存在SSH後門

SSH(Secure Shell)是一種網絡協定,為計算機之間提供了一種安全的加密通信方式,常用于遠端登入系統、安全地傳輸檔案等操作,通過對資料進行加密和認證,能夠有效防止資訊洩露、中間人攻擊等安全問題
黎巴嫩尋呼機爆炸事件 引發軟體供應鍊安全管理憂思

▲ 微軟工程師Andres Freund的社交媒體發言

這件事頓時震驚了業界,因為這時距離這個新版本納入主流 Linux 發行版,隻差幾天。如果沒有及時發現,就意味着世界上幾乎所有的伺服器都帶有可供黑客長驅直入的後門,後果不堪設想。

開源軟體的一個優點是所有的代碼送出和讨論都線上進行,有迹可循。經過安全人員事後的詳細分析,梳理出了整起事件的來龍去脈。

顯然,就像上面提到的黎巴嫩尋呼機爆炸事件一樣,這次XZ後門攻擊的起點,也是三年前的一個看似毫不起眼的舉動。

2021年,一個使用者建立了名為“JiaT75”的GitHub賬戶(以下簡稱JT),并開始為多個項目做出貢獻。在那一年,JT共送出了546次代碼。

2022年6月10日,JT在XZ項目中進行了第一次正式的代碼送出,用途是做一些基本的硬體功能測試,人畜無傷,代碼被成功合并(merge)進入了XZ的主分支代碼。之後JT開始頻繁向團隊貢獻代碼,并逐漸獲得了團隊主要成員Lasse Collin的信任。

然後,突然出現了幾位網友,在項目用于溝通的郵件清單中向管理者建議,XZ項目缺乏人手,響應遲緩,應該給予“JiaT75”管理者權限。

這個建議被團隊采納。在事故發生之後,人們調查發現,這幾個網友都是陌生的郵件位址和名字,根本找不到其他痕迹。

2023年7月8日,JT在oss-fuzz項目中送出了一個請求,該項目負責對XZ等多個開源軟體項目進行自動錯誤檢測。這個請求實際上關閉了一種特定的錯誤檢測方式,進而防止oss-fuzz發現XZ項目中潛藏的惡意代碼。

就這樣,JT逐漸成為項目的管理者,擁有獨立釋出新版本的權限,并先後發了幾個版本。雖然這些代碼可能沒有明顯問題,但是為三年後的惡意改動打下了基礎。

換句話說,黑客經過長時間的潛伏,成功獲得了開源團隊的認可。他們僞裝成合法的開發者,參與到開源項目的開發過程中。

終于,到了2024年2月,JT開始正式展開了攻擊行動:

2024年2月23日,JT在XZ項目的測試檔案夾中加入了兩個含有隐藏後門的測試檔案。

這使得攻擊者可以遠端控制軟體的運作,擷取使用者的敏感資訊。更讓人難以發現的是,這個後門直接從源代碼是看不出來的,要在建構階段才會生成,即使有開發者仔細審查代碼也很難發現。

JT在釋出這個新版本(5.6.0)以後,開始發信催促幾個大型Linux發行版團隊,盡快整合他的這個版本。如果不是這時候微軟程式員因為500毫秒的延遲而提出警報,任何使用了這個版本及以後版本的XZ都存在安全風險,這個後門也将可能會成為有史以來覆寫範圍最廣的漏洞。

後面的事情我們就知道了:

2024年3月29日,這個漏洞被及時發現。此後,JT此人就此消失不見,沒有留下任何蹤迹。很多安全人員試圖通過他的通路記錄、代碼送出時間等查找他的蛛絲馬迹,最終一無所獲。

以上就是對這起有史以來,可能是準備時間最長的開源代碼攻擊事件的梳理。顯然,黑客利用開源子產品的開放性而發起的攻擊,這并不是第一次,也不會是最後一次。

黎巴嫩尋呼機爆炸事件 引發軟體供應鍊安全管理憂思

▲ 圖源Pixabay

如何應對軟體供應鍊的安全挑戰

在當今數字化時代,資訊就是财富,就是權力。軟體作為資訊處理和存儲的重要工具,其安全性直接關系到使用者的個人隐私、企業的商業機密以及國家的安全利益。

如果軟體供應鍊存在安全漏洞,黑客和惡意攻擊者就可以利用這些漏洞擷取使用者的敏感資訊,進行詐騙、盜竊等違法活動。例如,金融機構的軟體系統如果被攻破,可能會導緻客戶資金被盜取;醫療機構的軟體系統如果被洩露,可能會涉及患者的隐私資訊被曝光。

是以,加強軟體供應鍊安全管理是保障資訊安全的關鍵。

但是,随着軟體供應鍊的全球化,一個軟體産品可能涉及多個國家的開發者和供應商。這使得軟體供應鍊的管理變得更加複雜和困難。此外,由于軟體供應鍊的碎片化,各個環節之間的聯系可能不夠緊密,這也增加了安全管理的難度。

同時,正如上面XZ案例所揭示的,黑客和惡意攻擊者的技術水準不斷提高,他們在不斷尋找新的攻擊方法和手段。

總體而言,筆者有下面幾點建議:

1、企業要加強對于開源子產品的安全管理

軟體開發者在選擇和使用開源子產品時,應該加強對其的安全管理。首先,要對開源子產品進行全面的安全評估,包括其代碼品質、安全性、更新頻率等方面。其次,企業要建立開源子產品的使用管理制度,明确規定哪些開源子產品可以使用,如何使用等。最後,要定期對開源子產品進行更新和維護,確定其安全性。

2、個人也需要增強安全技術水準和意識

為了應對惡意攻擊者的技術不斷提高的問題,我們應該提高安全技術水準和人員素質。首先,要加強安全技術的研發,開發出更加先進的安全防護技術和工具。其次,要加強人員的教育訓練,增強人員的安全意識和技能。通過提高安全技術水準和人員素質,增強軟體供應鍊的安全防護能力。

最後需要補充一點,為了加強軟體供應鍊的安全管理,目前也有了相關的國家标準。

例如今年4月釋出、11月1日開始施行的GB-T 43698-2024《網絡安全技術:供應鍊安全要求》,對軟體供應鍊的各個環節進行了嚴格的設定,包括軟體的開發、測試、釋出、更新等過程。例如,标準要求軟體開發者在使用開源子產品時,必須對其進行嚴格的安全檢查,確定其不存在安全漏洞。同時,标準還要求軟體企業建立完善的軟體供應鍊安全管理制度,明确各部門的職責和權限,加強對軟體供應鍊的監控和管理。

黎巴嫩尋呼機爆炸事件 引發軟體供應鍊安全管理憂思

▲ 圖源Pexels

繼續閱讀