今回は、WAFについてメモしていこうと思います。
WAF(Web Application Firewall)とは
WAF(ワフ)は”Web Application Firewall”の略で、「Webアプリケーションの脆弱性を悪用した攻撃」からWebサイトを保護するセキュリティ対策です。Webサーバーの前段に設置して通信を解析・検査し、攻撃と判断した通信を遮断することで、Webサイトを保護します。
インターネットバンキングやECサイトのように、ユーザーからの入力を受け付けたり、リクエストに応じて動的にページを作成するWebサイトの保護に適しています。
例)SQLInjection、XSSなどのセキュリティ攻撃から保護
Firewall、IPS、WAFの違い
| 製品 | 通信のリクエストに対するアクション |
| Firewall | 通信における送信元情報と送信先情報(IP アドレスやポート番号等)を検査して防御を行う。 FWを通過するデータを読み取り、動的にポート解放と閉鎖する機能はステートフルインスペクション。 |
| IPS | 多様なアプリケーション(プロトコル)へのリクエストに対して、シグネチャに基づいて防御を行う。 シグネチャとは、攻撃や不正アクセスの特徴を定義したデータのこと。 |
| WAF | Webアプリケーションへのリクエストに対して、シグネチャやホワイトリストに基づき防御を行う。 ホワイトリストとは、正常な通信を定義した検出パターンのこと。保護対象は、Webアプリケーションのみ。 |
WAFの仕組み
WAFでは「シグネチャ」を用いて不正アクセスを防止します。「シグネチャ」とはアクセスのパターンを定義したもので、このパターンに一致するアクセスがあった場合に、通信許可と拒否の判断を行うという仕組みです。
WAFの不正アクセス検知方式には「ブラックリスト方式」と「ホワイトリスト方式」の2種類があります。ここではそれぞれの検知方式について見ていきましょう。
ブラックリスト方式
ブラックリスト方式では既知の攻撃パターンをシグネチャに定義し、一致する通信を拒否することで不正アクセスを防止します。未知の攻撃に対応できないという弱点がある一方、過度なアクセス制限は防げるでしょう。
シグネチャは、定期的にアップデートすることで最新の攻撃を防ぎます。これまでベンダーが提供したものを自社でアップデートするのが基本でしたが、クラウド型WAFの普及によって、現在ではベンダーがクラウド上でシグネチャをアップデートしてくれる製品が多くなりました。
ホワイトリスト方式
ホワイトリスト方式では許可するべき通信をシグネチャに定義し、それに一致しない通信をすべて拒否することで不正アクセスを防ぎます。Webアプリケーションの作りに応じて柔軟にシグネチャを定義できるほか、未知の攻撃も防げるというメリットがあります。
ただし、ホワイトリスト方式では個々の企業でシグネチャを定義する必要があります。シグネチャにはWebアプリケーションのURLのほか、アプリケーションに渡す文字や数値なども細かく定義します。
それにはWebアプリケーションやセキュリティに詳しい技術者が必要不可欠です。そのため人員や運用にかかるコストが高く、技術者や十分な予算のない企業では運用が難しいといえるでしょう。
ホワイトリストについては以下の記事で更に詳しく解説していますので、参考にしてみてください。
参考
https://it-trend.jp/waf/article/162-0008#chapter-3
