淺談Windows10安全體系的新變化

 

目錄
Ⅰ Microsoft Edge
Ⅱ 基於虛擬化的安全
•Credential Guard(憑據保護)
•Device Guard(設備保護)
•Testing VBS
Ⅲ Windows內置的反惡意程序保護
•Keystroke Interception
•Unauthorized Web Camera Acces
•Control of Drive-By Downloads
Ⅳ 結論

  操作系統的安全性是微軟關注的重點之一。新一代Windows的開發人員積極響應針對Windows平臺的重要威脅,他們使用了以前只是應用於第三方安全解決方案中的衆多安全技術。系統受到了更好的保護,讓攻擊者更難開展活動。
       然而,在某些情況下,有操作系統提供的安全工具並不足夠,開發人員只好折衷讓第三方的安全工具作爲補充。
       因爲Windows系統的普遍,Windows一直是形形色色的網絡犯罪分子攻擊的首選目標。每個Windows的版本都會有千千萬萬的黑客尋找新的賺錢機會。當然,Windows也是白帽子和違法分子作鬥爭的主戰場,白帽子也在尋找Windows系統中的安全隱患。自然卡巴斯基實驗室(下文簡稱“KL”)一直也在進行細緻的分析Windows的安全體系中心的變化,以給用戶提供最大限度的保護。
       這篇文章着重突出了三個Windows10的影響安全的特徵,它們分別是Microsoft Edge,基於虛擬化的安全和內置的安全解決方案–––––Windows Defender。這些給Windows安全體系帶來了新功能,但是它們自身也有弱點,在本文中,我們舉例子來演示Windows10的保護技術是如何運作的以及它們怎樣配合第三方安全解決方案的。



Ⅰ Microsoft Edge
       Edge,Microsoft最新的瀏覽器,目的是替代IE,它包含在Windows10中作爲默認瀏覽器。Microsoft努力地爲Edge開發新功能,其中一些與安全有關。
       CSP(Content Security Policy)和HSTS(HTTP Strict Transport Security)是用來抵禦XSS(Cross-site Scripting)攻擊的。這些技術不僅降低了攻擊的成功機率,也提醒站長這些攻擊的存在。
*Content Security Policy,主要是用來定義頁面可以加載哪些資源,減少跨站腳本攻擊的發生。
**HTTP Strict Transport Security (一般簡稱爲HSTS) 是一個安全功能,它告訴瀏覽器只能通過HTTPS訪問當前資源, 禁止HTTP。
***Cross Site Scripting(通常簡寫爲XSS),跨站腳本攻擊。

       Microsoft也在想辦法使Edge免受漏洞利用的危害,這是IE不安全的禍根。現在通過使用containers和多進程機制,漏洞利用越來越難。而且,SmartScreen也能阻止用戶訪問帶有惡意內容的網頁。
*SmartScreen 篩選器是Edge中的一種幫助檢測仿冒網站的功能。

       Edge除了擁有新技術,也不再支持VML,BHO和ActiveX,它們是經常被廣告軟件和惡意瀏覽器加載項利用的,這意味着Edge已經免疫了此類威脅。
*VML指The Vector Markup Language(矢量可標記語言),可以用來在瀏覽器中繪製矢量圖形。
**BHO(IEBrowser Helper Object)是IE的拓展程序,文件格式是DLL。能夠對IE瀏覽器的界面和訪問內容進行修改。
***ActiveX指面向Microsoft的IE的以OCX爲擴展名的OLE控件。

        然而瀏覽器的安全性要在實戰中檢驗。大多數以竊取資金爲目的的惡意程序利用網上銀行,通過瀏覽器來攻擊,這些瀏覽器有IE,Chrome,Firefox和Opera等。典型的例子是Zeus(Zbot),Dryeza(Dyre)和Dridex,儘管它們都是老病毒了,但依然被使用着。
        通常銀行木馬經常使用瀏覽器中間者攻擊。大多數的銀行木馬在攻擊時將自己的代碼注入瀏覽器進程,攔截網絡交互數據。不過,各種瀏覽器情況不同,病毒編寫者必須不斷修改和更新他們的軟件,這樣才能在可能出現的瀏覽器和各種版本中運行。
        據報道,在2015年11月,Dyreza有了攻擊Edge的功能。不過之後,這種木馬的僵屍網絡活動降至零,木馬更新包不再發布,C&C服務器也處於離線狀態。
