Webinar解説「ID認識型プロキシ(IAP)のユースケース&クライアントサイドアタックの防御戦略」

安田 良明 解説:
ISC2認定主任講師/株式会社ラック 安田 良明 氏
CISSP, SSSP

Webinar開催日:2019年12月4日
スピーカー1: 金子 春信, CISSP, シニア・プロダクト・マーケティング・マネージャー; Akamai Technologies.
スピーカー2: バンダリ・ハレンドラ, セキュリティ・プロダクト・マネジャー; Akamai Technologies.

Webinar視聴のご視聴はこちら

みなさん、こんにちは。ISC2認定講師の安田 良明です。年末年始のリフレッシュ休暇で、2020年もやる気に満ちた素敵な日々を送っている方が多いと思いますが、僕は行きつけのお蕎麦屋さんが、先日、突然閉店してしまい、何かを達成したときのご褒美が無くなってしまったため、日々のモチベーションを失っております。

そんな中、第13回目に配信されたISC2日本語Webinarのアーカイブ視聴を行いました。第13回目のWebinarでは、Akamai Technologies様のWebinarで、視聴者からご好評いただいている「ID認識型プロキシ(IAP)」のユースケースについて解説があり、「ID認識型プロキシ(IAP)」を自組織で導入する際の具体的な勘所を理解することができました。また、第9回のWebinarで「Akamai Technologies 中西様」に解説いただいた「悪意のあるコードから、公開されているアプリケーションを保護する方法」に引き続き、ECサイトからサービス提供事業者と利用者に気づかれずにクレジットカード情報等を手に入れる攻撃の手口と管理策について解説が行われました。このクレジットカード情報等を手に入れる手口は、2019年末に日本の中でも報道機関やインターネットニュースで取り上げられていましたが、具体的な攻撃の手口や管理策については、深く掘り下げた仕組みの解説がされていなかったので、今回のWebinarを通じて、具体的に実装ができる管理策の仕組みについて理解することができました。

今回は、2019年12月4日に行われた 「Akamai Technologies 」様のWebinar「ID認識型プロキシ(IAP)のユースケース&クライアントサイドアタックの防御戦略」の中で解説されている「Magecart やクレジットカードスキミングなど、標的を絞ったクライアントサイドアタックに対する防御方法」について、「ソフトウェア開発セキュリティ」と「セキュリティの運用」のCISSP的な考え方にリンクさせながら解説を行ってみたいと思います。

「ソフトウェア開発セキュリティ」で紹介されている数々のCBK(共通知識分野)の中には、ユーザー(お客様や従業員等)が使用するアプリケーション環境を含めたセキュリティ管理策を実践することが共通知識として要求されているため、クライアント側の環境含め、アプリケーション開発者側で管理策を考える知識が必要となります。また、一度セキュリティ込みで開発されたアプリケーションは、運用、保守、廃棄のライフサイクルを通じて、セキュリティを保証し続けることが、CISSPの共通知識では要求されております。特に、ライフサイクルを通じて、セキュリティを保証する活動については、「セキュリティの運用」で紹介されている数々のCBK(共通知識分野)を実践することで、リソースのセキュアなプロビジョニング(知る必要性、最小権限、変更管理等)や組織が業務活動を行う際に使用する情報資産の保護や運用中に発生するイベントの検知、対応、復旧を行うことが可能となります。今回は、これらの2つのドメインに関連する共通知識から、webinarを解説していきたいと思います。

はじめに、「ソフトウェア開発セキュリティ」を実践する際に重要なCISSPの共通知識として、インターネットサービスを通じて発生する脅威は、「個人の脅威」として捉えるのではなく、「組織の脅威」として捉えておくことが要求されています。CISSPは、ユーザーがサービスを利用する際に発生する脅威含め、脅威モデリングを実施し、サービスを提供する事業者側の責任として、適切なセキュリティ設計を行うことで、ユーザーがインシデントに巻き込まれにくい環境を提供することが要求されています。CISSPとしては、インターネットサービスを使用する際に発生する脅威は、もはやユーザー側で対応することができない実態を理解しておく必要があります。その脅威の実態については、第8回目、第9回目のWebinarを通じて、手に入れることができますので、是非、視聴していただきたいと思います。

