全部產品
Search
文件中心

Security Center:什麼是應用防護

更新時間:Sep 03, 2026

應用防護功能基於 RASP(Runtime Application Self-Protection)技術,在應用運行時內部檢測並阻斷攻擊。您無需修改應用代碼,只需在主機、容器或 Serverless 應用(SAE)環境中部署 RASP 探針,即可防禦應用漏洞、0day 漏洞和記憶體馬等攻擊。

產品概述

應用防護基於 RASP 技術,在應用程式內部通過鉤子(Hook)關鍵函數,即時監測應用運行時與其他系統的互動行為。當應用出現可疑操作時,RASP 會根據當前上下文識別並阻斷攻擊。

該技術為主機上的 Web 業務進程提供應用漏洞、0day 漏洞和記憶體馬攻擊等防護能力。

核心優勢

  • 防禦已知與未知漏洞:RASP 在應用運行時內部監控關鍵函數的執行,不依賴漏洞特徵庫,因此能夠防禦 0day 漏洞和未知攻擊手法,無需等待安全補丁即可提供即時防護。

  • 應對加密流量:RASP 從應用程式內部擷取已解密的請求資料,不受網路層加密影響,即使請求經過複雜編碼或加密,只要應用執行的最終動作與預期身份和行為不匹配,即可檢測到異常。

  • 低誤判漏報:RASP 分析關鍵函數操作的實際資料,可忽略無法真實執行的攻擊Payload,從而減少誤判和漏報;無論攻擊入口如何變化,都無法繞開關鍵函數的執行過程。

  • 攻擊溯源與漏洞定位:RASP 為安全人員和開發人員提供詳盡的攻擊鏈路,包括攻擊原始 Payload、代碼呼叫堆疊等資訊,便於漏洞定位、複現和修複。

  • 部署簡便:在控制台接入即可部署,無需維護和更新具體規則,伴隨應用啟動而自動運行,營運成本低。

使用限制

應用防護支援防護 Java、PHP 和 Node.js 應用,支援在以下環境中使用:

  • 安裝了Security Center Agent 的阿里雲伺服器

  • 第三方廠商雲端服務器

  • 線下 IDC 伺服器

  • Serverless 應用引擎(SAE)應用執行個體

支援的作業系統如下:

作業系統類型

支援的作業系統

Windows(64 位元)

  • Windows Server 2025

  • Windows Server 2022

  • Windows Server 2019

  • Windows Server 2016

  • Windows Server 2012

  • Windows Server 2008

  • Windows 11

  • Windows 10

Linux(64 位元)

  • Alibaba Cloud Linux

  • AlmaLinux

  • Anolis OS

  • CentOS 6、7、8

  • CentOS Stream

  • Debian 8 及以上版本

  • Gentoo

  • OpenSUSE

  • RHEL 6、7、8、9

  • Rocky Linux

  • SUSE Linux Enterprise Server

  • Ubuntu 14.04 及以上版本

  • 中標麒麟 V7、銀河麒麟 V10

  • TencentOS

  • Oracle Linux 7、8、9

  • openEuler 20.03、22.03

  • EulerOS

  • Amazon Linux 2、2023

支援的能力

攻擊檢測(Java 應用)

下面介紹應用防護可檢測並攔截的攻擊類型及相關防護建議。

攻擊類型

說明

防護建議

JNI 注入

JNI 注入是一種通用的 RASP 繞過手段。攻擊者擷取代碼執行許可權後,可通過 Java Native 函數調用外部惡意動態連結程式庫,繞過 Java 層安全防護並隱匿惡意行為。

伺服器可能存在代碼執行漏洞,請檢查漏洞位置並限制代碼執行功能。

SQL 注入

攻擊者將 SQL 命令插入頁面請求或 Web 表單的查詢字串中,欺騙伺服器執行指定的 SQL 陳述式,從而擷取存在安全性漏洞網站的資料。RASP 在運行時監控資料庫調用,檢測並攔截時間盲注(如 SLEEP 函數)和報錯注入(如 extractvalue)。

SQL 注入由拼接 SQL 陳述式引起。請儘可能使用先行編譯處理傳入參數,或通過白名單和黑名單限制參數拼接。應用防護在運行時自動阻斷時間盲注和報錯注入攻擊。

