Windows Server 2003 SP2(32bit) / Windows Server 2003 R2 SP2 (32bit)にDeep Security Agent(以下、DSA)をインストールして侵入防御ルールを多数展開したところ、非ページプールが枯渇してしまいました。
障害内容
Windows Server 2003 SP2(32bit) / Windows Server 2003 R2 SP2 (32bit)にDSAをインストールし、侵入防御機能を使ってIPSルールを多数適用している場合に、Windows Server 2003 の非ページプールを枯渇させてしまう事象が確認されております。
非ページプールの枯渇により、他ミドルウェアやOSがハングアップしてしまう事象が確認されております。
事象発生の背景
本事象発生の背景として、以下の2点が挙げられます。
-
Windows Server 2003 SP2(32bit) / Windows Server 2003 R2 SP2 (32bit)では、物理メモリをいくら増設してもカーネルで利用可能な非ページプールの上限が256MBに制限されています。
詳細については、以下のMicrosoft社の文献をご参照ください。 -
DSAの各機能は非ページプールの領域を使用します。また、非ページ領域の消費量はIPSルール数、検知数(ハンドルしているTCP数)に依存します。
参考情報
トレンドマイクロの検証環境でパッチマネージメントをされていないWindows Server 2003 OSでDeep Securityの「推奨設定の検索」機能を利用した場合は、100以上のルールが検出されています。
回避策
本事象はWindows 32ビットカーネルの制約によって発生している問題のため、回避策としては適用するIPSルールを手動で削減するチューニングが必要となります。
運用方法として推奨設定の検索+自動適用を選択されていた場合、自動適用ではなく手動での適用に切り替えていただくことを推奨いたします。
新規にWindows Server 2003 SP2(32bit) / Windows Server 2003 R2 SP2 (32bit)環境へDSAのインストールを検討される場合は、事前に非ページプールの空き容量をご確認いただき、100MB以上の空きがない場合はIPSルールの手動適用での運用をご検討ください。
また本事象はDeep Securityのようなアプリケーション側で抜本的に回避することが難しい事象です。
事象の発生確率を低減させる対処方法としては、以下のような運用も合わせてご検討ください。
64ビットOSへの移行
32ビットのWindowsで発生している場合、最も確実な対処方法は64ビットOSへの移行となります。全く同量の物理メモリを搭載している場合でも、64ビットOSではカーネルで利用可能な非ページプール領域が大幅に拡大されます。
適用するルールの削減
DPI(侵入防御) / ファイアウォール / セキュリティログ監視 / 変更監視等、あらゆるルールの適用によってカーネルメモリの利用量が増加します。ルールの適用を必要最小限に抑える事によって、事象の発生確率を低減できる可能性があります。
定期的なOSの再起動
非ページプール領域は、カーネルモードで動作するあらゆるドライバが共有で利用 します。システムの稼働を長期間続けるにつれ、様々なドライバがメモリの確保・開放を繰り返した結果として、連続したメモリ領域を確保するのが次第に困難 となっていきます。システムが起動してから事象が発生するまでの期間がある程度一定している場合、その期間よりも短い頻度で定期的にシステムを再起動すれ ば事象の再発を抑止できる可能性が高まります。
負荷分散
特定のコンピュータに負荷が集中しているような環境であれば、ロードバランサー等を導入して負荷分散させる事によって事象の発生確率を大幅に低減できる可能性があります。
補足
- 本事象はWindows Server 2003の32bitOSでのみ確認されています。
- 本事象はDSAでのみ確認されています。Deep Security Virtual Applianceでは確認されていません。