今日は、バラクーダネットワークスのルールセットのしくみと、自動アップデート機能について説明します。説明には、クロスサイトスクリプティング(XSS)の例を使用します。

XSSは、ユーザが入力した内容をサーバ応答と混在させることで可能になります。もしも悪意のあるユーザが入力をエコーバックし、JavaScriptとしてブラウザで実行すると、ブラウザDOMのコントロール取得が可能になります。このような入力には、スクリプトタグ Data URI参照、onEvent参照、iframesなどが利用されます。

Barracuda Web Application Firewall XSSのルールは、XSSシグネチャをカテゴリに分類します。各カテゴリには、悪用が想定される違反リストが定義されています。このようなカテゴリの1つに、onmouseover、oninput、onformchangeなど、イベントベースのXSSがあります。イベントハンドラの一覧は、OWASPに掲載されています。

ここで複雑なのは、解析エンジンがサーバ応答内でJavaScriptを認識する方法が、ブラウザによって大きく異なるという点です。攻撃者が利用する難読化戦略にはさまざまなものが存在します。たとえば、イベントハンドラの内部または周囲にさまざまな文字を埋め込む方法では、キャリッジリターン、Nullブレイク、ニューライン、エンコード文字、無関係な括弧、コメントタグといった記号が使用されます。記号を埋め込むことによって、セキュリティフィルタはブロックできなくなりますが、ブラウザにエコーバックされると実行可能になります。

Barracuda Web Application FirewallのXSSルールは、このような難読化にすべて対処できます。ルールではパターン全体ではなく、次のように登録されています([詳細]>[内部パターン]ページ)。

上記で説明したように、複数のプラットフォームの複数のバージョンで動作する各種ブラウザに対応しています。\xNNはASCII文字の16進表記です。 たとえば、バックスペース(08)、キャリッジリターン(0D)などが指定されています。このスクリーンショットにはイベントハンドラの実際の名称は表示されていませんが、画面で[詳細]ボタンをクリックすると確認できます。

レガシーブラウザを使用する場合やHTML5などの新しいハンドラを導入する場合に、問題が発生しがちです。バラクーダラボは、脅威ベクタを監視し、セキュリティリサーチコミュニティからの情報提供に基づいて、パターンを継続して更新しています。パターンの更新に対する挙動は、モデルによって若干異なります。

460以下のモデルでは、カテゴリの変更や新規カテゴリはアクティブモードで適用されますが、660以上のモデルではパッシブモードで適用されます。また、660以下のモデルでは、管理者が変更内容をレビューした上で、アクティブモードで適用することになります。

アップデートの変更内容の詳細については、攻撃タイプの[リリースノート]をクリックすると確認できます。

いずれのモデルでも、新規パターンに対する挙動は[詳細]>[セキュリティ設定]ページで変更できます。

また、このようなパターンには、セキュリティと可用性のトレードオフが存在する点にも注意が必要です。パターンが厳格すぎるとon*イベントがすべてブロックされてしまい、XXS攻撃ではないone=xyzのような入力もブロックされる可能性があります。

つまり、onの次に3~16文字が続く入力がすべてブロックされます(他の侵入防止の設定と併用)。このようにパターンを厳格にすると、リモートの場合には誤検出につながるおそれがあります(入力の後すぐに等号(=)記号が続く場合など)。

以上の設定は、ブラックリストベースのポリシーでパラメータ入力を指定する例です。もちろん、ホワイトリストを使用して手動/自動プロファイラでパターンを指定すれば、このような問題は発生しません。

コードを修正する方法が理想的ではありますが、ソースコードがない場合やコード修正に必要な知識やリソースがない場合もあります。Barracuda Web Application Firewallのルールセットや先進機能は、アプリケーション層を標的にした攻撃に対抗できる堅牢性を発揮し、ソースコードの変更は必要ありません。

Barracuda Web Application Firewallについて詳しくは、製品ページをご覧ください。導入タイプについて詳しくは、ホワイトペーパーやデータシートをダウンロードしてください。30日間の無料お試しも申し込みいただけます。

※本内容はBarracuda Product Blog 2015年11月23日Barracuda Web Application Firewall Attack Definitions and Updates – Technical Overviewを翻訳したものです。

Neeraj Khandelwal

本稿は、バラクーダネットワークスのWebサイトに掲載されている『バラクーダラボ』12月17日付の記事の転載です。