1. 程式人生 > >信息安全系列(5)-- 安全漏洞

信息安全系列(5)-- 安全漏洞

網絡安全 漏洞 漏洞原理

俗話說,蒼蠅不叮無縫的蛋。 針對這種現象有人解釋:雞蛋裂縫後很容易就會壞掉,產生異味。與蒼蠅而言,異味的雞蛋正式它的食糧,於是蒼蠅就不請而至。萬事萬物,皆有因果,正如蒼蠅和蛋的故事,信息安全中,因為信息系統存在著大大小小、或明或暗的安全漏洞,那些攻擊者可都是一些嗅覺靈敏的“蒼蠅”,要防範攻擊,則需要查找自身存在的漏洞、及時進行修補,才能夠避免被“叮咬”。

安全漏洞的實例

案例1: 微軟漏洞

在上一篇中有介紹過震網事件,美國的病毒專家正是利用了Windows系統多個漏洞,達到入侵攻擊的效果。上篇中未對技術細節做展開,本篇就在此稍作展開,以讓深入了解攻擊的原理。

漏洞1: 快捷方式文件解析漏洞(MS10-046)

Windows在顯示快捷方式文件時,會根據文件中的信息尋找它所需的圖標資源,並將其作為文件的圖標展現給用戶。如果圖標資源在一個DLL文件中,系統就會加載這個DLL文件。攻擊者可以構造這樣一個快捷方式文件,使系統加載指定的DLL文件,從而執行其中的惡意代碼。快捷方式文件的顯示是系統自動執行,無需用戶交互,因此漏洞的利用效果很好。

Stuxnet蠕蟲搜索計算機中的可移動存儲設備

技術分享圖片

一旦發現,就將快捷方式文件和DLL文件拷貝到其中。

技術分享圖片
如果用戶將這個設備再插入到內部網絡中的計算機上使用,就會觸發漏洞,從而實現所謂的“擺渡”攻擊,即利用移動存儲設備對物理隔離網絡的滲入。

拷貝到U盤的DLL文件有兩個:~wtr4132.tmp和~wtr4141.tmp。後者Hook了kernel32.dll和ntdll.dll中的下列導出函數:

FindFirstFileW FindNextFileW FindFirstFileExWNtQueryDirectoryFile ZwQueryDirectoryFile 實現對U盤中lnk文件和DLL文件的隱藏。因此,Stuxnet一共使用了兩種措施(內核態驅動程序、用戶態Hook API)來實現對U盤文件的隱藏,使攻擊過程很難被用戶發覺,也能一定程度上躲避殺毒軟件的掃描。

漏洞2: RPC遠程執行漏洞(MS08-067)與提升權限漏洞

存在此漏洞的系統收到精心構造的RPC請求時,可能允許遠程執行代碼。在Windows 2000、Windows XP和Windows Server 2003系統中,利用這一漏洞,攻擊者可以通過惡意構造的網絡包直接發起攻擊,無需通過認證地運行任意代碼,並且獲取完整的權限。因此該漏洞常被蠕蟲用於大規模的傳播和攻擊。

Stuxnet蠕蟲利用這個漏洞實現在內部局域網中的傳播, 反匯編代碼如下

技術分享圖片
其實,震網病毒利用的漏洞還不止上面談的2個,據專家分析,不少於4個,可以想象,windows如此龐大又公開的操作系統,可以利用的漏洞有多少,對攻擊者而言,可以用“取之不盡,用之不竭”來形容。

案例2: 蘋果漏洞

微軟可說是PC時代的代表,那麽,移動互聯網時代蘋果無疑是主角。2016年,上海電信在其網上營業廳發出一則“重要提醒:iPhone用戶請註意!”的公告,建議用戶盡快升級自己的iPhone操作系統,避免個人隱私泄露等安全問題的發生。運營商發公告提醒用戶更新iOS版本,這是比較少見的。運營商之所以這樣做,是因為這次iOS遭遇了其史上最大的系統漏洞,用戶如果不及時更新,個人信息有可能被竊取,通話、社交聊天等信息可能被截獲,更可怕的是iPhone手機還可能變成被不法分子控制的遠程音頻視頻錄制器。

