WEBスキミングへの対策 <F5 XCのClient-Side Defense>
目次[非表示]
はじめに
本ブログでは、F5社のF5 Distributed Cloud Services Web Application & API protection(以降、F5 XC WAAPと表記)について、いくつかの機能を紹介してきました。F5 XC WAAPについて知りたい方は下記をご覧ください。
「F5 XC WAAPのアドバンストなWAF機能紹介」
今回は、近年話題となっているサイバー攻撃の手法の一つであるWEBスキミングについてと、その対策としてF5 XCのClient-Side Defenseをご紹介いたします。
WEBスキミング攻撃とは
前述した攻撃手法であるWEBスキミングについて簡単に説明させて頂きます。
WEBスキミングは、WEBサイトを改ざんすることで配置した不正なスクリプトを、クライアントの WEBブラウザで実行させ、クライアントが入力する機密情報を窃取する、という近年増加しているサイバー攻撃の一種です。
改ざんされたWEBサイトにアクセスすることで、不正なスクリプトがクライアントのWEBブラウザで動作し、ログインフォームや決済フォームでユーザが入力した値(ユーザ名/パスワードやカード番号等)を攻撃者に抜き取られる、などが攻撃例として挙げられます。
WEBサイトの改ざんは、システムの設計、開発工程では検出することは出来ません。WEBサイトを運用していく中で、脆弱性を突かれることなどが、WEBサイトの改ざんが発生する原因として挙げられます。
また、WEBスキミングの特徴として管理者が攻撃に気が付きにくく、情報漏洩の期間が長期化しやすいといったことがあげられます。
これは、不正な挙動がクライアントで実行されるため、その挙動をWEBサイト側の監視によって検出することが困難なことが要因として挙げられます。
最近発覚したWEBスキミング被害では、数年にわたり情報漏洩が発生していた事件もありました。
- WEBスキミング攻撃イメージ
<WEBサイトに不正なスクリプトが埋め込まれており、クライアントのWEBブラウザでレスポンスの受信、リソース読み込み~インタラクション処理の一連の流れの後、クライアントのWEBブラウザでの操作に伴い攻撃者サーバへ情報を送信させる>
F5 XCのClient-Side Defense とは
WEBスキミング攻撃に対する防御策として、F5 XCにおいてClient-Side Defense(以降、CSDと表記)という機能が提供されています。
F5 XC CSDでは、クライアントのWEBブラウザで動作するJavaScriptのリアルタイム監視、アラート通知を行うことが可能です。CSDの動作概要としては、CSD JavaScriptが、クライアントのWEBブラウザでJavaScriptにより発生する通信を収集し、F5のAI/MLを利用して分析することで、異常を検出し、通知を行います。
通知はSlackやメールなど、複数の通知方法から選択が可能です。
通知を受け取った管理者は、検出したJavaScriptや通信先の情報を F5 XCコンソールにて確認し、遮断/許可の定義を行うことで、クライアントのWEBブラウザで動作するJavaScriptが発生させる通信の制御を行うことができます。
このように、クライアントのWEBブラウザにおけるJavaScriptの挙動を監視することでWEBスキミングによる被害を抑制することを可能とするのが、F5 XCで提供するCSDとなります。
CSDはF5 XCの利用に必須であるF5 XC Base Packageに付属した機能となりますので、F5 XCをご契約いただくだけでCSDをご利用頂けます。
また、F5 XCのCSDを利用することでPCI DSS 4.0に含まれる下記要件の対応をおこなうことが可能です。
要件6.4.3 |
決済ページスクリプトの管理 |
要件11.6.1 |
決済ページの不正な変更の検知、対応 |
Client-Side Defense 構成パターン
CSDを導入する場合、以下の2パターンの導入方法があります。
1.F5 XC HTTP Load BalancerでHTTP ResponseにCSD JSを挿入
※赤枠がF5 XCにより提供される機能
2.WEBページにCSD JSを挿入
※赤枠がF5 XCにより提供される機能
外部公開しているWEBサイトにCSDを導入する場合、構成パターン1であればWEBサイトの変更に関わる対応が少なく済みます。内容としてはXC LBを導入するためのDNSの設定変更のみとなります。
構成パターン2であれば、WEBサイト側の改修(CSD JSの埋め込み)が必要となります。
お客様の機能面、費用面での要件、要望に合った導入方法をご検討頂ければと考えております。
一例として、1.のパターンで導入頂き、XC のHTTP Load Balancerで負荷分散を行いつつ、F5 XCで提供するWAF機能を利用する、といったように複数の機能を組み合わせて利用頂くこともおすすめです。
Client-Side Defense の設定方法
CSDを利用するにあたって必要な設定は以下の2つのみ(※)です。
簡易に設定を行えることもF5 XCにおけるCSDの設定の強みとなります。
- CSD の保護対象ドメインの設定
- HTTP Load Balancer(以降、LBと表記)でCSDの有効化
(※)
今回は構成パターン1(F5 XC LB利用)での手順をご説明いたします。
構成パターン2(WEBページにCSD JSを挿入)では、前項での説明の通りCSD JavaScriptのスクリプトタグをWEBページソースに追記する必要が御座います。もしこちらの利用方法にご興味を持たれましたら、ブログ下部に記載しております弊社問合せ先までご連絡ください。
それぞれの設定の詳細を以下でご紹介します。なお、設定は全てF5 XCコンソールから行ないます。
CSD の保護対象ドメインの設定
F5 XCコンソールで下記の設定画面に移動します。
Home > Client-Side Defense > Manage > Configuration
設定画面上部、”Add Domain To Protect”をクリックします。
Root Domain 欄に保護するドメインを入力し、”Save and Exit”をクリックします。
※入力するDomainはRoot Domainである必要があります。
CSDにおけるRoot Domainとは、TLDに階層を+1したドメイン(example.com等)のことを指します。
これで「① CSD の保護対象ドメインの設定」は完了です。
HTTP Load BalancerでCSDの有効化
※既にXC上にLBを設定済みであることを前提とさせて頂きます
F5 XCコンソールで下記の設定画面に移動します。
Home > Web App & API Protection > [NameSpace] > Manage > Load Balancers
Action項の下にある[…]をクリックし、表示されたメニューから”Manage Configuration”をクリックします。
XC LBの設定画面が表示されたら、画面上部の”Edit Configuration”をクリックし、編集を有効にします。
画面左のメニューから“Client-Side Defense”をクリックします。
デフォルトではClient-Side Defense 設定はDisableになっているので、プルダウンからEnableに変更します。
変更後、Client-Side Defense Policy の項目が表示されるので、”Edit Configuration”をクリックします。
JavaScriptの挿入設定を確認し、”Apply”をクリックします。
なお、設定可能な項目は下記となり、全てのページにCSD JavaScriptを挿入することが推奨設定となります。
設定項目 |
設定内容 |
Insert JavaScript in All Pages |
全てのページにCSD JavaScriptを挿入する |
Insert JavaScript in All Pages with the Exceptions |
例外を除き、全てのページにCSD JavaScriptを挿入する |
Custom JavaScript Insertion Rules |
カスタムJavaScript挿入ルールを指定する |
Disable JavaScript Insertion |
JavaScript挿入を無効にする |
XC LBの設定画面に戻り、ページ下部の”Save and Exit”をクリックし、設定を保存します。
これで、「2.HTTP Load BalancerでCSDの有効化」は完了です。
Client-Side Defense の動作確認
設定が完了しましたので、実際に動作させた結果を見てみます。
なお、LBは事前に設定済みであり、オリジンには不正な宛先にアクセスする動作を行うスクリプトを配置して動作を確認した結果となります。
CSDを設定したLBにアクセスし、クライアントのWEBブラウザで不正なJavaScriptを動作させた結果をXCコンソールで確認します。
検知内容はCSDのダッシュボードから確認できます。
ここで表示されるドメインが、クライアントのWEBブラウザで動作するJavaScriptによって接続が行われたドメインとなります。
ドメインをクリックすることで、リスクスコア等の情報を確認することができます。
また、Status欄が”Action Needed”となっていることが画像から確認できますが、これは検知した内容についていずれの処理も行われていないことを示しています。
”Action Needed”となっているドメインを検知した場合のアクションとして、接続許可したいと判断した場合は”Add To Allow List”に追加することで、次回以降検知しないようにできます。または、必要のない接続と判断した場合には”Add To Mitigate List”に追加することで、次回以降通信をブロックします。
下記は“Added to Mitigated List“を設定した場合の図となります。
いずれかの処理を行った場合、このようにAdd to Allowed/Migrated Listと表示されます。
この処理を行い、CSD List(Allow/Mitigate List)に内容が反映されることで通信を許可/ブロックするようになります。
その他、XCコンソールの各メニューからは下記の情報の確認が行えます。
・Script List
ページに対して検出されたすべてのスクリプトが一覧で表示されます。
・Network
ネットワークデータを表示するために下記のタブが表示されます。
・All Domains:CSDで検出したJavaScriptの通信先のリストが表示されます。
・Mitigate List:Mitigate Listに登録した通信先(Domain)の一覧が表示されます。
・Allow List:Allow Listに登録した通信先(Domain)の一覧が表示されます。
このように、Client-Side Defense機能を使用することでクライアントのWEBブラウザにおいて不正なJavaScriptを検出し、遮断を行うことが可能となります。
おわりに
今回は、F5 XCで利用できるセキュリティ機能のうち、Client-Side Defenseをご紹介しました。
冒頭でも述べたように、WEBスキミングによる被害は検出が難しく、長期にわたり被害が発生することもあり、各企業様がしっかりとセキュリティ対策を講じることが重要です。
Client-Side Defense を設定することで、WEBスキミング被害の発生、長期化のリスクを軽減できると考えております。
また、PCI DSS v4.0への準拠対応をお考えの企業様におかれましてもF5 XCを導入することでスムーズに対応が進められるのではないかと考えております。
以前のブログ「F5 XC WAAPで実現!ベーシックなクラウドWAF」でベーシックなWAF機能(App Firewall)についてもご紹介しておりますので、こちらも是非ご確認ください。
F5 XC WAAPにご興味ございましたら、以下サイトからお気軽に弊社までお問い合わせください。
「F5 Distributed Cloud Web Application and API Protection (F5 XC WAAP)」