之前我國發生一個極為嚴重的資訊安全事件,涉事者官拜資訊相關職系之少將。近日新聞更揭露「羅少將事件」不只將我國機密資料出賣而已,連加密器(ciphers)也一併高價售予敵國。羅少將此一擊可謂將我國國防保密體系給予沈重的痛擊,相關人員設施的更新、研發損失及其他潛在的威嚇將難以估計,間接的也影響美國將高科技武器出售給台灣的意願(因為台灣連「保管」都做不好)。其除愧對國家的栽培之外,羅少將之賣國亦可能名留青史與秦檜等人齊名。
為何會如此嚴重?這必需先從了解加密器(或俗稱「保密器」)在資訊安全裡面所扮演的角色談起。大家都知道,強加密器(strong ciphers)對於資訊保密有很大的貢獻,其可以強化資訊保密強度,可使敵方的破譯成本增加到不可負荷的地步,有效確保文件於有效期間的保密能力。然而大家可能不知道,加密器與資訊安全(information security)本身二者並非等價概念,加密器強度的應然面不會等於資訊安全強固的實然面。也就是說「並非加密器越強大,資訊安全就會越強固。」加密器在資訊安全裡面所扮演的角色乃「事後防衛角色」,也就是說,「資訊加密是資訊安全的最後防線。」
在許多資安例子中,突顯出全方位資訊安全落實的困難度,尤其是資訊通訊過程的保密,使得加密器(或稱「保密器」)在資訊安全裡所扮演的角色越來越吃重。以前羅馬帝國之凱薩大帝深明此理,乃發展出凱薩加密器(Cesar cipher)用以作為軍情傳遞的保密工具,並使凱薩成為攻無不克的君王。加密器之重要性於此可見一斑,難怪美國將現役之進階編碼標準(advanced encryption standard, AES)強加密器等之輸出『視為核武輸出』列入嚴格管制。但羅少將卻將這攸關台灣國防安全甚為重要的機密工具高價出售給敵國,若報導屬實,羅少將此賣國求榮之舉將使許多國防工作人員陷入生命危機之中,如因此有殉職者,羅少將亦難以為「殺人之間接正犯」卸責而應以殺人罪相繩,求處極刑。
安全的最後防線—資訊保密器
截至目前為止,端點(endpoints)通訊仍存在的不可估計的風險。為確保資訊的保密能力,在資訊傳送之前通常會經由加密程序後,以密文(cipher text)的方式傳送到遠端端點,此時該端點如要能閱讀該訊息,必需先經解密程序,將密文還原成明文(plain text)後,始能閱讀。在一般的實務方面,這看似簡單的傳訊過程卻存在兩個淺而亦見的安全攻擊點,首先是傳送過程的分流或窺視攻擊(snooping attack),其次是端點裝置的系統攻擊(system attack)。前者屬一般網路安全概念領域,坊間極多資料可供讀者參考,本文不另做詳述。反倒是端點裝置的系統攻擊,一般人可能較容易忽略,本篇文章將針對此多加著墨。
端點裝置的系統攻擊可分成軟體與硬體攻擊,在此我們不論硬體攻擊,我們僅就軟體攻擊論述。而軟體攻擊方面可以區分為應用程式攻擊與作業系統攻擊二類,前者為上層攻擊,後者為底層攻擊。不過因許多應用程式的攻擊往往涉及到系統漏洞的產生,加上網路助長了系統攻擊的威脅性,所以我們將探討重點放在作業系統的攻擊層面。
雖然在1990年代中葉就已出現將網路內容搬到行動裝置的構想,當時為此還發展出「手持裝置標記語言(Handset Device Markup Language, HDML)」,但受限於許多因素的關係,真正讓手機上網普及還只是這幾年的事情。或許這要歸功於2007年11月5日Google宣布了Android的作業系統,並與開放手持裝置聯盟(Open Handset Alliance)一起發展這個系統。依資訊週刊(informationWeek)在2009年11月所做的調查,黑莓機(BlackBerry)是當時最受歡迎的使用平台,其次才是iPhone,而Android系統僅在企業使用率中占有6%而已。但到了2011年,Android系統在智慧型手機(smartphones)的市佔率非同以往,幾乎市面上的智慧型手機使用的系統都是Andriod作業系統。換句話說,使用智慧型手機或相類似之行動裝置(例如:平版電腦)去讀取加密訊息已成為可行的作法。
這時,在開放式網路存取機密資料,就非常依靠資訊加密的功能。資訊加密的研究可區分為「端點安全」研究與「鏈結安全」研究二大領域。鏈結安全可使用的方法有很多,例如使用SSL(secure sockets layer)/TSL(transport layer security)機制等,但在端點安全方面卻與其使用的作業系統平台有密切關係。加密器僅是資訊安全防禦系統的其中一環(屬技術防禦),其他的防禦措施可參見圖一。
圖一、一個瑞士起司的安全防禦模式
以Google的Android作業系統來說,因其屬Linux-based的作業平台,有關Unix/Linux的系統攻擊方式,應對採用Android系統的智慧型手機或手持裝置均有適用。讓我們更深層一點來看這問題,在Unix/Linux的系統中,其應用程序的運作存在兩個基本概念,一個是「行程(processes)」的概念,另一個是「核心(kernel)」的概念。前者用以提供程式功能給使用者使用,後者用以掌握系統基本功能。舉例來說,當使用者使用程式中的開啟檔案功能時,此時核心就會掌握開啟的檔案,並將資料傳給行程,由行程以人類可讀的資訊格式將檔案內容呈現給使用者。為了保持系統的運作順暢,僅核心可以掌握這些底層操作,行程往往無法直接操作這些檔案,必需透過核心來完成這些資訊操作。我們一般在處理加密訊息或解密訊息時的功能操作層級,往往只會在行程階層(process level)中處理。而行程為了通知核心去操作檔案,其將會使用系統訊息的概念,此訊息在此稱為「系統呼叫(system calls)」,而所謂「系統呼叫追蹤(system call tracing)」乃為其他行程所使用來察看這些系統呼叫目前執行的情形,因此追蹤者(tracer)在系統中所處的位置通常存在於行程與核心之間。
因此,它可以看見一個行程處理完之後的原始資料(raw data)為何。在一些安全機制中(例如SSH(Secure Shell))這表示了,在加密或解密前,這些系統呼叫將以明文方式傳遞資訊,顯示這段是未加密保護的,也是最佳的安全攻擊點。不過因為要執行行程之追蹤者(tracer)必需有系統管理者權限(root privileges),因此攻擊者的第一步通常會先使用惡意程式(例如:木馬程式)取得管理員權限後再做攻擊,而讓使用者誤載惡意程式的最好方法便是透過「社交工程攻擊」。而社交工程的攻擊核心,在於社會心理學上的一個概念「人是群居的動物,人有渴望被認同的需求」。正因為此一原罪,使人難以拒絕此類攻擊。
資訊安全的骨牌效應
如前文所述,加密器的強弱僅為事後防禦,也是維護資訊安全的最後一道防線。但其與整體資訊安全機制並非等價概念,二者不可混唯一談。不過有鑑於資訊安全的連結關連性較強,任何一環的崩解,往往會導致整個系統的崩解。因此每個環節都是非常重要的關鍵環節,不容疏忽。以Unix/Linux-based的作業系統攻擊來說,行程呼叫與核心之間的通訊通常是安全最弱環節,因此部分是沒有經過加密保護的明文資訊。因此可以利用行程的追蹤器輕易取的明文資訊原始內容(raw data),但要執行行程的追蹤器有往往需要系統管理員權限始能為之,而取得系統管理員權限的方式通常乃經過惡意程式為之,但要使用者任意下載不明軟體安裝,對有經驗的使用者來說難度極高,許多方法轉向具高度攻擊流動性的社交工程攻擊法。這種人因資訊安全攻擊(human factors information security attacks, HFIS)可以透過風險等級的調整,而具攻擊流動性如圖二。
圖二、社交工程的安全等級流動性概念
許多公務體系有個怪現象,那就是對低階公務員極盡稽核之能事,深怕他們洩密,低階公僕本身就已人少事繁,還要應付這些稽核,徒生其困擾。但對於位居高官之人,考核機制鬆散,致只要一發生資安事件,便陷國家體制於萬劫不復之地。站在國家安全防禦角度,這乃是本末倒置的作法,那些九品芝麻官所能知悉之資料者,多屬民眾一般資料,難以觸及國家高層機密資料。其縱使外洩,對國家安全體制傷害有限,甚至毫無被敵國利用之價值,其整體傷害性不高。但居高位者,因常能接觸國家高層機密,這些人員才是更應該被控管的一群。因其稍有不慎或經收買而有洩密行為,常能造成國家嚴重損害。
最後筆者以<儒林外史>一書的一段開場白作為本文結尾:「百代興替朝復暮,江風吹倒前朝樹,富貴功名無憑據,費盡心情,總把流光誤。」羅少將住台灣地、飲台灣水,卻做著傷害台灣的事情,未來如何得處,尚由後人論斷。所有是非善惡,總是在一念之間。榮華富貴何時盡?一個「想不開」的念頭,將使人入萬劫不復之地,戒哉。