また、CISSPの共通知識では、「セキュリティの運用」を適切に行うことも要求されており、組織が業務活動を行う上で必要となるサービスに対し、サービスの企画から運用、保守、廃棄を含む一連のライフサイクルを通じて、サービス提供事業者側がセキュリティの状態を保証し続ける必要があります。実際に業務やITを提供するサービス環境では、一度実装した業務メニュー、IT環境およびセキュリティ管理策をそのまま使い続けるということは稀であり、何かしら運用期間中に発生する業務環境の変化や将来リスクへの対応に向き合う必要があります。そのため、CISSP は、サービスを提供する環境が動的に変化することを前提とした、適切な変更管理および構成管理を実施し、管理策の有効性を保証できる仕組みづくりを実現させる必要があります。

それでは、ハレンドラ様のwebinarで紹介されている、「Magecartやクレジットカードスキミングなど、標的を絞ったクライアントサイドアタックに対する防御方法」について、解説をしていきたいと思います。Magecartについては、古くから攻撃の存在が確認されていますんで、詳細はリサーチャー(RISKIQ および ClearSkySec)のリファレンスをご確認ください※1。まず、クレジットカードスキミング攻撃が急増している背景を理解する必要がありますが、ハレンドラ様の解説では、インターネットサービスを提供する構造が、開発の一次受けとなるオンプレミス環境だけではなく、サードパーティー(3rd Party)のWebサービスやAPI環境と連携することで、ユーザーにアプリケーションを提供している構造に起因していると解説があります。

その理由の1つとして、近年のWebサービスは、オンプレミス環境とサードパーティー環境から配信されるコードが、ユーザーのブラウザ上で実行される仕組みのため、攻撃者がオンプレミスまたはサードパーティーから配信されるコードに攻撃コードを埋め込むことに成功した場合、ユーザーのブラウザと攻撃者の通信先で攻撃が成立してしまうため、サービス提供者側での防御や検知ができない構造となっており、サービス提供者側では攻撃を把握することができない状況となっています。そのため、サービス提供者側は、ステルス型の攻撃が行われ続けてしまい、ユーザーはサービス提供時に入力した個人識別情報等が実際に悪用され、金銭的な被害に遭遇した時点で、攻撃されていたことに気づくという状況になっています。また、Webサービス自体のコードのリソース比率がオンプレミス環境のリソースより、サードパーティー側から配信されるリソースのほうが増えていることにも起因しており、一次受け側でペネトレーションテストや SAST(Static Application Security Testing)を実施していたとしても、サードパーティー側で同様なセキュリティ管理策を実施していなければ、サードパーティー側から配信されるコードに攻撃者が不正なコードを埋め込むことにより、攻撃が成功してしまいます。さらに、最近では、サードパーティー側から配信されるコードが、さらにフォースパーティー(4th Party)のコードを参照していることもあるため、サードパーティーを含めたセキュリティ管理策でも不十分とハレンドラ様は指摘しています。

現在のWebサービスに対する攻撃としては、MageCartの攻撃手法として知られているフォームジャッキングの流れを例にすると、オンプレミス環境またはサードパーティー環境等から配信されるスクリプトを攻撃者が改ざんし、改ざんされたスクリプトが含まれたアプリケーションがユーザーに配信され、ユーザーは、改ざんされたスクリプトが含まれた決済画面にクレジットカード情報等を入力し、入力したクレジットカード情報等がユーザーのブラウザ上から、直接攻撃者が用意したサイトへ送信されてしまうことになります。

ハレンドラ様は、webinarの中で、具体的にimage作成によるユーザーのブラウザから攻撃者のWebサイトにデータを送信する攻撃デモを再現しており、攻撃の一連の流れとしては、最初のステップで、ユーザーから入力されたカード番号をフィールドから読み込み、新規の画像オブジェクトの作成を行い、カード番号が含まれるURLを作成(URLのドメインは攻撃者のドメイン)し、攻撃者のWebサイトへクレジットカード情報を送信させることに成功しています。攻撃手法は複数確認されており、ブラウザからクレジットカード情報等のデータを外部に送信する際に利用する手法の例としては、XHR(XMLHttpRequest)、Websocket、image作成またはiframe等が使用されているようです。また、実際にサイバー攻撃を受けてしまった「British Airways」に対する攻撃手法の解説も行われておりますので、どのような攻撃手法が成功したのかを確認することができます。「British Airways」への攻撃については、既にリサーチャー(RISKIQ)による解説が行われておりますので、リファレンスのURLを記載しておきます※2

