情報処理安全確保支援士試験 過去問 2022年(令和4年) 春期 午後Ⅱ 問2

クラウドサービスへの移行

X社は、従業員500名の情報サービス会社であり、5年前から動画投稿配信サービス(以下、動画サービスという)を提供している。動画サービスは、アカウント登録した会員が動画を投稿したり、投稿された動画を閲覧して評価したりすることができるサービスである。動画サービスは、Webサーバ(以下、動画サービスを提供するWebサーバをX社動画サーバという)を用いて提供されている。X社のシステム部は、X社のシステム全てを管理している。X社のシステム構成を図1に示す。

X社のシステム構成
図1 X社のシステム構成

XPCには、Webブラウザ、電子メール(以下、メールという)ソフト、GrW用クライアントソフトなどが導入されている。X社の従業員の認証は、認証サーバで行われており、XPC、GrWサーバ、FS、内部メールサーバへのシングルサインオン(以下、シングルサインオンをSSOという)を実現している。

X社のシステムでは、動画サービスの人気上昇による会員の増加に伴い、X社動画サーバの負荷が高くなっており、インターネット回線もひっ迫している。

X社の経営陣は、この問題への対策と併せて、セキュリティを強化するための抜本的な対策を検討するようシステム部に指示した。システム部のCさんが担当に指名され、セキュリティサービスを提供するW社から情報処理安全確保支援士(登録セキスペ)のF氏を招き、助言を受けることになった。

【抜本的な対策の検討】

F氏は、X社動画サーバをクラウドサービスへ移行し、さらに、Content Delivery Network(CDN)を利用する案を図2のように提案した。

X社動画サーバのクラウドサービスへの移行とCDNの利用案
図2 X社動画サーバのクラウドサービスへの移行とCDNの利用案

次は、図2の2についてのCさんとF氏の会話である。

Cさん: X社動画サーバでの動画配信にCDNを利用すると、どのように動画が配信されるようになりますか。

F氏: CDNでは、インターネット上にaサーバというサーバを分散配置して、動画配信を要求した端末に最も近いaサーバから動画を配信するようにします。aサーバは、動画配信を要求されたとき、要求された動画を保持していれば代理応答し、保持していなければ動画を保持しているX社動画サーバにアクセスして動画を取得し、応答します。多くの動画配信が代理応答されるので、X社動画サーバの負荷が軽減されます。

Cさん: その仕組みによって、b攻撃への耐性も向上しますよね。X社動画サーバでの動画配信にCDNを利用するには、どのようにすればよいでしょうか。

F氏: 例えば、M社が提供しているCDNを採用した場合の利用手順は図3のようになり、動画配信時の動作は図4のようになります。

M社CDNの利用手順
図3 M社CDNの利用手順
動画配信時の動作
図4 動画配信時の動作

Cさん: 理解しました。CDNを悪用する攻撃というのはあるのでしょうか。

F氏: X社動画サーバのCDN利用に関するものではありませんが、CDNを悪用する攻撃の一つにドメインフロンティング攻撃があります。X社内のインターネット利用者をFWとプロキシサーバで保護するセキュリティ対策では、注意が必要です。どのようにして攻撃が成功するか、その例を図5に示します。

ドメインフロンティング攻撃が成功する例
図5 ドメインフロンティング攻撃が成功する例

Cさん: 何か対策はあるのでしょうか。

F氏: 攻撃者サーバに割り当てられたIPアドレスを宛先とする通信をFWで拒否しても、Z-FQDNをプロキシサーバの拒否リストに登録しても、図5の(5)の通信は遮断できません。①Y-CDN-U-FQDNを名前解決したIPアドレスを宛先とする通信をFWで拒否すると、複数のWebサイトが閲覧できなくなる影響があります。通信内容を監視して遮断するなどセキュリティ強化を進めている CDN事業者もありますが、進んでいない事業者もあります。X社では、FW又はプロキシサーバを、アウトバウンド通信の役務及び高機能な通信解析ができるものに替え、dとHTTPリクエスト中のcヘッダの値が一致していることを検証して、一致していなければ遮断するという対策を検討してもよいでしょう。

Cさん: 分かりました。

システム部は、X社動画サーバのクラウドサービスへの移行及びCDNの利用案について経営陣に報告した。この案は経営陣に承認され、X社動画サーバの移行が開始された。

【他のサーバのクラウドサービスへの移行案】

X社動画サーバの移行が完了し、CDNの利用も開始された。X社動画サーバに関する課題が解決されると、経営陣は、自社が保有する他のサーバについてもクラウドサービスへの移行を検討するようシステム部に指示した。システム部では、図6に示すクラウドサービスへの移行案を作成した。

他のサーバのクラウドサービスへの移行案
図6 他のサーバのクラウドサービスへの移行案

【SSOの現状】

X社では、Kerberos認証でSSOが実現されている。XPCからGrWサーバにアクセスする場合のKerberos認証の流れを図7に、図7中の各処理の概要を表1に示す。