XXE

XML 外部實體注入漏洞(XML External Entity Injection)。XML 檔案引用外部實體時,攻擊者通過構造惡意內容可導致任意檔案讀取、命令執行和內網攻擊。

請檢查應用程式解析 XML 時是否需要載入外部實體。如不需要,請在 XML 解析配置中禁用外部實體。

惡意 DNS 查詢

攻擊者可能通過 DNS 協議突破內網網路限制,將敏感資訊帶出內網,也可能通過 DNS 協議探測內網系統是否存在 SSRF、JNDI 注入等漏洞。

惡意 DNS 查詢由伺服器向使用者控制的參數發送請求引起。請檢查參數並通過白名單進行限制。

惡意反射調用

RASP 自保護模組,禁止攻擊者通過反射方式修改運行時 RASP 的相關資料。

伺服器可能存在代碼執行漏洞。請檢查漏洞位置並限制代碼執行功能。

惡意外連

SSRF(Server-side request forgery)伺服器端請求偽造漏洞,指攻擊者通過構造由服務端發起的請求對網站內部系統進行攻擊。

修複 SSRF 漏洞需要限制伺服器請求的目標位址範圍,通過白名單機制只允許訪問安全的內部資源,並禁用不必要的外部網路訪問。

惡意檔案讀寫

Java 提供 RandomAccessFile 用於檔案讀寫操作。使用該 Class 進行檔案讀寫時,如果未對檔案路徑和檔案內容進行限制,攻擊者可能讀取系統敏感檔案或上傳木馬檔案。

請檢查檔案讀取和上傳是否正常。如出現異常,請檢查函數代碼並通過黑名單進行限制。

惡意檔案上傳

網站提供的檔案上傳功能如果未對上傳檔案類型進行限制,攻擊者可能通過上傳木馬檔案擷取伺服器更大許可權,造成嚴重危害。

請限制上傳檔案的類型,禁止上傳具有執行許可權的檔案(如 JSP)。

命令執行

命令執行漏洞指伺服器沒有對執行的命令進行過濾,使用者可以隨意執行系統命令。

遠程命令執行通常由 Web Shell 或伺服器危險代碼引起。請檢查命令執行位置,如果是 Web Shell 請及時刪除;如果是伺服器的正常功能,則可通過白名單限制可執行檔命令。

目錄遍曆

網站配置缺陷可能導致目錄被任意瀏覽,造成隱私資訊泄露,攻擊者可利用該資訊對網站進行攻擊。

請檢查目錄遍曆操作是否正常。如果異常,請檢查函數代碼並通過黑名單對相關命令(如"./"和"../")進行限制。

記憶體馬注入

記憶體馬是一種木馬技術,攻擊者通過特殊技術手段將木馬注入到記憶體中,可有效繞過 WAF 和主機防禦的檢測。

伺服器可能存在代碼執行漏洞。請檢查漏洞位置並限制代碼執行功能。

任意檔案讀取

網站提供的檔案下載和讀取功能如果直接通過絕對路徑或目錄穿越符進行讀取和下載,沒有檔案路徑限制,攻擊者可利用此方式擷取敏感資訊並攻擊伺服器。

請檢查檔案讀取操作是否正常。如果異常,請檢查函數代碼並使用黑名單對傳入參數(如"./"和"../")進行限制。

線程注入

線程注入是一種通用的 RASP 繞過手段。攻擊者獲得代碼執行許可權後,可通過建立線程的方式使 RASP 丟失運行環境的上下文,從而影響 RASP 的防禦能力。

伺服器可能存在代碼執行漏洞。請檢查漏洞位置並限制代碼執行功能。

惡意 Attach

Attach API 是 Java 提供的動態修改位元組碼技術,可實現動態修改運行時應用的位元組碼。攻擊者常通過該手法進行 Agent 型記憶體馬注入。

伺服器可能存在代碼執行漏洞。請檢查漏洞位置並限制代碼執行功能。

JNDI 注入

應用進行 JNDI 查詢時,若查詢的 URL 可被攻擊者控制,攻擊者可使伺服器查詢惡意連結並載入惡意 Class 類,實現任意代碼執行。

  • 若該漏洞源於第三方組件,請及時升級組件版本。

  • 若為自寫 JNDI 查詢代碼,請對查詢的 URL 進行限制,禁止危險協議的查詢。

