什麼是遠端程式碼執行漏洞?

zktq2021發表於2022-07-07

什麼是遠端程式碼執行攻擊?

RCE 攻擊包括透過使用系統某個級別的漏洞在系統中注入和執行惡意程式碼。這允許攻擊者在系統中執行命令、竊取、損壞、加密資料等。

RCE 攻擊有多危險?

RCE 攻擊的影響可能很大,具體取決於它所利用的漏洞。至少,成功的遠端程式碼執行將授予對系統及其資料的訪問許可權。,嚴重的情況下,它可能導致整個系統妥協和接管。

RCE含義

RCE 也稱為遠端程式碼評估,是更廣泛的任意程式碼執行 (ACE) 攻擊組的一部分。它是一種使用網際網路、本地 (LAN) 或廣域網 (WAN) 在目標機器或系統中遠端注入和執行程式碼的方法。此程式碼可以訪問 Web 伺服器或應用程式,完全控制或破壞它,開啟後門,獲取、修改或破壞資料,安裝勒索軟體等。

這種攻擊利用了將可執行程式碼注入字串或檔案並執行或評估的可能性。可能是由於使用者輸入沒有經過驗證,也沒有被允許透過程式語言的解析器——這種情況通常不是開發人員想要的。注入的程式碼通常使用目標應用程式的程式語言。此類語言可能包括 PHP、Java、Python、Ruby 等。

根據攻擊者所利用的缺陷,他們通常會在執行程式碼時獲得目標程式授予的許可權。例如,如果攻擊者以使用者的身份注入程式碼,他們就會奪取使用者的許可權。

出於這個原因,RCE 之後經常嘗試升級許可權並獲得對管理或根級別的控制。不幸的是,這種提升的特權也允許攻擊者更巧妙地隱藏攻擊。然而,即使沒有更多的特殊許可權,遠端程式碼執行漏洞也有可能造成嚴重危害。

RCE 攻擊的影響

遠端程式碼執行攻擊的影響可能是簡單地獲得對應用程式的訪問權,也可能是完全接管應用程式。RCE攻擊的一些主要結果型別包括:

訪問應用程式或伺服器:最初,由於漏洞,攻擊者可以訪問易受攻擊的應用程式中的功能。他們可以使用它來注入和執行底層的 Web 伺服器命令。

許可權升級:獲得對網路伺服器的訪問權並執行命令意味著攻擊者可能能夠獲得更大的許可權並控制伺服器。如果存在伺服器級別的內部漏洞,這尤其危險。

訪問資料:利用 RCE 漏洞,攻擊者可以訪問和竊取儲存在伺服器上的資料。

拒絕服務:攻擊者可以透過執行特定的命令來中斷和崩潰伺服器上的整個服務和其他服務。

勒索軟體和加密:如果可以在伺服器上執行程式碼,也可以安裝各種型別的惡意軟體。此類惡意軟體可能是使用伺服器資源挖掘加密貨幣的加密挖掘或加密劫持軟體。遠端程式碼執行漏洞也為勒索軟體開啟了大門,讓整個伺服器被接管。

這些只是 RCE 攻擊的一些可能影響。根據具體情況和其他漏洞的存在,敵對方可能會造成進一步的損害,使這種攻擊非常危險。

遠端程式碼執行如何工作

執行遠端程式碼執行有不同的方法,因為它可以針對伺服器的不同層。

執行 RCE 的一種常見方法是透過注入程式碼並獲得對指令指標的控制權。這允許攻擊者指向執行以下指令/過程。程式碼可以以不同的方式和位置注入,但攻擊者必須“指向”注入的程式碼才能執行。程式碼本身可能以命令、指令碼或其他形式存在。

從本質上講,以上就是RCE攻擊的執行方式。攻擊的型別、攻擊向量以及執行的精確程度可能有所不同。

遠端程式碼執行攻擊型別

這些是最常見的遠端程式碼執行攻擊及其基本場景。

型別混淆

這種型別的漏洞是指使用一種型別分配物件、資源或變數,但隨後使用不同於初始型別的另一種型別進行訪問。由於訪問資源的型別和屬性不匹配,這將導致錯誤和邏輯錯誤。

