戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

情報処理安全確保支援士 2023年 春期 午後2 問02


Webサイトのクラウドサービスへの移行と機能拡張に関する次の記述を読んで、設問に答えよ。

   W社は、従業員100名のブログサービス会社であり、日記サービスというWebサービスを10年前から提供している。日記サービスの会員は、自分の食事に関する記事の投稿及び摂取カロリーの管理ができる。  日記サービスは、W社のデータセンター内で稼働している。ハードウェアの調達には1か月程度を要する。W社は、日記サービスが稼働している各機器の運用をD社に委託している。D社に委託している運用を表1に示す。
情報処理安全確保支援士試験(令和5年度 春期 午後2 問02 表01)
 この2、3年、会員が急増しているので、W社は、日記サービスをクラウドサービスに移行することにした。    〔移行先のクラウドサービス選定〕  W社は、クラウドサービスへの移行時及び移行後の管理、運用について、検討を開始した。  まず、クラウドサービスへの移行時及び移行後に、W社が何を管理、運用する必要があるかを調べたところ、表2のとおりであった。
 クラウドサービスへの移行及びクラウドサービスの設定はW社が行い、移行後、表1の項番1~項番3の運用をD社に委託する計画にした。  移行先のクラウドサービスとして、L社のクラウドサービスを選定した。L社が提供しているクラウドサービスを表3に示す。
情報処理安全確保支援士試験(令和5年度 春期 午後2 問02 表03)
情報処理安全確保支援士試験(令和5年度 春期 午後2 問02 表03(続き))
 イベント検知のルールはJSON形式で記述する。そのパラメータを表4に示す。
情報処理安全確保支援士試験(令和5年度 春期 午後2 問02 表04)
 仮想マシンサービスを利用して構築した、システムIDが0001のシステムにおいて、利用者IDが1000である利用者が仮想マシンを停止させた場合の、イベント検知のルールの例を図1に示す。
情報処理安全確保支援士試験(令和5年度 春期 午後2 問02 図01)
〔日記サービスのL社のクラウドサービスへの移行〕  移行後の日記サービスの仮想ネットワーク構成を図2に、図2中の主な構成要素を表5に示す。
情報処理安全確保支援士試験(令和5年度 春期 午後2 問02 図02)
情報処理安全確保支援士試験(令和5年度 春期 午後2 問02 表05)
 W社は、L社のクラウドサービスにおける、D社に付与する権限の検討を開始した。   〔L社のクラウドサービスにおける権限設計〕  L社の各クラウドサービスにおける権限ごとに可能な操作を表6に示す。
情報処理安全確保支援士試験(令和5年度 春期 午後2 問02 表06)
 W社は、D社に付与する権限が必要最小限となるように、表7に示すD社向けの権限のセットを作成した。
 さらに、W社は、①D社の運用者がシステムから日記サービスのログを削除したときに、そのイベントを検知してアラートをメールで通知するための検知ルールを作成した。  W社は、L社とクラウドサービスの利用契約を締結して、日記サービスをL社のクラウドサービスに移行し、運用を開始した。   〔機能拡張の計画開始〕  W社は、サービス拡大のために、機能を拡張した日記サービス(以下、新日記サービスという)の計画を開始した。新日記サービスの要件は次のとおりである。  要件1:会員が記事を投稿する際、他社のSNSにも同時に投稿できること  要件2:スマートフォン用のアプリ(以下、スマホアプリという)を提供すること    W社は、要件1を実装した後で要件2に取り組むことに決めた。その上で、要件1を実現するために、T社のSNS(以下、サービスTという)と連携することにした。   〔サービスTとの連携の検討〕  OAuth 2.0を利用してサービスTと連携した場合のサービス要求から記事投稿結果取得までの流れを図3に、送信されるデータを表8に示す。
 各リクエストの通信でTLS 1.2及びTLS 1.3を利用可能とするために、②暗号スイートの設定をどのようにすればよいかを検討した。また、サービスTとの連携のためのモジュール(以下、Rモジュールという)の実装から単体テストまでをF社に委託することにした。F社は、新技術を積極的に活用しているIT企業である。   〔F社の開発環境〕  F社では、Rモジュールの開発は、取りまとめる開発リーダー1名と、実装から単体テストまでを行う開発者3名のチームで行う。システム開発において、顧客から開発を委託されたプログラムのソースコードのリポジトリと外部に公開されているOSSリポジトリを利用している。二つのリポジトリは、サービスEというソースコードリポジトリサービスを利用して管理している。  サービスEの仕様と、RモジュールについてのF社のソースコード管理プロセスは、表9のとおりである。