危險協議使用

若服務端訪問的 URL 使用者端可控,且應用本身未對該 URL 的協議進行限制,攻擊者可能通過 file、netdoc 等危險協議讀取伺服器上的敏感檔案。

請對 URL 可訪問的協議進行限制。

還原序列化攻擊

Java 還原序列化是把字元序列恢複為 Java 對象的過程。在對象產生過程中,若對象包含危險度較高的代碼,攻擊者可能通過控制產生對象的成員變數在還原序列化時實現惡意攻擊。

  • 及時升級存在漏洞的組件版本。

  • 若官方尚未提供漏洞修複的組件版本,請暫時關閉該功能。

任意檔案刪除

網站提供的檔案刪除功能如果未對檔案路徑進行限制,攻擊者可通過絕對路徑或目錄穿越符刪除任意檔案,從而對伺服器進行攻擊。

請檢查檔案刪除操作是否正常。如果異常,請檢查函數代碼並使用黑名單對傳入參數(如"./"和"../")進行限制。

運算式注入

運算式組件支援在運行時查詢和處理資料,但很多運算式組件也提供了函數調用等高許可權功能。如果未對這些功能做限制且攻擊者能控製表達式執行的內容,將可能通過運算式執行任意代碼。

請對進入運算式的內容進行嚴格限制,禁止大部分 Java 函數的調用。若是第三方組件漏洞導致,請及時升級組件版本。

引擎注入

Java 提供了較多第三方引擎組件(如 Rhino、Nashorn 等 JS 引擎,Velocity、FreeMarker 等模板引擎),這些引擎通常提供函數調用等高許可權功能。如果未做限制且攻擊者能控制引擎執行的內容,將可能通過引擎執行任意代碼。

請對進入引擎檔案的內容進行嚴格限制,禁止大部分 Java 函數的調用。若是第三方組件漏洞導致,請及時升級組件版本。

惡意 Beans 綁定

部分 Java 架構支援對應用運行時 Beans 的參數綁定。如果未對綁定 Beans 的類型進行限制,攻擊者可通過修改敏感 Beans 值破壞應用運行,甚至執行任意代碼。

請對可綁定的 Beans 類型進行限制,禁止修改類似於 Class、Classloader 類型的 Beans 值。若是第三方組件漏洞導致,請及時升級組件版本。

惡意類載入

很多 0day、WebShell 的利用均依賴於惡意類載入。惡意類載入成功後,攻擊者可通過惡意類初始化取得代碼執行許可權,進而進行一系列惡意操作。

  • 若惡意類載入通過 WebShell 控制,請及時刪除 WebShell。

  • 如果惡意類載入由架構導致,請及時升級架構版本。

JSTL 任意檔案包含

JSP 標準標籤庫(JSTL)是一個 JSP 標籤集合,封裝了 JSP 應用的通用核心功能。當使用者可控參數被直接拼接到 JSTL 標籤中而未做任何限制時,攻擊者可構造特殊攻擊指令碼造成任意檔案讀取或 SSRF 攻擊。

儘可能不要將使用者可控參數直接拼接到 JSTL 標籤上。如果必須這樣做,請對該參數的內容進行嚴格的白名單控制。

攻擊檢測(PHP 應用)

攻擊類型

說明

防護建議

惡意檔案包含

PHP 檔案包含漏洞允許攻擊者通過操縱輸入來包含和執行任意檔案。該漏洞通常發生在使用include()、require()、include_once()和require_once()函數時。

建議驗證和限制使用者輸入的檔案路徑,僅允許包含應用程式目錄中的預定義檔案,以防止攻擊者插入惡意路徑。

惡意外連

SSRF(Server-side request forgery)伺服器端請求偽造漏洞,指攻擊者通過構造由服務端發起的請求對網站內部系統進行攻擊。

修複 SSRF 漏洞需要限制伺服器請求的目標位址範圍,通過白名單機制只允許訪問安全的內部資源,並禁用不必要的外部網路訪問。

還原序列化

PHP 還原序列化漏洞允許攻擊者通過操縱序列化資料執行任意函數,該漏洞通常發生在使用unserialize()函數時。

