全部產品
Search
文件中心

Security Center:什麼是應用防護

更新時間:Jun 04, 2026

應用防護功能基於RASP(Runtime Application Self-Protection)技術,通過在應用運行時檢測攻擊並進行應用保護,為應用提供安全防禦。您無需修改代碼,只需在主機或容器環境的應用中部署RASP探針,即可為應用提供強大的安全防護能力,並抵禦絕大部分未知漏洞所使用的攻擊手法。

功能原理

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

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

應用情境和優勢

  • 保障應用內部安全:不關注流量來源,只關注應用行為,可防禦南北向和東西向的威脅;伴隨應用啟動而運行,作為應用資產的最後一道防線。

  • 應對複雜編碼和加密流量:RASP 能夠看到應用的上下文,不管請求如何變形,最終應用執行的動作保持不變,只要身份和行為不匹配即可檢測到異常;相對於網路邊界裝置無法審計加密流量的問題,RASP 可以從應用程式內部擷取完整解密後的請求資料。

  • 低誤判漏報,可防禦 0day 漏洞:RASP 從應用內部對關鍵函數操作的資料進行分析,可忽略無法真實執行的攻擊,減少誤判和漏報;針對 0day 漏洞,無論攻擊入口如何變化、攻擊手段如何隱蔽,都無法繞開關鍵函數的執行過程,因此可以有效攔截。

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

  • 營運成本低:部署簡便,在控制台接入即可,無需維護和更新具體規則。

使用限制

支援防護 Java、PHP 和 Node.js 應用。支援在安裝了Security Center用戶端的阿里雲伺服器、第三方廠商雲端服務器和線下 IDC 伺服器中使用。

支援的作業系統如下:

作業系統類型

支援的作業系統

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(Runtime Application Self-Protection)繞過手段。當攻擊者拿到代碼執行許可權後,可以通過 Java Native 函數去調用外部的惡意動態連結程式庫,從而繞過 Java 層的安全防護,並隱匿具體的惡意行為。

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

SQL 注入

SQL 注入手段通過把 SQL 命令插入到頁面請求或 Web 表單的查詢字串中,以達到欺騙伺服器執行指定 SQL 陳述式的目的。它可以通過在 Web 表單中輸入 SQL 陳述式,得到存在安全性漏洞的網站上的資料。

SQL 注入是由拼接 SQL 陳述式引起的。請儘可能使用先行編譯來處理傳入的參數,或通過白名單和黑名單來限制參數的拼接。

XXE

指 XML 外部實體注入漏洞(XML External Entity Injection)。當 XML 檔案在引用外部實體時,通過構造惡意內容,可以導致任意檔案讀取,命令執行和內網攻擊等不良後果。

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

惡意 DNS 查詢

惡意 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()等函數,當它的參數外部可控,潛在的攻擊者就擁有了執行任意函數,乃至控制整個系統的能力。

為防止 PHP 中的回呼函數被濫用,確保傳遞給array_map()array_filter()等函數的回呼函數名不受使用者輸入控制,並且所有允許使用的回呼函數都應當通過白名單機制進行驗證。

惡意檔案讀寫

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

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

任意代碼執行

任意代碼執行漏洞是一種嚴重的安全性漏洞,攻擊者可以通過這一漏洞在伺服器上執行任意的程式碼片段,從而擷取伺服器的控制許可權或讀取、修改敏感性資料。這種漏洞通常源於程式未對使用者輸入進行充分驗證,導致攻擊者能夠注入惡意代碼。如果攻擊者成功利用此漏洞,可能導致資料泄露、網站被篡改或植入惡意軟體等。

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

任意檔案讀取

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

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

任意檔案刪除

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

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

命令執行

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

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

目錄遍曆

網站自身的配置缺陷可能會使得網站目錄被任意瀏覽,導致隱私資訊泄露。攻擊者可以利用該資訊對網站進行攻擊。

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

惡意檔案上傳

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

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

攻擊檢測(Node.js 應用)

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

攻擊類型

說明

防護建議

命令執行

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

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

惡意檔案讀寫

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

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

任意檔案讀取

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

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

任意檔案寫入

如果應用程式沒有正確驗證和限制寫入檔案的類型、大小、內容等,攻擊者可以利用這一漏洞將惡意檔案寫入目標系統的指定位置,植入惡意指令碼、木馬病毒等,可能導致伺服器被完全控制,對伺服器或其他使用者造成危害。

對所有檔案寫入路徑做正常化和邊界校正,使用 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.bindingprocess._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_processfshttpnet 行為仍應由 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支援即時防護標籤的漏洞為應用防護支援防護的漏洞,單擊對應漏洞操作列的立即防護

    image.png

  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 攻擊。

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

資料庫弱口令

低危

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

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