[https://www.youtube.com/watch?v=MhCDGJbe4-w:embed:cite]
平成27年度秋期情報セキュリティスペシャリスト試験午後I問1を題材に、Q社で発生したStruts 2の脆弱性を狙った攻撃のインシデント対応を、少女漫画風のストーリーで解説する動画です。システムの目的に応じたセキュリティ優先度の違いから、WAFの適切なルール設定、根本的な対策まで、実務で役立つセキュリティの考え方を楽しく学べます。 本動画で学習すべき重要なキーワードについて説明します。まず、セキュリティの優先度として可用性と完全性があります。販売システムのように止まると大損害につながる場合は売上確保のために可用性が優先され、広報やIRシステムのように嘘の情報を出すと法的な問題になる場合は正しい情報開示のために完全性が優先されます。同じシステム構成でもビジネスの目的によって守り方は変わるという視点が重要です。次に、今回のインシデントの原因であるStruts 2の脆弱性についてです。これはHTTPリクエストパラメータに特定の文字列を含めることで、Webサーバーの動作権限で内部設定を不正に操作されてしまうものです。攻撃者はこの仕組みを悪用し、ログの保存先を公開ディレクトリに変更したり、拡張子をjspに変更したりすることで、ログファイルに不正なスクリプトを書き込み、実行可能なバックドアを作成するログポイズニングという攻撃の連鎖を行います。このような攻撃に対する防御策として登場するのがWAFです。完全な修正モジュールの適用には検証などで時間がかかるため、まずはビジネスの継続を最優先とし、WAFという盾を導入して時間を稼ぎます。しかし、WAFのルール定義には注意が必要です。例えば特定の単語を単純にすべて禁止してしまうと、通常のお客様の正当な通信や商品IDまでもブロックしてしまう過検知、すなわちフォールスポジティブが発生します。これを防ぐためには、正規表現を用いて特定の単語だけを狙い撃つような正確なルール設定が求められ、またGETやPOSTだけでなく、画像アップロードなどのMultipart形式にも対応させる必要があります。さらに、WAFを本番環境へ導入する際は、いきなり遮断モードにするのではなく、まずは検知モードで動かして正常な通信を止めていないか安全を確認してから遮断モードに切り替える手順を踏むことが鉄則です。そして、小手先の対策だけでなく根本対策として重要なのが、最小権限の原則です。攻撃者がシステムファイルを書き換えられたのは、Webサーバーが管理者権限で動いていたためであり、これを必要最小限の権限で動作させることで被害を防ぐことができます。将来的には、自分で正規表現を書く必要がないクラウドWAFや、アプリの中から攻撃をブロックするRASP、侵入されたらコンテナごと作り直すイミュータブルインフラストラクチャといった新しい技術も登場してきますが、セキュリティは完全を目指すのではなく、ビジネスを知り、多層防御でリスクを減らすプロセスであるという根本的な考え方は変わりません。