隨著 Web 發展的日益成熟,人們開始進入「數字化生存」時代。網上銀行、電子商務、個人空間、雲存儲等不斷湧入生活,Web 應用安全問題也日益凸顯。

根據 Gartner 的調查,信息安全攻擊有75%都是發生在 Web 應用而非網路層面上。同時,OWASP 發布的數據也顯示,三分之二的 Web 站點都相當脆弱,易受攻擊。

對 Web 應用的安全性進行手工測試和審計是一項複雜且耗時的工作,對於安全運維人員來說,基於安全的管理佔用大量工作時間。自動化的 Web 漏洞掃描器能夠大幅簡化針對安全隱患的檢測工作,有助於安全運維人員將精力轉向如何處理安全風險上來。

Web 漏洞掃描器

一般來講,Web 漏洞掃描器是基於 URL 的漏洞掃描工具,在工作時需要解決採集和核心檢測兩個關鍵問題:

如何採集輸入源(即採集網站 URL)

如何調用掃描插件(即對 URL 進行掃描)

怎樣去評價一個掃描器的好壞?首先要關注的就是:收集的 URL 夠不夠全面?資產蒐集不全,檢測準確率就無從談起。

發現率低下 傳統爬蟲的技術之觴

在 Web 漏掃中,採集輸入源的方式一般包括爬蟲、流量、代理和日誌,其中爬蟲是獲取掃描網站 URL 最常見的、不可或缺的一種主動採集模式。

Web 漏洞掃描器的爬蟲面臨著比其他網路爬蟲更高的技術挑戰,這是因為漏洞掃描器的爬蟲不僅僅需要爬取網頁內容、分析鏈接信息,還需要儘可能多的觸髮網頁上的各種事件,從而獲取更多的有效鏈接信息。

然而,現有的爬蟲受限於其在技術上的先天不足,給使用 Web 漏洞掃描工具的安全運維人員造成了諸多困擾:

1、 極易觸發 WAF 設置的 IP 訪問上限

通常情況下,網站的防火牆會對某個固定 IP 在某段時間內請求的次數做限制,如果沒有超過上限則正常返回數據,超過了,則拒絕請求。值得說明的是,IP限制大多數時候是出於網站安全原因針對 DOS 攻擊的防禦措施,而不是專門針對爬蟲的。但是傳統爬蟲工作時,機器和 IP 有限,很容易達到 WAF 設置的 IP 上限而導致請求被拒絕。

2、 無法自動處理網頁中的交互問題

Web 2.0 時代,Web 應用與用戶交互十分頻繁,給漏掃爬蟲造成了幹擾。以輸入驗證碼登錄為例,網站將一串隨機產生的數字或符號,生成一幅圖片, 圖片里加上一些幹擾像素(防止 OCR),由用戶肉眼識別其中的驗證碼信息,輸入表單提交網站驗證,驗證成功後才能使用某項功能。傳統爬蟲在遇到這種情況時,通常難以自動處理。

3、 無法全面爬取 JavaScript 解析的網頁

JavaScript 框架的誕生是研發工程師在效率至上時代的一大福音,工程師們得以擺脫了開發與維護之苦。毋庸置疑,Angular、React、Vue 等單頁應用的 Web 框架成了開發者的首選,JavaScript 解析的網頁日益普及,所以網頁中大多數有用的數據都是通過 ajax/fetch 動態獲取後然後再由js填充到網頁 DOM 樹中,單純的 HTML 靜態頁面中有用的數據很少,這也直接導致了 Web 漏掃爬蟲的爬取不全面問題。

傳統爬蟲與聚焦爬蟲

縱觀市面上常用的漏洞掃描產品,所使用的爬蟲通常包含以下兩類,即傳統爬蟲和聚焦爬蟲:

傳統爬蟲

它的工作流程是從一個或若干初始網頁的 URL 開始,獲得初始網頁上的 URL,在抓取網頁的過程中,不斷從當前頁面上抽取新的 URL 放入隊列,直到滿足系統設置的一系列停止條件,爬取操作停止。

