JavaScript 原始碼分析如何運作

JavaScript 安全分析器 (JSA)」執行靜態 JavaScript 原始碼分析,以偵測一系列用戶端問題,主要是 DOM 型跨網站 Scripting。JSA 會分析 AppScan® Enterprise 在「探索」階段期間所收集的 HTML 頁面。JSA 會在「測試」階段進行的同時執行,也可以隨時在現有的「探索」結果上手動啟動。

JSA 探索到的問題包括顯示有漏洞原始碼的來源層次追蹤資訊。您可以在問題的「關於此問題」報告的「程式碼 Snippet」標籤中檢視追蹤資訊。程式碼中的強調顯示行和編號行逐步顯示(從來源到目標)進入應用程式的未受信任資料如何延伸,直到以不安全的方式被使用。

如何運作

JSA 使用 IBM 的進階「字串分析」技術來刪除誤判,並更精確地分類問題。JSA 套用兩個階段以分析每個頁面:污染(或資料流程)分析和字串分析。第一階段,JSA 會尋找從來源至接收槽未行經消毒器的追蹤。如果找到,JSA 會在第二個步驟中,使用「字串字首分析 (SPA)」(「字串分析」的變式)來驗證它。

在來源是 URL 或 URL 一部分的情況下,只有當攻擊者可以在接收槽端控制 URL 的主機和路徑部分時,追蹤才會被不當運用。SPA 會追蹤操作來源 URL 的字串作業,來驗證這些情況。SPA 假設 URL 的主機和路徑未受攻擊者所控制,而假設查詢及/或錨點部分受攻擊者所控制:

在接收槽這端,SPA 會檢查 URL 的主機和路徑部分是否可能受攻擊者控制。如果判定主機和路徑部分兩者皆已修正,並且未受攻擊者控制,就不會發生問題。如果重新導向目標以字首 javascript:mailto: 開頭,則會將問題更精確地分類為「DOM 型跨網站 Scripting」或「DOM 型電子郵件盜用」。

註: 您可以在安全問題報告中檢視 JSA 漏洞。請按一下報告中的關於此問題鏈結,以查看強調顯示程式碼中漏洞位置的程式碼 Snippet。