2016年8月底,蘋果推送了iOS 9.3.5版本更新,這距離iOS 9.3.4版本推出僅僅相隔20天時間。蘋果之所以這次匆匆發布新的版本更新,原因是為了封堵重要的安全漏洞,屬於緊急更新。

據了解,iOS 9.3.5主要是針對三個新發現的iOS漏洞。這三個漏洞統稱為Trident,其中一個存在於Safari WebKit(一種開源的瀏覽器引擎),一旦目標用戶被盯上,點擊一個網頁鏈接,或將導致“整臺設備就‘繳械投降’了”。另一個漏洞存在於iOS核心,有可能致使信息泄露,第三個問題是內核內存損壞。

這三個高危漏洞被研究人員稱作“三叉戟”。簡單來說,如果用戶點擊黑客發來的鏈接,就可能導致手機被遠程控制,聊天記錄、密碼泄露,黑客可利用這些漏洞獲得對iPhone的幾乎全部控制權。當然,軟件是人寫的,人無完人,程序的漏洞也是在所難免。客觀的說,蘋果公司的軟件更新服務在業內還是不錯的,知錯就改,其升級體驗也足夠傻瓜化,只要按照系統提示升級系統,一般問題也不會太大。

案例3: INTEL CPU的硬件漏洞

就在一個月前,時間剛剛跨入2018的門檻,媒體上流傳出一條爆炸性新聞,人稱Intel 芯片的“Meltdown”(熔斷)和“Spectre”(幽靈)漏洞。Google Project Zero團隊發現了一些由CPU“預測執行”(Speculative Execution)引發的芯片級漏洞,漏洞都是先天性質的架構設計缺陷導致的,可以讓非特權用戶訪問到系統內存從而讀取敏感信息。更糟糕的是,Project Zero研究員還發現每一顆1995年後發布的處理器都會受到影響。要知道在服務器與桌面計算領域,Intel是處於壟斷地位,它的處理器存在這麽嚴重的漏洞,後果顯然很嚴重。特別是重要的服務器,如雲計算服務廠商,通過虛擬化共享計算資源的形態,硬件上的資源保護失效,無疑是致命的。各大服務商阿裏雲、華為雲、微軟雲、百度雲、亞馬遜雲等廠商就啟動了應急措施推進漏洞修復,主流Windows和Linux系統也發布了相關的補丁來應對,到目前為止,大家能做的也只有減輕漏洞所帶來的負面影響,要徹底解決還是要以後CPU的升級換代。當然,從另外一個層面來看,如果國產芯片廠商若能利用這些危機,強調安全性,借機推進國產芯片在工業界中的應用,那麽未必是一件壞事。

安全漏洞是什麽

漏洞也被稱為脆弱性,馮.諾依曼建立計算機系統結構理論時認為,計算機系統也有天生的類似基因的缺陷,也可能在使用和發展過程中產生意想不到的問題。

信息安全漏洞就是導致訪問控制矩陣所定義的安全策略和系統操作之間沖突的所有因素。 -- Dennin

一個錯誤如果可以被攻擊者用於違反目標系統的一個合理的安全策略,那麽它就是一個漏洞。 -- 美國MITRE公司

漏洞是存在預評估對象中的,在一定的環境條件下可能違反安全功能要求的弱點。 -- ISO/IEC 15408

要指出的是,有時漏洞也被稱作錯誤(error)、缺陷(fault)、弱點(weakness)或是故障(failure)等,這些術語很容易引起混淆。在許多情況下,人們習慣於見錯誤、缺陷、弱點都簡單地稱為漏洞。需要指出的是,從嚴格意義上來講,錯誤、缺陷、弱點並不等於漏洞。錯誤、缺陷、弱點是產生漏洞的幾種誘發條件,漏洞被利用後必然會破壞安全屬性,但不一定引起產品或系統故障,例如網銀賬號被盜用只是影響個人的資金安全與隱私,並不會導致銀行交易系統的故障。

欲知完整文章內容,請訪問 信息安全系列(5)安全漏洞

信息安全系列(5)-- 安全漏洞