第 13日目は、SOC サービス開発エンジニア 橋本憲祐の記事です。WAF の種類や基本的な仕組みについて紹介します。

---

WAF(Web Application Firewall)サービス開発エンジニアの橋本です。昨日は WAF における真に対応すべきアラートに関する取り組みをご紹介させていただきましたが、今日はそもそも WAF ってなんで入れるの? どういった導入方式があるの? WAF を導入すればそれで安全? についてお話したいと思います。

そもそも WAF って?

WAF は Web サーバー(HTTP/HTTPS)に対する攻撃を検知、遮断する機器です。よく IPS と何が違うのか、IPS だけでも問題ないのではないか?とご質問いただくことがあります。IPS は L4~L7 までを防御範囲とする機器であり、SQL インジェクションや Apache Struts の脆弱性など WAF と同様の防御範囲の検知も行える製品もあります。大きく違う点として WAF は HTTP を理解し、検知を行う点です。

典型的な SQL インジェクションを例にご説明します。以下は SQL インジェクションを狙った攻撃です。典型的なパターンですので、ログを見る人は一度は目にしたことがある方も多いのではないのでしょうか。

' or 1=1--

上記を HTTP として同じ動作をするリクエストには様々なパターンがあります。一番シンプルな変換は文字列を大文字、小文字に変換することです。

' Or 1=1--

スペースは「+」で表現することもできるため、スペースを「+」に変換しても意味は同じです。

'+or+1=1--

他には人間には理解しにくくなりますが、パーセントエンコードしても同じ意味を持ちます。

%27%20or%201%3D1--

上記は検知回避テクニックの一例ですが、同じ攻撃コードでも検知回避テクニックを使用すると単純な文字列比較では検知できない別の文字列になります。WAF では上記のようなコードを正規化した上でシグネチャルールを適用することで検知精度を向上させているのが特徴です。また、シグネチャを URL、ヘッダ、パラメータなど要素ごとに定義し、シグネチャを作成することで特定 URL に特定パラメータがセットで含まれる場合にのみ検知するなどより精度の高い検知を実現しています。

WAF ってどんな種類があるの?

WAF は設置形態により主に 3種類あります。それぞれ運用負荷や設定の粒度などが異なり、一長一短があります。

  • クラウドサービス型(SaaS)

DNS 切り替え等で Web 宛ての通信を WAF サービス事業者が提供しているクラウド上のWAFを経由させる方式です。

  • アプライアンス型

WAF 専用のアプライアンスをネットワークに設置する方式です。導入構成としては TAP 装置などからミラーリングした通信を照査する構成や Proxy として動作し、機器で TLS 終端を行う構成があります。また、物理的なアプライアンスに限らず仮想アプライアンスである場合もあります。

  • ソフトウェア型

Web サーバーにインストールし、Web への通信を監査する方式です。オープンソースの「mod_security」などがあります。弊社サービスでは細やかな設定ができ、ログ分析サービスに必要不可欠な詳細ログが出力可能なアプライアンス型の WAF を採用しています。

WAFを導入すれば何でも解決?

WAF を導入すれば Web サービスへの攻撃をすべて防御できるかというとそうではありません。あくまでも WAF は脆弱性等による攻撃への緩和策であることを意識する必要があります。日々新たな脆弱性が発生し、以前シグネチャで検知できていた脅威が時間経過とともに新たな攻撃手法が確立され検知できないことがあります。WAF 側も新規シグネチャの配信、ルールの更新により対応していますが Web アプリケーションを守るためには日々の運用が重要となります。

  • 脆弱性診断の実施

せっかく WAF を入れても Web サーバーが脆弱であると攻撃を受ける可能性が高くなります。例えば SQL インジェクションの脆弱性がある、エラー画面にバージョン情報が表示されるなど Web サーバーが脆弱な状態であると WAF が最新の状態であったとしても攻撃を検知できない場合があります。セキュリティは多層防御が重要です。脆弱性診断等を実施し Web サーバー側にも脆弱な部分がないかを確認することが重要です。

  • Web アプリケーションの脆弱性に対する対応ルール策定

WAF を入れていれば Web アプリケーションは何もしなくてもよいわけではありません。WAF で防御ができている間に確認した脆弱性をどのように改修するかそれともリスクとして許容するかを決定することが大切です。特に重大な脅威の脆弱性に対してはパッチ適用などによる根本対処を行うことが重要です。

  • WAF のシグネチャ最新化

機器で新しいシグネチャを配信された際にどのように適用するか配信されるシグネチャの適用ルールを決めることが大切です。弊社ではシグネチャの配信からブロック適用までの間においても WAF 機器の検知とログ分析を組み合わせることで脅威が発生していないかを確認しています。

今日はそもそも WAF ってなに?というところからご紹介させていただきました。WAF について少しでも興味を持っていただけたら幸いです。