作者:何宗諭 / 臺灣大學計算機及資訊網路中心程式設計組幹事
所謂的0day(zero-day又稱零時差漏洞)是指系統存在未即時修補的漏洞,攻擊者利用此漏洞入侵他人電腦。近年來惡意攻擊的目標,不再侷限於癱軟他人電腦及設備似惡作劇的手法,反而是在入侵受害者的系統後,隱密且持續地取得內部資料,並藉此換取金錢利益。常見的獲利手段從個資販售到近年興起的綁架軟體(Ransomware),都讓受害者公司蒙受巨大的損傷。本文以綁架軟體為例,探討其嚴重性,以及我們該如何將傷害降至最低。
圖一 綁架軟體案例(From http://theconversation.com/)
一、前言
近幾年來,有越來越多企業遭受到綁架軟體(Ransomware)的入侵,進而導致巨量的財務損失。什麼是綁架軟體?跟以往的病毒軟體又有什麼不一樣?攻擊方又如何透過此綁架軟體進行獲利?本文希望在有限的篇幅中,帶大家對這類病毒有初步的認識,並希望藉由瞭解其威脅所在,能將傷害簡到最低。
此類綁架軟體的嚴重性,在於我們對它的輕忽或是大意,就像我們大部人多多少少都遇過電腦中毒,或是幫人解毒的經驗,因此通常遇到電腦中毒這件事,預期還是有解決的方法。然而,綁架軟體之所以凶狠,就在於它只能防範,卻少有解藥(唯一的解法是付錢給對方)。早期的綁架軟體,像是CryptoLocker這支程式,就是利用電郵信件釣魚(點選或開啟某個不知名檔案),入侵被害者的電腦,取得電腦權限後,就把所有重要檔案全部加密,此時就只能選擇付錢解鎖,或是永遠放棄這些檔案。
或許有人自認為只要保持良好的資安習慣,安裝防毒軟體,不輕易開啟來路不明的檔案就可以免於中毒,但這樣的行為仍不足以保證安全。早期的綁架軟體通常是用釣魚的方式來植入病毒,然而隨著進化與改良,並結合零時差漏洞(0day),這類的綁架軟體已非早期基本的方式就可阻擋,所以我們還是必須對零時差漏洞有初步的了解。
圖二 Zero-Day Exploit (From http://amazon.com/)
二、風險評估
有一類的威脅是我們大眾比較容易忽略的地方,就是我們俗稱的零時差攻擊(0day attack)。電腦系統的設計複雜,難免有缺失不盡完美,一旦這些漏洞被發現,系統廠商未即時修正,就可能存在著潛藏的危機,而這些漏洞也同時伴隨著高附加價值,善意的使用者(白帽駭客)會將此漏洞回報給系統商,相反地惡意的攻擊者(黑帽駭客),則利用此不法獲取高額利潤。這類攻擊可怕之處就在於,就當我們以為已經做好了防範(比如說,安裝了防毒軟體),且對基礎資安知識有了一定的認識,事實上我們仍身處風險之中,甚至因為我們的自信而導致巨大的金錢損失,以下整理幾個常見的誤解給大家參考:
誤解一:公司裡有資安專家,反正電腦中了毒後,再請專家處理就好。
大部份的電腦中毒,基本上網路都有解決方法,就算不找專家幫忙,依照網路的教學也可以一步一步將病毒清理掉。然對於綁架軟體來說根本無效,因為這類惡意軟體會將電腦中所有的資料檔案進行加密,目前大多使用RSA-2048加密(無有效演算法在有限時間解密),等到發現了中毒打不開檔案時,再請專家來處理也來不及了。
誤解二:公司買了最先進的防火牆設備,不用擔心被入侵。
防火牆可以管制進出系統的連線,防止像是DDOS類的惡意連線攻擊,然而只要有內部網路可以連到外網的情況,就算有再好的防火牆也沒用,網頁式的隱藏病毒,藉由點擊或瀏覽而入侵電腦的案件可說不勝枚舉。即便是限制了外網的連線,但事實上隨著智慧型手機的普遍,4G連線也意謂著有許多的風險不是防火牆能保護的。
誤解三:已經安裝了防毒軟體,就不用擔心。
防毒軟體可以當我們擋下大部份的病毒,然而誤認防毒軟體可以幫我們守護一切,就是誤解了。事實上每天有幾千、幾萬個惡意程式被開發出來,賽門鐵克統計出2014年在Google Play被歸類為惡意程式的軟體一年就增加了230萬個,即便是再好的防毒軟體,也不一定能保障無風險。
誤解四:遵守不隨意亂點連結、亂開啟郵件,所以中毒與我無關。
早期有蠻多的病毒是透過點擊來入侵電腦。隨著互動式網頁的蓬勃發展,也帶來許多的漏洞風險,常見的手法比如說,利用系統漏洞,在網頁安裝惡意檔中,當瀏覽器瀏覽了中毒網頁,就能取得我們電腦的控制權,這也是為何近來來,各家瀏覽器在處理外掛元件上,多了很多限制。
誤解五:管理好自己的電腦,就不會中毒。
很多時候風險並非來自外部,而是來自於內部。舉例來說,臺灣之前有一家大公司的安全憑證被竊取,駭客可以藉此簽核出許多看似合法的網頁。或者是系統管理者被取得權限後,導致在自家網頁或程式碼植入了惡意原始碼,進而入侵受害者個人電腦也很常見。
三、零時差攻擊
電腦系統那麼複雜,有些弱點未被維護周全是可以理解,所以我們會注意到Windows的頻繁更新,其中一個原因就是為了修正安全上的漏洞。然而,多數漏洞通常被發現後,也不一定馬上能修補,甚至有些漏洞是存在數月以上仍未被修補,因此從發現到修復的這段期間的空檔,就可以讓有心人士進行惡意的攻擊而不容易被查覺。至於如何發現0day漏洞,並非容易的一件事,所以也因此伴隨著極高的利益價值,而讓更多人願意投入,也因此風險的威脅日漸增加。白帽駭客將此漏洞回報給系統商,進而藉由更新來修復此漏洞,然而黑帽駭客則傾向將發現的漏洞,作為取財謀利。
惡意攻擊藉由入侵商業公司後台,竊取專業的私密文件或技術,來販售以謀取大量金錢,這樣的新聞大家都耳熟能詳,相反地對於個人使用的電腦來說,因商業利潤不高,也因此對於一般民眾來說,有時中毒這件事並非視為嚴重的事情。然而近年來的攻擊手法再進化,其重點不在是放在如何取得個人資料,反而朝向鎖住資料。其中像綁架軟體(Ransomware)這類的惡意軟體就是藉由加密被害人資料,進而以解鎖為名索取一定量的金額,下一節再來進一步討論這類的綁架軟體。
四、綁架軟體(Ransomware)
想一下現實生活中的案例,偷車賊偷了車卻苦於銷贓的麻煩,勒索被害車主付點小錢就可以贖回自己的愛車的方式,簡易許多。網路上的概念其實也相似,受害者電腦裡的檔案,對黑帽駭客來說可有可無,可是一旦鎖住所有檔案,相對於受害者來說可是影響相當大的,畢業的論文、公司的報表,年度會議報告、或是技術文件等等都會影響個人的學業與工作,所以會有一些人選擇付300美金來解鎖,綁架軟體通常使用比特幣(bitcoin)來收取贖金,也因此更難追蹤,也因此這類的綁架軟體如雨後春筍般不斷有新的程式冒出來,也一個比一個還難處理。
目前多數的綁架軟體採用的是RSA-2048,除非能拿到金鑰,否則是很難在以限的時間內破解。以目前來說,只要中了綁架軟體基本上跟資料損毀沒什麼兩樣,這也是為什麼有些人會為了重要資料選擇付贖金。雖然目前有些公司開發出可以破解綁架軟體,其方法是使用逆向工程的原理抓到其原來的金鑰,但也還不能破解每個綁架軟體。
五、一切都是外掛軟體惹的禍
無法解決的病毒,這聽起來很悲觀,但事實上在還沒中毒以前,仍然有許多方法可以防範,所以我們必須瞭解其原因。目前中毒的受害者電腦各種原因都有,但大部份的共同點都是有瀏覽過一些廣告網頁(比如說免費電影、盜版遊戲網站),這些網頁會利用幾個廣告來騙取使用者點選而入侵電腦,更進階的網頁,則是在網路載入網頁元件時,就讓受害者電腦執行預設的惡意程式,這很大的原因,就是來自於系統的0day漏洞未被修復。有不少專家指出是由Flash的漏洞所造成的,尤其是過去大量網頁用了Flash來呈現互動效果,以造成資安的風險。以下簡介幾個都是在2015年發現的Flash漏洞:
1. CVE-2015-3043
使Flash Player產生Buffer溢位,並可以利用此錯誤進行遠端執行。
2. CVE-2015-3113
利用Adobe flash Player影響系統,利用來安裝Cryptowall綁架軟體。
3. CVE-2015-5119
注入已感染的swf檔,用以其它的攻擊。
4. CVE-2015-7645
此漏洞予許攻擊者經由一個已感染的swf檔,進行遠端控制。
總之,相較於早期綁架軟體利用釣魚信件來入侵,目前有越來越多的綁架軟體從這些網頁漏洞進行攻擊,雖然上述的弱點都已經在最新版Flash更新,但因為flash的漏洞難以維護,有越來越多瀏覽器預設不支援Flash。
結語:防範之道
最滴水不漏的防範之道只有一個:拔掉網路線,關掉電腦電源。這可不是玩笑,反而說明了只要我們有使用電腦的時候,就存在中毒的機會,但是只要我們作好防範,還是能把發生的機會降到最低。以下收集整理了大部份網站給的建議:
1. 異地資料備份
備份是最簡單的防範方法,然而若不是異地備份就意義不大,所以建議使用網外的裝置來備份,例如光碟燒錄、計憶卡、或是雲端備份,外接硬碟備份建議除備份外平常不要連接在主機上。
2. 系統確保更新
建議定期或是自動執行系統更新,雖然不能保證百分百免於0day的威脅,但可以防護大部份來自舊有漏洞的威脅。
3. 移除不必要的軟體
有一些時候,比如像Flash的更新過慢或是一直不修漏洞,就該考慮是否要移除這套軟體,因為當這些漏洞都會成為潛在的危險。GOOGLE就於2015年9月終止了NPAPI的支援,有一部份是因為Java和Flash漏洞難以維護。
4. 太舊的系統不要用
目前個人版桌機普遍用的作業系統是Windows 7,但還是有不少人的電腦使用Windows XP,事實上微軟已經在2014年4月8日停止Windows XP的維護,也就是說它的漏洞將不會再被修補了,繼續使用會有潛在的資安危機。
5. 太新的系統不要用
任何系統都會存在漏洞,只不過新的產品因為在市場上的時間較短,有較多漏洞可能是未被測試發現,以Visual Studio 2015為例,就發生過原始碼外流的事件。所以企業公司通常是使用穩定的系統軟體來開發,而非追求新的技術或是軟體。
6. 謹慎瀏覽網頁
瀏覽一般網站而中毒的機率很低,反而是那些來路不明的網頁。由其是那些標綁免費軟體、盜版遊戲的網站,很容易藉由漏洞來取得受害者電腦的權限。或者將公司用的電腦和私人用途的電腦分開使用,以免因為個人一時疏忽而受到綁架軟體入侵。
7. 使用沙盒系統或虛擬主機
如果無法分清楚那些網頁是安全的或是危害的,建議使用虛擬主機來達到目標,因為虛擬主機是可以實體隔離,即便虛擬主機中了毒,也不會影響原系統。
8. 開啟UAC選項
UAC選項就是當我們在執行某個軟體時,螢幕會變黑,跳出提示要存取系統的視窗,有些人會嫌麻煩將它關掉,但關掉的同時,就意味著惡意軟體可以在背景執行程式而不知。
圖三 UAU提示視窗
9. 人員的教育訓練
自己的資安防護作的再好,也比不上其它人員的疏忽,就像帳號密碼的外流,就等於再多的防護都作白工了。因此公司的資安防禦並非都是專家的工作,而是公司內部每個人的責任。
參考資料
[1] 何防範勒索軟體綁架你的電腦、加密你的檔案、跟你要錢?
https://briian.com/28172/ransomware.html
[2] 勒索軟體令人意想不到的經營手法!
http://blog.trendmicro.com.tw/?p=14200/
[3] RSA加密演算法
https://en.wikipedia.org/wiki/RSA_(cryptosystem)
[4] Zero-Day
https://en.wikipedia.org/wiki/Zero-day_(computing)
[5] 知名攻擊套件已鎖定才剛修補的Flash零時差漏洞,專門安裝勒索軟體
http://www.ithome.com.tw/news/97104
[6] CrypBoss、HydraCrypt、UmbreCrypt 等勒索軟體已成功「破解」
http://technews.tw/2016/02/18/crypboss-hydracrypt-umbrecrypt-crack/