什麼是遠端程式碼執行 (RCE)?
遠端程式碼執行 (RCE) 是利用安全漏洞並將其連線到私有或公共網路,在遠端系統上執行任意程式碼。不需要物理訪問。RCE 可能導致惡意軟體、資料丟失、服務中斷和勒索軟體部署等嚴重後果。攻擊者在沒有訪問受害者系統的情況下即可利用 RCE 漏洞。當我們下載惡意軟體或應用程式時,就會導致網路攻擊者利用 RCE。OWASP 已將遠端過程程式碼識別為網路攻擊的漏洞。
概述
定義
遠端程式碼執行是對計算機進行的遠端攻擊,透過執行惡意程式碼來實現。遠端程式碼執行是任意的。它會尋找目標系統軟體或應用程式的漏洞或安全缺陷。
RCE 的影響
攻擊者利用網路的 RCE 漏洞進行初始訪問,以執行命令來安裝惡意軟體或實現其他目標。
使用直接命令或惡意軟體暴露來自易受攻擊裝置的敏感資料。
透過執行攻擊者的程式碼來中斷應用程式或系統的操作。這種型別的攻擊也稱為拒絕服務攻擊。
勒索軟體是一種用於部署在使用者身上的惡意軟體,在支付贖金之前拒絕使用者訪問計算機檔案。RCE 漏洞為攻擊者提供了訪問許可權,使其成為最關鍵的漏洞型別。
另一種型別可以是加密貨幣挖礦,透過破壞計算資源來獲取經濟利益來挖取加密貨幣。
以這種方式,可以使用 RCE 漏洞對受損裝置進行各種危險的攻擊。勒索軟體是網路攻擊中最危險的一種。
遠端程式碼執行的技術
主要有兩種型別用於執行 RCE,如下所示:
遠端程式碼評估
當用戶允許使用可能包含惡意程式碼的使用者名稱時,攻擊者可以攻擊應用程式。攻擊者利用惡意程式語言影響輸入評估。因此,程式碼評估來自使用者輸入。
儲存程式碼評估
與遠端程式碼評估的區別在於它利用直譯器檔案解析而不是程式語言函式。驗證適當的檔案和網站存在上傳功能的缺陷。
例如 - 每個使用者在配置檔案中儲存特定的語言變數設定。攻擊者透過修改語言引數並將程式碼注入配置檔案來執行任意命令。
實現 RCE 的不同方法
透過注入攻擊進行攻擊
SQL 查詢是任何網站或應用程式中使用者輸入的命令。由於 SQL 查詢用作命令並獲取輸入以設計在易受攻擊的系統上執行的攻擊,因此可以使用任意程式碼。
透過反序列化進行攻擊
使用序列化將多個數據片段組合到單個字串中以進行通訊。反序列化程式透過格式化來自使用者的輸入來解釋序列化資料。
越界寫入
資料儲存在固定的塊中,攻擊者攻擊執行程式碼,即惡意程式碼,以在緩衝區外部寫入以獲取輸入。記憶體分配具有攻擊者利用的漏洞。
RCE 示例
WannaCry 是 RCE 的一個流行示例,它是一種影響全球數千臺計算機的勒索軟體。伺服器使用 DoublePulsar 或 EternalBlue 感染,安裝 WannaCry 勒索軟體並感染客戶端計算機,影響數千臺計算機。
RCE 攻擊檢測和緩解
清理使用者輸入
在允許應用程式使用使用者輸入之前,防止各種攻擊進行驗證和清理使用者提供的輸入。反序列化和注入漏洞用於 RCE 攻擊。例如:SQL 注入。
記憶體管理安全
緩衝區溢位是攻擊者用來利用的關鍵漏洞。應定期執行漏洞掃描以檢測此類錯誤。
流量檢查
透過操縱網路流量並利用漏洞注入程式碼來攻擊合作系統。Web 應用防火牆有效地防止惡意威脅,因為它監控和保護網路流量的端點。
訪問控制
網路分段、訪問管理和零信任策略等是可幫助保護攻擊者獲得首次訪問許可權的一些控制措施。RCE 漏洞提供了擴充套件訪問許可權,並且透過在企業目標網路中立足點部署了更多危險的攻擊。需要透過訪問控制列表限制使用者許可權。
防止 RCE 的預防措施
應清理大量資料。
使用安全措施來保護 Web 或檔案上傳。
任何使用者輸入都傳遞到回撥或評估函式中。
特殊字元或函式應列入黑名單。
Snort 可以檢測可疑流量並檢測入侵。
緩衝區溢位保護可以防止 RCE 攻擊,從而不會快速訪問漏洞。
結論
訪問受保護的資料、提升許可權或獲取未經授權的訪問許可權會導致多起攻擊。應用程式和網路中的這些缺陷需要得到保護。透過在使用系統或應用程式時實施安全措施,可以防止 RCE 漏洞。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP