【 軟體無所不在 5-3】擁有軟體存取權限的車廠等製造商,才知道的隱藏版功能

系統由軟體所掌控的另一個結果是,掌控系統的人可以透過程式化來改變系統在各種狀況下的行為。很多產業都會有一些廠商會透過推播的方式來幫客戶更新軟體,但有些時候客戶並不領情

一個例子就是廠商假借按計畫逐步淘汰的名義,強迫客戶提早更新。他們可能在產品設計上動手腳,讓產品在經過幾年之後就自然故障,確保客戶會定期汰舊換新。近年來,我們經常看到廠商透過軟體方式來達到這項目的,刻意不讓某些裝置升級至最新軟體,或者操弄裝置的特定功能,如電池續航力。

一般來說,軟體的檢驗是一項相當困難的工作,前述案例即可證明。掌握軟體的人若想操弄軟體或隱藏某些狀況,通常都能很有效地達到目的。這在真空管與拉桿的時代就很難辦到。

車廠開始採取措施來,防止隱藏版軟體更新功能遭非法啟用

繼續閱讀

藏在純文字檔的Jenkins外掛漏洞

Jenkins是一套被廣泛使用的開源自動化伺服器,讓 DevOps 開發人員可以有效率且可靠地建構、測試和部署軟體。為了讓 Jenkins 的模組化架構發揮最大作用,開發人員會用外掛程式來擴充核心功能,好擴展建構時的腳本功能。在本文撰寫時,Jenkins的外掛程式索引裡有超過1,600個社群貢獻的外掛程式。其中有些外掛程式會儲存未加密的純文字帳密。一旦發生資料外洩,網路犯罪分子就可能在組織不知情下取得這些資料。

Jenkins在7月11日8月7日發布了資安通報,其中就包括了用純文字儲存帳密的問題。我們會在本文裡討論此漏洞會怎麼被利用以及受到影響的外掛程式:

CVE編號 外掛程式名稱 更新版本備註
CVE-2019-10348 Gogs Gogs外掛程式版本1.0.15
CVE-2019-10350 Port Allocator 當前版本可能不安全。外掛程式可以使用。主動安全警告:用純文字格式儲存帳密
CVE-2019-10351 Caliper CI 主動安全警告:用純文字格式儲存帳密
CVE-2019-10378 TestLink 目前版本跟舊版本可能都不安全。主動安全警告:用純文字格式儲存帳密
CVE-2019-10385 eggPlant 外掛程式已停用

表1. Jenkins外掛程式出現的洩密漏洞

繼續閱讀

【 軟體無所不在 5-2】微處理器底層也可能出現風險

今日的微處理器內部還有一層比所有軟體使用的機器碼更低階的程式在運作,那就是所謂的微指令 (microcode)。這些微指令通常隨處理器而異,不過當微處理器出現問題時,可透過修改微指令的方式來修正機器碼的錯誤。之前鬧得沸沸揚揚的 Spectre 和 Meltdown 處理器漏洞,就是透過修改微指令的方式來修正。不過,這樣的修改也存在著風險,因為如果沒有改好,很可能會讓微處理器徹底毀於一旦。由於伺服器通常不能任意重新開機,因為它們必須執行一些重要的企業流程,基於這一點,前述的修補絕不能等閒視之。

微處理器底層也可能出現風險

微指令既然可以修改,意味著就連微處理器晶片也可被視為軟體。且近來似乎更掀起了一股認識如何重新程式化微處理器的風潮。不僅如此,還有其他幾種類型的處理器也可被程式化,例如:可針對特定工作單次程式化的「特殊應用晶片」(ASIC)、可隨時重新程式化的「現場可程式化邏輯閘陣列」(FPGA),以及專門處理類比訊號的「數位訊號處理器」(DSP)。

FPGA 正逐漸被當成特化的協作處理器來使用,例如:影像處理、網路資料過濾,或是其他高效能運算。一些較單純的 CPU 也已經可以用 FPGA 來實做。雖然未來的裝置應該不會由一系列可重新程式化通用晶片所構成,但在某些應用上確實可行。除此之外,還有一種沒有太多人關注的特化 DSP。行動電話和某些裝置為了應付各種版本的無線射頻標準,都將其無線射頻模組設計成所謂的「軟體定義無線射頻」(SDR) 裝置,如此一來,只需單一模組就能透過程式的修改來應付各種不同標準。市面上有許多 DVB-T 電視訊號 USB 接收器都採用 Realtek 的晶片,事實上,這就是一種寬頻 SDR 裝置。許多專案也都利用這款極便宜的接收器來接收無線訊號,少了它,就得使用價格更昂貴的其他套件。

隨著這些不同的可程式化處理器逐漸廣為人知、日益普及,再加上人們對它們的興趣逐漸提高,這類處理器也越來越有可能被用於惡意攻擊。

下期待續:【 軟體無所不在 5-3】-擁有軟體存取權限的車廠等製造商,才知道的隱藏版功能

【軟體無所不在5-1】軟體更新一旦出了問題,有可能會危及生命安全!

精密複雜的軟體是工業成長的動力,讓工業以前所未有的方式茁壯,但最新的科技卻也伴隨著風險和後果。

軟體更新一旦出了問題,有可能會危及生命安全,例如交通運輸便是一例。針對軟體的安全性,全球航空產業已制定了嚴格的規範,但仍舊過度依賴一套無法預見所有情況的系統。

才不過數十年前,系統的邏輯設計還在使用機械開關來控制。要將一輛列車停止,駕駛員必須扳動一個控制桿,經由電力或機械方式將列車切換至「危險」狀態 (代表列車應該停止)。在進入隧道之前,若列車的高度超過隧道的限高,列車就會撞壞隧道前方某處的一個水銀管,使得該列車的電力被切斷。倫敦地鐵北線 (Northen Line) 就時常發生這樣的情況。這類控制邏輯相對上容易理解、也容易確認。

但隨著系統的日益複雜,系統慢慢開始改用電機零件來控制,再複雜一點的邏輯,就用離散電路來控制。如果訊號必須經過中繼轉送,那系統會發出聲音來確認操作已確實執行。因此,只要按部就班執行各樣動作,就能確保邏輯的正常運作。

到了今日,系統上的電機零件已經很少,因為,為了提升效能和效率,系統必須具備更複雜的邏輯。為了實現關鍵系統所需要的複雜邏輯,製造商開始在系統內導入微處理器。微處理器不僅擁有更大的彈性,而且比離散電路更容易透過程式控制。

繼續閱讀

美國國土安全部警告:小型飛機容易遭受 CAN 匯流排元件的網路攻擊

美國國土安全部網路安全局 (CISA) 提出警告,由於小型飛機元件存在漏洞,如果攻擊者能夠實際接觸,就可改變航空器的遙測功能。

美國國土安全部警告:小型飛機容易遭受 CAN 匯流排元件的網路攻擊

這項漏洞位於小型飛機的控制器區域網路 (CAN) 匯流排;CAN 匯流排可讓航空器 (或任何其他類型載具) 內部的各種裝置及元件互相通訊。

如果要利用這項漏洞,就必須實際接觸航空器。由於必須實際接觸,潛在攻擊者可裝設裝置,將偽造資料注入航空電子設備的 CAN 匯流排,導致航空器航空電子設備的讀數錯誤。

繼續閱讀