5. IPA における WAF 導入・運用事例
5.3. 導入
55
56
■ IPA のネットワーク管理者との調整
今回導入した「ModSecurity」は、サーバインストール型WAF52です。ネット ワーク構成の変更は必要ありません。このため、IPA のネットワーク管理者に調 整する必要はありませんでした。
■ 「 JVN iPedia 」のサーバ管理者との調整
「ModSecurity」は、「Apache」のモジュールとして動作するWAFです。イン ストールやアップデートを行う際には、「Apache」の再起動が必要となり、利用 者が「JVN iPedia」を一時的に利用できなくなるなど、導入におけるリスクを
「JVN iPedia」のサーバ管理者に説明しました。
また、3.3章で説明したようにWAFを導入した場合、偽陽性などの誤検知が発生し利用者の正 常な通信を遮断してしまう可能性があります。このような運用におけるリスクを「JVN iPedia」
のサーバ管理者に説明しました。
一方でリスクを最大限低減するための施策として、導入を行う前に導入テスト・偽陽性の発生 に関する確認などの検証を十分に検討している事を説明しました。
この結果、WAFを導入することについて、サーバ管理者の了承を得ました。
なお、サーバ管理者には「導入判断」の段階で一度ヒアリングしています。当然、その時点で も WAF を導入する目的、効果、リスクを簡単に説明していました。再度これらを説明した理由 としては、「導入判断」の時点と異なり、導入するWAFが決まったことがあげられます。導入す るWAFの特徴が明確になったため、そのWAFの特徴、リスクなどを中心に再検討し、これらを 詳細に説明しました。
■ 「 JVN iPedia 」開発業者との調整
「JVN iPedia」は、公募(企画競争)により選定された開発業者が作成した ウェブアプリケーションです。そのため、「ModSecurity」の導入が「JVN iPedia」
のウェブアプリケーションに影響を与える可能性はないか、開発業者に確認し ました。
その結果、WAF 導入が「JVN iPedia」のウェブアプリケーションへ影響を与えないことを確 認できました。
■ WAF ベンダとの調整
「ModSecurity」は、オープンソース WAF でありサポートサービスを前 提にはしません。そのため、 WAF ベンダに調整する必要はありませんでし た。
52 サーバインストール型WAFの特徴は、3.1.2章を参照してください。
57
5.3.2. 導入計画 [ 事例 ]
「導入計画」におけるポイントはこちら 4.2.2章
WAFの関係者との調整が終わった後、WAFの導入計画を立てました。IPAでは図 5-7の順序 でWAFを導入することとしました。
図 5-7 IPAの導入計画
以降本項では、導入計画において実際に検討した内容および検討結果を、図 5-7の項目ごとに 紹介します。
(1) 導入前の事前確認
導入計画を立てるにあたり、「ModSecurity」を導入する「JVN iPedia」のウェブサーバの詳細 な環境について、事前に次の内容を確認しました。
ハードウェア構成について確認
WAFを導入するウェブサーバのハードウェア構成として、主にハードディスクの残量を確認し ました。これは、「ModSecurity」を導入することで、ハードディスクに出力されるログの全体量 が増加するためです。
「JVN iPedia」のウェブサーバにおけるハードディスクの残量を確認した結果、ハードディス クの容量は十分な余裕がないことがわかりました。この結果、導入計画の段階でログの出力量に ついて、検討し調整することとしました(詳細は(2)初期設定の決定で紹介)。
必須ソフトウェアのインストール状況について確認
「ModSecurity」をインストールするためには、事前にいくつかのソフトウェアをインストー ルしておく必要があります53。これらのソフトウェアが現在「JVN iPedia」が動作しているウェ ブサーバにインストールされているかどうかを確認しました。
53詳細については「付録A. オープンソースソフトウェアの紹介」を参照してください。
1.
導 入 前 の 事 前 確 認
2.初期設定の検討 3.導入手順の検討 4.導入に関する対応の検討
5.
導
入
手
順
書
作
成
58
この結果、「ModSecurity」をインストールする際に、いくつかのソフトウェアをインストール する必要があることがわかりました。
(2) 初期設定の検討
「ModSecurity」で遮断するための検出パターンの決定
今回の導入はテストケースであり、「ModSecurity」に同梱されている「Core Rule Set」54がど の程度有効であるか確認をすることも、目的の一つとしました。
しかしながら、「Core Rule Set」に含まれるすべてのルールを適用した場合、偽陽性の発生な ど誤検知が発生する可能性が高く、運用への影響が懸念されます。そのため、まずは攻撃が成功 してしまった場合、影響が深刻な脆弱性である「SQL インジェクション」に関する検出パターン のみ有効としました。
有効にした「Core Rule Set」における検出パターンは次の通りです。
modsecurity_crs_41_sql_injection_attacks.conf
「ModSecurity」及び「Core Rule Set」のバージョンを決定
「ModSecurity」、「Core Rule Set」ともに、導入時点の最新バージョンを導入しました。
導入を検討した際の最新バージョンは次の通りです。
ModSecurity v2.5.12
Core Rule Set v2.0.7
ログの出力の有無および保存期間の決定
「ModSecurity」が出力するログには、「検知ログ55」「監査ログ」「動作ログ」の三種類があり ます。これらのログの出力の要否について検討しました。
今回の WAF導入の目的は、「WAF のできる事、できない事を確認すること」ですので、全て のログを出力し、WAF の動作を確認することとしました。しかし、(1)導入前の事前確認で紹 介したように「JVN iPedia」のハードディスクは、十分な余裕がない状況でした。そのため、出 力された「監査ログ」「動作ログ」をウェブサーバの「アクセスログ」に比べて短い期間だけ保存 しておく設定にしました。
「監査ログ」「動作ログ」の保存期間
第5世代まで(5週間分)
その他設定の決定
5.2.2 章で紹介したように、「JVN iPedia」は「MyJVN」へのリバースプロキシとしても機能
しています。「MyJVN」は API の提供など動的コンテンツが多く、WAFの導入により偽陽性が 発生する可能性が高いと考えました。偽陽性の発生は、サービスへの影響が大きいことから、
「MyJVN」への通信は「ModSecurity」による検査の対象外としました。
54 「Core Rule Set」は、OWASPが開発している検出パターンです。OWASP、「Core Rule Set」については、
「1.3.2 OWASPの取り組み」を参照してください。
55 「ModSecurity」では、「監査ログ」とは別に検知結果だけを「Apache」のエラーログに出力可能です。
59
ここでは、「MyJVN」への通信を検査対象外とした設定例を紹介します。以下の設定を「Apache」
の設定ファイルに記述します。この設定ではURIが「/en/apis/myjvn」または「/apis/myjvn」の HTTP通信を、「ModSecurity」による検査の対象外にします
(参考)[MyJVN]への通信を検査対象外とする設定
<LocationMatch "^((¥/en)?(¥/apis))?¥/myjvn">
SecRuleInheritance Off
</LocationMatch>
(3) 導入手順の検討
「ModSecurity」の導入が原因で「JVN iPedia」のサービスが停止してしまうと、利用者が「JVN iPedia」を利用できなくなります。そのため、本番環境に導入する前にテスト環境(仮想環境)
で動作確認や偽陽性の発生等を検証することとしました。
IPAが実際に検討した導入手順は次の通りです(図 5-8)
図 5-8 IPAの導入手順
なお、仮想環境上に構築するテスト環境の構成は、ソフトウェアのバージョンを含め、本番環 境とほぼ同じ構成となっています。また、検証内容についてもこの時点で検討しました。この検 証内容の詳細については、5.3.4章で紹介します。
(4) 導入に関する対応の検討
次に実際に「JVN iPedia」に「ModSecurity」を導入する際の対応を検討しました。
導入日時及び利用者への通知日時について検討・調整
「ModSecurity」を導入する際は、サービスが一時的に停止する可能性があります。一方で、
「JVN iPedia」のメンテナンスを行う際は、ウェブページ上で事前に告知するとの運用ポリシー を設けています。そのため、事前に「ModSecurity」の導入日時と、ウェブページ上で利用者へ 通知する日時を「JVN iPedia」の管理者に調整しました。
テスト環境での検証 本番環境での検証
導 入
・ 運 用 手 順 書 作 成
1.
導 入 検 証
2.
動 作 検 証
3.
偽 陽 性 の 検 証
導 入 手 順 書 の 修 正
4.
導 入 検 証
5.
動 作 検 証
6.
テ ス ト 運 用
本 番 運 用 運
用 手 順 書 の 修 正
60
導入作業スケジュール及び連絡体制の明確化・調整
導入作業スケジュールを明確にしました。具体的には、WAFの導入担当者に加えて、緊急時に WAF導入中止等を判断する責任者の予定を確保しました。
また、WAFの導入が原因によるサービスの停止など、緊急時に必要となる連絡体制を明確にし ました。
(5) 導入手順書の作成
「導入計画」におけるこれまでの(1)~(4)の検討結果をもとに、以下の2つの目的で、導入手順 書を作成しました。
導入作業時のタイプミスなどを極力減らすため
担当者が変わった場合でも、誰でも導入できるようにするため
なお、今回作成した導入手順書には次のような内容を記載しています (図 5-9)。
図 5-9作成した導入手順書の内容