避免直接還原序列化不可信資料,使用json_decode()或其他安全替代方法,或在必要時嚴格驗證和過濾還原序列化的資料來源。

回呼函數執行

PHP 中的array_map()、array_filter()等回呼函數,當參數外部可控時,攻擊者可藉此執行任意函數乃至控制整個系統。

確保傳遞給array_map()、array_filter()等函數的回呼函數名不受使用者輸入控制,並通過白名單機制驗證所有允許使用的回呼函數。

惡意檔案讀寫

調用檔案讀寫函數時,如果未對檔案路徑和檔案內容進行限制,攻擊者可能讀取系統敏感檔案或上傳木馬檔案。

嚴格驗證和限制檔案路徑,只允許訪問預定義的目錄,並對檔案內容進行安全性檢查以防止惡意代碼上傳。

任意代碼執行

任意代碼執行漏洞允許攻擊者在伺服器上執行任意程式碼片段,從而擷取伺服器控制許可權或讀取、修改敏感性資料。該漏洞通常源於程式未對使用者輸入進行充分驗證。

建議使用嚴格的輸入驗證和輸出編碼,避免使用eval()、include()等函數直接處理使用者輸入,並保持所有庫和架構的安全更新。

任意檔案讀取

如果未對檔案讀取介面進行過濾和限制,攻擊者可以利用絕對路徑或目錄穿越符讀取和下載檔案,從而擷取敏感資訊並攻擊伺服器。

對檔案讀取介面實施嚴格的輸入驗證和路徑限制,確保僅允許訪問經過白名單驗證的檔案,並使用黑名單對傳入參數(如"./"和"../")進行限制。

任意檔案刪除

檔案刪除介面如果沒有檔案路徑限制,攻擊者可通過絕對路徑或目錄穿越符進行任意檔案刪除,從而攻擊伺服器。

對檔案刪除介面實施嚴格的輸入驗證和路徑限制,確保僅允許刪除經過驗證的檔案,並使用黑名單對傳入參數(如"./"和"../")進行限制。

命令執行

命令執行漏洞讓攻擊者直接向後台伺服器遠程注入作業系統命令或代碼,從而控制後台系統。

對所有使用者輸入進行嚴格的驗證和過濾,避免直接使用未經處理的輸入構建作業系統命令,並儘可能使用安全的 API 替代系統命令執行。

目錄遍曆

網站配置缺陷可能導致目錄被任意瀏覽,造成隱私資訊泄露,攻擊者可利用該資訊對網站進行攻擊。

通過配置適當的伺服器使用權限設定和使用.htaccess等檔案限制目錄訪問,確保敏感目錄不可被未經授權的使用者瀏覽。

惡意檔案上傳

檔案上傳功能如果未對上傳檔案類型進行限制,攻擊者可能通過上傳木馬檔案擷取伺服器更大許可權,造成嚴重危害。

對上傳檔案的類型進行嚴格限制和驗證,只允許安全的檔案類型,禁止上傳具有執行許可權的檔案尾碼(如 php 等),並在伺服器端重新檢查檔案內容以確保其安全。

攻擊檢測(Node.js 應用)

下表介紹應用防護對 Node.js 應用可檢測並攔截的攻擊類型及相關防護建議。

攻擊類型

說明

防護建議

命令執行

命令執行漏洞讓攻擊者直接向後台伺服器遠程注入作業系統命令或代碼,從而控制後台系統。

避免使用exec、spawn等函數執行使用者可控輸入,如需使用請通過白名單限制可執行檔命令。

惡意檔案讀寫

使用檔案讀寫函數時,如果未對檔案路徑和檔案內容進行限制,攻擊者可能讀取系統敏感檔案或上傳木馬檔案。

嚴格驗證和限制檔案路徑,只允許訪問預定義的目錄,並對檔案內容進行安全性檢查。

任意檔案讀取

如果未對檔案讀取介面進行過濾和限制,攻擊者可以利用絕對路徑或目錄穿越符讀取和下載檔案,從而擷取敏感資訊並攻擊伺服器。

對檔案讀取介面實施嚴格的輸入驗證和路徑限制,確保僅允許訪問經過白名單驗證的檔案,並使用黑名單對傳入參數(如"./"和"../")進行限制。

