【目次】

  1. 1. はじめに
  2. 2. マネージドルールとは
  3. 3. Protocol Enforcement by WafCharm とは
  4. 4. Protocol Enforcement by WafCharm の効果的な利用
  5. 5. おわりに

1. はじめに

この度、AWS WAF向けのサードパーティマネージドルールとして新たに「Protocol Enforcement by WafCharm」というルールセットをリリースしました!

AWS WAF V2 をご利用の方は、マネジメントコンソール上から簡単に設定・導入ができ、手軽にWebセキュリティ強化が可能です。
本記事ではこのルールセットがどのようなものか、どういう使い方をすると効果的かについてご説明いたします。

2. マネージドルールとは

まず、マネージドルールそのものについては、以下の記事をご参照ください。

上記記事にも記載の通り、「AWS WAFで使用できるプリセットされたルールセット」のことを指し、弊社でもすでに

の3つのルールセットを公開しております。

これらのルールセットはそれぞれ、OWASP Top10に代表される脆弱性や、API Gateway/Serverless環境向けの脆弱性への対応といったユースケースに向けてそれぞれご提供しております。
今回これらのラインナップに新しく「Protocol Enforcement by WafCharm」というルールセットが加わることになりました。

3. Protocol Enforcement by WafCharm とは

WAFがチェックする対象である「HTTPリクエスト」は、その名の通り「HyperText Transfer Protocol」に準じたフォーマットで記述されており、例えばサーバーに実行してもらいたいアクションを示す「メソッド」や、対象のサーバーリソースを示す「パス」、その他様々な追加情報を表す「ヘッダー」など、様々な要素から構成されています。

HTTPリクエストの例

GET /jp/blog HTTP/1.1   # メソッド: GET, パス: /jp/blog
Host: [www.wafcharm.com](http://www.wafcharm.com/)  # Hostヘッダ
User-Agent: foobar      # User-Agentヘッダ
...

この情報を組み立てた上でサーバーに送信するのは、Webブラウザやコマンドといったプログラムの役目であり、当然ながら一定の枠組みはあるものの、その枠組みの中でどのようなデータを送信するかはプログラム(やその利用者)次第となります。

そのため、悪意を持ったプログラムや攻撃者はこのHTTPリクエストの中にアプリケーションの脆弱性を突くための様々な細工を施したデータを埋め込もうとするわけです。

弊社がこれまで公開していた「HighSecurity OWASP Set」といった既存のルールセットは、細工が施されたデータを検査することで具体的な攻撃を特定し、「このリクエストは(明確な)攻撃である」とみなした上でブロックすることでお客様のWebサービスをお守りします。

このアプローチ自体は非常に適切かつ重要ですが、一方で日々巧妙化・複雑化しているサイバー攻撃に対し、誤検知リスクとのバランスをとりながら完全な対応をとっていくのは大変難しい問題です。また、古いWebアプリケーションフレームワーク等を利用しているケースにおいては、「開発当時とHTTPの仕様や使われ方が変わってきている」といった事情により、想定外の攻撃を受けるといったパターンもよく見られる問題です。

今回公開した「Protocol Enforcement by WafCharm」は、この問題に広範かつ汎用的に対応していくため、上記とは全く異なったアプローチをとります。
そのアプローチとは、ルールセットの名称の通り「プロトコルを強制」、つまり「プロトコル違反(ないしそれに類する問題)に対するリクエストを検知し、ブロックする」といったものになります。

一例ですが、以下のようなものがあげられます。

  • 本来数値が指定されるべき Content-Lengthヘッダーに数字ではない文字列が指定されている
  • コンテンツを含むリクエストにContent-Typeヘッダが指定されていない

…など

このようなプロトコルやフォーマットの違反は、それ自体が脆弱性を突いたサイバー攻撃を直接意味するものではないものの、一般的な方式に則っていないという点で悪質なプログラムやBotからのアクセスである可能性が高いといった特性があります。明示的なサイバー攻撃を受ける前に、こういった一般的なブラウザやアプリケーションからのものとは考えづらいアクセスを広く遮断しておくことは、セキュリティ対策をしっかりとっていることを攻撃者に示す意味でも重要ですし、古いアプリケーションフレームワーク等がカバーしきれない攻撃の抜け道を防ぐのにも有用です。

4. Protocol Enforcement by WafCharm の効果的な利用

上記の通り、本ルールセットはこれまでのルールセットと全く異なったアプローチをとりますので、既存の「HighSecurity OWASP Set」や「API Gateway/Serverless」といったルールセット、あるいは弊社の「WafCharm」と併用いただくことによって、より防御性能を高めることが期待できます。

ルールセットのコンセプトとしては「怪しいアクセスをなるべく前段で取り除く」というものになりますので、既存ルールセットやWafCharmの正規表現ルールの前段に配置することが推奨となります。

また、プロトコルへの準拠と一言で申しましても、自社のWebサイト・サービスの特性によっては様々な事情や予期せぬ事象があるかと思いますので、通常のWAF運用プロセスと同様、「まずはCOUNTでルール投入後、正常系に問題ないことを確認した上でBLOCKモードへ移行」という手順で導入頂ければと思います。

5. おわりに

新しいマネージドルールである「Protocol Enforcement by WafCharm」について、そのコンセプトと利用方法のご説明をさせて頂きました。

本記事の中でもご紹介した、既存のルールセット「HighSecurity OWASP Set」や「API Gateway/Serverless」含めてご活用頂ければと思います。

また、ルールの導入やカスタマイズについて自社で運用することに課題を感じている方は、「WafCharm」の導入についても是非ご検討ください。簡単な操作で強力なルールの設定が可能なだけでなく、WAFログアラート機能や分析機能、日本語でのテクニカルサポートなど、多方面からお客様のWebセキュリティ運用をご支援致します。