WAF(Web Application Firewall)とは、Webアプリケーションに特化したセキュリティシステムです。しかし、具体的にどういうサイバー攻撃を防げるのか、対応できない攻撃はあるかまで把握しきれていない場合もあるでしょう。この記事では、WAFの基本機能とできること・できないことを分かりやすく解説します。
WAFとは
WAFはサイバー攻撃を防御する機能を持ったセキュリティシステムのことです。Web Application Firewall(ウェブアプリケーションファイアウォール)を略し、WAFと呼ばれています。セキュリティシステムにはファイアウォールやIPSといったものもありますが、WAFはそれらと異なるレイヤーでWebアプリケーションを守るため、ファイアウォールやIPSでは防げないSQLインジェクションなどの攻撃を防ぐことが可能です。 より強固なセキュリティ環境を構築するならば、導入を検討したいセキュリティシステムの1つと言えます。
WAFの基本的な5つの機能
WAFには、通信監視・制御やシグネチャ自動更新など、基本的な機能があります。WAFでどのようなことができるかを確認しましょう。
1、通信監視、制御
通信監視・制御機能は、WAFの基本的な機能です。定義ファイル(以降シグネチャと呼びます)を利用して、サイバー攻撃を防御します。シグネチャを利用した制御方法には、ブラックリスト方式とホワイトリスト方式の2種類があります。
ブラックリスト方式は、攻撃パターンを記録したシグネチャを用いて、該当した通信を遮断する方法です。ブラックリストは必要に応じて更新され、最新情報を保つ仕組みです。
ホワイトリスト方式は、ブラックリストとは逆に「正しい」パターンをシグネチャに設定し、正しい通信パターンのみを許可する方式です。ホワイトリスト方式にすると未知の攻撃にも対応できます。
2、シグネチャ自動更新
クラウド型サービスとして提供されるWAFは、通信制御に使われるシグネチャも基本的に自動更新します。
またオンプレミス型のWAFも、シグネチャをインターネットから自動的にダウンロードして更新する機能を有する製品があります。自動更新機能がある場合、自動更新の間隔を変更したり、手動で更新したりすることも可能です。
3、Cookie保護
Cookie(クッキー)とは、Webブラウザで一連の操作をする場合に、次の画面へ引き継ぎたい情報を格納する器のような機能です。
サイバー攻撃では、このCookieを標的にする場合もあり、WAFはCookieを暗号化するなどして保護します。Cookie保護により、なりすましによる被害を防止できます。
4、特定URL除外・IPアドレス拒否
特定URL除外機能は、業務に必要な外部アプリケーションやクラウドサービスのURLはチェック対象から除外する機能です。この機能により、通信のパフォーマンス低下を回避できます。
IPアドレス拒否機能は、サイバー攻撃などで使われた特定IPアドレスからのアクセスを拒否する機能です。WAFは通信データの内容をチェックして通信を許可するかどうか判断しますが、IPアドレスだけで拒否できると、処理を通さなくていい分、通信性能の低下を緩和できます。
5、ログ・レポート
ログの収集とレポート出力機能は、WAFによって防御したサイバー攻撃がどれだけあったのかを確認するのに役立つ機能です。
次は、WAFの基本的な機能を利用して、どのようなサイバー攻撃が防げるのかについて確認しましょう。
WAFの機能で防げるサイバー攻撃8つ
WAFは、アプリケーション層で機能し、Webアプリケーションに対する攻撃を防御します。具体的にどのようなサイバー攻撃を防げるのかについて、順番に見ていきましょう。
1、Webアプリケーションの脆弱性を突く攻撃
Webアプリケーションには、さまざまな脆弱性があり、脆弱性をゼロにすることは困難です。
しかしWAFは、Webアプリケーションが通信データを受け取る直前に、通信データを精査して、正しいアクセスのみ許可します。この仕組みにより、脆弱性を抱えたWebアプリケーションがその脆弱性を突かれても、防御可能です。
2、ゼロデイ攻撃
Webアプリケーションの開発元は、脆弱性が見つかり次第、更新版を作成・配布することで脆弱性に対応します。しかし、脆弱性の発見から対応までには、どうしてもタイムラグがあるため、サイバー攻撃を完全に回避できません。
ゼロデイ攻撃とは、Webアプリケーションの脆弱性が発見されて、対策が行なわれるまでの間にしかける攻撃方法です。ゼロデイ攻撃に対する防御にもWAFは役立ちます。
3、バッファオーバーフロー
プログラムが確保しているメモリ領域を超えたデータを渡し、プログラムがシステムエラーで不安定になることを狙った攻撃です。
WAFは、通信データをチェックしてメモリ領域を超えるデータを渡さないよう制御できます。
4、クロスサイトスクリプティング
掲示板や問い合わせフォームなど、閲覧者が情報を入力することで次の画面を生成するタイプの画面で行なわれるサイバー攻撃の一種です。意図的にスクリプトを送信して罠をしかけ、罠にかかった別の閲覧者になりすますなどの攻撃を行ないます。
WAFは、テキストエリアの入力データをWebアプリケーションへ渡す前に「エスケープ」という処理を行ないます。エスケープ処理とは、スクリプトにとって意味のある単語や記号を無効化して、スクリプトが動かないようにデータを書き換える処理のことです。
Webアプリケーション自体も入力データのエスケープ処理は行なっています。ただ、Webアプリケーション側に処理漏れがあるケースがあり、WAFは一括して処理することで処理漏れもフォローします。
5、SQLインジェクション
入力フォームに特定のSQLを記載する攻撃手法です。記載されたSQLによっては、Webアプリケーションが利用しているデータベースの誤動作などを誘発します。 SQLインジェクションも、WAFのエスケープ処理で回避可能な攻撃です。
6、DoS攻撃・DDoS攻撃
DoS(Denial of Service)攻撃は、ある端末から多量データや不正データを送信してサーバーダウンを狙うサイバー攻撃です。
DDoS(Distributed Denial of Service attack)攻撃は、DoS攻撃を不特定多数の端末から行なう攻撃で、攻撃者特定が困難と言われています。
これらの攻撃は、ファイアウォールやIPS(不正侵入防止)システムなど別のセキュリティシステムで対応していました。しかし近年これらでは防ぎきれないケースが出てきており、WAFでも防御可能な機能を提供しています。
7、ブルートフォースアタック(総当たり攻撃)
いわゆるパスワードの「総当たり」攻撃です。Webアプリケーションでは、複数回のログイン失敗でアカウントをロックする機能があります。
WAFで不正アクセスを検知できれば、アカウントロックからの復旧作業などシステム管理者や本来のユーザーにかかる負荷が軽減されます。
8、ディレクトリトラバーサル
ディレクトリトラバーサルとは、Webアプリケーション上に配置されたファイルを直接指定して攻撃する手法です。処理で扱うファイルの名称をディレクトリ付きで扱って送受信データに含める、「../../」といった相対パスの記述を許していると、この攻撃を受けてしまいます。
WAFでは、意図しないファイルのアクセスを防いでディレクトリトラバーサルを無効化します。
WAFの機能では防げない3つの攻撃
WAFは、Webアプリケーションに対する多くの攻撃を防御します。しかし、サイバー攻撃の中ではWAFで防げない攻撃も存在します。WAFで防げない攻撃を知り、それらの攻撃に対する対処法も確認しましょう。
1、botによる不正アクセス
botとは、同じ動作を何回も繰り返すプログラムのことです。botによって何回も不正アクセスを試みる場合、アクセス方法はアプリケーションの振る舞いとして正しいため、WAFでは防御できません。
連続しての不正アクセスに対しては、Webアプリケーションや認証システム側でアカウントロック機能を有効化して防御します。
2、OS・ミドルウェアへの標的型攻撃
OS・ミドルウェアへの標的型攻撃は、IPSシステムの守備範囲となる攻撃です。WAFだけではOS・ミドルウェアへの攻撃は防御できないため、IPSシステムと組み合わせることで、より高いセキュリティ効果が期待できます。
3、ネットワークに対する標的型攻撃
WAFは、アプリケーション層でサイバー攻撃を防ぐシステムです。そのため、ファイアウォールが対応するような、ネットワーク層に対する標的型攻撃は防げません。
WAFとファイアウォールはお互いに守備範囲を補完し合う機能と考えてください。
WAFの機能と防げる攻撃・防げない攻撃を把握しよう
WAFの役割は、Webアプリケーションを防御することであり、他のセキュリティシステムとは防御範囲が異なります。セキュリティ製品は、防御範囲の異なる製品を組み合わせて使うことが重要です。
ファイアウォールをすでに利用している場合でも、社内のセキュリティをより高める場合はWAFの導入を検討してみてください。