情報処理安全確保支援士試験(令和5年度 春期 午後2 問02 表09)
〔悪意のある不正なプログラムコードの混入〕  F社は、Rモジュールの実装について単体テストまでを完了して、ソースコードをW社に納品した。その後、W社とT社は結合テストを開始した。  結合テスト時、外部のホストに対する通信がRモジュールから発生していることが分かった。調べたところ、不正なプログラムコード(以下、不正コードMという)がソースコードに含まれていたことが分かった。不正コードMは、OSの環境変数の一覧を取得し、外部のホストに送信する。新日記サービスでは、エンコード値GがOSの環境変数に設定されていたので、その値が外部のホストに送信されていた。  W社は、漏えいした情報が悪用されるリスクの分析と評価を行うことにした。それと並行して、不正コードMの混入の原因調査と、プログラムの修正をF社に依頼した。   〔W社によるリスク評価〕  W社は、リスクを分析し、評価した。評価結果は次のとおりであった。  ・エンコード値Gを攻撃者が入手した場合、mのWebサーバであると偽ってリクエストを送信できる。しかし、図3のシーケンスでは、③攻撃者が特定の会員のアクセストークンを取得するリクエストを送信し、アクセストークンの取得に成功することは困難である。    次に、W社は、近い将来に要件2を実装する場合におけるリスクについても、リスクへの対応を検討した。  そのリスクのうちの一つは、スマホアプリのリダイレクトにカスタムURLスキームを利用する場合に発生する可能性がある。W社が提供するスマホアプリと攻撃者が用意した偽のスマホアプリの両方を会員が自分の端末にインストールしてしまうと、正規のスマホアプリとサーバとのやり取りが偽のスマホアプリに横取りされ、攻撃者がアクセストークンを不正に取得できるというものである。この対策として、PKCE(Proof Key for Code Exchange)を利用すると、偽のスマホアプリにやり取りが横取りされても、アクセストークンの取得を防ぐことができる。  要件2を実装する場合のサービス要求から記事投稿結果取得までの流れを図4に示す。
 PKCEの実装では、乱数を基に、チャレンジコードと検証コードを生成する。(3)のリクエストにチャレンジコードとcode_challenge_methodパラメータを追加し、(7)のリクエストに検証コードパラメータを追加する。最後に、④認可サーバが二つのコードの関係を検証することで、攻撃者からのアクセストークン要求を排除できる。   〔F社による原因調査〕  F社は、不正コードMが混入した原因を調査した。調査の結果、サービスEのOSSリポジトリ上に、Xトークンなどの情報が含まれるファイル(以下、ファイルZという)がアップロードされた後に削除されていたことが分かった。  F社の開発者の1人が、ファイルZを誤ってアップロードし、承認した後、誤ってアップロードしたことに気付き、ファイルZを削除した上で開発リーダーに連絡していた。開発リーダーは、ファイルZがOSSリポジトリから削除されていること、ファイルZがアップロードされてから削除されるまでの間にダウンロードされていなかったことを確認して、問題なしと判断していた。  F社では、⑤第三者がXトークンを不正に取得して、リポジトリWに不正アクセスし、不正コードMをソースコードに追加したと推測した。そこで、F社では、Xトークンを無効化し、次の再発防止策を実施した。  ・表9中のバージョン管理に関わる見直しと⑥表9中の権限管理についての変更  ・Xトークンが漏えいしても不正にプログラムが登録されないようにするための、⑦表9中のサービス連携に関わる見直し    ソースコードには他の不正な変更は見つからなかったので、不正コードMが含まれる箇所だけを不正コードMが追加される前のバージョンに復元した。  W社は、F社が改めて納品したRモジュールに問題がないことを確認し、新日記サービスの提供を開始した。

設問1:

問題文を見る
表2中のa〜iに入れる適切な内容を、“○”又は“×”から選び答えよ。

模範解答

a:○ b:× c:× d:○ e:○ f:× g:○ h:○ i:○

解説

解答の論理構成

  1. 【問題文】の「表2 W社が管理、運用する必要のある範囲」によれば、“O”はW社が管理・運用する必要がある要素、“×”は不要な要素を示します。
  2. クラウドサービス分類ごとの責任分界は一般的に次のとおりです。
    • IaaS: 利用者が「OS, ミドルウェア」「アプリ」「アプリに登録されたデータ」を管理します。
    • PaaS: ベンダが「OS, ミドルウェア」を提供し、利用者は「アプリ」「アプリに登録されたデータ」を管理します。
    • SaaS: ベンダが「OS, ミドルウェア」「アプリ」を含めて提供しますが、利用者は「アプリに登録されたデータ」を管理します。
  3. 以上を表2の空欄に当てはめると以下のようになります。
    • a IaaSの「OS, ミドルウェア」→ 利用者管理 → “○”
    • b PaaSの「OS, ミドルウェア」→ ベンダ管理 → “×”
    • c SaaSの「OS, ミドルウェア」→ ベンダ管理 → “×”
    • d IaaSの「アプリ」→ 利用者管理 → “○”
    • e PaaSの「アプリ」→ 利用者管理 → “○”
    • f SaaSの「アプリ」→ ベンダ管理 → “×”
    • g IaaSの「アプリに登録されたデータ」→ 利用者管理 → “○”
    • h PaaSの「アプリに登録されたデータ」→ 利用者管理 → “○”
    • i SaaSの「アプリに登録されたデータ」→ 利用者管理 → “○”
  4. よって模範解答どおり
     a:○、b:×、c:×、d:○、e:○、f:×、g:○、h:○、i:○ となります。

