Barracuda Web Application Firewall 7.9にはURL暗号化を使ったURL保護が新たに追加され、誰でも簡単にURLを保護できるようになりました。本日は、この新機能の画面ショットをいくつか紹介したいと思います。

下の画面は、「通常のページ」です。[詳細]ボタンの上にカーソルを置くと、リンクの先が表示されます。

WAF 7.9の新機能

[詳細]ボタンの上にカーソルを置くと、リンクのほとんどの部分が暗号化されているのがわかります。このページに埋め込まれているリンクは、すべてこのように表示されます。

新機能のメリット

URLパラメータの操作は、アプリケーションロジック攻撃(ビジネスロジック攻撃)において最初に標的となる部分であり、最も簡単な手段でもあります。ただし、URLパスとパラメータを暗号化すれば、このタイプの攻撃を完全に防御できます。Barracuda Web Application Firewallは送信Webコンテンツをすべてインターセプトし、保護サイトのURLを動的にリアルタイムで暗号化します。サイトにアクセスしたユーザは、暗号化されたURLのみを使用してWebアプリケーションと対話します。

ユーザがリクエストを送信すると、暗号化されたURLは、整合性チェックの後で復号化され、保護対象のWebアプリケーションに転送されます。値の改ざんは即座に検出され、リクエストは拒否されます。このプロセスは、保護対象アプリケーションには完全に透過的に実行されるので、アプリケーションの変更は必要ありません。

アプリケーションロジックの攻撃

ここでは例として、URLに患者IDが明示的に埋め込まれたヘルスケアアプリケーションを考えてみましょう。

http://www.myhealth.com/ViewReport?PatientID=jjk45291

暗号化により、URLは次のようになります。

http://www.myhealth.com/9gh7filg6320ixtqa2bc0r

「/ViewReport」というパス、「PatientID」というパラメータ名、「jjk45291」という値は完全に非表示になります。したがって、「PatientID」パラメータに他の値を指定することによって、他のユーザのレポートにアクセスするという攻撃を防御できます。暗号化された値を操作しようとしても、復号化プロセスは失敗するので、リクエストは即時にブロックされます。

URLに含まれているパラメータを改ざんして別のユーザ権限にアクセスする手口は非常に一般的であり、実際に銀行の画面、電子投票、ヘルスケアのサイトなどが格好の標的になっています。

アプリケーション層の暗号化 - ユーザ入力を信頼する唯一の方法

Webアプリケーションのコアロジックの中には、上記のURLの患者IDのように、ユーザ入力を取得するものがあります。ただし、入力データの信頼性を確認するには、整合性やロジックを検証するチェック機能を幾重にも実装しなければなりません。

ところが、ビジネスの優先事項に対応しながらこのようなチェック機能を実際に実行し、さらにレガシーアプリケーションでも確実に実装するとなると、不可能なケースがほとんどでしょう。

SSL暗号化は、転送中のデータ保護では効果を発揮しますが、クライアントエンドポイント(ブラウザ)上のデータを保護することはできないので、十分ではありません。また、WAFには「学習」機能がありますが、改ざんされた入力はパラメータクラス(アルファベットと数値など)とリンクするので、十分な保護機能だとは言えません。

URL攻撃を完全に阻止するURL暗号化

URL暗号化は、アプリケーションロジック攻撃はもちろん、次のような攻撃に対して強力な防護機能を発揮します。

• 強制ブラウジングの防止(攻撃者はURLを任意にプローブできなくなる)
• URLでのSQLおよびクロスサイトスクリプティング
• URLでのゼロディ攻撃
• CSRF保護(暗号化されたURLが動的に生成)
• リファラ(リンク元)フォージェリ対策(攻撃者はリファラURLを予測できなくなる)

このように、URL暗号化は、銀行などのログインフォームの背後にあるページ(ユーザがブックマークを設定しないページ)で特に威力を発揮します。また、きめ細かいレベルで有効化できるので、サイト全体で機能の設定を行う必要はなく、脆弱性が存在しないページでは有効にする必要はありません。

詳しくは、http://techlib.barracuda.comをご覧ください。

Barracuda Web Application Firewallと30日間の無料評価について詳しくは、製品ページをご覧ください。

※本内容はBarracuda Product Blog 2014年10月10日New in 7.9: Fool Proof URL protection with URL Encryptionを翻訳したものです。

Neeraj Khandelwal

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