近年來出現了一些程式語言以相反的理念設計,其中一個最近很紅,叫作Rust。在Rust的設計觀念中,最重要的一項就是防錯管理(Error Management),而要管理的「錯誤」,其實就是那些不是寫給機器跑,而是寫給設計師、其他部門的人,甚至終端使用者看的註解字串。
光看這個例子應該就知道,軟體開發過程中有很多問題都不只是程式問題,而是組織管理的問題。所以即使你完全不懂程式,也不用對資安問題退避三舍,並且可以從這些層面去檢查使用與管理軟體的方式會產生哪些安全漏洞。
認識你的入侵者
大部分的程式錯誤,最多都只會拖慢程式,只有一小部分能夠成為資安破口,所以從整體國家的角度來看,改善資安的第一要務,就是自己打造健全的軟體產業。自己能夠生產安全軟體之後,也就更會知道如何正確使用來自外部的軟體,因為無論是什麼組織,平常使用的軟體大部分都是從外面買來的,而大部分的破口都來自這些外部軟體。再者,絕大多數公司只要真正了解自己需要怎樣的資安環境,都可以直接購買產業中頂尖軟體業製作的系統,來儲存密碼之類的敏感資料。所以只要這個軟體業更加蓬勃,勢必能改善台灣依賴過時軟體和危險作業系統的迫切問題。
當然,台灣的最終目標並非軟體開發,而是要能夠抵禦國家級攻擊。所以不能只靠程式設計,而是得從公開來源情報(OSINT)解決問題。這個領域相當廣泛,其中守護資安的方法,就是用蒐證偵緝的方式,了解潛在入侵者面貌,盡量建立一個完整的威脅模型。
《網路戰兵法》(The Art of Cyberwarfare)的作者Jon DiMaggio,曾在某次訪談中指出幫入侵者分類的重要性。「高級威脅的主要特徵……就是入侵者的目標都相當明確。在入侵孟加拉銀行之前,北韓就花了一整年時間來準備,然後才真正發動假交易。一整年!你平常看到的網路犯罪或機器騷擾,別說要準備一年,大概連準備一天都不願意吧。」
DiMaggio認為,這種高級威脅不會消失。「即使他們駭不進你的網路……也會做出其他破壞。這種攻擊一定會同時設定好幾個目標。只要是面臨某個高級威脅,你就一定會同時受到好幾種攻擊。」此外,這類威脅除了瞄準組織,也會同時攻擊個人,所以必須先了解敵軍的意圖,才能設法回應。
一個國家的情報能力(Intelligence)就跟一個人的智力(Intelligence)一樣具有很多層面。民間與軍方的情報能力往往可以相輔相成,與其他國家建立情報共享協定也會有用。除此之外,「公開情報來源」這個領域正在快速發展,其中有很多功能,例如強制執行等都與民間相關,民間公司可以做出許多貢獻。在這個領域工作,需要強大的邏輯能力和豐富的軟體生態系知識,但工作方式與單純的軟體開發大異其趣。台灣可以發展這方面的資安防護能力,並化為巨大商機,畢竟應該有很多國家的人,都對中國入侵者很感興趣,他們需要一些真正了解中國語言文化的人從旁協助。