誤りやすいポイント

  • SaaSでは「アプリ」をベンダが提供するので利用者は運用不要ですが、「アプリに登録されたデータ」は利用者責任であることを混同しやすいです。
  • 「OS, ミドルウェア」はPaaSで不要、IaaSでは必要という基本を取り違えると連鎖的に誤答になります。
  • ハードウェアとネットワークは全サービス形態で “×” という前提を忘れると全体のバランスが崩れます。

FAQ

Q: SaaSでもデータをクラウドベンダにバックアップしてもらえるのでは?
A: 物理的なバックアップ作業はベンダが行う場合がありますが、データ内容の正確性・保護ポリシを決定し責任を負うのは利用者側です。そのため表2では “○” になります。
Q: PaaSにおいてOSのパッチ適用を要求された場合は誰の責任?
A: OSの維持管理はベンダ責任なので、利用者が直接パッチを適用する必要はありません。ただし適用可否の確認やアプリの動作検証は利用者側の責務です。
Q: IaaSで「ハードウェア、ネットワーク」が “×” なのはなぜ?
A: IaaSでは物理ハードウェアや基盤ネットワークはクラウドベンダが提供・管理し、利用者は仮想化されたリソースの上位層から責任を負うためです。

関連キーワード: IaaS, PaaS, SaaS, 責任分界点、データ管理

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問2:〔L社のクラウドサービスにおける権限設計〕について答えよ。

問題文を見る
(1)表7中のj〜lに入れる適切な字句を、解答群の中から選び、記号で答えよ。
解答群  ア:一覧の閲覧権限、閲覧権限、編集権限  イ:一覧の閲覧権限、閲覧権限  ウ:一覧の閲覧権限  エ:なし

模範解答

j:ウ k:エ l:イ

解説

解答の論理構成

  1. 委託範囲の確認
    【問題文】には「移行後、表1の項番1~項番3の運用をD社に委託する計画」とあります。
    項番1~3は以下のとおりです。
    ・項番1「ログ保全」
    ・項番2「障害監視」―「サーバの一覧を参照する」
    ・項番3「性能監視」―「性能指標を監視する」「サーバの一覧を参照する」
  2. 仮想マシンサービスで必要な権限(j)
    障害監視・性能監視の両方で必要なのは「サーバの一覧を参照する」ことだけで、起動・停止・削除などの操作は求められていません。
    表6を見ると「仮想マシンサービス」の操作を最小に抑えるなら
      一覧の閲覧権限=「仮想マシン一覧の閲覧」
    だけで十分です。したがって
    j=ウ「一覧の閲覧権限」
  3. DBサービスで必要な権限(k)
    項番1~3の運用内容にデータベース操作は一切含まれていません。
    よってDBサービスには権限を与える必要がありません。
    k=エ「なし」
  4. モニタリングサービスで必要な権限(l)
    性能監視では「性能指標を監視する」「過去から現在までの性能指標の値の閲覧」が必要です。
    表6のモニタリングサービスの権限を見ると
    ・一覧の閲覧権限=「監視している性能指標一覧の閲覧」
    ・閲覧権限=「過去から現在までの性能指標の値の閲覧」
    の二つがあれば目的を達成できます。追加・削除までは不要なので編集権限は与えません。
    l=イ「一覧の閲覧権限、閲覧権限」
  5. 以上より
    j:ウ、k:エ、l:イ となります。

誤りやすいポイント

  • 「障害時に仮想マシンを再起動するかもしれない」と考えて編集権限まで付けてしまう。問題文では一次切分けのみで復旧操作は求められていない点に注意。
  • モニタリングサービスで「性能指標の追加・削除も必要」と誤解する。追加・削除はW社側の作業であり、D社は値の閲覧だけで足りる。
  • 「ログ保全だからDBにもアクセスが必要」と短絡的に判断する。実際のログはオブジェクトストレージサービスに保管され、DBサービスは対象外。

FAQ

Q: D社が障害対応で仮想マシンを停止・起動できないと復旧が遅れませんか?
A: 問題文ではD社の役割は一次切分けまでで、復旧操作はW社が担う前提です。最小権限の原則に従い、不要な操作権限は与えません。
Q: ログ保全のためには仮想マシン内のファイル閲覧権限が必要では?
A: ログは各機器から取得後、直接「オブジェクトストレージサービス」に保存します。仮想マシンサービス側でファイル閲覧を行う必要はありません。
Q: 性能指標が増えた場合は誰が追加するのですか?
A: W社です。問題文に「必要に応じて、W社への連絡をメールと電話で行う」とあるように、指標の追加・削除など設定変更はW社が実施します。

関連キーワード: 最小権限、アクセス制御、監視運用、ログ保全、パフォーマンス監視

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問2:〔L社のクラウドサービスにおける権限設計〕について答えよ。

問題文を見る
(2)本文中の下線①のイベント検知のルールを、JSON形式で答えよ。ここで、D社の利用者IDは、1110〜1199とする。

模範解答

{ "system": "4000", "account": "11[1-9][0-9]", "service": "オブジェクトストレージサービス", "event": "オブジェクトの削除" }

解説

