XC Client-Side Defense(CSD) セットアップガイド
はじめに
このページでは、これらのオフィシャルなドキュメントの補足となる資料や、複数の機能を組合せてソリューションを実現する方法をご紹介いたします。
F5のオフィシャルなドキュメントはこちらにございます。
F5 Cloud Docs: https://clouddocs.f5.com/
F5 DevCentral (コミュニティ): https://devcentral.f5.com/
F5 Distributed Cloud Tech Docs : https://docs.cloud.f5.com/docs/
※本資料の画面表示や名称は資料作成時点の画面表示を利用しております。アップデート等より表示が若干異なる場合がございます。
XC Client-Side Defense(CSD)とは
Client-Side Defense(以下、CSD)は、F5 Distributed Cloud Service(以下、XC)の1つとして提供可能なWebスキミング対策用セキュリティSaaS型サービスです。
クライアントのブラウザ上で動作するjavascriptの動作をリアルタイムに監視し、F5が開発したシグナルに基づいて異常があった場合に管理者にアラートを上げ、データ流出のリスクを軽減することが可能となります。
CSDを使用すると、Webサイトにある「ユーザ名/パスワード」を入力するログイン画面や、クレジットカードの情報を入力するページなどに情報奪取のための不正なコードを仕込んだり、javascriptを改ざんして重要な情報を抜き取ったりする挙動を検知し、不正とみなした接続先についてブロックすることが可能となります。
動作概要構成図


XC Consoleでの設定
XC Consoleにアクセスし、以下の通り、 [ Home ] - [ Client-Side Defense ] をクリックします。

[ Dashboard ] が表示されます。

保護対象サイトの設定をします。
[ Home ] - [ Client-Side Defense] - [ Manage ] – [ Configuration ] から、 [ Add Domain To Protect ] をクリックします。

対象サイトの [ Root Domain ] を追加し、 [ Save and Exit ] をクリックします。

参考)Root Domainは、eTDL(effective TLD)+1の値でないと以下のようにエラーとなります。

登録後、 [ Configuration ] に反映されていることを確認します。

CSD JSの挿入方法は以下2パターンあります。
(1). XCのHTTP LBで設定する場合
CSD保護が必要な対象HTTP LBの設定にて、CSD機能を有効化し、CSD JSをLBで挿入するように設定します。(サーバ側での設定変更不要)
[ Home ] - [ Web App and API Protection ] - [ Manage ] - [ Load Balancers ] - [ HTTP Load Balancers ]から対象のHTTP LBの右側 [ Action ] - [ Manage Configuration ]をクリックし、右上の [ Edit Configuration ]をクリックします。
左側タブの [ Client-Side Defense ]をクリックし、下図の [ Client-Side Defense ] をDisableからEnableに変更し、 [ Edit Configuration ] から [ Insert JavaScript in All Pages ] 選択し、 [ Apply ] , [ Save and Exit ] をクリックします。
(2). サーバ側で設定する場合
CSD保護が必要なサイトの Web ページで<head> タグと </head> タグの間に先ほどXC Consoleで確認したCSD JS をコピーし、挿入します。
※ <head> タグと </head> タグの間に他のスクリプトまたは JS タグがある場合は、CSD JS を他のスクリプトまたは JS タグの前に配置して、CSD JS が最初に読み込まれるように挿入してください。
注釈
JavaScriptをすべてのページに挿入し、保護対象とすることを推奨(デフォルト値)しています。
理由は、データの取得とデータの流出が異なるページで起こりうる可能性があるためです。
例えば、悪質なスクリプトでは、フォームのあるページでフォームデータをキャプチャし、ローカルストレージやCookieに保存することが可能です。その後、CSDが有効になっていないページで、スクリプトがこのデータを読み、悪意のあるドメインに送信するような攻撃もあるため、完全に保護するためには、全てのページでCSDを使用することを推奨しています。
実際にパブリックにアクセスできるサイトへCSD JSを挿入した場合は、[Test JS Injection]からCSD JSが動作しているか確認できます。

※ なお、後述のGoogle Chromeを利用したテストではクライアント側ブラウザでCSD JSを挿入しているため [Test JS Injection] はエラーとなります。
Google Chromeを使った動作確認
クライアントPCでGoogle Chromeブラウザを起動します。右上から [ シークレットモード ] で起動させます。

右上から [ その他のツール ] - [ デベロッパー ツール ] をクリックします。

[ Sources ] – [ Overrides ] - [ + Select folder for overrides ] をクリックします。

任意のフォルダを作成し、 [ フォルダーの選択 ] をクリックします。

以下のようにフォルダが作成されていることを確認します。

対象URLにアクセスし、 [ Network ] タブをクリックします。対象の通信を選択し、右クリックで [ Override content ] を選択します。

[ Sources ] – [ Overrides ] に戻ると作成したフォルダ配下に対象サイトのトップページ、本書では [ index.html ] が表示されます。

CSD JSが最初に読み込まれるように、CSD JSと不審なドメインに対するJSスニペットを挿入します。

<不審なドメインに対するJSスニペット サンプル>
<script>(function() { var s = document.createElement('script'); var domains = ["ganalitis.com", "ganalitics.com", "gstatcs.com", "webfaset.com", "fountm.online", "pixupjqes.tech", "jqwereid.online"]; for (var i = 0; i < domains.length; ++i) { s.src = 'https://' + domains[i]; } })();</script>
最後に保存することで、 [ *index.html ] から [ index.html ] になります。

対象サイトに数回アクセスを実施します。

次章でXC CSDで、検知できているかを確認します。
XC Consoleでの確認
対象アクセスから5分以上経過後に [ Home ] - [ Client-Side Defense ] - [ Dashboard ] で確認すると、不正なドメインへのアクセスを検知していることが確認できます。