それでは、これらの攻撃に、CISSPとして、どのように対応すればよいのでしょうか。ハレンドラ様のwebinarでは、3つの攻撃検知と防御の管理策として、開発プロセスの改善、クライアント側のモニタリング、Content Security Policy(CSP)による防御が紹介されていますが、これらの考え方はすべて、CISSPの共通知識に含まれている考えと一致しています。

まず、最初の開発プロセスの改善については、CISSPでは、ソフトウェア開発期間中にセキュリティを考慮する「Built in Security」の共通知識が存在するため、Webサイトのリリース前にSAST、コードの完全性確認、単体テスト、結合テスト等を含めたカバレッジテストを行い、不正なコードが含まれていないことを保証する必要があります。ただし、既に進行中のアプリケーション開発環境に理想的な概念を適用しようとすると、開発プロセスが複雑になってしまうことがあるため、開発手法に応じたプロセスの改善を実施する必要があります。また、CISSPとしては、一次開発の開発プロセスを改善しただけでは、Magecartのような攻撃は低減できないため、サードパーティー含めた開発プロセスの改善提案を速やかに考え出さなければなりません。例えば、SASTの導入は、サードパーティーを含めるとコントロールするのが困難なため、まずは、変更管理/構成管理(CI/CD)をサードパーティー含め、限定的に導入し、頻繁にコードが変更される部分やクレジットカード決済処理で使用されるコード部分だけでも、スクリプトの改ざん検知を実施する管理策を適用することで、ユーザーに配信されるスクリプトの完全性を高めるということでリスクを低減することが期待できます。

2つ目のクライアント側のモニタリングについては、CISSPにおいてはリアルユーザー監視の共通知識を適用することが可能です。具体的な管理策としては、サーバーからユーザーに配信されるスクリプト(JavaScript等)にブラウザ側の挙動を確認するスクリプトを埋め込み、不正な挙動が発生した場合には、不正な挙動を防ぐことや発生した挙動をアプリケーションサーバー側でイベントを収集し、不正な挙動が発生していないかどうか確認する仕組みが実現可能です。このような仕組みは、複雑性を増すため、アプリケーション開発環境に容易に実現する手法ではありませんが、Browser-side firewall というアプローチとして、ブラウザ側で防御する管理策も登場しております。CISSPとしては、Webサービスの攻撃は、ブラウザ側で行われている現状に加え、サードパーティー側が攻撃されていること状況を踏まえ、WAF、FW、ウイルス対策ソフトでは対応ができない場合に備えた管理策を複数用意しておく必要があります。

最後のContent Security Policy(CSP)による防御については、最近のブラウザでは対応している仕組みであり、代表的な使用例としては、サーバー側で提供するサービスを使用する場合に限り、接続可能なドメインをホワイトリストとしてブラウザ側に配信することで、許可されたサービスを提供するURLのみにアクセスを制限することが可能となります。ただ、ホワイトリストを作成するということは、CISSPとしては、サードパーティーから配信されるスクリプトを含めたホワイトリストの運用を行う仕組み作りを設計しなければならないため、配信されるスクリプトの識別とアクセスマネジメントを具体的に運用し続ける必要があるため、CSP の管理策をどのように実現するかを考え出さなければなりません。CSP に関する具体的な実装事例は、mozilla のリファレンスを※3として記載しておきます。また、サードパーティーに関する JavaScriptのセキュリティ管理策について、OWASP が公開しているリファレンスがありますので、※4として記載しておきます。