*C&C=command-and-control
        另一個有名的銀行木馬Kronos在2016年也盯上了Edge,我們在虛擬機上分析了這個木馬。在Kronos的新版本的代碼中,我們發現了一個函數檢查進程的名稱和綜合校驗碼(checksum),以及木馬掛鉤的函數的hash值。

*檢測進程名和總合校驗值來確定瀏覽器種類的函數
       Kronos檢查進程名稱, 將字符串轉換爲小寫,計算其校驗值,這樣獲得的hash值會和一張表對比,如果在這張表裏找到,木馬會掛鉤瀏覽器進程的某個函數。
       木馬所監測的瀏覽器進程名稱和校驗值。

       wininet.dll掛鉤的函數如下。
 
       Kronos使用splicing掛鉤函數,在程序代碼首添加一個無條件跳轉指令,因爲惡意代碼是作爲一個shellcode被加載而不是library,所以瀏覽器內置的安全策略不會阻止它。

*InternetReadFile function hook in MicrosoftEdgeCP.exe

*掛鉤函數的處理程序
        成功掛鉤這些函數後木馬可以向Web頁面注入數據,它還可讓Kronos來獲取有關用戶的信息,用戶的憑據和銀行帳戶的餘額,將用戶重定向到釣魚站點,或銀行的合法頁面,啓用惡意軟件找出用戶的答覆的機密問題,信用卡卡號,日期出生或電話號碼。

*對一個銀行頁面的注入
        請注意,Kronos目前僅可以攻擊32位Windows10的Edge,不過現在有能夠在64位Windows10運行的銀行木馬。
        在今年年初,一個Gozi銀行木馬的變種出現,它被設計來在64位Windows10上使用瀏覽器中間人攻擊的手段來攻擊Edge。這個木馬將自己的代碼注入RuntimeBroker.exe,一旦啓動瀏覽器,它的代碼就會注入瀏覽器的進程。

*用於檢查進程名來注入的函數的一部分
        在某些方面Gozi的這個變種和Kronos一樣,它們都掛鉤創建和發送HTTP請求的函數。然而,它卻替換IAT Poniters,以及函數地址。

*檢查進程名爲每個瀏覽器配置合適的hook的函數的一部分

*HttpSendRequestW hook(Gozi銀行木馬在MS Edge瀏覽器中的)
        現在Windows Defender已經可以成功封鎖當前版本的Kronos和Gozi。然而,新的惡意軟件和廣告軟件將會繼續出現,利用Edge實現自己的目的。



Ⅱ 基於虛擬化的安全

        在企業版本的Windows10中,微軟有了一種新的方法–––––使用Microsoft Hyper-V來提高安全性,一個應用硬件輔助虛擬化的技術。Virtualization Based Security (基於虛擬化的安全,下文均稱VBS)使用一種白名單機制,僅允許受信任的應用程序啓動,將最重要的服務以及數據和操作系統中的其他組件隔離。
        VBS取決於平臺和CPU功能,使用這項技術必須滿足下列要求。
•Windows10 Enterprise
•UEFI固件2.3.1版本+安全啓動支持
•CPU支持Intel VT-x/AMD-V虛擬化功能
-64位結構
-CPU支持SLAT機制
*SLAT(Second Level Address Translation)二級地址轉換技術,主要用在Hyper-V中,幫助執行更多內存管理功能,減少在客戶機物理機地址和實體機物理地址之間轉換的系統資源浪費,減少了運行虛擬機時Hypervisor的CPU和虛擬機的內存佔用。

