應用防護功能基於RASP(Runtime Application Self-Protection)技術,通過在應用運行時檢測攻擊並進行應用保護,為應用提供安全防禦。您無需修改代碼,只需在主機或容器環境(不包含物理機)的應用中部署RASP探針,即可為應用提供強大的安全防護能力,並抵禦絕大部分未知漏洞所使用的攻擊手法。
功能原理
應用防護使用RASP技術,在應用程式內部通過鉤子(Hook)關鍵函數,即時監測應用在運行時與其他系統的互動過程。當應用出現可疑行為時,應用防護會根據當前上下文環境識別並阻斷攻擊,有效地為您主機上的Web業務進程提供應用漏洞、0day漏洞和記憶體馬攻擊等防護能力。
應用情境和優勢
保障應用內部安全:不關注流量來源,只關注應用行為,可防禦南北向+東西向的威脅;伴隨應用啟動而運行,作為應用資產最後一道防線實現應用預設安全。
輕鬆應對花式編碼和多種加密流量:RASP能夠看到應用的上下文,不管請求怎麼變形,最終應用執行的動作保持不變,只要身份和行為不匹配,就可以檢測到異常;相對於網路邊界裝置無法審計加密流量的問題,RASP可以從應用程式內部擷取完整解密後的請求資料。
低誤判漏報可防禦0day漏洞:RASP是從應用內部對關鍵函數操作的資料進行分析,可忽略無法真實執行的攻擊,減少大量的誤判和漏報;針對0day漏洞,無論攻擊入口如何變化、攻擊手段如何隱蔽,都無法繞開最終關鍵函數的執行過程,因此RASP可以有效攔截。
攻擊溯源漏洞定位修複:RASP還能為安全人員和開發人員提供詳盡的攻擊鏈路,包括攻擊原始Payload、代碼呼叫堆疊等資訊,方便他們進行漏洞定位、複現以及修複。
營運成本低:部署簡單,只需在控制台接入,無需維護和更新具體規則。
使用限制
僅支援防護Java和PHP應用。支援在安裝了Security Center用戶端的阿里雲伺服器、第三方廠商雲端服務器和線下IDC伺服器中使用。支援的作業系統如下:
作系統類別型 | 支援的作業系統 |
Windows(64位) |
|
Linux(64位) |
|
支援的能力
應用分析
應用分析功能通過對接入的應用程式進行即時監測、收集和分析應用程式的行為資料,並產生報告和可視化展示,可以協助您瞭解應用的攻防詳情,進行系統安全強化。更多資訊,請參見應用行為分析。
攻擊警示
下表介紹應用防護可檢測並攔截的攻擊類型及相關防護建議。
攻擊類型 | 說明 | 防護建議 |
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類,實現任意代碼執行。 |
|
危險協議使用 | 若服務端進行訪問的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的利用均依賴於惡意類的載入,一旦惡意類載入成功,攻擊者便可以通過惡意類的初始化來取得代碼執行許可權,從而進行一系列的惡意操作。 |
|
JSTL任意檔案包含 | JSP標準標籤庫(JSTL)是一個JSP標籤集合,它封裝了JSP應用的通用核心功能。當使用者可控參數被直接拼接到JSTL標籤中而未對該參數進行任何限制的情況下,攻擊者可以構造特殊的攻擊指令碼造成任意檔案讀取、SSRF攻擊。 | 儘可能不要將使用者可控參數直接拼接到JSTL標籤上,如果必須這樣做,請對該參數的內容進行嚴格的白名單控制。 |
記憶體馬防禦
應用防護的RASP技術通過分析記憶體資料可以即時檢測記憶體馬,並支援對記憶體馬注入和記憶體馬執行過程進行攔截。更多資訊,請參見記憶體馬防禦。
弱點檢測
下表介紹應用防護可檢測的應用弱點類型及相關修複建議。
弱點類型 | 風險等級 | 說明 | 修複建議 |
不安全的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進行遠程代碼執行攻擊。 | 先升級rhnio到最新版本,然後使用SafeStandardObjects定義rhino的上下文,防止JavaScript引擎調用Java代碼。 下面是使用SafeStandardObjects定義Rhino內容相關的樣本: |
不安全的Spring配置 | 中危 | Spring Actuator模組開啟了部分端點:heapDump、env、restart、refresh、trace、jolokia、h2-console等,可能造成敏感資訊泄露或者遠程代碼執行漏洞。 | 如無特殊情境,請關閉對應功能。 |
脆弱的登入憑證 | 中危 | 應用在登入口令安全性較弱,攻擊者可能通過爆破弱口令登入您的系統,從而擷取敏感資訊甚至伺服器許可權。 | 請及時修改該應用的密碼為複雜密碼。 |
不安全的JNDI配置 | 低危 | 您的應用存在不安全的useCodebaseOnly/rmi-trustURLCodebase/ldap-trustURLCodebase參數設定,可能存在JNDI注入風險。 | 請將JDK升級到最新版本,如果無法升級,在應用啟動時候添加啟動參數: |
不安全的XML實體配置 | 低危 | XML解析外部實體功能已開啟,這可能導致您的應用遭受XXE攻擊。 | 如果無特殊情境,請勿使用外部實體。 |
資料庫弱口令 | 低危 | 應用串連資料庫時使用弱口令,攻擊者可能通過該弱口令串連您的資料庫造成敏感資訊泄露或遠程命令執行。 | 請及時更改應用串連資料庫的密碼為複雜密碼。 |
開通應用防護服務
準備工作
已開通訂用帳戶版WAF 3.0或隨用隨付版WAF 3.0服務。
開通應用防護
由於應用防護功能是整合在Security Center,在開通時您可能會遇到以下三種情況:
未開通Security Center未開通應用防護
登入Web Application Firewall3.0控制台。在頂部功能表列,選擇WAF執行個體的資源群組和地區(中国内地、非中国内地)。
在左側導覽列,選擇。
在應用防護頁面單擊立即購買,在Security Center頁面的快速購買或標準購買頁簽,單擊RASP,根據您的業務需求購買數量。

單擊左側立即下單,開通應用防護功能。

已開通Security Center未開通應用防護
登入Web Application Firewall3.0控制台。在頂部功能表列,選擇WAF執行個體的資源群組和地區(中国内地、非中国内地)。
在左側導覽列,選擇。
在應用防護頁面單擊立即升级,在Security Center頁面的訂單升級頁簽,單擊RASP,根據您的業務需求購買數量。

單擊左側立即下單,開通應用防護功能。

已開通Security Center已開通應用防護
如果您已經使用過Security Center並啟用了應用防護功能,那麼可以直接在WAF端使用應用防護功能。
Security Center針對公用雲、多雲環境、雲外伺服器和容器環境提供多方位的安全檢測和防護能力。為滿足不同情境下的安全需求,提供了免費版、防病毒版、進階版、企業版和旗艦版多個版本和增值服務,關於Security Center各個版本的功能特性和計費方式,請參見Security Center功能特性、Security Center計費概述。