解答の導き方

  1. 何を検知するルールかを整理する
    下線①は「D社の運用者がシステムから日記サービスのログを削除したときに、そのイベントを検知してアラートをメールで通知するための検知ルール」です。図1の例に倣い、表4のsystem・account・service・eventの四つのパラメータに、どのシステムで、誰が、どのクラウドサービスで、何をしたかを当てはめていきます。
  2. system:日記サービスのログを保管しているシステム
    表5で、日記サービスのログを保管する構成要素は「ログ保管ストレージ」で、そのシステムIDは4000です。したがって、systemは4000です。
  3. service:ログ保管ストレージが利用するクラウドサービス
    表5から、ログ保管ストレージが利用するのはオブジェクトストレージサービスです。表4のserviceの取り得る値にもオブジェクトストレージサービスが含まれているので、serviceはオブジェクトストレージサービスです。
  4. event:ログの削除に当たる操作
    ログはオブジェクトストレージにオブジェクトとして保存されているので、ログを削除する操作はオブジェクトの削除に当たります。表4で、オブジェクトストレージサービスの場合のeventには「オブジェクトの削除」があるので、これを指定します。
  5. account:D社の利用者IDを正規表現で表す
    設問に「D社の利用者IDは、1110〜1199とする」とあり、表4の注記には「systemとaccountの取り得る値には正規表現を利用できる」とあります。1110〜1199は、上2桁が11、3桁目が1〜9、4桁目が0〜9の4桁の数です。注記の規則では「[0-9]は、0から9までの連続する数字のうち、いずれか数字1文字を表す」ので、3桁目は[1-9]、4桁目は[0-9]と書けます。したがって、accountは11[1-9][0-9]です。
  6. このルールが必要になる理由を確かめる
    D社は、表1の項番1のログ保全で「外部メディアにバックアップする前に、ログを一時的にD社作業用端末にダウンロードする」作業を行います。表6では、オブジェクトのダウンロードは編集権限に含まれるため、表7でD社にはオブジェクトストレージサービスの編集権限まで付与されています。編集権限にはオブジェクトの削除も含まれるので、D社の運用者はログを削除できてしまいます。一方、表1には「なお、各機器からログを削除する作業はW社が行う」とあり、D社がログを削除することは本来ありません。権限では削除を防げないので、削除されたことを検知して通知するルールが必要になるわけです。
  7. 以上を、図1の例と同じJSON形式でまとめると次のようになります。
    {
      "system": "4000",
      "account": "11[1-9][0-9]",
      "service": "オブジェクトストレージサービス",
      "event": "オブジェクトの削除"
    }
    

誤りやすいポイント

  • accountを11[0-9][0-9]と書いてしまう。これでは1100〜1109も一致し、D社以外の利用者の操作まで検知対象になります。
  • accountを1110〜1199のような範囲の書き方で書いてしまう。表4の注記で使えるのは正規表現なので、各桁を[ ]で1文字ずつ表します。
  • serviceを仮想マシンサービスにしてしまう。日記サービスのログを保管しているのはログ保管ストレージ(オブジェクトストレージサービス)で、仮想マシンサービスのeventにはオブジェクトの削除がありません。
  • systemに公開Webサーバの1000や仮想ネットワークの5000を指定してしまう。ログを保管しているのはシステムID4000のログ保管ストレージです。
  • JSONの書式を崩してしまう。図1の例のとおり、キーと値はそれぞれダブルクォーテーションで囲み、項目の間はカンマで区切ります。

FAQ

Q: 11[1-9][0-9]は、11110のような5桁の値にも一致しませんか?
A: 表4で、accountの取り得る値は0000〜9999の4桁と決まっています。そのため、4桁の値のうち1110〜1199だけに一致します。
Q: D社から編集権限を外せば、このルールは不要ではありませんか?
A: 表6では、オブジェクトのダウンロードが編集権限に含まれています。ログ保全のためのダウンロード作業に編集権限が必要なので、外すことはできません。権限で削除を防げない分を、検知と通知で補う考え方です。
Q: アラートの通知先は、ルールに書かなくてよいのですか?
A: 表3のアラートサービスは、イベントが発生したときに「そのイベントを検知してアラートをメールで通知する」サービスです。表4のルールに書くのは、検知するイベントの条件だけです。

関連キーワード: イベント検知、正規表現、オブジェクトストレージ、最小権限、ログ保全、JSON

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問3:〔サービスTとの連携の検討〕について答えよ。

問題文を見る
(1)本文中、図3中及び図4中のm〜oに入れる適切な字句を、“新日記サービス”又は“サービスT”から選び答えよ。

模範解答

m:新日記サービス n:サービスT o:サービスT

解説

解答の論理構成

  1. 図3について
    • 【問題文】には「OAuth 2.0を利用してサービスTと連携した場合のサービス要求から記事投稿結果取得までの流れを図3に示す。」とあります。
    • したがって、図3のシーケンスは“新日記サービス”と“サービスT”の間で行われるやり取りです。
  2. “mのWebサーバ”
    • シーケンス(1)は「Webブラウザ → mのWebサーバ:サービス要求」。
    • 会員がアクセスするのは“新日記サービス”のサイトであり、そこで記事の同時投稿を要求します。
    • よって “mのWebサーバ” = “新日記サービス”。
  3. “nの認可サーバ”
    • シーケンス(3)は「Webブラウザ → nの認可サーバ:認可要求」。
    • OAuth 2.0の認可サーバはリソース提供側(今回のSNS)に属します。【問題文】では「サービスTと連携」と明記されているため、ここは “サービスT” となります。
  4. “oのリソースサーバ”
    • シーケンス(9)は「mのWebサーバ → oのリソースサーバ:記事投稿」。
    • 記事を実際に保存するのはサービスTのSNS側リソースサーバです。
    • よって “oのリソースサーバ” = “サービスT”。
  5. 以上より
    • m:新日記サービス
    • n:サービスT
    • o:サービスT