•Intel VT-d/AMD-Vi IOMMU
*IOMMU指I/O Memory Management Unit,I/O內存管理單元
         微軟使用Hyper-V hypervisor作爲虛擬化平臺。虛擬機管理程序包含的代碼越少,受到的攻擊越少。在這一方面,Hyper-V安全性很高。與以往的Windows系統不同,虛擬機管理程序不是以內核驅動啓動,而是在UEFI中在計算機啓動的早期啓動。

*Hyper-V初始化過程
         在VBS,虛擬機管理程序活動時,每個虛擬CPU會被分配一個VTL屬性,目前使用兩個屬性,VTL1和VTL0,VTL1權限高於VTL0。
*VTL,Virtual Trust Level ,虛擬信任水平。
VTL1(Secure World),VTL0(Normal World)。

       安全內核模式(Ring0,VTL1)包含一個最小的內核(SK),一個代碼完整模塊(CI)和加密模塊。單獨用戶模式(IUM,Ring3,VTL1)包含幾個服務,稱爲Trustlets,和外部甚至這幾個服務彼此都是分開的。在VTL0模式中,傳統的內核,內核模式驅動程序,進程和服務工作根據前先前的規則運行。

*圖示兩個環境
       當虛擬機管理程序處於活動狀態時,物理RAM頁和它們的屬性只能由安全隔離內核(SK)控制。它可以編輯頁面屬性,阻止/允許在特定頁面的讀寫及執行代碼。這可以防止不受信任的代碼,受信程序中被惡意篡改的代碼的執行,這讓泄露受保護的數據更難。
       在這種體系結構下,在系統中唯一管理系統中任何代碼執行的組件是CI模塊,Normal World的內核無法設置內核模式物理頁的屬性。
Credential Guard
        憑據保護是VBS的主要功能之一。它使用隔離技術確保只有受信任的代碼可以訪問機密。這可以用來抵擋DMA攻擊(直接內存訪問攻擊),以及pass-the-hash和pass-the-ticket攻擊。

*系統信息,憑據保護和HVCI。

        我們已經測試了此項技術,嘗試使用DMA獲取機密數據。我們使用了Mimikatz和Inception hacker tools。這些攻擊手段都沒有成功。這些黑客工具對於憑據保護無能爲力。

*使用Inception tool的DMA的攻擊。

Device Guard
         設備保護是VBS的一部分,是AppLocker的後續。它控制着所有代碼的啓動和執行:可執行文件,動態鏈接庫,內核模式驅動和腳本(比如PowerShell)。這基於系統管理員配置的代碼完整性策略來識別程序是否受信任。
         使用設備保護的主要困難是創建一個恰當的策略,有時甚至對有經驗的系統管理員也是難事。一般配置過程如下所示。
1.在計算機上啓用Windows10的VBS機制。
2.準備Windows系統的主映像。
3.安裝所有需要的軟件。
4.創建一個基於某些規則的代碼完整性策略,將其設爲審查模式一段時間,在這段時間裏,仍然可以添加更改軟件。
5.看CI事件的事件日誌
6.執行任何必要的策略調整,比如簽署未簽名的軟件。
7.整合原有的規則和在審查模式中的調整。
8.在代碼完整性策略中關閉審查模式,使用“enforced mode”。
9.給最終用戶分發準備好的策略。

       代碼完整性策略定義在用戶模式(UMIC)和內核模式(KMIC)執行代碼的條件。Windows內核本身的安全啓動有安全啓動技術提供。代碼完整性策略需要維護和根據軟件的要求更新。
*爲了不讓程序任意存取,很多CPU架構都支持Kernel mode與User mode兩種執行模式。當CPU運行於Kernel mode時,任務可以執行特權級指令,對任何I/O設備有所有的訪問權,還能夠訪問任何虛擬地址和控制虛擬內存硬件;這種模式對應x86的ring0層,操作系統的核心部分,包括設備驅動程序都運行在該模式。當CPU運行於User Mode時,硬件防止特權指令的執行,並對內存和I/O空間的訪問操作進行檢查,如果運行的代碼不能通過操作系統的某種門機制,就不能進入內核模式;這種模式對應於x86的ring3層,操作系統的用戶接口部分以及所有的用戶應用程序都運行在該級別。
       
