1. 程式人生 > >授人以魚不如授人以漁——CPU漏洞的Symantec解決之道

授人以魚不如授人以漁——CPU漏洞的Symantec解決之道

感染 內存 manage define 如何 -s 彈性 加固 images

授人以魚不如授人以漁
——CPU漏洞的Symantec解決之道

  1. 前言
    1月4日,國外安全研究機構公布了兩組CPU漏洞,由於漏洞嚴重而且影響範圍廣泛,引起了全球的關註,成為2018開年以來第一個信息安全焦點。本文從漏洞背景和原理分析入手,給出Symanec針對這兩個漏洞的解決方案,希望能夠幫助讀者不僅僅是理解這兩個漏洞,更從黑白名單兩種最經典的信息安全防護技術角度了解symantec的解決方案,避免類似威脅再次發生。
  2. 漏洞背景和原理
    Meltdown(熔斷),應對漏洞CVE-2017-5754;
    Specter(幽靈),對應漏洞CVE-2017-5753/CVE-2017-5715。
    利用Meltdown漏洞,低權限用戶可以訪問內核的內容,獲取本地操作系統底層的信息。
    當用戶通過瀏覽器訪問了包含Spectre惡意利用程序的網站時, 用戶的如帳號,密碼,郵箱等個人隱私信息可能會被泄漏;在雲服務場景中,利用Spectre可以突破租(用)戶間的隔離,竊取其他租(用)戶的數據。
    Meltdown漏洞影響幾乎所有的Intel CPU和部分ARM CPU,而Spectre則影響所有的Intel CPU和AMD CPU,以及主流的ARM CPU。從個人電腦、服務器、雲計算機服務器到移動端的智能手機,都受到這兩組硬件漏洞的影響。雲環境下的影響更為突出,不過該漏洞可以導致VM1的用戶訪問到VM2的數據,但是不能訪問到宿主的內存數據。
    相關漏洞利用了芯片硬件層面執行加速機制的實現缺陷實現側信道攻擊,可以間接通過CPU緩存讀取系統內存數據。在此過程中,英特爾沒有很好地將低權限的應用程序與訪問內核內存分開,這意味著攻擊者可以使用惡意應用程序來獲取應該被隔離的私有數據。
    如果要在CPU層面完全彌補這一漏洞,CPU的性能將會退回2000年以前的水平。
    相關漏洞主要借助於CPU用來加速的『分支預測』和『亂序執行』兩種流水線設計。先來簡述這兩個機制:
    2.1. 分支預測
    分支預測(Branch Prediction):從P5時×××始的一種先進的解決處理分支指令(if-then-else)導致流水線失敗的數據處理方法,由CPU來判斷程序分支的進行方向,能夠加快運算速度。是一種CPU優化技術,CPU會執行一些可能在將來會執行的任務。當分支指令發出之後,無相關優化技術的處理器,在未收到正確的反饋信息之前,是不會做任何處理;而具有優化技術能力的新型處理器,可以預測即將執行的指令,會預先處理一些指令所需的數據,例如將下一條指令所需 要訪問的內存提前加載到CPU緩存中,這就避免了執行具體指令時再去讀內存,從而加快了CPU的執行速度
    流程圖如下
    技術分享圖片
    1, CPU要執行進程1,將該數據從內存調入緩存
    2, 進程1的數據從緩存進入寄存器
    3, 計算器進行運算
    4, 基於分支預測的設計,雖然進程2和3暫時還執行不到,但是為了加快流水線處理速度控制器會把進程2和3的數據加載到緩存
    5, 此時根據進程1的執行過程判斷,結果為『YES』,進程2調入寄存器進而執行
    6, 根據判斷結果進程3將不會得到執行,但是已經調入到緩存,CPU也不會把它清除導致該段內存是無權限執行的
    2.2. 亂序執行
    亂序執行(out-of-order execution):是指CPU允許將多條指令不按程序規定的順序分開發送給各相應電路單元處理的技術。這樣將根據各電路單元的狀態和各指令能否提前執行的具體情況分析後,將能提前執行的指令立即發送給相應電路
    技術分享圖片
    為了加速CPU的處理效果,在設計執行流程時可以不按照程序的先進先出的順序來執行,這樣將根據個電路單元的狀態和各指令能否提前執行的具體情況分析後,將能 提前執行的指令立即發送給相應電路單元執行,在這期間不按規定順序執行指令,然後由重新排列單元將各執行單元結果按指令順序重新排列。采用亂序執行技術的 目的是為了使CPU內部電路滿負荷運轉並相應提高了CPU的運行程序的速度。
    一個類比來形象理解漏洞是如何泄漏信息的:
    1.KFC裏賣的有薯條、雞塊、漢堡、可樂。
    2.A去KFC點了個漢堡,吃完走了。
    3.B排在A後面的後面,和點餐服務員說:我要點和A一樣的。
    4.點餐×××姐說,不好意思您前面還有一位,稍等下,但是後廚聽到了,麻溜的做了個漢堡。
    5.輪到B點餐了,點餐服務員說。不能這樣點哦,侵犯別人隱私了!
    6.C排在B後面,跟服務員說:我薯條、雞塊、漢堡、可樂各點一份,餓死了餓死了,哪個快先把哪個給我!
    7.C先拿到了“漢堡”!
    8.C知道了A今天在KFC買了個漢堡!
    CPU漏洞原理圖
    技術分享圖片
    對於具有預測執行能力的新型處理器,在實際CPU執行過程中,後續指令所需的內存加載環節不依賴於前序指令是否能夠正常執行,而且從內存到緩存加載這個環節不會驗證訪問的內存是否合法有效。即使指令3出現異常,指令4無法執行,但指令4所需的內存數據已加載到CPU緩存中,這一結果導致指令4即使加載的是無權限訪問的內存數據,該內存數據也會加載到CPU緩存中。因為CPU是在緩存到寄存器這個環節才去檢測地址是否合法,而CPU分支預測僅僅是完成內存到CPU 緩存的加載,實際指令4並沒有被真正的執行,所以他的非法訪問是不會觸發異常的。
    CPU漏洞的利用首先需要目標機中病毒或通過瀏覽器執行惡意的JS代碼,無論是服務器側還是終端側,防護解決方案必須從非可信程序管理或者惡意代碼防護視角入手。
  3. Symantec的安全白名單技術解決方案-DCS/SA
    3.1. 對於虛擬化環境
    Data Center Security(DCS)是Symantec針對數據中心安全所提供的新一代安全解決方案,用戶可以通過DCS解決虛擬化環境、物理環境中所面臨的安全威脅。DCS架構參考下圖:
    技術分享圖片
    在虛擬化環境中DCS通過SVA(Security Virtual Appliance)交付主機惡意代碼安全防護服務,並在vSphere環境中提供基礎架構保護,包括vCenter平臺加固與ESXi主機監控服務。
    ? 無代理的惡意代碼防護能力
    DCS安全解決方案提供面向SDDC(software define data center)的惡意代碼防護能力。DCS有效的與VMware vSphere和VMware NSX融合,向客戶提供無安全代理的病毒及惡意代碼防護能力。惡意代碼防護服務及能力的交付跟隨虛擬資源組的變化而變化,業務的上線時間將不在受到復雜的安全措施及策略配置所影響。Symantec DCS提供了業界領先的惡意代碼防護技術,可作為軟件定義數據中心的基礎安全服務交付給所有的系統使用,作為一種永不下線的安全服務無縫保護所有數據中心的主機。
    3.2. 對於物理服務器和IaaS環境
    開始介紹DCS:SA防禦原理之前先簡要回顧一下操作系統的架構
    操作系統的架構圖
    技術分享圖片
    在操作系統的架構設計中內核負責管理所有硬件設備並將其抽象化,有系統庫提供API來供應用程序使用。一般情況下一個程序運行的大致流程如下:當應用態程序提出執行請求時,CPU發出中斷並由內核態進程負責分配內存空間,操作磁盤DMA把該程序的數據調入已分配的內存空間;同時把內存的物理地址翻譯為邏輯地址進而將數據調入緩存、寄存器,下一步由運算器負責計算。得出運算結果後再把內存的頁面文件翻譯為物理地址寫入內存,由內核進程再回寫到硬盤或是網絡棧、外設等。
    DCS:SA防禦體系如下
    技術分享圖片
    它的特點是對於安全需求較高的主機(無論是虛擬主機還是物理主機)提供基於本地代理Advanced Agent的主機安全加固能力,區別對待不同重要性的虛擬主機
    ? 基於主機代理的安全加固與主動防禦能力
    DCS在基於代理的系統上提供的防護能力是系統安全鎖定防護,這種防護措施基於操作系統代理部署,建議部署於關鍵業務的虛擬或物理服務器,提供主動的安全防護措施。DCS安全防護基於白名單機制,不同於防病毒等黑名單機制,更加適用於功能任務相對單一、維護變更較少的服務器環境。DCS可有效抵禦零日漏洞的攻擊,減少補丁管理的成本。
    DCS是基於代理的沙盒技術進行安全防護;應用只需要有限的資源以完成相關工作,但大多數程序擁有遠遠超出其自身要求的資源,惡意的入侵攻擊常常利用這些空隙逐步完成系統的滲透。如下圖所示,用戶、程序、參數、行為、資源,只有從左到右是一個“通路”這樣的資源訪問才是允許的。相當於將系統每一個允許的行為限制在一個沙盒中,超出沙盒的資源或行為是明確禁止的。不必去窮舉所有的惡意行為,只需要將明確允許的行為即可保證系統安全穩定運行。DCS系統自帶了大量的沙盒,用戶只需要勾選自己需要的沙盒即可完成策略配置。
    技術分享圖片
    對於運行核心業務或專用業務的服務器,其運行任務單一,需要業務長期、穩定、不間斷的運行。因傳統的基於特征庫升級、打補丁等技術已經不能滿足客戶的業務需求。
    未知的威脅不斷變化,基於特征庫的防護無法有效防禦0-Day威脅。但在這些業務單一的服務器上面,我們明確知道什麽業務是運行運行的,這就是白名單技術。
    將系統每一個允許的程序放入一個沙箱,只允許指定的應用訪問指定的系統資源,其他訪問定位為非法訪問。
    在實際環境中常常會發現某個應用程序存在漏洞,但由於應用可用性要求或者應用只能在該版本下運行導致無法對該漏洞進行補丁更新,這時DCS就可提供基於自定義應用的保護策略,實現對該應用的最小化資源權限保護,相對於補丁安全成本更低風險更小,因為DCS的策略可以回退,而補丁安裝失敗一般是不可回退的。這一點對系統的可用性至關重要。
    Symantec DCS提供了一套按需的數據中心安全防護套件,交付VMware SDDC環境中的安全服務集成與基礎架構保護。這只是Symantec面向數據中心安全整合的一部分,Symantec將不斷提供更多類型的安全服務能力幫助用戶搭建面向快速應用交付、彈性化、智能化的軟件定義數據中心。
    受DCS:SA保護下的系統架構圖
    安裝DCS:SA後會在內核基礎上添加一層保護,任何在白名單內的用戶態進程發起內存申請/訪問、文件讀取/寫入、外設訪問、用戶提權/變更等操作在CPU切換到內核態進程前都會過DCS:SA HIPS的沙箱進行控制和約束及HIDS的審計,從根本上保護了系統的安全。
    技術分享圖片
    對比剛才一般程序執行的流程,當應用態程序提出執行請求時,CPU發出中斷並由內核態進程負責分配內存空間(此時DCS:SA會根據應用白名單來判斷該程序是否允許運行),操作磁盤DMA(DCS:SA會檢查該程序的目錄及數據是否有讀寫權限)把該程序的數據調入已分配的內存空間;同時把內存的物理地址翻譯為邏輯地址進而將數據調入緩存、寄存器,下一步由運算器負責計算(DCS:SA會約束進程在沙盒內以最小的權限運行)。得出運算結果後再把內存的頁面文件翻譯為物理地址寫入內存(如果出現內存溢出、泄漏等危險DCS:SA會保護各個程序的內存空間不會被非法訪問),由內核進程再回寫到硬盤或是網絡棧、外設等(DCS:SA會判斷對應的目錄、文件、設備是否有寫權限,防止篡改被保護的內容)。整個程序的加載、運算、回寫會在DCS:SA的嚴密約束、監控和保護下進行,即便是出現零日攻擊也會因為其沒有響應的權限而無法實現。
    回到CPU漏洞的場景,實現攻擊的前提是有病毒先進入主機,同時與漏洞進行配合。那麽分為以下兩種可能進行分析:
    A. 不可信的程序
    病毒也是一種程序,假設配合CPU漏洞的病毒已經躲過殺毒軟件的防護,但是如果它想在有DCS:SA保護的服務器上運行就得先能夠被調入內存。DCS:SA會以白名單的形式來允許可信的程序運行,顯然病毒不在這個列表,那麽它就根本無法運行,何談造成攻擊。
    B. 可信的程序
    如果病毒感染了可信的程序,根據『分支預測』和『亂序執行』的原理實現無條件執行指令的內存數據滯留在緩存中,造成有可能被惡意竊取的可能。但是DCS:SA是會嚴格控制每個程序可訪問的內存空間並且給予最小的權限,即便出現類似內存泄露、溢出的情況也不允許其他進程超範圍訪問。
    基於以上的分析,DCS:SA基於流程和方法的防護理念天生就具有防護零日攻擊的基因,不需要管理員頻繁更新特征碼,達到一勞永逸的目的。
    對於CPU漏洞的防禦Symantec官方鏈接和解釋
    熔毀和幽靈本地權限提升漏洞這意味著必須首先在目標系統上安裝惡意軟件才能利用這些漏洞。賽門鐵克數據中心安全:服務器高級(DCS:SA)通過確保只有授權軟件是允許執行的。
    對於Windows更新修補程序,不需要對安全代理進行更改。作為對內核級更改的額外預防措施,我們分析了Microsoft的修補程序信息,並在發布補丁時對其進行測試。Windows 2016、2012R2、2008 R2已獲得全面認證,迄今未發現任何其他問題。對於Linux平臺,我們在發布補丁時進行測試。到目前為止,所有平臺都已成功測試。只有Amazon Linux需要一個驅動程序更新。
    技術分享圖片
    原文:https://www.symantec.com/connect/articles/data-center-security-meltdown-and-spectre-situation-update
  4. Symantec 動態威脅解決方案-SEP
    SEP(Symantec Endpoint Protection) 專為解決當今威脅態勢而設計,在整個攻擊鏈中實行全面保護並提供深層防禦。運用全球最大脅情報網絡的力量,SEP借助多維機器學習、信譽分析和實時行為監控等新一代技術,有效攔截高級威脅。它可結合同樣舉足輕重的基本防護技術,為企業提供全面保護。 Symantec Endpoint Protection 是一款單一管理控制臺的輕量型代理,可與安全基礎架構中的其他產品集成,從而快速響應威脅,實現最佳的端點防護,以不折不扣的實力傲視同類產品。
    技術分享圖片
    入侵防禦
    ? 網絡入侵防護、URL和防火墻策略:賽門鐵克的網絡威脅防護技術可分析傳入和傳出數據,及時阻止威脅通過網絡攻擊端點。這個防護技術同時還包含基於規則的防火墻以及瀏覽器保護功能,可有效抵禦網絡攻擊。總體而言,借助強大的網絡防護技術,一半以上的威脅都會在到達端點前被查殺和攔截。
    ? 應用程序行為控制:控制文件和註冊表訪問權限,以及設置允許進程運行的方式。
    ? 設備控制:限制對選定硬件的訪問,並控制哪些類型的設備可以上傳或下載信息。外設控制可以結合應用程序控制,提供更靈活的控制策略。
    ? 漏洞利用防護:根除供應商尚未發布修補程序的流行軟件中的零日漏洞利用,包括 Heap Spray、SEHOP Overwrite 和Java 漏洞利用。這種無特征技術效果顯著,有效防止惡意軟件利用任何缺陷、錯誤或漏洞發起攻擊。
    感染防禦
    ? 信譽分析:賽門鐵克獨有的信譽分析技術利用我們的情報網絡關聯用戶、文件和網站之間存在的數百億種關系,可主動攔截更多威脅並快速抵禦惡意軟件變體。通過分析關鍵文件屬性(例如文件下載的頻率、文件存在的時長和下載的源位置),我們可以在文件傳到端點之前,精準判定文件是否安全並指定一個信譽分數。利用文件信譽分析後,用戶只需僅掃描有風險的文件,從而顯著減少掃描工作量。
    ? 機器學習:端點上的多維機器學習技術運用學習到的內容攔截新型威脅和未知威脅,從而極度減少我們在辨別威脅時對特征的依賴程度。機器還經過全球威脅情報網絡中數萬億安全文件和惡意文件示例的反復訓練,確保將誤報率降至最低。
    ? 模擬:高速模擬器可檢測利用多態自定義封裝程序隱藏的惡意軟件。靜態數據掃描程序在輕量型虛擬機中運行每個文件僅需幾毫秒,從而讓威脅瞬間原形畢露,不僅提高檢測率,而且改善了工作性能。
    ? 防病毒文件保護:基於特征的防病毒功能和高級文件啟發式技術可發現並根除系統上的惡意軟件,從而抵禦病毒、蠕蟲、特洛伊木馬、間諜軟件、僵屍程序、廣告軟件和 Rootkit 等。
    ? 行為監控:Symantec Endpoint Protection 中的行為監控功能展現出了極高效率,盡管有極少數的威脅悄無聲息地抵達了端點。它利用機器學習提供零日防護,可監控將近 1400 種應用程序並且實時確定文件風險,從而有效阻止最新和未知威脅。
    泄漏防護
    技術分享圖片
    ? 強力清除器:這款主動清理工具可遠程觸發,從而能夠找到高級持續性威脅並刪除難以清除的惡意軟件。
    ? 主機完整性檢查和策略實施:通過強制實施策略、檢測未經授權的更改、開展損害評估以及隔離不合規端點等功能,確保端點得到妥善保護且合規。結合威脅檢測產品使用,可協調響應以隔離受感染端點,從而快速遏制感染傳播,便於您修復端點或重建端點映像。
    ? 系統鎖定:允許運行列入白名單的應用程序(已知為安全)或阻止運行列入黑名單的應用程序(已知為不安全)。Symantec Advanced Threat Protection (ATP) 和 Secure Web Gateway 可利用可編程 API 與 SEP Management (SEPM) Console進行通信,協調響應措施以通過應用程序控制功能將新發現的惡意應用程序列入黑名單。它可跨 Windows?、Mac?、Linux?、虛擬機和嵌入式系統運行。
    ? Secure Web Gateway集成:全新可編程 REST API 支持 SEP 與 Secure Web Gateway 等第三方產品集成,協調端點響應措施,快速遏制感染傳播。
    賽門鐵克的SEP解決方案,不僅適用於常見的Windows類終端的防護,也可以為MAC OS乃至移動終端(手機)用戶提供動態的安全防護。
  5. 總結
    DCS:SA解決方案從根本上解決了服務器的防禦問題,因為它是基於方法和流程的防禦並不是基於簽名來進行的,可謂是一勞永逸,白名單技術配置簡單,運行資源占用少,能夠大幅度減輕運維人員和安全人員對服務器的維護工作。
    SEP(Symantec Endpoint Protection)強大的機器學習、應用信譽、漏洞防禦體系能夠在不過多增加終端負載的前提下實現更加完善的防禦,及時動態調整防護測量,將病毒和威脅拒之門外。
    本文只是從服務器和端點保護的角度來介紹Symantec給您帶來的解決方案,臨淵慕魚不如退而結網,被動應對不如主動防禦,Symantec為企業和個人用戶提供完整的信息安全防護平臺和服務,從雲、大數據、網絡應用、郵件、移動應用和終端、認證和單點登錄、ATP和廣域網加速等方面提供全方位的信息安全防護平臺。其他產品和方案詳見如下鏈接:http://www.symantec.com/

授人以魚不如授人以漁——CPU漏洞的Symantec解決之道