誤りやすいポイント

  • 認可サーバとリソースサーバを“新日記サービス”と誤解する
    • OAuth 2.0ではリソースを持つ側(今回のSNS)が両方を提供するのが一般的です。
  • Webサーバの所在をサービスTと誤認する
    • シーケンス(1)の「サービス要求」は会員が新日記サービスに対して行う操作です。
  • 「記事投稿」を“API Gateway”など別名で考えてしまう
    • 問題文は単純化しており、リソースサーバ=SNSのAPIであると読み替える必要があります。

FAQ

Q: 認可サーバとリソースサーバは必ず同じサービスが提供するのですか?
A: RFCでは分離も可能ですが、本問題のようなSNS連携では同一事業者が両方を運用するケースが一般的です。
Q: 新日記サービス側に認可サーバが存在しない理由は?
A: 新日記サービスは“クライアント”の立場でサービスTのリソースを利用するため、自身で認可サーバを持つ必要はありません。
Q: 図3のリダイレクトが二度登場する意図は?
A: 最初のリダイレクト(2)は認可エンドポイント誘導、二度目(5)は認可コードを付与したブラウザをクライアント(新日記サービス)へ戻すためです。

関連キーワード: OAuth 2.0, 認可サーバ、リソースサーバ、アクセストークン、リダイレクト

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問3:〔サービスTとの連携の検討〕について答えよ。

問題文を見る
(2)表8中のp、qに入れる適切な番号を、図3中の番号から選び答えよ。

模範解答

p:(3) q:(7)

解説

解答の論理構成

  1. 表8の p には
    “GET /authorize?response_type=code&client_id=abcd1234&redirect_uri=https://△△△.com/callback HTTP/1.1¹)”
    と記載されています。
    これはOAuth 2.0における認可エンドポイント /authorizeへのリクエストであり、図3で示される
    “(3) 認可要求”
    と同一の内容です。
    したがって p = (3) になります。
  2. 表8の q には
    “POST /oauth/token HTTP/1.1 … grant_type=authorization_code …”
    と記載されています。
    /oauth/tokenへのPOSTは、発行された認可コードを用いてアクセストークンを要求する処理で、図3の
    “(7) アクセストークン要求”
    に対応します。
    よって q = (7) になります。
  3. 以上より、解答は
    p:(3)
    q:(7)
    となります。

誤りやすいポイント

  • /authorizeと /oauth/tokenのエンドポイントを取り違える。前者は認可コード取得、後者はアクセストークン取得。
  • 図3の(5)「リダイレクト」と(7)「アクセストークン要求」を混同し、POSTとGETの違いを見落とす。
  • Webブラウザから送られるリクエストか、クライアント(Webサーバ)から送られるリクエストかを区別せず番号を選んでしまう。

FAQ

Q: 認可要求とアクセストークン要求の主な違いは何ですか?
A: 認可要求は利用者の同意を得るために /authorizeへ送られ、結果として認可コードが発行されます。アクセストークン要求はその認可コードを使って /oauth/tokenへ送られ、アクセストークンを取得します。
Q: 図3の(5)「リダイレクト」はどのHTTPメソッドで行われますか?
A: 一般に302などのリダイレクトレスポンスが返り、WebブラウザはGETで自動遷移します。ただし設問では番号対応を問うていないため、解答には関係ありません。
Q: POSTとGETを見分けるポイントはありますか?
A: OAuth 2.0では /authorizeがGET、/oauth/tokenがPOSTと仕様で定められており、フォームデータやgrant_typeが含まれる場合はPOSTになります。

関連キーワード: OAuth 2.0, 認可コード、アクセストークン、Authorization Endpoint, Token Endpoint

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問3:〔サービスTとの連携の検討〕について答えよ。

問題文を見る
(3)本文中の下線②について、CRYPTRECの“電子政府推奨暗号リスト(令和4年3月30日版)”では利用を推奨していない暗号技術が含まれるTLS1.2の暗号スイートを、解答群の中から全て選び、記号で答えよ。
解答群  ア:TLS_DHE_RSA_WITH_AES_128_GCM_SHA256  イ:TLS_DHE_RSA_WITH_AES_256_CBC_SHA256  ウ:TLS_RSA_WITH_3DES_EDE_CBC_SHA  エ:TLS_RSA_WITH_RC4_128_MD5

模範解答

ウ、エ

解説