除了完整的策略,還有其他對執行代碼的限制。只有在證書驗證後,物理內存也纔會獲得“可執行”的屬性。而且,內核模式的頁不能同時有可寫和可執行兩種屬性。這可以在內核模式中防禦大多數的漏洞利用攻擊和hook。如果嘗試修改內核模式頁面具有"可讀"和"可執行"屬性的內容,這將引發異常。如果不進行處理,Windows 將停止工作並藍屏。當虛擬機管理程序的所有安全選項都激活時,如安全啓動,TPM,IOMMU和SLAT,無法啓動未簽名的驅動,應用程序,動態鏈接庫,UEFI模塊和一些腳本。根據設置,即使簽名的代碼也可以阻止執行。
       當然,設備保護不完美。使用更多的保護要付出代價,使用過程中的“Performance”會降低,由於虛擬機監控程序的存在是不可避免的。創建,配置和維護策略的高度複雜性可看爲這項技術的弱點。這些策略的選項分散在系統的各處,沒有統一的管理面板控制。其結果是,犯錯誤很容易,反而導致降低了保護等級。
       由於安全啓動在這項技術中起關鍵作用,保護的等級很大程度上取決於UEFI 代碼的質量,這個Microsoft無法控制,有第三方來編寫。在User Mode下沒有針對漏洞利用攻擊的保護也是一個令人失望的地方。

Testing VBS
       如果惡意代碼在開啓VBS的計算機上利用漏洞,必須提權至內核模式,才能攻擊虛擬機管理程序。我們嘗試這樣操作,使用一個簽名過的和可信的內核驅動。
       內核模式滲透測試結果:

*這裏藍屏意味着失敗。
       我們嘗試過的攻擊方式全部無效,基於CCR和MSR的攻擊也未生效,都是以0xC0000096結束(意爲“特權指令異常”)。
       我們還在User Mode下進行了一些測試,試圖規避enforced mode下的代碼完整些策略,目的是爲了啓動未簽名的程序和向受信任的進程里加載未經簽名的動態鏈接庫。我們不能直接這麼做,但在Windows 10 preview release (10154)中發現了一個奇怪的錯誤。
       錯誤原因在於,儘管設備保護檢查應用程序,驅動和動態鏈接庫是否簽名,但它不會驗證簽名對於程序是否是有效配對的。也就是說,可以在受信任的應用程序中提取簽名插入到不受信任的程序中,然後系統就會認爲程序是受信任的。所以這樣可以啓動不受信任的程序和不受信任的動態鏈接庫。
       
我們立即向Microsoft報告了這個問題,Windows 10 RTM (10240)不存在這個問題。
       我們也發現了一個拒絕服務錯誤,這可能讓一個彙編指令能是系統崩潰,或是虛擬機管理程序藍屏。此錯誤的修補程序在Windows 10 TH2 (10586)。

*虛擬機管理程序的藍屏。
        總的來說,Microsoft在安全機制方面做得不錯,然而在以前的版本中,依然有利用固件來攻擊的可能,另一方面,系統管理員必須專業水平很高才能正確配置。如果配置錯誤或是私有證書泄露,所有的保護將毫無用處。此外,針對User Mode沒有漏洞利用保護。VBS僅在Windows10企業版中適用。
        我們已經通知Microsoft所有在測試中系統所暴露出的漏洞。


Ⅲ Windows內置的反惡意程序保護

        讓我們來看下Windows內置的實時防護組件。對於沒有安裝第三方惡意程序保護軟件的用戶是默認開啓的,它是最主要的Windows安全工具。
        它的主要目的是防止惡意程序的安裝和運行,它實時掃描文件和進程,通過使用一個定期更新的病毒數據庫判斷惡意程序。在大多數情況下,這種保護是足夠的。
        然而,如果你是一個積極的互聯網使用者,經常有一些重要的操作,比如在線管理銀行賬戶,就需要多層次地保護。最頂級的反惡意軟件保護也會有時漏過檢測最新未知的威脅。在這種情況下,只有多層保護才能阻止惡意程序進一步的破壞。        
        我們做了一些研究,發現了一些真實的例子來證明內置的保護可能不夠。