[ Dashboard ] では [ Auto-Refresh ] にて5分または15分でページの自動更新が可能です。

[ Domain ] をクリックすると、 Risk Score など詳細情報が確認可能です。
AI/MLによるRisk Score判定がHigh Riskに分類されると、 [ Status ] が [ Action Needed ] 表示となるため、意図するドメインへの通信の場合は [ Add To Allow List ] へ、意図しないドメインへの通信の場合は [ Add To Mitigate List ] へ追加します。

意図するドメインへの通信許可の設定
(1). 対象DomainをAllow Listに追加します。
対象Domainの一番右の [ Actions ] - [ ... ] から [ Add To Allow List ]をクリックします。
(2). 警告を確認し、 [ Add ] を クリックでAllow Listへの登録は完了です。
(3). [ Monitoring ] – [ Network ] - [ Allow List ] から登録内容を確認可能です。
意図しないドメインへの通信遮断の設定
(1). 対象DomainをMitigate Listに追加します。
対象Domainの一番右の [ Actions ] - [ ... ] から [ Add To Mitigate List ]をクリックします。
(2). 警告を確認し、 [ Add ] をクリックでMitigate Listへの登録は完了です。
(3). [ Monitoring ] – [ Network ] - [ Mitigate List ] から登録内容を確認可能です。
運用監視方法
監視時は検出スクリプト一覧から脅威内容を確認し、スクリプトが意図しないドメインへアクセスしていないか確認することと、意図しないForm Fieldの読み取りがないかを確認します。
● 検出スクリプト一覧
[ Home ] - [ Client-Side Defense ] - [ Monitoring ] - [ Script List ] から保護対象にて検出したスクリプトの一覧を表示可能です。各スクリプトをクリックすることで詳細確認が可能です。
Statusの状態の説明は下表のとおりです。
NA - No Action Needed |
該当スクリプトでは不審な点を未検出 |
Resolved - No Action Needed |
該当スクリプトでいくつかの不審な動作を検出したが、ユーザがすでにアクションを実行済 |
AN - Action Needed |
注意が必要なスクリプトで不審な動作を検出 |

※ 検出したスクリプトがどのドメインへ通信を行っているか、どのForm Fieldの値を読み取ろうとしているかの振る舞いが確認可能です。
● 意図する通信、意図しない通信のハンドリング
前章[4. XC Consoleでの確認]の4項,5項 をご参照ください。
● Form Fieldの読み取りを抑止
(1). [ Home ] - [ Client-Side Defense ] - [ Monitoring ] - [ Form Fields ] から特定のスクリプトによって読み取られる全フォームフィールドを確認することが可能です。
![]()
(2). 特定のForm Fieldに対して、そのFieldを読み取ろうとするScriptがあった際に、Risk Scoreを ”High Risk” としてマークし、機微データへのアクセスリスクを管理することが可能です。
(3). Form Fieldを読み取るスクリプトに対するMitigation Actionとして、意図するForm Fieldの読み取りの場合は [ Allow Read ] へ、意図しないForm Fieldの読み取りの場合は [ Block Read ] へ追加することが可能です。
(4). 該当Scriptが読み取っているForm Filedの一覧が表示され、それぞれのRisk Levelを確認可能です。
● Alertの通知設定
CSDで発生したアラート通知の設定として、 [ Alert Receivers ] ではどこに対しAlert Logを飛ばすかを設定し、 [ Alert Policies ] では何のAlert Logを飛ばすか(ここではCSD Alert Log)を設定し、最後にそれらの設定内容を [ Active Alert Policies ] として有効化することで、CSDアラート通知を設定可能です。
- (1). Alert Receiversの設定
[ Home ] - [ Audit Logs & Alerts ] - [ Alerts Management ] - [ Alert Receivers ] にて、 [ Add Alert Receiver ] を選択します。
![]()
![]()
- Receiverは下記から選択することが可能です。(2023/12時点)
・Slack ・PagerDuty ・OpsGenie ・Email ・SMS ・Webhook
設定入力後、[ Save and Exit ] をクリックします。 [ Alert Receiver ] の設定が追加されます。
![]()
(2). Alert Policiesの設定
[ Home ] - [ Audit Logs & Alerts ] - [ Alerts Management ] - [ Alert Policies ] にて、[ Add Alert Policy ] を選択します。
![]()
Alert Policy設定では、先ほど設定したAlert Receiverの設定を紐づけ、Policy Rulesから [ Security-CSD ] を選択します。
![]()
以下の通り、[ Security Alerts ] と [ Groups ] を選択します。 + Security Alerts : Matching Group + Groups : Security-CSD
![]()
[ Show Advanced Fields ] をクリックすることで、通知間隔を調整可能です。
![]()
設定入力後、[ Save and Exit ] をクリックすることで、[ Alert Policy ] の設定が追加されます。
![]()
- (3). Active Alertの設定
[ Home ] - [ Audit Logs & Alerts ] - [ Alerts Management ] - [ Active Alert Policies ] にて、[ Select Active Alert Policies ] をクリックします。
![]()
[ Add Item ] をクリックします。
![]()
先ほど作成したAlert Policyを選択し、[ Save and Exit ] をクリックします。
![]()
Active Alert Policyとして追加されます(Namespaceは ”system” として作成されます)
![]()
以上の設定により、CSDアラートが発生した際に、指定したReceiverに対してアラート通知を飛ばすことが可能です。
これで、XC CSDのセットアップガイドは終了となります。
<参考> CSD デモ動画
F5 XC CSDのデモを公開しています。
注釈
本資料の画面表示や名称は資料作成時点の画面表示を利用しております。アップデート等より表示が若干異なる場合がございます。