解答の論理構成

  1. 下線②では「TLS 1.2及びTLS 1.3を利用可能とするために、暗号スイートの設定をどのようにすればよいか」を検討します。
  2. TLS 1.2で利用できても、CRYPTRECの“電子政府推奨暗号リスト(令和4年3月30日版)”において推奨されない暗号技術が含まれるスイートは設定から除外する必要があります。
  3. 解答群の各スイートを構成要素で比較すると次のとおりです。
記号暗号スイート非推奨要素判断
アTLS_DHE_RSA_WITH_AES_128_GCM_SHA256なし(AES-GCM, SHA-256)推奨可
イTLS_DHE_RSA_WITH_AES_256_CBC_SHA256なし(AES-CBC, SHA-256)推奨可
ウTLS_RSA_WITH_3DES_EDE_CBC_SHA3DES, SHA-1推奨不可
エTLS_RSA_WITH_RC4_128_MD5RC4, MD5推奨不可
  1. 「3DES」および「RC4」「MD5」は同リストで“利用を推奨しない暗号技術”に明記されています。したがって該当スイートは
    ウ:TLS_RSA_WITH_3DES_EDE_CBC_SHA
    エ:TLS_RSA_WITH_RC4_128_MD5
  2. よって解答は「ウ、エ」となります。

誤りやすいポイント

  • 「AES-CBCは危険」と短絡的に判断してしまい、TLS_DHE_RSA_WITH_AES_256_CBC_SHA256まで除外してしまう。CBCモードはSHA-256と組み合わせたDHEキー交換であれば現行リストで「推奨」扱いです。
  • 「RSAキー交換=非推奨」と思い込み、TLS_RSA_WITH_3DES_EDE_CBC_SHAだけでなくア~エすべてを疑ってしまう。問題は暗号アルゴリズムそのもの(3DES, RC4, MD5)にあります。
  • TLS 1.3のみを意識してTLS 1.2のスイート分類を見落とす。設問は「TLS 1.2の暗号スイート」を対象にしています。

FAQ

Q: CRYPTREC推奨暗号リストの確認方法は?
A: デジタル庁ウェブサイトで公開されている“電子政府推奨暗号リスト(令和4年3月30日版)”のPDFで、推奨・移行・使用不可などの区分を参照できます。
Q: 「SHA-1が入っているから即非推奨」と考えて良いですか?
A: SHA-1単体であっても、同リストでは「電子証明書の署名用には不可」とされていますが、TLS用途での扱いは“移行”に分類されます。今回は3DESやRC4/MD5の方が明確に「推奨しない」とされているため判断基準になります。
Q: TLS 1.3だけを許可すれば安全ですか?
A: TLS 1.3では暗号スイート構成が簡素化され、問題の3DESやRC4は仕様上使用できません。ただし、互換性のためにTLS 1.2を併用するケースが多く、TLS 1.2側の設定を誤ると脆弱性が残ります。

関連キーワード: TLS 1.2, 暗号スイート、CRYPTREC, 3DES, RC4

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問4:〔W社によるリスク評価〕について答えよ。

問題文を見る
(1)本文中の下線③について、アクセストークンの取得に成功することが困難である理由を、表8中のパラメータ名を含めて、40字以内で具体的に答えよ。

模範解答

アクセストークン要求に必要なcodeパラメータを不正に取得できないから

解説

解答の論理構成

  • 本文には、攻撃者が「mのWebサーバであると偽ってリクエストを送信できる」ものの、下線部③として「アクセストークンの取得に成功することは困難」とあります。
  • OAuth 2.0では、アクセストークン取得時にPOST /oauth/token要求(表8の番号q)でgrant_type=authorization_codeとともにcode=... を送信します。
  • codeは (3)~(6) の正規フローで認可サーバが生成し、Webブラウザ経由で「mのWebサーバ」へリダイレクトされるまで外部に漏えいしません。
  • 攻撃者が偽Webサーバを名乗るだけでは、このcodeパラメータを入手できないため、後続のPOST /oauth/tokenを正しく実行できず、アクセストークンを取得できません。
  • したがって解答は「アクセストークン要求に必要なcodeパラメータを不正に取得できないから」となります。

誤りやすいポイント

  • client_idやredirect_uriが分かればアクセストークンを得られると勘違いする。実際には一度限りのcodeが必須です。
  • TLSを用いていれば安全とだけ考え、codeの機密性が根拠である点を見落とす。
  • 表8のqリクエスト内にcodeが含まれることを確認せず、別パラメータ名を書いてしまう。

FAQ

Q: codeが盗まれた場合はどうなりますか?
A: 有効期間が短い上、一度しか使えない設計が一般的ですが、盗まれた時点でアクセストークンを奪取される恐れがあります。PKCEなどの追加対策が有効です。
Q: client_secretを知られても問題ありませんか?
A: OAuth 2.0では公開クライアントと機密クライアントで扱いが異なります。機密クライアントの場合、client_secret流出は深刻ですが、本設問の論点はcodeです。
Q: リダイレクト先を攻撃者が操作できたらどうなりますか?
A: 不正リダイレクトが成立するとcodeを窃取される可能性があります。その場合もPKCEを併用することでリスクを下げられます。

関連キーワード: OAuth 2.0, 認可コード、アクセストークン、PKCE, リダイレクト

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問4:〔W社によるリスク評価〕について答えよ。

