JavaScript™ ソース・コード分析の機能
JavaScript™ Security Analyzer (JSA) は、JavaScript™ ソース・コードの静的分析を実行して、クライアント側のさまざまな問題 (主に DOM ベースのクロスサイト・スクリプティング) を検出します。JSA は、探査ステージで AppScan® Enterprise が収集した HTML ページを分析します。JSA は、テスト・ステージと並行して実行することができます。または、既存の探査結果を対象として、手動で随時起動することができます。
JSA によって検出される問題には、脆弱性のあるソース・コードを示す、ソース・レベルのトレース情報が含まれます。トレース情報は、問題の「この問題の情報」レポートの「コード・スニペット」タブで確認できます。コード内で番号が付けられて強調表示されている行は、アプリケーションに入力された信頼できないデータがどのように伝搬されて非セキュアな方法で使用されるかを、ソースからシンクまで、ステップバイステップで示しています。
動作説明
JSA は IBM の高度な文字列分析テクノロジーを使って誤検出を除去し、より正確に問題を分類します。各ページを分析するために 2 つのステージに適用されます: 汚染 (またはデータ・フロー) 分析および文字列解析。最初の段階で JSA は、サニタイザーを通らない、ソースからシンクまでのトレースを検索します。これが見つかった場合、JSA は第 2 段階でそれを検証します。その際、文字列分析のバリアントである文字列プレフィックス分析 (SPA) を使用します。
シンクにおいて、SPA はアタッカーが URL のホスト部分とパス部分を制御できるかどうかを検査します。ホスト部分とパス部分がどちらも固定されていて、アタッカーが制御していないと判断した場合は、問題が排除されます。リダイレクトのターゲットが接頭部 javascript:
または mailto:
で始まる場合、問題はより正確に「DOM ベースのクロスサイト・スクリプティング」または「DOM ベースの電子メール・スプーフィング」と分類されます。