任意檔案寫入

如果應用程式未正確驗證和限制寫入檔案的類型、大小和內容,攻擊者可將惡意檔案寫入目標系統的指定位置,植入惡意指令碼或木馬病毒,可能導致伺服器被完全控制。

對所有檔案寫入路徑做正常化和邊界校正,使用 path.resolve / realpath 後確認目標只能落在業務允許目錄內;不要把使用者輸入直接作為完整路徑;優先使用服務端產生的檔案名稱和固定目錄;禁止寫入系統目錄、使用者啟動指令碼、SSH、cron、systemd、包管理配置和應用密鑰檔案;容器和生產環境盡量使用唯讀根檔案系統、最小檔案許可權和獨立臨時目錄;上傳、匯出、緩衝等功能應按業務類型設定副檔名、大小和目錄白名單,並記錄審計日誌。

任意檔案刪除

檔案刪除介面如果沒有檔案路徑限制,攻擊者可通過絕對路徑或目錄穿越符進行任意檔案刪除。

對檔案刪除介面實施嚴格的輸入驗證和路徑限制,確保僅允許刪除經過驗證的檔案,並使用黑名單對傳入參數(如"./"和"../")進行限制。

惡意檔案連結

如果應用程式在建立檔案連結時未對目標路徑和連結化物件進行嚴格校正,攻擊者可能利用軟連結或永久連結將受保護檔案對應到可訪問位置,從而繞過存取控制,讀取、修改或破壞系統敏感檔案。

不允許外部輸入直接控制 link target 或 link path;對連結源和連結目標都做正常化、真實路徑校正和業務目錄白名單校正;對上傳目錄、臨時目錄和解壓目錄使用 lstat 識別符號連結,敏感操作盡量拒絕跟隨 symlink;建立、清理、打包檔案時先確認真實路徑仍在允許目錄內;高風險目錄使用獨立低許可權使用者運行,避免應用進程對系統配置、憑據目錄和宿主掛載目錄擁有讀寫權限。

惡意外連

SSRF(Server-side request forgery)伺服器端請求偽造漏洞,指攻擊者通過構造由服務端發起的請求對網站內部系統進行攻擊。

修複 SSRF 漏洞需要限制伺服器請求的目標位址範圍,通過白名單機制只允許訪問安全的內部資源,並禁用不必要的外部網路訪問。

惡意進程建立

Node.js 中的 fork() 可用於建立新的 Node 進程執行 JS 檔案。如果應用程式未對調用情境、執行邏輯或輸入參數進行嚴格限制,攻擊者可能利用該能力建立惡意子進程,執行未授權操作,甚至結合指令碼載入、命令執行等行為進一步控制伺服器。

不要用使用者輸入直接決定 fork() 的模組路徑和啟動參數;可被 fork 的指令碼應使用固定枚舉或服務端白名單;啟動前用絕對路徑解析並確認指令碼位於受信任應用目錄內;參數只傳業務欄位,不傳 shell 片段、檔案路徑、解譯器參數或環境變數覆蓋;子進程使用最小許可權、獨立工作目錄和受限環境變數;對需要執行使用者任務的情境,優先使用受限 worker、隊列或沙箱,而不是動態載入任意本地指令碼。

惡意進程綁定

Node.js 中的 process.binding() 可用於訪問內部底層模組。如果應用程式未對相關調用行為進行限制,攻擊者可能藉助該能力訪問底層介面、繞過上層安全控制,執行非預期操作,從而導致敏感資訊泄露、許可權濫用或系統被進一步利用。

業務代碼、外掛程式、模板、指令碼執行環境中不要暴露 process.binding 和 process._linkedBinding;禁止把外部參數傳入這些介面;對支援外掛程式、規則、模板、Agent Skill 的應用,應在沙箱中移除或凍結 process 高危能力;生產環境開啟 RASP 的 process binding hook 和警示;依賴包中如出現直接調用原生 binding 的行為,需要評估必要性並限制調用來源;對高危運行環境使用容器隔離、最小許可權使用者和系統調用/網路訪問限制。

惡意 MCP 調用