問題文を見る
(2)本文中の下線④について、認可サーバがチャレンジコードと検証コードの関係を検証する方法を、“ハッシュ値をbase64urlエンコードした値”という字句を含めて、70字以内で具体的に答えよ。ここで、code_challenge_methodの値はS256とする。

模範解答

検証コードのSHA-256によるハッシュ値をbase64urlエンコードした値と、チャレンジコードの値との一致を確認する。

解説

解答の論理構成

  • 問題文では、PKCEを利用したときに「④認可サーバが二つのコードの関係を検証する」と記載されています。
  • また「code_challenge_methodこの値はS256とする」と明示されています。S256は、検証コード(verifier)のSHA-256ハッシュ値をbase64urlエンコードしてチャレンジコードと比較する方式です。
  • したがって認可サーバ側は、
    1. クライアントから送られてきた検証コードを受け取る
    2. その検証コードをSHA-256でハッシュ化する
    3. 得られたハッシュ値をbase64urlエンコードする
    4. (3) の値が事前に受け取っているチャレンジコードと一致するか確認する
  • この手順が具体的な「検証方法」となり、模範解答で示された内容と合致します。

誤りやすいポイント

  • チャレンジコードをそのまま平文比較してしまい、ハッシュ化とエンコードの工程を忘れる。
  • base64とbase64urlの違いを意識せず実装し、文字種の違いによって不一致になる。
  • SHA-256ではなくSHA-1やSHA-512など別のハッシュ関数を使おうとしてしまう。
  • 検証コードを一度ハッシュ化した後にさらに何らかの変換を重ねてしまい、本来のPKCEフローとずれる。

FAQ

Q: SHA-256とbase64urlエンコードを行う順序は入れ替えてもよいですか?
A: いいえ。先にSHA-256でハッシュ化し、その結果をbase64urlエンコードする順序がPKCEの仕様です。
Q: base64urlエンコードとは通常のbase64と何が異なりますか?
A: 文字 ‘+’、‘/’、‘=’ をURL安全な ‘-’、‘_’、パディング無しに置き換えた形式で、URLパラメータに含めてもエスケープ不要になります。
Q: S256方式以外にPKCEで使える方式はありますか?
A: S256推奨ですが、仕様上は平文比較のplain方式も定義されています。ただしセキュリティ上S256を使用するべきです。

関連キーワード: PKCE, SHA-256, base64urlエンコード、OAuth 2.0

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問5:〔F社による原因調査〕について答えよ。

問題文を見る
(1)本文中の下線⑤について、第三者がXトークンを取得するための操作を、40字以内で答えよ。

模範解答

OSSリポジトリのファイルZの変更履歴から削除前のファイルを取得する。

解説

解答の論理構成

  1. アップロードされたソースコードは承認後に“変更履歴”へ保存
    • 【問題文】表9 “バージョン管理”
      「ソースコードがアップロードされ、承認されると、対象のソースコードが新バージョンとして記録され、変更履歴のダウンロードが可能になる。」
    • ファイルZは開発者がアップロードし承認済みなので、削除しても履歴には残存します。
  2. 変更履歴はダウンロード可能
    • 【問題文】表9 “バージョン管理”
      「…変更履歴のダウンロード…が可能である。」
    • さらに【問題文】表9 “権限管理”
      「変更履歴のダウンロードには、ソースコードのダウンロード権限が必要である。」
  3. OSSリポジトリは外部公開されており、認証不要設定も選択できる
    • 【問題文】表9 “利用者認証及びアクセス制御”
      「サービスEは外部に公開されている。」
      「リポジトリごとに、利用者認証の要・不要を設定できる。」
    • OSSリポジトリ側で認証を“不要”にしていれば第三者もアクセス可能です。
  4. 第三者の取得手順
    ① 公開されたOSSリポジトリに接続
    ② “変更履歴のダウンロード”機能で削除前バージョンを取得
    ③ バージョン内のファイルZを閲覧し「Xトークン」を入手
  5. したがって、下線⑤の操作は
    「OSSリポジトリのファイルZの変更履歴から削除前のファイルを取得する。」

誤りやすいポイント

  • 削除すればファイルが完全に消えると誤解し、変更履歴の存在を見落とす。
  • “承認前”のアップロードなら履歴に残らない点と混同しがち。
  • アクセス制御を設定していると思い込み、外部公開状態を失念する。
  • “クローン”操作など別のダウンロード方法を解答してしまう。

FAQ

Q: 削除後に履歴も消去する運用は可能ですか?
A: 表9に「変更履歴の削除には…承認権限が必要」とあり、別途削除操作を行えば履歴も消せますが、今回は行われていません。
Q: ダウンロード権限がなければ取得できないのでは?
A: 表9 “権限管理”で「全ての利用者に…設定できる権限全てを与える」とあるため、第三者(認証不要設定の場合)でもダウンロードが可能です。
Q: Xトークンだけでソースコードの変更まで行えるのはなぜ?
A: 表9 “サービス連携”に「Xトークンには、リポジトリWの全ての権限が付与されている」と明記されており、アップロードや承認も可能だったからです。

