任意代碼執行

任意代碼執行(簡稱ACE)是指攻擊者能夠讓目標電腦或目標進程中執行任意命令或代碼[1]。如果系統有地方可以被黑客利用以執行任意代碼,則此處被稱為任意代碼執行漏洞。特別設計利用此一漏洞的程式,稱為任意代碼執行漏洞利用。可以通過網絡(尤其是通過互聯網等廣域網)讓目標電腦(遠程電腦)執行任意代碼的能力稱為遠程代碼執行(RCE)。

漏洞類型

編輯

有許多類型的漏洞可能導致攻擊者能夠執行任意命令或代碼。例如:

方法實現

編輯

任意代碼執行通常是通過控制正在運行的進程的指令指針(例如跳轉或分支)來實現的。指令和指針通常指向進程中將要執行的下一條指令。因此,對指令指針值的控制可以控制接下來執行哪條指令。為了執行任意代碼,許多漏洞將代碼注入到進程中(例如通過向進程發送輸入,該輸入存儲在RAM中的輸入緩衝區中)並使用漏洞更改指令指針以使其指向注入的代碼,然後注入的代碼將自動執行。這種類型的攻擊利用了大多數計算機(使用馮諾·依曼架構)沒有對代碼和數據進行一般區分的事實,因此可以將惡意代碼偽裝成無害的輸入數據。許多較新的 CPU 具有NX Bit機制,使任意執行代碼更難。

權限提升

編輯

就其本身而言,任意代碼執行漏洞可賦予攻擊者與易受攻擊的目標進程相同的權限[5]例如,如果利用網絡瀏覽器中的漏洞,攻擊者可以充當用戶,執行修改個人計算機文件或訪問銀行信息等操作,但無法執行系統級操作(除非有問題的用戶也有該訪問權限)。

為了解決這個問題,一旦攻擊者可以在目標上執行任意代碼,通常會嘗試進行權限提升漏洞利用以獲得額外的控制權。這可能涉及內核本身或管理員、SYSTEM 或 root 帳戶。無論有沒有這種增強的控制,漏洞利用都有可能造成嚴重的破壞或將計算機變成殭屍——但權限提升有助於隱藏系統合法管理員的攻擊。

參見

編輯

參考文獻

編輯
  1. ^ Team, KernelCare. Remote code execution attack: what it is, how to protect your systems. TuxCare. 2021-01-25 [2022-07-26]. (原始內容存檔於2022-11-12) (美國英語). 
  2. ^ Deserialization of untrusted data | OWASP Foundation. owasp.org. [2022-07-26]. (原始內容存檔於2022-11-29) (英語). 
  3. ^ Understanding type confusion vulnerabilities: CVE-2015-0336. Microsoft Security Blog. 2015-06-18 [2022-07-26]. (原始內容存檔於2022-10-02) (美國英語). 
  4. ^ ldd arbitrary code execution. catonmat.net. [2022-07-26]. (原始內容存檔於2022-09-06) (英語). 
  5. ^ Remote Code Execution - an overview | ScienceDirect Topics. www.sciencedirect.com. [2022-07-26]. (原始內容存檔於2022-11-25).