目次
OWASPZAPによるECサイトの脆弱性診断
① OWASPZAPとは
今回のテーマである脆弱性診断ツール「OWASP ZAP」ですが、情報処理推進機構のIPAも推奨している無料ツールのため、多くの人が聞いたことがあるのではないでしょうか。このツールを使うと、Webサイトに対して実際の攻撃で使われるリクエスト送信などを行い、Webサイトに脆弱性が潜んでいないかを検査してくれます。
OWASPZAP公式サイト
② OWASPZAPで検出可能な脆弱性
OWASPZAPでは、Webサイトの主要な脆弱性を検出することができます。
検出可能な脆弱性の例は以下の通りです。
OWASPZAPで検出可能な脆弱性(一例) |
---|
・SQLインジェクション |
・OSコマンドインジェクション |
・ディレクトリ・トラバーサル |
・クロスサイト・スクリプティング |
・クロスサイト・リクエスト・フォージェリ |
・バッファオーバーフロー |
上記は一例ですが、IPAが公開している「安全なウェブサイトの作り方」でも取り上げられている主要な脆弱性の多くを検出してくれます。
プラグインの活用や「詳細な設定」を行うことにより、検査サイトのシステム特有の脆弱性など、より細かい検出も可能となります。
当社ではこの「詳細な設定」をしっかり行うことで網羅性の高い脆弱性診断を目指しています。
4つの重要な設定ポイント
前述の通り、OWASPZAPは非常に便利なツールですが、しっかり使わないと検査に「漏れ」が生じる場合があるため、注意が必要な設定があります。
ECサイトの場合、主に以下の点です。
- 対象サイトのURL一覧をインポート
- アクセスにECサイト外操作を伴うページを手動追加
- 隠しファイル一覧を定義・インポート
- アラートフィルタを設定
それぞれ詳しく見ていきましょう。
① 対象サイトのURL一覧をインポート
OWASPZAPには「スパイダー」というクロール機能があり、対象サイトをスキャンすることで、サイトに存在するページを検査対象として自動検出することができます。
しかしこの機能には実際のところ確実性がなく、階層が深いページや内部リンク構造が複雑な場合、検査対象に含まれないページが出てしまう場合があります。
検査対象漏れを回避するため、当社では対象サイトのURL一覧をOWASPZAPにインポートすることで検査対象の網羅を目指します。
② アクセスにECサイト外操作を伴うページを手動追加
上記により対象サイトのURL一覧を検査対象に設定しましたが、実はこれだけでは検査対象設定としては不十分です。
アクセスにECサイト外操作を伴うページ、例えば2要素認証でメールに届いたリンクをクリックしてアクセスするページなどの場合、URLインポートでは検査対象に含めることができていません。(このようなページのURLには一般的にハッシュ値が含まれるため、一意のURLを事前定義できないのが理由です)
また、例えばフォームの入力→確認画面→完了画面のように、一連の操作でデータの引き継ぎが行われるページでは、OWASPZAPの挙動が原因で検査中にデータの引き継ぎが正しく行われない場合があり、正しく検査できない場合があります。
このような検査漏れを防ぐため、上記のようなページに対しては手動でアクセスを行い、 検査対象としてOWASPZAPに読み込ませる必要があります。
③ 隠しファイル一覧を定義・インポート
②までの設定により、ECサイトの公開されているページを検査対象にできました。
しかしまだこの状態では、サイトの環境情報などが記載された「隠しファイル」は検査対象にできていない状態です。
これでは仮に外部から隠しファイルにアクセス可能な状態でも、OWASPZAPは何も検出してくれません。
このようなアラートを検出するためには、まず事前に検査対象とするファイル(.envなど)一覧の定義をしておき、検査URLとしてOWASPZAPに追加インポートすることで、隠しファイルも検査対象に含めることができます。
④ アラートフィルタを設定
③までで「検査対象」を網羅したら、最後に「検出事項」を設定します。
OWASPZAPは検査URL・リクエスト・パラメーター等をもとに、各検出事項のリスクレベルを「高」「中」「低」に自動分類しますが、ツールによる判断であるためこの分類を完全に信頼するのは危険です。
もし自動分類が不適切だった場合、例えば重要事項であるシステム環境情報漏洩の検出がリスクレベル「低」に分類されてしまったり、場合によっては対応不要と判断され、検出レポートに表示されないこともあります。
こうした検出漏れを防ぐため、検出必須のアラートに必ずリスクレベル高で検出させるなど、アラートフィルタを設定することで確実な検出が可能となります。
まとめ
ご紹介してきたように、OWASPZAPは脆弱性診断に便利なツールですが、デフォルト設定のままでは検査漏れ・検出漏れが生じる可能性があります。
お伝えした設定は一部にすぎませんが、この記事でご紹介したような設定を行うことで、「検査対象」「検出事項」を最低限網羅して確認することができます。
セキュリティ対策はどれだけやっても十分とは言えませんが、せっかく脆弱性検査を行うのであれば、しっかりツールを利用して少しでもセキュリティが担保されたシステムを保てるように心がけましょう。