関連キーワード: 変更履歴、バージョン管理、アクセス制御、トークン漏えい、リポジトリ

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問5:〔F社による原因調査〕について答えよ。

問題文を見る
(2)本文中の下線⑥について、権限管理の変更内容を、50字以内で答えよ。

模範解答

アップロードされたソースコードを承認する承認権限は、開発リーダーだけに与えるようにする。

解説

解答の論理構成

  1. 事故の背景
    表9の権限管理では「開発者、開発リーダーなど全ての利用者に対して、設定できる権限全てを与える。」とあり、 アップロード・ダウンロード・承認の三つの権限が誰にでも付与されていました。
  2. 問題点の特定
    その結果、Xトークンを悪用した第三者が開発者になり替わり「不正コードM」をリポジトリWへ追加しても、 承認権限を自分で行使してしまえば変更が正式版として登録されてしまう脆弱な運用でした。
  3. 再発防止の方向性
    権限委譲の原則(最小権限の原則)に従い、アップロードと承認を同一人物が行えないよう分離すべきです。
  4. 具体的変更内容
    アップロードは開発者が行い、承認は「開発リーダー」だけが行えるように承認権限を限定します。
    これにより、Xトークンが流出しても承認フローで不正な変更を排除できます。
  5. 結論
    以上から、承認権限を開発リーダーのみに絞る内容が最も適切です。

誤りやすいポイント

  • 「承認権限を全員から削除する」と解釈してしまいがちですが、リポジトリ運用には承認者が必須です。
  • 「アップロード権限も開発者から取り上げる」と勘違いすると開発フローが停止します。
  • 「最小権限」という語から“閲覧だけ許可すればよい”と早合点すると、変更作業自体が出来なくなります。

FAQ

Q: 承認権限を分離するだけでトークン漏えい対策になるのですか?
A: はい。攻撃者がアップロードできても承認が通らなければ正式版にはならず、被害を抑制できます。
Q: 開発リーダーが不在の場合の承認はどうなりますか?
A: 代理承認者を別途設定し、承認権限を限定したまま業務継続性を確保する運用を取ります。
Q: アップロードと承認を自動化してCIに任せてもよいですか?
A: CIが承認フローを代替する場合でも、承認処理を行うアカウントの権限を厳格に管理する必要があります。

関連キーワード: アクセス制御、権限分離、ソースコード管理、最小権限原則、トークン漏洩

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問5:〔F社による原因調査〕について答えよ。

問題文を見る
(3)本文中の下線⑦について、見直し後の設定を、40字以内で答えよ。

模範解答

Xトークンには、ソースコードのダウンロード権限だけを付与する。

解説

解答の論理構成

  • 問題文では、事故発生時の状況として
    “X社CIに発行するEトークン(以下、Xトークンという)には、リポジトリWの全ての権限が付与されている。”
    と記載されています。
  • また、設定できる個別権限は
    “ソースコードのダウンロード権限、ソースコードのアップロード権限、アップロードされたソースコードを承認する承認権限”
    の3種類であることが示されています。
  • 不正コード混入の原因として、下線⑤で
    “第三者がXトークンを不正に取得して、リポジトリWに不正アクセス”
    と推測されています。全権限が付いていたため、攻撃者はアップロードや承認まで行えました。
  • 再発防止では“表9中のサービス連携に関わる見直し”とあり、X社CIが本来実施する作業はビルド・テスト用にソースコードを取得することだけです。アップロードや承認は不要です。
  • したがって、見直し後は最小権限の原則に従い、X社CIへ付与する権限を
    “ソースコードのダウンロード権限のみ”
    に限定するのが合理的となり、模範解答
    「Xトークンには、ソースコードのダウンロード権限だけを付与する。」
    が導かれます。

誤りやすいポイント

  • 「アップロードは不要でもテスト結果を書き戻すので承認権限が要る」と誤解する。
    ⇒ テスト結果の保存はX社CI側で完結し、リポジトリへの書き戻し要件は示されていません。
  • “全権限”を剥奪しトークン発行を止めるとCIが動かないと考えてしまう。
    ⇒ ビルド・テストにはダウンロード権限さえあれば十分です。
  • 権限を細分化できないと早合点し「設定変更不可」と判断する。
    ⇒ 問題文は「個別に設定可能」と明言しています。

FAQ

Q: なぜアップロード権限まで禁止する必要があるのですか?
A: アップロード権限があると、トークンを奪取した攻撃者が不正コードを登録できます。CIが必要とするのは取得のみなのでダウンロード権限だけで足ります。
Q: 承認権限を残しても安全ではありませんか?
A: 承認権限があれば、攻撃者は他人が誤ってアップした悪意あるコードを承認し正規化できます。不要な権限は削除するのが最小権限原則です。
Q: トークンの有効期間(1か月)は変更できないのですか?
A: 問題文に「有効期間の変更はできない」と明示されています。期間を短縮できないので権限を絞ることが効果的な対策になります。

関連キーワード: 最小権限、ダウンロード権限、トークン管理、アクセス制御、CI連携

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

戦国ITクイズ機能

\ せっかくなら /

情報処理安全確保支援士を
クイズ形式で学習しませんか?

クイズ画面へ遷移する→

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について