WAFによる通信制御

目次
この章では、ネットワークにおけるセキュリティ機器として、WAFについて学んでいきます。

前の章にて、ファイアーウォールについて解説していますが、同様にネットワークセキュリティを担当する機器です。

それぞれ異なる得意分野があり、どちらか片方でよいというものではありません。

どちらも使いこなせるように、仕組みとファイアーウォールとの違いを理解していきましょう。

WAF(Web Application Firewall)とは

WAFは「Web Application Firewall」の略で、Webサイトやアプリケーション専門の防御ネットワーク機器です。

通常のファイアウォールがネットワークレベルで通信を制御するのに対し、WAFはアプリケーションレベル(L7)で動作し、Webアプリケーションへの攻撃を防御します。

そのために、IPアドレスレベルではNATやプロキシ等で通信元を偽装されてしまうようなものでも、中のアプリケーションへの挙動を確認して、防御することが可能です。

ルールもアプリケーションへの振る舞いに特化したものが設定可能で、自身の管理するアプリケーションに適した防御となるようにチューニングを行うのが一般的です。

WAFの主な機能

WAFの主な機能は以下の通りです。

No. セキュリティ対策 説明
1 SQLインジェクション対策 データベースを操作する悪意あるSQLコマンドの挿入を検出し、ブロックします。
2 クロスサイトスクリプティング(XSS)対策 Webページに悪意のあるスクリプトを埋め込む攻撃を防ぎます。
3 コマンドインジェクション対策 サーバーにシステムコマンドを実行させる攻撃をブロックします。
4 ディレクトリトラバーサル対策 権限のないディレクトリへのアクセスを防止します。
5 不正なファイルアップロード対策 悪意のあるファイルのアップロードを防ぎます。
6 レート制限 短時間に多量のリクエストを送信するDoS攻撃などを防ぎます。

WAFは、OWASPトップ10と呼ばれる主要なWebアプリケーションの脆弱性に対する防御策を提供します。

アプリケーションレイヤーのパケットの中身まで詳細に確認し、一般的な攻撃や脆弱性を付くような攻撃の振る舞いを検知して防御することができるのです。

このような攻撃の振る舞いを識別するためのルール集をシグネチャと呼びます。

このシグネチャの品質がそのままWAFの防御力に直結します。

必要な通信は通しつつ、その他の通信は完璧に防御するという技術はかなりの高度なセキュリティ知識が必要となるため、基本的にはセキュリティベンダーに依頼し、シグネチャのチューニングを依頼することが一般的です。

WAFの動作モード

WAFには主に3つの動作モードがあります。

No. WAF動作モード 説明
1 ブロックモード(Block Mode) 検出した攻撃を即座にブロックします。
2 監視モード(Monitor Mode) 攻撃を検出しますが、ブロックせずに記録のみを行います。
3 学習モード(Learning Mode) 正常なトラフィックパターンを学習し、異常を検出できるようにします。

WAFの導入初期には、まず監視モードで運用し、誤検知(false positive)がないかを確認した後、ブロックモードに切り替えるのが一般的です。

ファイアウォールとWAFの違いと連携

主な違い

ファイアウォールとWAFは、どちらもネットワークセキュリティを担う重要な装置ですが、その目的と機能は異なります。
ファイアーウォールは主にネットワークセキュリティを担い、WAFはアプリケーションに特化した脆弱性防御の機能を有します。
No. 比較項目 ファイアウォール WAF
1 保護レイヤー 主にL3〜L4で動作し、IPアドレスやポート番号に基づいてフィルタリングを行います。
例外としてアプリケーションゲートウェイ型の場合はL7(アプリケーション層)もフィルタリング可能です。
L7(アプリケーション層)で動作し、HTTPリクエストの内容を詳細に検査します。
2 対象となる脅威 不正なネットワークアクセスを防ぎます。 SQLインジェクションやXSSなどのWebアプリケーション特有の攻撃を防ぎます。
3 設定の複雑さ 比較的シンプルなルールセットで設定できます。 Webアプリケーションの特性に合わせた複雑な設定が必要です。

効果的な連携方法

ファイアウォールとWAFはそれぞれ役割が異なることを説明しました。
この2つは防御する箇所が異なるので、どちらか片方でよいというものではありません。

組み合わせることで、より強固なセキュリティ対策が実現できるのです。
一般的な構成は以下のようになります。

ポリシーとルール
No. セキュリティコンポーネント 説明
1 外部ファイアウォール インターネットとDMZ(非武装地帯)の間に配置し、基本的なフィルタリングを行います。
2 WAF DMZ内のWebサーバーの前段に配置し、Webアプリケーション特有の攻撃を防ぎます。
3 内部ファイアウォール DMZと内部ネットワークの間に配置し、内部リソースへのアクセスを制御します。

この「多層防御」アプローチは、ディフェンス・イン・デプス(多層防御)と呼ばれ、単一の防御層が突破されても、別の層で攻撃を防ぐことができます。

外部ファイアウォールでIPアドレスやポートレベルでの1次フィルタリングを行います。
ここで大概の不正アクセスを防御し、次のWAFにて1次フィルタリングを通ってしまった不正通信をより詳細に確認しブロックします。

最後にWebサーバのような外部に公開するものと社内向けのシステムの区画を切り分ける内部ファイアーウォールにて、社内情報を完全に防御するという構成になります。

DMZ(非武装地帯)
DeMilitarized Zoneの略で、非武装地帯と訳されます。
基本的に社内システムはインターネットに公開するべきではないのですが、ホームページなど社外に公開しなくてはいけないシステムがどうしてもあります。

公開する必要のあるWebサーバと公開すべき出ない社内システムを隔離するという思想のもとDMZが配置されます。

DMZには公開する必要のあるサーバを配置します。
インターネットとDMZの間、さらにはDMZと社内ネットワークの間にはファイアーウォールを設置します。

万が一、サーバを乗っ取られてしまったとしてもDMZから社内ネットワークには接続できないようにファイウォールを置くことで被害を最小限にとどめることができるのです。

まとめ

この記事では、インフラエンジニアを目指す初学者の方に向けて、WAFについて解説しました。

ファイアーウォールによく似たものですが、アプリケーション領域での防御を得意とする重要なセキュリティ機器です。

これらのセキュリティ機器はサービスを直接提供するようなものではないですが、企業の信頼性を守る重要なものです。

システムを構築する場合もセキュリティは重要な要素となりますので、必要に応じて適切に利用できるように特徴を理解しておきましょう。

この記事が皆さんのネットワーク学習の出発点となれば幸いです。