https://www.informationsecurity.com.tw/Seminar/2024_PaloAlto/
https://www.informationsecurity.com.tw/Seminar/2024_PaloAlto/

觀點

鍵盤輸入帳號密碼安全嗎?

2014 / 07 / 14
李光斌、胡秋江、王基旆
鍵盤輸入帳號密碼安全嗎?

網際網路讓使用者輸入帳號密碼,便可以登入雲端系統、網路銀行、網路購物。南韓與大陸分別自2006、2010年起,要求網路銀行必須善盡保護使用者輸入密碼之安全,所以在客戶端的電腦中,必須安裝防鍵盤側錄系統;台灣則在2013年於新版網路銀行的「安控基準」加入「金融機構應能防止密碼被側錄」的安全措施。由此可見,在駭客無所不在、無所不能的時代,帳號密碼的輸入安全已是資訊安全的首要課題。駭客最常利用鍵盤側錄、網路側錄等等技術,取得使用者之帳號密碼,冒名登入網路銀行、交易網站、雲端系統,以盗取、破壞個人、企業組織有價值的資料、伺服器,造成嚴重之後果。即目前瀏覽器都使用SSL網路加密協定,而且南韓與大陸網路銀行已在使用者輸入密碼時加密,但仍常有使用者帳號密碼被盗,而造成網路銀行存款被盗事件發生。本研究以南韓與大陸網路銀行目前使用的軟體輸入保護系統進行弱點分析、探討其面臨的問題,並進一步提出改善其系統的實際方法。

網路銀行是資安要求最高的網路交易系統,使用者只要用瀏覽器開啟網路銀行的網頁,輸入帳號密碼完成身份認證,就可以達成電子轉帳之交易,風險相對高,盡管銀行努力利用各種資安技術,仍在全球造成銀行與個人非常巨大的金錢損失。例如:2010年TrendMicro 的報告:美國810萬帳戶遭到電子轉帳被盜370億美元;2011年新華網報導:工行U盾用戶巨款30秒內被盜30萬RMB;2012年Versafe的報告:即使有簡訊動態密碼身分認證機制,宙斯Zeus變種病毒造成歐洲32網路銀行3萬使用者共被盜4700萬美元;2013年TrendMicro的報告:駭客鎖定中小企業電郵密碼詐鉅款損失金額已超過六千萬。

圖1為2006年南韓領先全球在網路銀行使用8種的資訊安全技術,其中較為特殊之處是使用了一個Keyboard security (E2E)的方案,即鍵盤加密技術。在Hyoungshick Kim文獻中,可見南韓政府對網路交易上積極使用新科技創造市場的態度。由南韓資料的數據顯示,而其網路銀行之交易量因此而年年大幅成長,每年成長率都達到2位數的百分比,到2012年5000萬人有8000萬個網路銀行帳戶,每日交易量達4500萬次,金額達300億美金,使用率達95%。
圖1  南韓網路銀行使用的8大安全技術

網路交易安全相關技術
圖2是南韓所有銀行與美、英銀行使用的8種資安技術,其中較為特殊的是南韓則所有網路銀行強制使用者在其電腦中安裝一個防鍵盤側錄的軟體。2010年起,大陸亦 有如此之規定,以確保使用者輸入之密碼不會在客戶端被盗取。台灣的網路銀行在2013年3月之安控標準亦將「防止密碼被側錄」更廣泛的敘述,並且加上採用「兩項(含)以上技術」保護,不過目前並未有任何網路銀行依安控標準實施。由圖2中的「user authentication」使用的技術包含ID/password, private key(SW), OTP(One Time Passowrd, 動態密碼), secret key(HW), 至少同時含有二項技術,以確保ID/password這一個輸入若不夠安全,造成使用者身份認證失誤而造成交易損失。OTP是目前最常用來補強帳號密碼安全不足的方法,以致若OTP系統失效,便造成嚴重的後果,例如:美國洛克希德公司被入侵(據傳美國隱形戰機設計的資料因此被盗,雖然是傳言,以美國CIA前職員斯諾登事件為例,很多網路上的傳言後來都證實是真的);歐洲32家網銀簡訊動態密碼被破解、大陸工行「U盾」事件,都證明只以OTP之類的身份認證來保護交易系統是不夠的,必須同時用二種不同的身份認證技術,例如ID/password+OTP,而且ID/password要有防鍵盤側錄與網路側錄的防護能力,不然就不能算是完整的安控手段。台灣的安控基準使用「兩項(含)以上技術」之安全設計是非常先進的做法。安控基準中「防止密碼被側錄」包含了客戶端系統的電腦軟硬體、網路傳輸過程中,密碼都有可能被側錄;最終要用一個End-To-End(端點對端點)的帳號密碼保護的系統,這是台灣最新安控基準較其他地區較高明之處。

圖2、網路銀行使用之安全技術,[O]代表非強制功能

圖 3、KeyCrypt系統加密資料流程圖

鍵盤加密技術安全分析
圖3是南韓防鍵盤側錄軟體廠商INCA之KeyCrypt架構圖,其中使用之鍵盤加密技術,是在作業系統Windows核心驅動程式中加密,再把帳號密碼傳送到遠端伺服器。此系統基於以下幾個假設條件:1. 加密之前不會被駭客盗取正確之帳號密碼資料,2.解密之後不會被駭客盗取正確之帳號密碼資料,3.加密傳輸之間不會被駭客破解加密之帳號密碼資料。假設3是學術研究中最常討論如何破解演算法;假設1與2是駭客首選的破解途徑。駭客只要在加密之前攔截到正確之資料,假設1即不成立;或是在解密之後攔截到正確之資料,假設2即不成立。破解假設1是要做一個超級鍵盤側錄測試軟體,破解假設2要攔截解密後網路傳輸之資料、或掃瞄解密後之記憶體資料。