XPCからGrWサーバにアクセスする場合のKerberos認証の流れ
図7 XPCからGrWサーバにアクセスする場合のKerberos認証の流れ
表1 図7中の各処理の概要
処理名 処理内容
処理1 利用者IDとパスワードが正しければ、TGTを発行する。
処理2 TGTを復号して検証し、問題なければ、STを発行する。
処理3 STを復号して検証し、問題なければ、アクセスを許可する。

次は、図7についてのCさんとF氏の会話である。

Cさん: Kerberos認証に対する攻撃はあるのでしょうか。

F氏: 幾つかあります。二つ説明しましょう。一つ目は、TGT、STの偽造攻撃です。TGT又はSTが偽造されると、サーバが不正アクセスされて危険です。現在、TGTの偽造については、認証サーバ側での対策が進んでいます。一方、②STの偽造については、認証サーバ側で検知することができません

Cさん: リスクがありますね。

F氏: 二つ目は、サーバ管理者アカウントのパスワードを解読して不正にログインする攻撃です。XPCからSTが奪取され、不正アクセスに悪用されても、不正アクセスされる範囲は限定されます。しかし、奪取されたSTに対してサーバ管理者アカウントのパスワードの総当たり攻撃が行われ、それが成功すると、当該サーバ管理者アカウントでアクセスできるサーバが乗っ取られてしまいます。この総当たり攻撃は、③サーバ側でログイン連続失敗時のアカウントロックを有効にしていても対策になりません

Cさん: 分かりました。

【SaaSでのSSOの実現】

Cさんは、GrW及びメールのSaaSへの移行後のSSOの実現方法をF氏に尋ねた。次は、その際のF氏とCさんの会話である。

F氏: IDaaSの利用を提案します。多くのIDaaSでは、Kerberos認証ではなくSAML認証をサポートしています。SaaS側がSAML認証をサポートしていれば、SAML認証を用いたSSOが可能です。SAML認証の流れを図8に、図8中の各処理の概要を表2に示します。

SAML認証の流れ
図8 SAML認証の流れ
表2 図8中の各処理の概要
処理名 処理内容
処理1 IDaaSに認証を要求するSAML Requestを生成し、エンコードする。
エンコード結果とIDaaSのログイン画面のURLを組み合わせて、リダイレクト先URLを生成する。
処理2 図8中の(3)のHTTPリクエスト中のeからSAML Requestを取得する。
信頼関係が構築されたSaaSからの認証要求であることを検証する。
処理3 認証処理を行う。利用者の認証が成功した場合、処理4で用いるSAMLアサーション、それに対するデジタル署名を含めたSAML Responseの送信フォームを生成する。
処理4 SAML Responseに含まれるデジタル署名を検証することで、デジタル署名がfのものであること、及びSAMLアサーションのgがないことを確認する。
SAMLアサーションの内容を検証し、サービス提供すべきかどうかを決定する。

Cさん: 事前の準備はありますか。

F氏: IDaaSとSaaSとの間で事前に情報を共有しておく必要があります。事前に共有する情報は、SAMLアサーションで用いる属性、図8中の処理hで用いるURL、図8中の処理i及び処理jにおいて必要なデジタル証明書などがあります。

Cさんは、F氏の提案を受け、SAML認証をサポートしているIDaaSを調査した。同時に、GrWサービス及びメールサービスを提供し、かつ、SAML認証をサポートしているSaaSを調査した。調査の結果、G社のSaaSとIDaaS(以下、G社のGrWサービスをGrW-G、メールサービスをメール-G、IDaaSをIDaaS-Gという)に移行することを経営陣に提案した。この案は経営陣に承認され、GrW-G及びメール-Gへの移行並びにIDaaS-GでのSSOの準備が開始された。

【従業員からの要望】

GrW-G、メール-G及びIDaaS-Gへの移行及びSSOの準備が完了し、利用が開始された3か月後に、システム部は、X社の従業員に対して、GrW-G及びメール-Gについてのヒアリングを実施した。その回答で、GrW-Gでスケジュールを管理しているが、会議の主催者が会議日程の調整をもっと簡単にできるようにしてほしいという要望があった。Cさんは、S社が提供しているスケジュール調整サービス(以下、Sサービスという)を導入し、GrW-Gと連携させることで、その要望に応えることができると考えた。Sサービスの内容を表3に示す。

表3 Sサービスの内容(抜粋)
項番 項目 内容
1 概要 SaaSで提供されており、Sサービスのスマートフォン用アプリケーションプログラム(以下、スマートフォン用アプリケーションプログラムをスマホアプリという)又はPCのWebブラウザから利用できる。
2 利用手順
  1. 主催者は、Sサービスにアクセスする。
  2. Sサービスは、GrW-Gから主催者のスケジュールを取得し、空き時間を表示する。
  3. 主催者は、空き時間の中から会議日程の候補を複数選ぶ。
  4. Sサービスは、会議の参加予定者に、各候補に対する参加可否の回答を依頼するメールを送信する。
  5. 会議の参加予定者は、可否を回答する。
  6. Sサービスは、会議の参加予定者の各候補に対する参加可否の一覧表を主催者に示す。
  7. 主催者は、一覧表を見て会議日程を決定する。
  8. Sサービスは、会議の参加予定者に招待メールを送付し、会議日程をGrW-Gの主催者のスケジュールに登録する。