Keystroke Interception(鍵盤記錄)
        一些銀行木馬截取用戶輸入在鍵盤上的信息來盜取銀行賬戶。這種類型的木馬的例子很多,如Qadars,Zbot和Cridex。許多反惡意軟件解決方案,比如KIS,有一個組件專門檢測和阻止應用程序截獲擊鍵順序(即記錄鍵盤輸入的信息)的行爲。在一些情況下,即使電腦已被感染,銀行賬戶也不會被盜。
        我們測試了內置保護對於防禦鍵盤記錄的能力,測試程序調用GetAsyncKeyState這個API。在Windows Defender開啓的狀態下,我們成功截取了PayPal賬戶的帳戶名和密碼。

*截取PayPal賬戶憑據。

Unauthorized Web Camera Access(未經授權的網絡攝像機訪問)
        在下一個測試中,我們嘗試未經授權開啓網絡攝像機。在過去幾年裏,越來越多的黑客工具和木馬使用這種方法。在衆多網絡犯罪實例中,Adwind包含祕密開啓攝像頭展開監控的功能。
*Adwind是一個RAT(遠程控制工具)。
        打開網絡攝像頭追蹤受害者可以獲得很多信息,這可以非法賺錢,比如,威脅公佈受害者的親密視頻除非付錢給勒索者。
        一些惡意軟件防護解決方案有控制程序訪問攝像頭的能力,在實際使用中,幾乎沒有合法的程序需要在用戶不知情的情況下打開攝像頭,所以在檢測到這些操作時提示用戶是一個方便又被廣泛接受的策略。用戶可以選擇允許必須的程序訪問攝像頭的請求,也可以拒絕可疑程序訪問它。
        我們的測試程序使用了一個公開的library,叫做OpenCV(舉個例子,Rover木馬在使用它)。一個簡單的Python腳本從網絡攝像機中錄下一段視頻,以一個單獨的窗口播放。即使Windows Defender在開啓時,用戶也會對應用程序使用攝像頭錄像一無所知,不會有任何提示。

*用一個腳本開啓網絡攝像機錄像。

Control of Drive-By Downloads
        Windows用戶面臨的另一嚴峻的安全問題是漏洞利用程序的攻擊,漏洞存在於各種程序中。我們測試了內置保護對於利用Adobe Flash Reader的CVE-2016-1019漏洞的反應(較新的漏洞)。
        利用此漏洞的文件是使用ZLIB壓縮算法的SWF文件。
        
*flash漏洞利用攻擊
        這種形式下的文件被Windows Defender識別並隔離。

*成功檢測到打包的漏洞利用工具。
        但是,如果該文件解壓到原SWF,Windows Defender會忽略它。
        此外,如果一個有漏洞的Adobe Flash Reader安裝在系統中,且一個壓縮文件(漏洞利用)從一個掛馬網頁下載到本地磁盤中從瀏覽器的context中執行(Drive-by attacks),可以發生感染,因爲 Windows Defender並不包括本地下載控制組件。

*成功下載一個漏洞利用工具,曾經檢測過的。
        此外,我們要提一個微軟的組件,SmatScreen,基於信譽檢測可以阻擋Drive-by攻擊,但是有些情況,尤其是針對性較強的攻擊,需要啓發檢測技術。



結論
        如今,需要一個全面的方法來保護用戶的系統,結合常規檢測模塊(基於簽名的分析,行爲分析等)和一些附加檢測模塊來檢測網絡犯罪分子的某些攻擊手段。
        我們簡要地分析表明,在某些情況下,Windows10內置的保護不足以全面抵擋攻擊。而在以前的Windows版本中,所有的攻擊一般都由專用的安全產品解決。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章