傳統爬蟲流程圖

聚焦爬蟲

聚焦爬蟲的工作流程比傳統爬蟲複雜,需要根據一定的網頁分析演算法過濾與掃描目標無關的 URL,保留有用的 URL,並將其放入等待抓取的 URL 隊列。然後,它將根據一定的搜索策略從隊列中選擇下一步要抓取的網頁 URL,並重複上述過程,直到達到系統的某一條件時停止。另外,所有被爬蟲抓取的網頁將會被系統存貯,進行一定的分析、過濾,並建立索引,以便之後的查詢和檢索;所以一個完整的聚焦爬蟲一般會包含如下三個模塊:網路請求模塊、爬取流程式控制制模塊、內容分析提取模塊。

然而,無論是傳統爬蟲還是聚焦爬蟲,因其技術上的先天不足,導致在採集網站 URL 時均存在無法自動處理網頁交互、JavaScript 解析以及極易觸發外界 WAF 防禦措施限制等問題。

洞鑒(X-Ray)創新技術提高爬蟲發現率

洞鑒(X-Ray)安全評估系統針對目前用戶遇到的漏掃爬蟲採集目標URL不全的問題,創造性地提出了基於語義分析、機器學習技術和高模擬實時渲染 DOM 遍歷演算法的「新型爬蟲」:

1、 創新加入 js 語義分析演算法 避免 IP 訪問超限

對於傳統網站,在聚焦爬蟲的基礎上,長亭科技創新採用 js 語義分析演算法,針對 WAF 對 DOS 攻擊採取的 IP 訪問限制防禦措施,洞鑒(X-Ray)爬蟲會在本地對 JS 文件進行分析,從理解語義的基礎上來解析網站結構,不會瘋狂觸發請求,從而避免了因超過 IP 訪問限制,而被拒絕訪問的情況發生。

洞鑒(X-Ray)聚焦爬蟲的流程原理圖

2、 通過機器學習技術,實現交互行為分析

對於單頁應用網站,洞鑒(X-Ray)內嵌了模擬瀏覽器爬蟲。通過運用機器學習技術,洞鑒(X-Ray)的模擬瀏覽器爬蟲以各類 Web 應用頁面結構作為訓練樣本,在訪問每個頁面時,可以智能地判斷各種交互操作,其判斷邏輯大概是這樣的:

判斷是表單輸入、點擊事件等行為;

自動判斷表單輸入框該填入什麼內容,用戶名、密碼、IP 地址等,然後將相應的內容樣本填入;自動觸發點擊事件,從而成功發起請求

3、 高模擬實時渲染 DOM 遍歷演算法 完美解決 JavaScript 解析

針對採用 JavaScript 解析的單頁Web應用,洞鑒(X-Ray)模擬瀏覽器創新引入高模擬實時渲染 DOM 遍歷演算法,在這種演算法引擎的驅動下,可以完美解析 Angular、React、Vue 等 Web 框架實現的單頁應用網站,對 Web 頁面中所有內容進行操作,達到全面獲取目標網站 URL 信息的目的,其判斷邏輯如下:

查找網頁的 DOM 節點,形成 DOM 樹;

內置瀏覽器,從深度和廣度兩個層面,高模擬的對網頁遍歷 DOM 樹;真實瀏覽器畫面,實時渲染 DOM 樹的遍歷過程

在機器學習技術和高模擬實時渲染 DOM 遍歷演算法的驅動下,洞鑒(X-Ray)模擬瀏覽器爬蟲智能模擬人的行為,自動進行單擊、雙擊、拖拽等操作,從而避免了傳統爬蟲在 URL 獲取時無法滿足交互和無法應對 JavaScript 解析等問題。

下面以訪問 DVWA 為例,展示模擬瀏覽器的行為

視頻封面

00:35dvwa瀏覽器點擊

以網上銀行、電子商務、雲存儲等 Web 應用為代表的 Web 3.0 時代已經來臨,洞鑒(X-Ray)安全評估系統蓄勢待發,你,準備好了嗎?


推薦閱讀:
相關文章