いずれによせ、3つの管理策について、組織が提供するサービス環境に応じて、経済合理性の概念を忘れずに、継承可能な多層防御の環境を考えていくことが、CISSPとしては要求されます。特に、ソフトウェア開発におけるセキュリティは、開発期間中に要求されるセキュリティ管理策に加え、システムライフサイクルに要求されるセキュリティ管理策が必要となりますので、CISSPは、ソフトウェア環境のセキュリティの運用方法を踏まえた、マネジメントが要求されていることを理解しておく必要があります。さらに、このソフトウェア開発環境にセキュリティ管理策を実装するときには、必ず業務とITに対する副作用を考慮し、サービス側の生産性や付加価値を著しく低下させないよう、業務部門とIT部門との協調動作を考慮する必要がありますので、運用期間中も例外なく、副作用の検証を変更管理委員会を介して行うことも忘れないようにしましょう。

最後に、僕がwebinarで感じた、Webサービスに対するセキュリティ管理策のアプローチについて、みなさんと状況を共有したいと思います。数回にわたる「Akamai Technologies 」様のWebinarを通じて、インターネットサービスから発生する脅威は、「個人の脅威」として捉えるのではなく、「組織の脅威」として捉えておくことが重要だと痛感しています。その理由の1つとしては、ユーザー側の対応だけで、太刀打ちができない現状に脅威が成長してしまっているということで、サービスを提供している組織側がユーザーに代わって、脅威を想定し、リスクを低減してあげない限り、ユーザー側の被害は低減しない状況が続いてしまいます。

もう1つ、理由があり、Magecartのような攻撃が成功した場合、組織が保有する情報が漏えいしているわけではなく、ユーザー側のクレジットカード情報や個人識別情報が第三者に漏洩しているため、組織側が痛みを感じられない現状がどこかに見え隠れしている気がしてなりません。CISSPとしては、組織が提供しているサービスを介して、ユーザーの情報が漏えいしているのであれば、それは、組織によるお客様に対する保護義務を全うしていないことだと理解する必要があるため、顧客のデータが漏えいしていることに対し、漏えいした責任は、過失を除き、サービスを提供する組織側にあることを理解しておく必要があります。現時点では、声高に組織側に対するマイナス面の影響が無いように見受けられますが、GDPR 対応が必要となっている時代に応じた、サービス提供の仕組み作りを準備しておく必要があるのではないかと思っています。

いかがでしたでしょうか。今回は、「Akamai Technologies 」様のWebinar「ID認識型プロキシ(IAP)のユースケース&クライアントサイドアタックの防御戦略」の中で紹介されていた「Magecart やクレジットカードスキミングなど、標的を絞ったクライアントサイドアタックに対する防御方法」をCISSPの共通知識分野に紐付けて考えてみました。Webinarでは、ID認識型プロキシ(IAP)のユースケースも詳細な解説が行われております。是非、Webinarを視聴してみてください。なお、詳細に解説ができなかった内容については、文末にリファレンスを記載しておきましたのでご確認ください。次回の webinar解説は、「2020年2月5日(水)」に実施されました「APIに求められるセキュリティ基盤とその実装方法」となります。

最後に、ISC2が提供するWebinarは、ISC2メンバーまたはそれ以外の方、どなたでも視聴することができますので、是非、みなさんの組織で有効活用していただきたいと思います。Webinarはオンライン視聴だけではなく、Webinarの講演資料やスポンサー様が公開しているホワイトペーパー等をオフラインで確認することもできますので、お時間があるときにWebinarのトピックをISC2 CBK(共通知識分野)に紐付けて読み解いていくことが可能です。また、ISC2メンバーでない方は、Webinarを通じて、グローバルスタンダードにおけるCBK(共通知識分野)に触れていただければと思います。さらに、興味がわきましたら、CISSPチャレンジセミナー、SSCP 1Day セミナー、CCSPチャレンジセミナー、(ISC)² Nightにお越しいただけると嬉しいです。

※1 Magecart
https://www.riskiq.com/blog/labs/magecart-keylogger-injection/
https://www.clearskysec.com/magecart/

※2 Magecart による攻撃事例と解説
https://www.britishairways.com/en-gb/information/incident/data-theft/latest-information
https://www.riskiq.com/blog/labs/magecart-ticketmaster-breach/

※3 Content Security Policy(CSP)による防御

※4 OWASP Third Party Javascript Management Cheat Sheet