天天看點

自動化漏洞利用的發展——期刊讀後記錄綜述概述漏洞利用的發展展望

自動化漏洞利用

  • 綜述
  • 概述
  • 漏洞利用的發展
  • 展望

綜述

這篇文章,是一篇關于系統漏洞利用的綜述。自動化漏洞利用的發展是為了保障資訊系統安全,顯著提高軟體安全分析的效率,為人工分析提高良好輔助。本文圍繞自動化漏洞利用技術,對該技術進行概述,同時選取典型研究成果,重點對其發展現狀進行分析探讨,最後對未來發展趨勢進行展望。

概述

自動化漏洞利用,指在無安全分析人員幹擾餓基礎上,依靠程式自動化挖掘軟體中隐藏的漏洞,并自動分析漏洞,生成可以擷取計算機控制權限的利用資料或代碼,最終利用該漏洞實作軟體非預期的功能。

(用自己的話來說:就是通過自動化漏洞利用生産的利用代碼目标是擷取計算機資訊系統的運作權限。)

自動化漏洞利用的過程主要包括兩個階段:漏洞挖掘、漏洞利用生成。

漏洞挖掘:對源代碼或可執行的二進制程式進行分析,采用靜态分析技術(分彙編技術、控制流圖分析技術)和動态分析技術(模糊測試、符号執行、污點分析技術)結合的方式發現軟體中的漏洞、确定漏洞在程式中的位置。

漏洞利用生成:漏洞利用生成是根據上一階段獲得的漏洞現場資訊(記憶體上下文資訊和寄存器資訊等),對其加以分析,提取關鍵寄存器值,構造記憶體布局,并根據系統記憶體防護機制采取相應的繞過方法,最終生成能夠利用挖掘出的軟體漏洞擷取目标系統控制權限的代碼。

(簡言之:漏洞挖掘:找漏洞;漏洞利用生成:分析漏洞,生成payload)

漏洞利用的發展

這裡重點介紹了六個重大研究成果。

  1. APEG 方案

    背景:2008年,美國卡内基梅隆大學,提出的基于更新檔比對的自動化漏洞利用方案。

    原理:通過更新檔程式尋找到導緻程式崩潰的位置,并且根據更新檔程式中的崩潰過濾條件,為待測程式生成非預期輸入,以此觸發程式漏洞。

    (更新檔程式必須要有過濾條件)

  2. AEG 方案

    背景:2011年,為了彌補上一方案對更新檔程式依賴的弊端,提出基于源碼的自動化漏洞利用方案。

    原理:将自動化漏洞利用轉化為形式化的驗證問題,使用帶路徑優先政策的前置條件符号執行技術收集路徑限制并使用STP求解器進行求解,能夠發現軟體程式中的棧溢出漏洞和格式化字元串漏洞,可以生成繞過NX 棧不可執行保護的漏洞利用,對程式實作rtlibc方式的控制流劫持。

    (通過分析源代碼,主要針對棧溢出等有限範圍的漏洞)

  3. Mayhem方案

    背景:2012年,為了擺脫源代碼限制,擴大安全分析的适用範圍

    原理:以二進制程式作為分析對象,使用動态符号執行技術檢測漏洞,利用基于可滿足性模理論(SMT)的限制求解器求解同時滿足路徑可達條件和漏洞可利用條件的漏洞利用。

    (通過基于索引的記憶體模型,緩解了漏洞挖掘過程中的路徑爆炸問題。不能有效處理複雜程式)

  4. PolyAEC方案

    背景:2013年,通過污點分析技術動态監控、擷取程式中全部可能的控制流劫持點,通過構造不同的跳轉指令鍊和對收集的路徑限制進行求解,生成多樣化的漏洞利用樣本。

    原理:依賴程式中存在的指令資訊,構造不同的跳轉指令鍊和對收集的路徑限制進行求解,動态生成漏洞利用

  5. FlowStitch方案

    背景:2015年,面向資料流分析的自動化漏洞分析。

    原理:在不改變程式控制流的前提下,針對目标二進制程式中的已知記憶體錯誤進行分析,對正常資料流中的關鍵變量内容進行篡改,生成的漏洞利用可以實作對目标主機的權限提升和資訊洩露等功能。

    (要求,目标程式含有已知的記憶體錯誤,對正常資料流中的關鍵變量内容進行篡改)

  6. Revery方案

    背景:2018年,針對程式crash現場無法利用的問題,提出的

    原理:以異常對象的記憶體布局為導向,采用模糊測試技術來探索漏洞可利用的替代路徑,并利用關鍵記憶體操作指令定位漏洞點,使用污點分析技術在替代路徑中尋找可利用狀态。确定拼接點,完成路徑拼接後,通過符号執行技術求解路徑限制、漏洞利用限制等條件,生成漏洞利用。

    (無法自動生成繞過ASLR記憶體位址随機保護機制的利用樣本,無法自動構造記憶體布局)

展望

自動化攻防:自動化漏洞利用技術的出現和發展正滿足了自動化攻防的迫切需求,自動挖掘軟體或系統中的 0day 漏洞,自動生成漏洞利用代碼,實施網絡對抗,同時随着技術的成熟,自動化漏洞利用會結合自動生成更新檔,對乙方軟體和系統中的漏洞威脅進行修複,實作積極防禦,增強資訊系統的安全性。正是由于自動化漏洞利用技術的高度适用性,圍繞該技術的研究在網絡自動化攻防中具有廣闊前景。

智能化發展:今後的軟體安全分析研究中,一個可能的發展趨勢是自動化漏洞利用會緊密結合機器學習等技術,探索漏洞挖掘與漏洞利用生成的新方式,尤其是在自動化漏洞利用中的漏洞挖掘階段,構造路徑覆寫率高或具有脆弱性導向的測試輸入,能提高漏洞挖掘的效率和針對性,利用神經網絡模型可以對海量待測程式進行分析、學習,并利用生成模型指導生成更高品質的測試輸入樣本,緩解盲目性、路徑爆炸問題,結合梯度下降算法處理限制求解的複雜性問題。

繼續閱讀