Cさんは、Sサービスの導入検討を進める中で、Sサービス、GrW-G及びIDaaS-Gの間の連携についてF氏に相談した。次は、その際のF氏とCさんの会話である。

F氏: Sサービス、GrW-G及びIDaaS-Gは、OAuth 2.0をサポートしています。OAuth 2.0を利用したサービス要求からスケジュール情報の取得までの流れは、図9のようになります。

OAuth 2.0を利用したサービス要求からスケジュール情報の取得までの流れ
図9 OAuth 2.0を利用したサービス要求からスケジュール情報の取得までの流れ

Cさん: セキュリティ対策について確認すべきことはありますか。

F氏: 二つあります。一つ目は、クロスサイトリクエストフォージェリ(以下、CSRFという)攻撃についてです。標的となる利用者が重要な秘密を扱う会議の主催者として日程を決定する場合を考えてみましょう。攻撃者は、GrW-Gに攻撃者のアカウントを登録し、当該GrW-Gにアクセスするための認可コードを利用者に送付します。そのときに、図9の実装にCSRF脆弱性があり、かつ、利用者のWebブラウザが攻撃者によって生成された認可コードを受け付けてしまう実装となっている場合、利用者が気付かないうちに攻撃者のアカウントで会議日程が登録されてしまいます。対策として、stateパラメタの実装が求められています。適切な実装であれば、図9中のoにおいて、stateパラメタを付与して送信し、図9中のpで送られてきたものと比較することで、攻撃を検知しているはずです。
二つ目は、利用者がSサービスへのアクセスにSサービスのスマホアプリを使う場合についてです。Sサービスのスマホアプリをインストールしたスマートフォンに、攻撃者が用意した不正なスマホアプリをインストールしてしまうと、GrW-Gにアクセスするための認可コードを、攻撃者のスマホアプリが横取りしてしまうという攻撃があります。

Cさん: 二つ目の攻撃への対策にはどのようなものがありますか。

F氏: Sサービスのスマホアプリでランダムな検証コードとその値を基にしたチャレンジコードを作成して、そのチャレンジコードを認可要求に追加し、検証コードをトークン要求に追加します。二つのコードを検証することで、検証コードを知らない攻撃者からのトークン要求を排除できます。この仕組みは、qとして標準化されています。

Cさん: 分かりました。

【企画チームからの要望】

Cさんは、企画チームから要望を受けた。要望は、T社が運営しているメッセージ投稿サイト(以下、T社投稿サイトという)とX社動画サーバとを連携させ、T社投稿サイトの認証サーバを用いた認証機能、及びT社投稿サイトの投稿サーバへの自動投稿機能をX社動画サーバに追加したいというものだった。この要望に対応することで、T社投稿サイトのアカウントをもつ動画サービスの会員は、T社投稿サイトにログインすればX社動画サーバも利用できる。また、X社動画サーバに動画を投稿すると、"動画の概要"がT社投稿サイトに自動的に投稿されるようにもできる。Cさんは、T社投稿サイトとX社動画サーバの連携方法について、F氏に助言を求めた。次は、その際のF氏とCさんの会話である。

F氏: OpenID Connect(以下、OIDCという)を用いれば、T社投稿サイトとX社動画サーバを連携できます。例えば、図10のような流れです。

OIDCを用いたT社投稿サイトとX社動画サーバの連携の流れ
図10 OIDCを用いたT社投稿サイトとX社動画サーバの連携の流れ

F氏: 認可コードフローの場合、IDトークンは、図10中のuで送付されます。IDトークンは、JSON Web Token形式で表現され、ヘッダ、ペイロード、署名の三つの部分で構成されます。署名は、ヘッダとペイロードに対して、T社投稿サイトの認証サーバの秘密鍵を使って作成します。署名アルゴリズムは、ヘッダにおいて指定します。ヘッダ、ペイロード、署名は、それぞれvでエンコードされます。

Cさん: T社投稿サイトでのセキュリティ対策について確認することはありますか。

F氏: ハイブリッドフローを用いる場合、stateパラメタのほか、nonce値を実装しているかを確認すべきです。まず、nonce値を生成し、wに含めて送信します。次に、送られてきたxに含まれるnonce値を検証することで、攻撃者によるIDトークンの不正利用を防ぐことができます。

Cさん: 分かりました。

システム部は、T社投稿サイトと動画サービスとを、OIDCで連携することに決め、X社動画サーバの改修に着手した。

出典:令和4年度 春期 情報処理安全確保支援士試験 午後Ⅱ 問2