一般使用者可以Ardamax Keylogger之類的側錄軟體產生器,在公司、家庭電腦管理或個人資料備份;也可以直接拿來變成駭客工具,其產生之執行檔可依附其他檔案上,再利用各種方式傳播出去,「遠端無聲安裝、執行」,取得資料,透過網路(email, FTP,…)傳回控制者的手中;包括鍵盤、螢幕畫面、聊天內容、上網內容等等,都在可側錄的範圍。像Ardamax Keylogger的工具是小民駭客的首選,可利用朋友、朋友的朋友、以及當紅的網路內容等等傳播;例如流行歌曲、照片、影片。不過Ardamax Keylogger或其他商用之keylogger都無法取得南韓與大陸網路銀行使用之鍵盤保護軟體加密後之密碼資料。由此可知其鍵盤保護軟體確實有作用。

圖4 為Firewall Leakage Tester (Anti-kelogger Tester V3.0),內建9種測試,意即從9個Windows API的中間去讀取鍵盤資料與螢幕畫面,其中有7個是鍵盤,2個是螢幕。圖4中使用者在記事本輸入12345,Firewall Leakage Tester已啟動其中的LowLevelHook的功能,在“Captured keys”中同步即時顯示12345。以此工具,可以測試Windows user mode的大部分鍵盤資料APIs,包含GetKeyState(), GetAsyncKeyState(), GetKeyboardState(), DirectX, KBLowLevel Hook, JornalRecord Hook, GetRawInputData()。本文針對鍵盤資料,對其中螢幕側錄的部分就不使用。
圖4  Firewall leakage tester
AKChecker(Anti-Keylogger Checker)是本研究特別設計的防鍵盤側錄檢查軟體,在Windows作業系統中,AKChecker有不同版本的核心鍵盤驅動程式,直接控制CPU、ChipSet硬體,所以可以偵測出鍵盤保護軟體可能的弱點,其中偵測的鍵盤驅動程式以PS2鍵盤介面為主。雖然目前外接式之鍵盤漸漸以USB為主要介面,不過在筆記型電腦內建之鍵盤、以及虛擬作業環境下(例如VMware, VirtualBox…)都是把USB鍵盤模擬成PS2為鍵盤。


實驗工具包括1. Ardamax Keylogger;2. Firewall Leakage Tester; 3. AKChecker,以Visual Studio 2008 C++與WDK(Windows Driver Kit)的工具組完成。圖5中紅色圈圈即是AKChecker的外觀,下方輸入之鍵盤資料,即時顯示在顯示列上,其右方還有一個方形區塊可顯示滑鼠點擊附近之畫面,可用來測試螢幕鍵盤之安全性。表1取幾個有代表性之驅動層來測試,測試結果在表2: 

表1, 鍵盤輸入安全分析項目說明

 
表2, 鍵盤輸入安全分析結果列表,其中V意思是可以取得使用者輸入之密碼。


表2資料可能會隨網路銀行的保護系統更新後而有所不同。例如某些南韓網路銀行已使用硬體鍵盤加密技術,在使用加密鍵盤的狀況下,任何駭客軟體都不能取得正確的鍵盤輸入資料。由表2亦可知目前網路銀行使用之輸入保護技術不一,可以防小民駭客(Ardamax Keylogger,Firewall Leakage Tester),但無法防真正駭客之攻擊,更無法防網軍(APT)的入侵。在實際debug的過程中發現輸入保護軟體所用的技術不只有一種,例如會搭配軟體產生按鍵亂碼的技巧,以擾亂人與側錄軟體的視聽,不過這些擾亂的動作只是讓人(外表)看起來亂,對側錄軟體來說,要區別真正硬體產生的按鍵或是軟體產生的按鍵是很容易的事,只要多幾行判斷式即可。根據本研究,使用CPU Debug Trap的方式是最高級的防護技術,有些鍵盤保護軟體利用這個技術,不過破解這個技術也很簡單,只要將Debug Trap之IRQ vector指向AKChecker之驅動程式之ISR(Interrupt Service Routine),AKChecker之ISR先處理完鍵盤資料,再把鍵盤資料回復,再跳回原本保護軟體驅動程式位址。而利用Debug Trap的保護系統相容性與穩定性較差,很容易就有藍色死亡的當機狀況出現。SMI#雖然在現實硬體已不可行,但在虛擬作業系統中依然是有作用,其優先程度比Debug Trap還要高;尤其是大部分Virtual Machine都把USB鍵盤模擬成PS2鍵盤,除非使用者自行手動設定Virtual Machine Guest OS以USB方式使用USB鍵盤,否則預設就是把USB鍵盤模擬成PS2鍵盤,因此SMI#風險依然存在。此外在使用者電腦記憶體中,有些網路銀行的密碼是以明文的狀態存放,駭客可以用記憶體掃瞄方式取得使用者之密碼資料。

結論
傳統電子商務自1990年代起,架構在Internet基礎上(OSI網路7層架構),其中不包含身份認證安全,身份認證因此被放在網路的應用層(OSI網路架構最頂層),所以駭客除了可以透過輸入過程與網路之間的弱點來盗取帳號密碼,還可透過網路中之未安全保護身份之層次,來盗取、或假造電子商務身份,Verizon 2011的報告指出66%帳號密碼由keylogger盗取,最終要解決網路帳號密碼輸入的問題,就必須在最前端(Client End)與最後端(Server End)有一個E2E安全的輸入裝置與安全的輸入解碼伺服器,如此可克服輸入帳號密碼可能在輸入端與網路傳輸過程被盗的所有問題。
本文作者為奧樂科技董事、交通大學科技管理研究所教授、奧樂科技總經理