在 AI Agent 情境中,MCP(Model Context Protocol)可用於訪問外部資源、服務或能力。如果應用程式未對 MCP 服務的調用範圍、請求參數和返回內容進行嚴格校正,攻擊者可能誘導 Agent 發起惡意 MCP 調用,訪問敏感性資料、執行高風險操作或與非可信服務互動,從而對系統安全造成威脅。

MCP Server 應作為外部不可信組件處理,只允許串連來源可信、版本固定、配置受控的 MCP Server;對 MCP tool name、server name、參數、URL、工作目錄和啟動命令建立白名單;對會修改檔案、執行命令、訪問網路、讀取憑據的工具啟用人工確認或更高風險等級策略;不要把生產密鑰直接暴露給 MCP Server;MCP Server 盡量運行在隔離容器或低許可權賬戶中;對 OAuth metadata、遠端 URL 和工具返回內容做格式校正、URL 安全校正和審計記錄;工具調用產生的底層 child_process、fs、http、net 行為仍應由 RASP 攔截。

惡意 Tool 調用

在 AI Agent 情境中,Tool 可用於執行外部操作或調用第三方能力。如果應用程式未對 Tool 的可用範圍、調用參數和執行結果進行有效限制,攻擊者可能通過提示注入或構造惡意輸入,誘導 Agent 調用高風險 Tool,執行未授權操作、訪問敏感資源,甚至影響主機或業務系統安全。

Tool 許可權按最小許可權設計,預設拒絕高危工具,按業務情境顯式授權;把工具分成唯讀、寫入、網路、命令執行等風險等級,寫入、命令執行、外聯類工具應要求確認或策略審批;對每個工具參數做強校正和白名單約束,例如命令模板、可訪問目錄、允許網域名稱、允許 HTTP 方法;Tool 結果必須視為不可信輸入,進入 LLM 上下文前做提示詞注入和敏感資訊檢測;保留 tool name、參數、調用鏈、runId/toolCallId 和結果摘要審計;檢測到讀敏感檔案後接外聯、命令執行後寫啟動項等危險序列時應阻斷或升級警示。

應用漏洞防禦

應用防護功能可有效防禦應用漏洞、0day 漏洞和記憶體馬等攻擊行為,防禦漏洞的原理如下圖所示。在應用漏洞應急響應過程中,藉助 RASP 的攻擊防護能力,可快速阻斷攻擊,為修複漏洞爭取更多時間。應用防護功能還可協助快速定位風險來源與影響範圍。關於應用漏洞的更多資訊,請參見查看和處理漏洞。

image

如果暫時無法修複應用漏洞,可先將應用進程接入 RASP 進行防護。以下為檢測出應用漏洞的應用添加 RASP 防護的操作步驟。

  1. 登入Security Center控制台。

  2. 在左側導覽列,選擇風險治理 > 漏洞管理。在控制台左上方,選擇需防護資產所在的地區:中國內地或非中國內地。

  3. 在應用漏洞頁簽,存在RASP支援即時防護標籤的漏洞為應用防護支援防護的漏洞,單擊對應漏洞操作列的立即防護。

  4. 在應用防護接入面板,應用分組名稱的下拉式清單中選擇需要接入的應用分組,並選擇對應資產,然後單擊確定。

    如果不存在所需的應用分組,可以在下拉式清單中單擊建立應用分組,輸入應用分組名稱,並單擊確定,快速建立應用分組。此處建立的應用分組的防護模式為防護,防護策略組為組名稱。

    檢測出漏洞的應用接入應用防護後,只有在應用漏洞完成一次漏洞掃描時,在漏洞詳情頁的待處理漏洞列表中該伺服器的操作列才會顯示為已防護。

應用行為分析

應用行為分析功能通過對接入的應用程式進行即時監測、收集和分析應用程式的行為資料,並產生報告和可視化展示,協助您瞭解應用的攻防詳情並進行系統安全強化。更多資訊,請參見應用行為分析。

記憶體馬防禦(僅支援 Java 應用)

應用防護的 RASP 技術通過分析記憶體資料可以即時檢測記憶體馬,並支援對記憶體馬注入和執行過程進行攔截。更多資訊,請參見記憶體馬防禦。

弱點檢測(僅支援 Java 應用)

下面介紹應用防護可檢測的應用弱點類型及相關修複建議。

弱點類型

風險等級

說明

修複建議

不安全的 Fastjson 配置

