【情報処理安全確保支援士試験 令和6年度 秋期 午前2 問12】【セキュリティの落とし穴!?】フォールスポジティブを徹底解説!
情報処理安全確保支援士やネットワークスペシャリストの資格取得を目指している皆さん、日々の学習お疲れ様です!セキュリティの学習を進める中で、「フォールスポジティブ」という言葉を耳にしたり、問題で目にしたりしたことはありませんか?
今回は、この「フォールスポジティブ」について、その定義から具体的な仕組み、さらには資格試験対策にも役立つ問題解説まで、とことん深掘りしていきたいと思います!一緒にセキュリティの知識を深めていきましょう!
情報処理安全確保支援士試験 令和6年度 秋期 午前2 問12
【出典:情報処理安全確保支援士試験 令和6年度 秋期 午前2(一部、加工あり)】
WAFにおけるフォールスポジティブに該当するものはどれか。
ア HTMLの特殊文字”<“を検出したときに通信を遮断するようにWAFを設定した場合、数式を入力するWebサイトに”<“を数式の一部として含んだHTTPリクエストが送信されたとき、WAFが攻撃として検知し、遮断する。
イ HTTPリクエストのうち、RFCなどに定義されておらず、Webアプリケーションソフトウェアの開発者が独自に追加したフィールドについてはWAFが検査しないという仕様を悪用して、攻撃の命令を埋め込んだHTTPリクエストが送信されたとき、WAFが遮断しない。
ウ HTTPリクエストのパラメータ中に許可しない文字列を検出したときに通信を遮断するようにWAFを設定した場合、許可しない文字列をパラメータ中に含んだ不正なHTTPが送信されたとき、WAFが攻撃として検知し、遮断する。
エ 悪意のある通信を正常な通信と見せかけ、HTTPリクエストを分割して送信されたとき、WAFが遮断しない。
フォールスポジティブって、そもそも何?
フォールスポジティブ(False Positive)とは、日本語で「偽陽性」と訳されます。セキュリティの文脈では、「本来は問題のない正常な通信や挙動であるにもかかわらず、セキュリティシステムがそれを不正なもの、あるいは攻撃であると誤って判断し、検知・遮断してしまうこと」 を指します。
なんだか難しそうに聞こえますが、例えばウイルス対策ソフトが「これはウイルスだ!」と警告したけれど、実は全く無害なファイルだった、というようなイメージです。
なぜ「フォールスポジティブ」が起きるの? その背景と仕組み
フォールスポジティブが発生する背景には、セキュリティシステムの「検知ロジック」が大きく関係しています。
セキュリティシステム、例えばWAF(Web Application Firewall)やIPS(Intrusion Prevention System)は、既知の攻撃パターン(シグネチャ)と照合したり、異常な挙動を検出するヒューリスティック分析を行ったりすることで、攻撃を検知します。
しかし、これらの検知ロジックは完璧ではありません。例えば、以下のような場合にフォールスポジティブが発生しやすくなります。
- 厳しすぎる検知ルール: セキュリティを強化するために、あえて厳しすぎるルールを設定した場合、正常な通信まで引っかかってしまうことがあります。
- 汎用的なシグネチャ: 特定の攻撃に特化せず、広範囲なパターンをカバーしようとするシグネチャは、正常な通信の一部と一致してしまう可能性があります。
- アプリケーション特有の挙動: Webアプリケーションによっては、一般的な通信パターンとは異なる特殊な処理を行う場合があります。セキュリティシステムがその特殊な挙動を攻撃と誤認することがあります。
- 暗号化された通信: SSL/TLSなどで暗号化された通信の内容をWAFなどが詳細に検査できない場合、暗号化自体を不審な通信と判断してしまうこともあります。(実際には復号して検査しますが、そのプロセスで問題が発生することもあります)
フォールスポジティブの具体的な事例
フォールスポジティブは、様々なセキュリティシステムで発生する可能性があります。いくつか例を挙げてみましょう。
- WAF(Web Application Firewall)の場合:
- Webサイトの入力フォームに、たまたまSQLインジェクション攻撃で使われるような文字列(例:
' OR '1'='1
)と似た文字列を入力したら、WAFが攻撃と判断して通信を遮断してしまった。 - 正規のAPI通信で、特殊文字が多数含まれるリクエストを送信したら、WAFがXSS攻撃と誤認してブロックしてしまった。
- Webサイトの入力フォームに、たまたまSQLインジェクション攻撃で使われるような文字列(例:
- IPS/IDS(侵入検知システム/侵入防御システム)の場合:
- システム管理者が正規の作業として行うSSH接続が、特定の攻撃パターンに似ていると判断され、IPSによって通信が切断されてしまった。
- アンチウイルスソフトの場合:
- 自社で開発したソフトウェアが、一般的なマルウェアの挙動に一部似ていたため、アンチウイルスソフトによって誤ってウイルスとして検知・隔離されてしまった。
これらの事例を見ると、「あ、これって業務に支障が出そう…」と感じますよね。まさにその通りなんです!
フォールスポジティブの課題と対策
フォールスポジティブが頻繁に発生すると、以下のような課題が生じます。
- 業務の中断: 正常な通信や処理が遮断されることで、業務が滞り、生産性が低下します。
- ユーザー体験の悪化: Webサイトが利用できなかったり、期待する動作をしなかったりすることで、ユーザーの満足度が低下します。
- 運用負荷の増大: 誤検知のたびに、システム管理者が原因調査や設定変更を行う必要があり、運用管理のコストが増大します。
- セキュリティアラートの無視: 誤検知が多すぎると、本当に危険なアラートが埋もれてしまい、見過ごしてしまうリスクがあります(「オオカミ少年効果」)。
これらの課題を解決するために、以下のような対策が考えられます。
- ルールのチューニング: セキュリティシステムの設定(検知ルールやしきい値)を、環境やアプリケーションの特性に合わせて慎重に調整します。過度に厳しくせず、かといって緩すぎない、適切なバランスを見つけることが重要です。
- ホワイトリスト方式の活用: 許可する通信パターンやIPアドレスを事前に登録し、それ以外をすべて遮断する「ホワイトリスト方式」は、フォールスポジティブを減らす効果が期待できますが、運用が煩雑になる可能性があります。
- 学習機能の活用: AIや機械学習を搭載したセキュリティシステムでは、正常な通信パターンを学習し、誤検知を減らす機能を持つものもあります。
- 例外設定: 特定の通信やIPアドレス、URLパスなどに対して、個別に検知ルールを適用しない、あるいは異なるルールを適用する例外設定を行います。
- 定期的なログ分析と監視: セキュリティシステムのログを定期的に分析し、フォールスポジティブが発生していないか、発生している場合はその原因を特定して対策を講じます。
- システム連携と情報共有: 開発部門や運用部門と連携し、アプリケーションの特性や変更点をセキュリティ部門と共有することで、より精度の高いセキュリティ対策を講じることが可能になります。
今後の動向
近年、AIや機械学習の進化により、セキュリティシステムの検知精度は向上しています。これにより、フォールスポジティブの発生率を下げつつ、高いセキュリティレベルを維持することが期待されています。
また、DevSecOps(開発・セキュリティ・運用を一体化させるアプローチ)の考え方が広まることで、開発段階からセキュリティを考慮し、フォールスポジティブの発生しにくいアプリケーション設計や運用体制が構築されるようになっています。
しかし、攻撃の手口も日々巧妙化しており、完璧なセキュリティシステムは存在しません。フォールスポジティブを完全にゼロにすることは難しいかもしれませんが、上記の対策を講じながら、いかにその影響を最小限に抑えるかが、今後のセキュリティ運用における重要なポイントとなります。
まとめ
今回は、セキュリティにおける「フォールスポジティブ(偽陽性)」について解説しました。 正常なものを誤って不正と判断してしまうこの現象は、セキュリティシステムを運用する上で避けて通れない課題です。しかし、その仕組みと対策を理解することで、より堅牢で運用しやすいシステムを構築することができます。
情報処理安全確保支援士やネットワークスペシャリストの試験でも、フォールスポジティブは重要なキーワードとして出題される可能性があります。この記事を通して、皆さんの理解が深まり、試験対策の一助となれば嬉しいです!
【問題解説】WAFにおけるフォールスポジティブに該当するものはどれか?
それでは、先ほどの記事で学んだ知識を活かして、実際の問題を解いてみましょう!
問題:
WAFにおけるフォールスポジティブに該当するものはどれか。
ア HTMLの特殊文字”<“を検出したときに通信を遮断するようにWAFを設定した場合、数式を入力するWebサイトに”<“を数式の一部として含んだHTTPリクエストが送信されたとき、WAFが攻撃として検知し、遮断する。
イ HTTPリクエストのうち、RFCなどに定義されておらず、Webアプリケーションソフトウェアの開発者が独自に追加したフィールドについてはWAFが検査しないという仕様を悪用して、攻撃の命令を埋め込んだHTTPリクエストが送信されたとき、WAFが遮断しない。
ウ HTTPリクエストのパラメータ中に許可しない文字列を検出したときに通信を遮断するようにWAFを設定した場合、許可しない文字列をパラメータ中に含んだ不正なHTTPが送信されたとき、WAFが攻撃として検知し、遮断する。
エ 悪意のある通信を正常な通信と見せかけ、HTTPリクエストを分割して送信されたとき、WAFが遮断しない。
解説:
この問題は、「フォールスポジティブ」の定義を正確に理解しているかを問うものです。フォールスポジティブは、「正常なものを誤って不正と判断すること」でしたね。
各選択肢を見ていきましょう。
- ア:HTMLの特殊文字”<“を検出したときに通信を遮断するようにWAFを設定した場合、数式を入力するWebサイトに”<“を数式の一部として含んだHTTPリクエストが送信されたとき、WAFが攻撃として検知し、遮断する。
- このケースでは、数式の一部として入力された
<
は正常な文字です。しかし、WAFはこれをHTMLの特殊文字(XSS攻撃などに使われる可能性のある文字)として検出し、攻撃ではないのに攻撃と誤認して遮断しています。これはまさに「正常なものを不正と誤認する」フォールスポジティブの典型的な例です。
- このケースでは、数式の一部として入力された
- イ:HTTPリクエストのうち、RFCなどに定義されておらず、Webアプリケーションソフトウェアの開発者が独自に追加したフィールドについてはWAFが検査しないという仕様を悪用して、攻撃の命令を埋め込んだHTTPリクエストが送信されたとき、WAFが遮断しない。
- このケースは、本来検知・遮断すべき不正な通信を、WAFが検知できずに見逃してしまっている状況です。これは「フォールスポジティブ(偽陽性)」ではなく、「フォールスネガティブ(False Negative:偽陰性)」、つまり「不正なものを正常と誤認する」状況に該当します。
- ウ:HTTPリクエストのパラメータ中に許可しない文字列を検出したときに通信を遮断するようにWAFを設定した場合、許可しない文字列をパラメータ中に含んだ不正なHTTPが送信されたとき、WAFが攻撃として検知し、遮断する。
- このケースは、不正な通信をWAFが正しく検知し、遮断している状況です。これはセキュリティシステムが適切に機能していることを示しており、フォールスポジティブでもフォールスネガティブでもありません。
- エ:悪意のある通信を正常な通信と見せかけ、HTTPリクエストを分割して送信されたとき、WAFが遮断しない。
- このケースも、イと同様に、本来検知・遮断すべき悪意のある通信をWAFが見逃してしまっている状況です。これも「フォールスネガティブ(偽陰性)」に該当します。
以上の分析から、正解は ア となります。