攻擊者利用這個漏洞,將程式碼包含在分配一個指標但讀取另一個指標的物件中。結果是第二個指標觸發注入的程式碼。

例如,在某些情況下, SQL 注入可能是由於型別混淆造成的。

反序列化

Тo 透過網路傳輸資料,它被序列化,也就是轉換為二進位制。然後,將其反序列化並轉換回要在其目的地使用的物件。

透過以特定方式格式化使用者輸入,攻擊者可以建立一個物件,一旦它被反序列化,就會變成可執行的動態程式碼。

緩衝區溢位和緩衝區過度讀取

緩衝區溢位也稱為越界寫入和緩衝區溢位。與緩衝區過度讀取一起,它指的是與稱為緩衝區的記憶體分割槽相關的記憶體安全漏洞。緩衝區的目的是在資料從一個地方移動到另一個地方時臨時儲存資料。

應用程式經常使用緩衝儲存器來儲存資料,包括使用者提供的資料。對於緩衝區溢位,攻擊者將依賴於有缺陷的記憶體分配,例如,缺乏邊界檢查措施。這可能導致資料被寫入緩衝區邊界之外並覆蓋相鄰緩衝區分割槽中的記憶體。

這種覆蓋可能會損壞或破壞重要資料,導致崩潰,或導致透過使用指令指標安全漏洞觸發 RCE。這可能與緩衝區過度讀取情況有關,在這種場景中,資料的讀取超出了緩衝區的邊界,進入了儲存在相鄰分割槽中的記憶體。

RCE 攻擊示例

一些重要和危險的漏洞及其啟用的攻擊都涉及使用 RCE。

Log4J RCE 漏洞

Log4Shell (CVE-2021-44228) 是 Log4j 中的一個遠端程式碼執行漏洞,Log4j是一種流行的 Java 日誌框架,估計會影響全球數百萬臺裝置。它被稱為“有史以來最大、最嚴重的漏洞”。雖然它自 2013 年以來就存在,但它於 2021 年 11 月為人所知,並於當年 12 月公開披露。

該漏洞允許使用者在伺服器上執行任意Java程式碼,為加密挖掘、建立殭屍網路和注入勒索軟體開啟大門。

WannaCry

WannaCry是一種勒索病毒加密蠕蟲攻擊,它使用了一個名為EternalBlue的RCE漏洞,從而可以部署DoublePulsar工具來安裝和執行自己的程式。這次攻擊的目標是微軟的Windows系統。安裝後,蠕蟲會對資料進行加密,攻擊者會索要贖金。

永恆之藍攻擊了微軟SMB (Server Message Block)協議中的一個安全漏洞。該漏洞允許攻擊者注入和遠端執行程式碼。

這只是兩個最著名的RCE漏洞及其啟用的攻擊。常見漏洞和暴露(Common vulnerability and exposed, CVE)系統定期列出可能導致RCE攻擊的漏洞的新條目。

如何檢測和防止遠端程式碼執行

RCE 攻擊構成嚴重威脅,因為它們可能涉及多種方法並利用許多不同的漏洞。此外,新的漏洞不斷出現,使得準備充分變得具有挑戰性。但是,您可以採取多種措施來檢測和防止 RCE 攻擊。

定期安全更新

組織經常不能根據最新的威脅情報採取行動,不能及時應用補丁和更新。因此,攻擊者通常也會試圖攻擊舊的漏洞。一旦系統和軟體可用,就立即對它們進行安全更新,這對於阻止許多攻擊者是非常有效的。

監控

監控網路流量和端點,以發現可疑內容並阻止利用企圖。這可以透過實現某種形式的網路安全解決方案或威脅檢測軟體來實現。

檢測軟體安全

透過靜態程式碼檢測可以在編碼階段發現常見的安全漏洞,從源頭解決掉存在的安全風險。

記憶體管理

實現緩衝區溢位保護和其他形式的記憶體管理,以避免產生容易被利用的漏洞。例如,當緩衝區溢位時,這種保護將終止程式的執行,從而有效地禁用了執行惡意程式碼的可能性。邊界檢查和標記是可以實現的其他保護技術,用於停止緩衝區溢位。


https://crashtest-security.com/remote-code-execution/


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2904641/,如需轉載,請註明出處,否則將追究法律責任。

相關文章