高危

應用的 Fastjson 開啟了還原序列化功能,該功能可能被攻擊者利用,造成遠程命令執行。如非必要,請關閉該功能。

請將 Fastjson 的 safemode 設定為 true,或將 autotype 設定為 false。

不安全的 log4j 配置

高危

log4j 組件開啟了 lookup 功能,攻擊者可能通過該功能進行 JNDI 注入,從而造成遠程代碼執行漏洞。

請升級 log4j 到最新版本,或刪除 Jar 包中的 org/apache/logging/log4j/core/lookup/JndiLookup.class 檔案。

不安全的啟動參數

高危

當攻擊者可以訪問到 JDWP 調試連接埠的時候,可以通過該功能執行任意代碼,造成遠程代碼執行。

如無特殊情境,請及時關閉 JDWP 連接埠或者避免將 JDWP 連接埠暴露在公網,謹防長期啟動並執行應用開啟了 JDWP 連接埠。

Shiro 弱密鑰

高危

Shiro 應用使用了較弱的加密金鑰,攻擊者可能通過破解密鑰,進一步進行還原序列化攻擊,從而造成遠程代碼執行。

請及時修改應用中的 Shiro 加密金鑰。

不安全的 JMX 配置

中危

開啟了 JMX 的遠程連結,且在認證方面存在風險,攻擊者可能會遠端連線應用的 JMX 服務並造成命令執行風險。

請關閉 JMX 服務的遠端連線,或者請使用較為安全的認證口令。

不安全的 Rhino 配置

中危

Rhino 架構中包含了危險的 properties,攻擊者可能通過這些 properties 進行遠程代碼執行攻擊。

先升級 Rhino 到最新版本,然後使用 SafeStandardObjects 定義 Rhino 的上下文,防止 JavaScript 引擎調用 Java 代碼。

下面是使用 SafeStandardObjects 定義 Rhino 內容相關的樣本:

 package com.aliyun.sample;

  import org.mozilla.javascript.Context;
  import org.mozilla.javascript.Scriptable;

  public class RhinoSecurityExample {
      public static void main(String[] args) {
          Context ctx = Context.enter();
          // Scriptable scope = ctx.initStandardObjects(); // 不安全的寫法
          Scriptable scope = ctx.initSafeStandardObjects(); // 安全寫法
          ctx.setOptimizationLevel(-1);
          String str = "var test={};";
          str += "test.call=function(){return 'Successful!';};";
          str += "test.call()";  // 修改:只返回JavaScript結果,不調用Java
          try {
              //傳入並執行javascript代碼
              Object result = ctx.evaluateString(scope, str, "", 1, null);
              System.out.println("JavaScript執行結果: " + result);
          } catch (Exception e) {
              e.printStackTrace();
          } finally {
              Context.exit();
          }
      }
  }

不安全的 Spring 配置

中危

Spring Actuator 模組開啟了部分端點:heapDump、env、restart、refresh、trace、jolokia、h2-console 等,可能造成敏感資訊泄露或者遠程代碼執行漏洞。

如無特殊情境,請關閉對應功能。

脆弱的登入憑證

中危

應用登入口令安全性較弱,攻擊者可能通過爆破弱口令登入系統,從而擷取敏感資訊甚至伺服器許可權。

請及時將該應用的密碼修改為複雜密碼。

不安全的 JNDI 配置

低危

應用存在不安全的 useCodebaseOnly/rmi-trustURLCodebase/ldap-trustURLCodebase 參數設定,可能存在 JNDI 注入風險。

請將 JDK 升級到最新版本。如果無法升級,請在應用啟動時添加以下啟動參數:

-Djava.rmi.server.useCodebaseOnly=true -Dcom.sun.jndi.rmi.object.trustURLCodebase=false -Dcom.sun.jndi.ldap.object.trustURLCodebase=false

不安全的 XML 實體配置

低危

XML 解析外部實體功能已開啟,這可能導致應用遭受 XXE 攻擊。

如無特殊情境,請勿使用外部實體。

資料庫弱口令

低危

應用串連資料庫時使用弱口令,攻擊者可能通過該弱口令串連資料庫造成敏感資訊泄露或遠程命令執行。

請及時將應用串連資料庫的密碼修改為複雜密碼。