SaaSクラウドセキュリティ

F5 XC Client-Side DefenseによるWebスキミング対策の導入を試してみました【パート2】

F5社製SaaS F5 Distributed Cloud Services(F5 XC) 「Client-Side Defense」の実際の導入方法とその動作についてご紹介いたします。

皆さま、こんにちは!
F5社製SaaSのF5 Distributed Cloud Services(F5 XC)の機能の一つ「Client-Side Defense」を試してみましたので、本記事ではその設定と動作についてご紹介いたします。
本記事は【パート2】として実際の導入方法とその動作について記載しています。
Client-Side Defenseの概要やWebスキミング攻撃については以下の【パート1】をご覧ください。

 

Client-Side Defenseの導入と動作

では、実際にClient-Side Defenseの動作を確認してみましょう。
以下は今回の確認用に用意した簡易的なログインフォームとそのソースコードです。
ページ内の記述に「dummy.js」が仕込まれており、このJavascriptでは外部サイトへのフォームデータを送信するコードが記述されています。

本ウェブサイトにてログインを試みてブラウザの開発者ツールで動作を確認してみます。
先述のソースコードの記述では、本来は「auth.html」に認証データが送信されるのですが、同時にソースコード上には記述が無い「inn.json」に対してフォームデータが送信されています。
「inn.json」は別途用意した外部サイト上のURLであり、「dummy.js」のコードによって送信が行われています。

このサイトにF5 XC Client-Side Defenseを導入してその効果を確認してみましょう。

Client-Side Defense導入方法

①F5 XC コンソールから「Client-Side Defense」をクリックします。

②Manage -> Configuration の順に進んで「Add Domain To Protect」をクリックします。

③「Root Domain」欄でClient-Side Defenseを導入したいドメイン名を入力します。
例えば、www.example.com の場合は「example.com」と入力します。

 

④次にClient-Side Defnseを導入するウェブサイトのソースコード上にClient-Side DefenseのJavascriptを読み込むためのスクリプトタグを挿入します。
一般的な挿入方法としては2通りございます。

・挿入方法1)
Webページのソースコードに直接タブを記述する方法です。
Configurationページの「How to inject JS」をクリックするとスクリプトタグのコードが表示されますのでこれを導入したいページのソースコードの中に記述します。
注意点として、このスクリプトが一番最初に読み込まれる位置に記述する必要があります。
また、F5では保護対象のフォームが存在するページのみではなく該当サイトのすべてのページにこのスクリプトを記述することを強く推奨しています。

・挿入方法2)
WebサイトをF5 XC WAAPのLoad Balancerに配置することでXC Load Balancerでスクリプトタブを自動挿入する事が可能です。
この記事ではXC WAAPのLoad Balancerの設定の詳細についての説明は割愛しますが、Load Balancerの設定内のClient-Side Defenseを「Enable」にすることですべてのページにスクリプトタグを自動的に挿入する事が可能です。
※オプションで除外ページを指定する事も可能です。

以上で導入設定は完了となります。

今回のテストではF5 XC Load Balancerの設定でスクリプトタグの自動挿入を実施しましたが、設定完了後はXC Load Balancerを通してアクセスすることで以下の通りソースコード上でJavascriptタグが挿入されていることを確認できます。
※画像では文字列の中にF5 XCのテナント情報が含まれるため一部マスクしております。

 

動作確認

上記設定完了後に何度かログイン動作を試みて数分後、F5 XCコンソールから該当サイトにおいて検知されたスクリプトのリストを確認する事が出来ます。
スクリプトのリストから目的のスクリプトをクリックすると検知の詳細情報(スクリプトが初めて検知された日時、スクリプトが検知された場所、スクリプトの振る舞い)を確認する事が可能です。

今回のスクリプトはF5 XCによる評価ではLow Riskとして判断されています。
(スクリプトによる送信先は私自身が用意した簡易的なテストサイトになりますが悪意あるサイトとして評価されていないものと思われます。)

では、F5 XCコンソールからこのスクリプトによる動作をブロックしてみましょう。
ブロックの方法としては、外部サイトへの送信のブロック(NetworkのMitigate)、
またはスクリプトのフォームデータの読み取りのブロック(Form FieldsのBlock)の2通りの方法があるようなのですが、今回はフォームデータの読み取りのブロックを試してみます。
上記のスクリプトリストページから目的のスクリプトをクリック後、Form Fields の項目を表示して「Block Read」をクリックします。

ブロック設定後、数分待ってから再度認証時のフォームデータの送信動作を確認します。
以下の通りフォームデータがnullになっており、Client-Side Defenseによって不正なスクリプトの動作がブロックされていることを確認できました。

いかがでしたか?
従来型のWAFではユーザーのブラウザで動作するスクリプトそのものを監視することは難しいと考えますが、F5 XC Client-Side DefenseではこうしたWebスキミング対策としてのスクリプト管理のソリューション導入を提供します。
ご興味がありましたら是非当社までお問い合わせください。

この記事に関連する製品・サービス

この記事に関連する記事