今日世界已經遠遠超越機械裝置與單純邏輯的時代,我們可透過程式設計對一個複雜系統的各個不同層次進行邏輯改造,從裝置的主機板元件和微處理器到企業內及雲端上的系統皆然。這無疑地能讓效率和生產力提升至原本無法達到的境界。但是,凡事都有優缺點,軟體的缺點包括:
- 系統邏輯缺乏一種可確認安全無虞的方法。不僅如此,當發生問題時,通常會因系統已複雜到難以分析而使得問題無法解釋。
- 消費者對軟體的自動更新習以為常,現在更期待功能會不斷改善。但更新有時卻反而造成營運中斷或帶來相容性問題。由於企業營運已經和軟體密不可分,因此一旦更新稍有不慎,就很可能造成嚴重問題。
- 隨著軟體日益普及,企業或使用者的潛在攻擊面將擴大。可惜,有些企業對這類問題既無法掌握,也缺乏適當的監控及防護工具。
不僅如此,當功能被設計成軟體的形式,也意味著擁有裝置的使用者可自行修改功能。任何人,不論是裝置持有人或駭客,都能經由公開的資訊來了解系統的內部運作。
這類問題該如何處理?
我們每天的生活當中,都會用到一些不太安全、甚至尚未成熟的技術 (也就是軟體)。資安研究人員不時會發現為數不少的軟體漏洞。而廠商也經常將仍在測試階段的產品出貨,就是仗著產品出貨之後還能繼續加以更新。因此,與其在出貨前做好嚴格測試以免裝置遭歹徒利用,反而選擇採用一種不斷更新的作法。問題是,裝置既然可以被更新,就表示也可能被惡意修改並從事不法用途。
在這樣的情況下,任何必須使用或仰賴軟體來生活的人,都需要一套適當的防衛機制。妥善的更新管理與正確的修補是不錯的第一步。此外,多層式資安防護同樣也絕不可少。
未來會是一個複雜的環境,因為軟體已經和使用者生活及企業營運密不可分。對於關鍵系統而言,依賴軟體並非一件好事。裝置應該一開始就設計得很安全,軟體萬一發生問題,裝置應進入一種所謂的安全模式來運作 (就算會降低效率或舒適性)。換句話說,就算軟體完全失靈,機器或車輛還是要能安全地運作。
即使這將意味著製造商和使用者需花費更多成本,關鍵系統的緊急備援措施仍應列為標準配備。裝置一旦發生嚴重故障就應該預設進入安全模式,而且,如果無法透過機械方式來確保安全,那也必須將軟體備援加入設計當中。
專業人員將更加習慣一切由軟體定義的世界,隨著產業流程導入軟體的情況越來越普遍,人員在知識方面也應該有所長進。除了跟上工作的要求之外,對軟體系統的整體認知也有助於確保系統的安全。
原文出處:Everything is Software 作者:Morton Swimmer 與 Rainer Vosseler
Trend Micro Research
《延伸閱讀》