‹

令和7年度 春期 午後

令和7年度 春期に実施された情報処理安全確保支援士試験 午後の全4問(記述式)です。事例本文・設問・解答例と解説をそのまま読めます。

この試験について:情報処理安全確保支援士試験について

この年度を解いてみる

問1 サプライチェーンのリスク対策

サプライチェーンのリスク対策に関する次の記述を読んで,設問に答えよ。

L 社は,金融業向けにシステムを開発している従業員 1,000 名の企業である。L 社のシステム開発プロジェクトでは,プラットフォーム G というソフトウェア開発プラットフォームを利用している。プラットフォーム G の機能には,ソースコード及び開発ドキュメントのバージョンを管理する機能,CI/CD パイプラインの管理機能,開発対象の SBOM 作成機能がある。CI/CD パイプラインの管理機能を利用してテストやリリースの自動実行が可能である。開発対象の SBOM 作成機能はプラットフォーム G 上のリポジトリサーバ内のソースコード及びライブラリをシステム構成要素として一覧化する。開発対象の SBOM 作成機能は現状では特に利用していない。また,L 社が採用している SAST ツール(以下,ツール F という)は,プラットフォーム G 上のリポジトリサーバや開発者の端末にインストールして利用するツールであり,コンパイルエラーが解消されたソースコードに対してだけ正常な検査が可能である。プラットフォーム G の CI/CD パイプラインの管理機能で,ツール F でのチェックを自動的に行うようなワークフローを構成することができる。

近年,業務委託先でのセキュリティ侵害に起因する情報セキュリティインシデントが大きく報道されるなど外部環境が変化し,L 社経営陣もサプライチェーンリスク対策の強化を考えるようになった。経営陣の指示で,情報セキュリティ担当の B さんは,サプライチェーンリスク対策を強化したセキュリティガイドライン(以下,ガイドラインという)を作成し,全てのシステム開発プロジェクト及び運用サービスを点検することになった。B さんは,L 社が契約しているセキュリティコンサルタントで情報処理安全確保支援士(登録セキスペ)の D 氏にガイドラインの作成について相談することにした。

〔ガイドラインの作成〕

次は,ガイドラインの作成についての B さんと D 氏の会話である。

B さんは,ガイドライン案を表1のように作成した。

工程,項番,対策の3列の表。工程 共通,項番1:システムに関連する情報資産を,業務委託先と共同で利用するものも含めて一覧化し,管理すること。一覧化すべき情報資産は,次のとおりである。・サーバ・ネットワーク機器・ソースコード・リポジトリ内のライブラリ。項番2:各工程で利用するシステムのアカウントは,業務委託先を含めて必要な利用者にだけ発行すること。その際,責任追跡性を確保するためにアカウントの利用者を特定できるようにすること。項番3:一覧化した情報資産ごとに,パッチ適用状況など最新の構成情報を把握すること。工程 調達,項番4:業務委託先の企業を,再委託先まで含めて一覧として管理すること。項番5:業務委託先でのセキュリティ管理に関する要件を,業務委託先との契約に含めること。工程 開発,項番6:ソフトウェア開発プラットフォームなどの開発環境は,アクセス制御を行い,必要な利用者だけがアクセスできるようにすること。項番7:開発環境にアクセスしたアカウントを特定できるようにアクセスログを記録すること。項番8:開発したソフトウェアのソースコードは,人手によるレビュー及び SAST ツールによるチェックを行うこと。項番9:システムの仕様,機能を精査し,不要な機能やセキュリティ上の欠陥がないことを設計書から確認すること。工程 リリース・デプロイ,項番10:開発したソフトウェアの SBOM を作成すること。項番11:リリースしたソフトウェアは,リリースバージョンを管理すること。工程 運用,項番12:システムの稼働環境において,稼働状況を監視すること。項番13:システムの稼働環境において,要件に応じたアクセス制御を実施すること。項番14:システムの運用端末がある部屋は,要件に応じた入退室管理を実施すること。項番15:インシデント対応手順書を作成すること。
表1 ガイドライン案(抜粋)

次は,ガイドライン案についての B さんと D 氏の会話である。

B さんが修正したガイドライン案を経営陣に報告したところ,過去に外部ベンダーでのセキュリティ侵害に起因して L 社でインシデントが何度か発生したことがあったので,それらのインシデントに対するガイドライン案の有効性を評価するように指示があった。

〔過去のインシデントの確認〕

B さんは,過去のインシデントに対するガイドライン案の有効性を評価することにした。次は,1件目のインシデントについての D 氏と B さんの会話である。

B さんは,⑤ SBOM 以外の手段で,システムが利用している外部のスクリプトを把握できるよう,案の項目を一つ修正した。D 氏とともに,そのほかの過去のインシデントについても案を評価したところ,案は有効であると確認できたので,経営陣に報告して承認を得た。

〔ガイドラインを用いた点検の実施〕

ガイドラインを用いて,現在進行中の全てのシステム開発プロジェクト及び運用サービスを点検することになった。最初の点検対象は,システム S の開発プロジェクト及び運用サービスである。B さんがプロジェクト計画書,運用計画書などからまとめたシステム S の開発プロジェクト及び運用サービスの概要を図1に,開発環境の構成図を図2に示す。

番号付きの箇条書き(1〜7)。1. システム S は,L 社が3年前から S 銀行向けに提供しているインターネットバンキングシステムである。運用と追加機能の開発を L 社が請け負っている。2. セキュリティ監視を情報セキュリティ会社の N 社に委託している。開発は,L 社従業員,L 社に派遣された派遣エンジニア及び他の業務委託先の従業員が行っている。なお,運用ツールなど一部のソフトウェアは N 社が開発することがある。3. L 社がシステム S を運用するために S 銀行内にセキュアルームが用意されている。セキュアルームへの入室に S 銀行が貸与するカードでの認証を必須とする入退室装置が導入され,S 銀行の管理者及び L 社の運用担当者しか入室できないようになっている。4. 派遣元及び業務委託先との間では,L 社のセキュリティポリシーの順守とプロジェクトでのセキュリティルールの順守について契約書で定めている。N 社との業務委託契約には,N 社内のセキュリティ管理についての実施事項及び N 社が再委託を行わないことを明記している。N 社での委託契約の順守状況を定期的な監査によって確認する。5. 開発時に,要件定義段階での脅威モデリング及び設計段階での設計書の確認を行い,不要な機能やセキュリティ上の欠陥がないことを確認する。6. プラットフォーム G に設計書を格納する。開発したソフトウェアの SBOM は作成しない。7. 開発したソフトウェアのソースコードは,開発リーダーがレビューして承認する。開発したソフトウェアをリリースする際は,開発リーダーがリリースバージョンを更新する。
図1 システム S の開発プロジェクト及び運用サービスの概要
番号付きの箇条書き(8〜12)の続き。8. 資産管理台帳にサーバ及びネットワーク機器の一覧を担当者が入力する。9. システム S に組み込む OSS ライブラリは,開発者が取得する。OSS ライブラリは資産管理台帳に入力しない。10. 開発は,L 社内及びオフショア拠点で行い,次の LAN に接続した端末で実施する。・L 社内に用意した従業員 LAN・L 社内に用意したパートナー LAN・オフショア拠点にある業務委託先の LAN。また,テストなどのためにシステム S の開発系サーバがある LAN(以下,開発 LAN という)にアクセスする際には一旦,踏み台サーバにログインする。踏み台サーバには,L 社,業務委託先など会社ごとに発行した共用アカウントでログインするが,ログインごとに,利用記録簿に記載する。開発 LAN 上のサーバには製品仕様上,アクセスログが取れないものもある。11. インシデント発生時に L 社のシステム S の担当者に連絡するための業務フローがインシデント対応手順書に定められており,システム S の担当者がインシデントのハンドリングを行う。12. ツール F が開発者の端末とプラットフォーム G にインストールされている。
図1 システム S の開発プロジェクト及び運用サービスの概要(続き)
インターネット側にオフショア拠点があり,インターネットを介して L 社の FW に接続している。凡例:L3SW:レイヤー3スイッチ,FW:ファイアウォール,VPN-GW:VPN ゲートウェイ。L 社の枠の中に,パートナー LAN(破線の枠)と従業員 LAN(破線の枠)があり,どちらも L3SW-1 に接続している。L3SW-1 は踏み台サーバに接続している。踏み台サーバは FW と L3SW-2 に接続している。FW は VPN-GW にも接続している。L3SW-2 は開発 LAN(破線の枠)の開発系サーバ(複数台,点線で省略)に接続している。
図2 システム S の開発環境の構成図(抜粋)

B さんは,システム S の担当者へのヒアリング前に論点を整理しておこうと考え,表1の各項番について,図1に基づき,対策状況を確認した。結果は表2のとおりである。

工程,表1の項番,確認した図1の項番,確認結果又は問題点の4列の表。工程 共通,表1の項番1,確認した図1の項番 8,9,確認結果又は問題点:OSS ライブラリを台帳管理していない。工程 共通,表1の項番2,確認した図1の項番[ ア ],確認結果又は問題点[ a ]。工程 調達,表1の項番5,確認した図1の項番[ イ ],確認結果又は問題点:問題なし。工程 開発,表1の項番9,確認した図1の項番[ ウ ],確認結果又は問題点[ b ]。工程 リリース・デプロイ,表1の項番10,確認した図1の項番 6,確認結果又は問題点:開発したソフトウェアについて SBOM を作成していない。工程 運用,表1の項番15,確認した図1の項番[ エ ],確認結果又は問題点[ c ]。
表2 システム S の事前確認結果(抜粋)

B さんは,システム S の担当者である C さんにヒアリングを行った。

〔SBOM についての確認〕

次は,表1の項番10についての C さんと B さんの会話である。

〔開発工程のセキュリティ対策についての確認〕

B さんは,表1の項番7,8について確認した。次は,そのときの B さんと C さんの会話である。

左から「開発者の端末」「プラットフォーム G」「テスト環境」「本番環境」の4つの列からなるフロー図。開発者の端末:「ソースコードの修正」→「コンパイルの実行(1)」→(あ)→「開発者によるテスト」→「ソースコードのリポジトリへのアップロード」(プラットフォーム G の列へ矢印)。プラットフォーム G:「コンパイルの実行(2)」(注1付き)→(い)→「開発リーダーによるレビュー」→「テスト環境用ソースコードへの反映」→「テスト環境へのデプロイ」(テスト環境の列へ矢印)。テスト環境:「機能テストの実行」→「本番環境用ソースコードへの反映」→「本番環境へのデプロイ」(本番環境の列へ矢印)。本番環境:「リリース及び本番への切替え」。注1)複数の開発者が変更した内容を反映させた上でコンパイルエラーが出ないことを確認している。
図3 システム S の開発フロー

ガイドラインを用いた点検の後,L 社のサプライチェーンリスク対策は強化された。

出題趣旨(IPA)

サプライチェーンの侵害事例は増えてきており,サプライチェーンに関する脅威はIPA“情報セキュリティ10大脅威”の組織編にも7年連続で含まれている。本問では,システム開発企業でのサプライチェーンリスク対策についての取組を題材として,サプライチェーンリスク対策に関する知識や,侵害発生時の対策検討の能力を問う。

採点講評(問全体・IPA)

問1では,サプライチェーンセキュリティを題材に,委託先の管理及び開発プロセスにおけるセキュリティ対策について出題した。全体として正答率は平均的であった。

設問と解答例

設問1(1)

本文中の下線①について,どのような考え方か答えよ。

解答例

  • 企画・設計工程からセキュリティ対策を組み込むという考え方
解説

本文の根拠

〔ガイドラインの作成〕

①セキュリティ・バイ・デザインの考え方を一部取り入れました

表1 項番9

システムの仕様,機能を精査し,不要な機能やセキュリティ上の欠陥がないことを設計書から確認すること。

セキュリティ・バイ・デザインとは,システムをリリースしてから欠陥を直すのではなく,企画・設計の段階からセキュリティ対策を組み込んでおく考え方である。表1の項番9は,開発が進んでからではなく設計書の段階で不要な機能やセキュリティ上の欠陥がないかを確認する項目になっており,この考え方を反映している。

B さんは,ガイドライン案の工程を調達・開発・リリース・デプロイ・運用に分け,各工程にセキュリティ対策の項目を割り当てている。項番9のように,実装より前の設計段階で欠陥の有無を確認する項目を置いたことが,“一部取り入れました”という発言の根拠になる。

字数制限は無いので,“企画・設計工程から”という時期と,“セキュリティ対策を組み込む”という内容の両方を残して答える。

設問1(2) 50字以内

本文中の下線②について,明記すべき事項を,50字以内で答えよ。

解答例

  • L社の業務委託先に要求する対策と同等のセキュリティ対策を再委託先にも要求させること
解説

本文の根拠

〔ガイドラインの作成〕

②業務委託先が再委託を行う場合に備えて,L 社と業務委託先との間の契約書に明記すべき事項を具体的に示しておくとよいでしょう

表1 項番5

業務委託先でのセキュリティ管理に関する要件を,業務委託先との契約に含めること。

表1の項番5は,業務委託先に対するセキュリティ管理の要件を契約に含めることを求めているが,業務委託先がさらに別の会社(再委託先)に作業を委託した場合,その再委託先にまで同じ要件が及ぶ保証がない。D 氏は,再委託が行われる場合に備えて契約書に明記すべき事項を具体的に示すよう助言している。

L 社から業務委託先に要求しているセキュリティ対策と同じ水準の対策を,業務委託先から再委託先に対しても要求させることを契約書に明記しておけば,再委託先の段階でセキュリティ対策が緩んでしまうことを防げる。これは図1の項番4で N 社(委託先)との契約に“N 社が再委託を行わないこと”を明記している例とも対応する,再委託時の対策の作り方の一つである。

50 字に収めるには,“L 社が業務委託先に要求する対策と同等の対策”という比較の対象と,“再委託先にも要求させる”という行為の両方を残す。

設問2(1)

本文中の下線③について,影響を受けない配置方法を答えよ。

解答例

  • スクリプトPをダウンロードしておき,システムQのサーバ上に配置する方法
解説

本文の根拠

〔過去のインシデントの確認〕

スクリプト P は,T 社が運営するサーバ(以下,サーバ T という)に配置され,システム Q にアクセスした Web ブラウザがスクリプト P を都度読み込むようにシステム Q は構成されていました。ある日,サーバ T が乗っ取られてしまい,スクリプト P が改ざんされたことによって,システム Q への利用者のアクセスが悪意のある Web サイトにリダイレクトされてしまいました。

〔過去のインシデントの確認〕

③スクリプト P を利用していたシステムでもスクリプト P の配置方法が違えば,影響を受けなかったようですね

インシデントが起きた原因は,システム Q が自分のサーバではなく T 社のサーバ T からスクリプト P をその都度読み込む構成にしていたことにある。サーバ T が乗っ取られてスクリプト P が改ざんされると,その改ざんがそのままシステム Q の利用者に届いてしまう。

影響を受けない配置方法は,スクリプト P を外部のサーバから都度読み込むのではなく,あらかじめダウンロードしておいて自分(システム Q)のサーバ上に置き,そこから読み込ませる方法である。この場合はサーバ T が後から改ざんされても,システム Q が参照するのは自分のサーバに保存した時点のスクリプト P のままなので影響を受けない。

字数制限は無いので,“スクリプト P をダウンロードしておく”という取得の仕方と,“システム Q のサーバ上に配置する”という置き場所の両方を残して答える。

採点講評(IPA)

設問2(1)は,正答率がやや高かった。JavaScriptが正しく動作しない配置方法の解答が散見された。本文中で示されているシステム構成を理解した上で解答してほしい。

設問2(2)

本文中の下線④について,加えた変更を,具体的に答えよ。

解答例

  • スクリプトPを読み込む箇所をソースコードから削除する。
解説

本文の根拠

〔過去のインシデントの確認〕

古い Web ブラウザをサポートするための JavaScript(以下,スクリプト P という)を利用していました。

〔過去のインシデントの確認〕

Web ブラウザ開発元での古い Web ブラウザの公式サポートが終了していたことから,当社の対策としては,④システム Q のソースコードに変更を加えて,古い Web ブラウザのサポートを終了しました。

スクリプト P は,古い Web ブラウザをサポートするためだけに読み込んでいたものである。古い Web ブラウザの公式サポート自体が終了していたので,B さんはシステム Q 側で古い Web ブラウザのサポートをやめることにした。

古い Web ブラウザのサポートをやめれば,スクリプト P を読み込む必要そのものがなくなる。したがって加えた変更は,システム Q のソースコードからスクリプト P を読み込んでいる箇所を取り除くことである。

字数制限は無いので,“スクリプト P を読み込む箇所”をどこから“削除する”のかを,ソースコードという対象まで含めて具体的に答える。

設問2(3) 解答欄2つ

本文中の下線⑤について,修正した項番と修正内容を答えよ。

〔項番〕解答例

  • 1

〔修正内容〕解答例

  • 連携している外部サービスを管理対象に含める。
解説

本文の根拠

〔過去のインシデントの確認〕

いいえ,開発対象の SBOM 作成機能で SBOM を作成していたとしても,スクリプト P は SBOM に含まれないので,インシデントは防げなかったでしょう。

本文冒頭

開発対象の SBOM 作成機能はプラットフォーム G 上のリポジトリサーバ内のソースコード及びライブラリをシステム構成要素として一覧化する。

表1 項番1

システムに関連する情報資産を,業務委託先と共同で利用するものも含めて一覧化し,管理すること。一覧化すべき情報資産は,次のとおりである。・サーバ・ネットワーク機器・ソースコード・リポジトリ内のライブラリ。

SBOM 作成機能はリポジトリサーバ内のソースコードとライブラリしか一覧化しないので,サーバ T のように外部で運用され,実行時に都度読み込まれるスクリプト P は SBOM に現れない。つまり SBOM を作っても,このインシデントで使われたような外部スクリプトの存在には気付けない。

ガイドライン案で情報資産を一覧化する項番1を見ると,対象はサーバ・ネットワーク機器・ソースコード・リポジトリ内のライブラリに限られており,スクリプト P のように外部のサービスから読み込んで使う資産が抜けている。そこで B さんは,項番1に「連携している外部サービスを管理対象に含める。」という一文を加え,スクリプト P のような外部提供のスクリプトも一覧化の対象にした。

修正した項番は1で,修正内容は外部サービスを管理対象に含めることである。

設問3(1) 解答欄4つ

表2中の [ ア ] 〜 [ エ ] に入れる適切な項番を答えよ。

〔ア〕解答例

  • 10

〔イ〕解答例

  • 4

〔ウ〕解答例

  • 5

〔エ〕解答例

  • 11
解説

本文の根拠

表2

工程 共通,項番1:システムに関連する情報資産を,業務委託先と共同で利用するものも含めて一覧化し,管理すること。

図1

10. 開発は,L 社内及びオフショア拠点で行い,次の LAN に接続した端末で実施する。

図1

踏み台サーバには,L 社,業務委託先など会社ごとに発行した共用アカウントでログインするが,ログインごとに,利用記録簿に記載する。

図1

4. 派遣元及び業務委託先との間では,L 社のセキュリティポリシーの順守とプロジェクトでのセキュリティルールの順守について契約書で定めている。

図1

5. 開発時に,要件定義段階での脅威モデリング及び設計段階での設計書の確認を行い,不要な機能やセキュリティ上の欠陥がないことを確認する。

図1

11. インシデント発生時に L 社のシステム S の担当者に連絡するための業務フローがインシデント対応手順書に定められており,システム S の担当者がインシデントのハンドリングを行う。

表2は,表1の各項番の対策状況を,図1の番号付き項目のどこを見れば確認できるかを突き合わせる表である。表1の項番2(アカウントの利用者を特定できるようにする)は,図1の項番10(踏み台サーバを会社ごとの共用アカウントでログインする)と対応し,そこから“共用アカウントを利用している”という問題点が出てくる。項番5(業務委託先との契約にセキュリティ要件を含める)は項番4(セキュリティポリシー順守を契約書で定めている)と,項番9(設計書から欠陥の有無を確認する)は項番5(要件定義・設計段階での確認)と,項番15(インシデント対応手順書の作成)は項番11(インシデント対応手順書に基づくハンドリング)とそれぞれ対応する。

したがって ア は10,イ は4,ウ は5,エ は11である。

表1の項番と図1の項番は数字がたまたま近いものもあるが,内容で対応づける必要がある点に注意する。

設問3(2) 解答欄3つ

表2中の a 〜 c に入れる適切な字句を答えよ。

〔a〕解答例

  • 開発環境の踏み台サーバで共用アカウントを利用している。

〔b〕解答例

  • 問題なし。

〔c〕解答例

  • 問題なし。
解説

本文の根拠

図1

踏み台サーバには,L 社,業務委託先など会社ごとに発行した共用アカウントでログインするが,ログインごとに,利用記録簿に記載する。

表1 項番2

各工程で利用するシステムのアカウントは,業務委託先を含めて必要な利用者にだけ発行すること。その際,責任追跡性を確保するためにアカウントの利用者を特定できるようにすること。

a は,表1の項番2「責任追跡性を確保するためにアカウントの利用者を特定できるようにすること」についての問題点である。図1の項番10では,踏み台サーバへのログインは会社ごとの共用アカウントで行い,ログインごとに利用記録簿へ記載するとしている。共用アカウントでは,ログインした個人までは特定できないので,責任追跡性の要件を満たしていない。

b,c はそれぞれ表1の項番9(設計書からの欠陥確認)と項番15(インシデント対応手順書の作成)に対応する図1の項番5,11の内容を確認したもので,どちらも図1の記載が表1の要求を満たしており問題は見当たらない。

a は“開発環境の踏み台サーバで共用アカウントを利用している。”という問題点を具体的に書く。b,c は該当する対策が実施できているので“問題なし。”と答える。

設問4

本文中の下線⑥について,脆弱性管理がしやすくなる理由を,具体的に答えよ。

解答例

  • 利用しているソフトウェアやそのバージョンが明確になり,脆弱性の影響有無を容易に把握できるから
解説

本文の根拠

〔SBOM についての確認〕

SBOM を利用すると,⑥将来,脆弱性管理がしやすくなります。

本文冒頭

開発対象の SBOM 作成機能はプラットフォーム G 上のリポジトリサーバ内のソースコード及びライブラリをシステム構成要素として一覧化する。

SBOM(Software Bill of Materials)は,ソフトウェアがどのソースコード・ライブラリから構成されているか,バージョンを含めて一覧化したものである。本文でも,SBOM 作成機能はリポジトリサーバ内のソースコード及びライブラリをシステム構成要素として一覧化すると説明されている。

新しい脆弱性が公表されたとき,自分たちのシステムがその脆弱性のあるソフトウェアやバージョンを使っているかどうかは,SBOM と突き合わせれば一つずつ確認できる。SBOM が無いと,どのシステムがどのライブラリをどのバージョンで使っているかを個別に調べる必要があり,影響の有無の把握に時間が掛かる。

C さんは現状,設計書でソフトウェア構成を把握できると考えていたが,設計書は更新が追い付かず実態とずれることがある。SBOM で機械的に一覧化しておけば,脆弱性が公表されるたびに,利用しているソフトウェアとバージョンを正確に照合できるようになる。

採点講評(IPA)

設問4は,正答率が平均的であった。脆弱性管理におけるSBOM利用の利点を問う問題であったが,SBOMの利用方法が説明できておらず,SBOMの定義を記載しただけの解答が散見された。各種ガイドラインで利用が推進されていく分野であるので,SBOMの利用の方法や目的を正確に理解してほしい。

設問5(1) 解答欄1つ

本文中の d に入れる適切な字句を,図2中の名称で答えよ。

〔d〕解答例

  • 踏み台サーバ
解説

本文の根拠

〔開発工程のセキュリティ対策についての確認〕

オフショア拠点から開発 LAN へのアクセスについては VPN-GW でアクセスログを取得できているものの,社内からのアクセスについては取得できていません。

図2

L3SW-1 は踏み台サーバに接続している。踏み台サーバは FW と L3SW-2 に接続している。

図1

テストなどのためにシステム S の開発系サーバがある LAN(以下,開発 LAN という)にアクセスする際には一旦,踏み台サーバにログインする。

図2の構成では,パートナー LAN・従業員 LAN(社内)からも,インターネット経由のオフショア拠点からも,開発 LAN(開発系サーバ)にアクセスするには必ず踏み台サーバを経由する。オフショア拠点からのアクセスは VPN-GW を通るので,そこでログインが取得できている。

社内からのアクセスは VPN-GW を経由しないので,VPN-GW のログインだけでは取得できない。しかし,社内・オフショア拠点のどちらからのアクセスも,開発 LAN に入る前には必ず踏み台サーバを通るので,踏み台サーバでログインを取得すれば,経路によらず全てのアクセスを記録できる。

d には,図2中の名称である“踏み台サーバ”が入る。

設問5(2) 解答欄2つ

本文中の下線⑦について,(あ),(い)で実行する利点を,それぞれ40字以内で答えよ。

〔(あ)〕解答例

  • ツールFで検知できるエラーをより早く発見することができる。

〔(い)〕解答例

  • CI/CDパイプラインの管理機能を使って自動実行することができる。
解説

本文の根拠

本文冒頭

プラットフォーム G 上のリポジトリサーバや開発者の端末にインストールして利用するツールであり,コンパイルエラーが解消されたソースコードに対してだけ正常な検査が可能である。

本文冒頭

プラットフォーム G の CI/CD パイプラインの管理機能で,ツール F でのチェックを自動的に行うようなワークフローを構成することができる。

図3

開発者の端末:「ソースコードの修正」→「コンパイルの実行(1)」→(あ)→「開発者によるテスト」→「ソースコードのリポジトリへのアップロード」

図3

プラットフォーム G:「コンパイルの実行(2)」(注1付き)→(い)→「開発リーダーによるレビュー」→「テスト環境用ソースコードへの反映」→「テスト環境へのデプロイ」

(あ)は,開発者の端末でコンパイルが通った直後,開発者が自分でテストを始める前の位置である。ここでツール F を実行すると,開発者は自分の変更をリポジトリにアップロードする前に,ツール F が検知できる不備に気付ける。問題が見つかればその場で直してからアップロードできるので,より早い段階でエラーを発見できる。

(い)は,プラットフォーム G 上で他の開発者の変更も取り込んだコンパイルが通った直後の位置である。プラットフォーム G の CI/CD パイプラインの管理機能を使えば,ここでのツール F の実行をワークフローとして自動化でき,開発者が手作業でツール F を実行し忘れる心配がない。

(あ)は開発者個人の早期発見という利点,(い)は自動実行という利点であり,着目点が異なるので別々に40字以内でまとめる。

採点講評(IPA)

設問5(2)は,正答率が低かった。SAST,DAST,IASTといった開発プロセスで活用するセキュリティテストツールについて,それぞれの特徴を理解してほしい。

出典:令和7年度 春期 情報処理安全確保支援士試験 午後 問1(表記を一部改変)

問2 脆弱性管理

脆弱性管理に関する次の記述を読んで,設問に答えよ。

M 社は,従業員 3,000 名の情報サービス業を営む企業である。ソフトウェアの開発・販売を行っており,自社ホームページのほか,販売したソフトウェアのサポート用 Web サイトなど複数の Web サイト(以下,Web サイトをサイトという)を保有している。M 社では,メンテナンスのために管理者が自宅や外出先からサイトにリモートアクセスする。セキュリティに関する問合せ窓口は,情報システム部が担当している。

M 社が保有するサイトのうち,重要なサイト(以下,重要サイトという)は,プラットフォームに対する脆弱性診断(以下,PF 診断という)及び Web アプリケーションプログラムに対する脆弱性診断(以下,Web アプリ診断といい,PF 診断と Web アプリ診断を併せて両診断という)を初回リリース前に実施するルールになっている。初回リリース後の両診断の実施については任意である。重要サイトの指定は,扱う情報の重要性,停止による影響などを勘案し,各サイトの所管部門が判断している。重要サイト以外のサイトに対する両診断の実施は任意である。

両診断は,情報システム部の選定した専門ベンダー P 社に依頼して実施,又は情報システム部の選定した脆弱性診断ツール(以下,診断ツールという)を用いて各サイト担当者が実施する。ただし,緊急の場合,情報システム部が実施することもある。P 社の Web アプリ診断は,脆弱性が実際に悪用できることを確認した上で報告してくれるので,評判がよい。

脆弱性は Critical,High,Medium,Low,None の5段階の深刻度レベルに分類される。P 社に依頼して診断を行う場合は,P 社から深刻度レベルの報告を受ける。深刻度レベルは,情報システム部が選定した診断ツールの場合は CVSS 基本値によって分類される。P 社の診断では,P 社が独自の知見で CVSS 基本値を基に値を変え,分類している。M 社では,深刻度レベルが High 以上の場合は速やかな修正を必須とし,それ以外は所管部門が対応要否を判断する。

〔脆弱性の報告〕

ある日,M 社のキャンペーンサイト X(以下,サイト X という)のキャンペーンページに SQL インジェクションの脆弱性が存在しているという指摘が問合せ窓口に報告された。報告内容についてサイト担当者に確認したところ,脆弱性が存在する可能性があるとの回答であった。サイト X は重要サイトに指定されていなかった。サイト X の仕様を図1に示す。

箇条書き。・Web サーバ,Web アプリケーションサーバ及びデータベース(以下,DB という)サーバから成る。・キャンペーン情報を DB サーバに格納している。・顧客情報は保有していない。・キャンペーンページの URL のクエリパラメータにコンテンツ番号が含まれている。URL 例:https://site-x.m-sha.co.jp/info?article=20250101・コンテンツ番号が DB サーバ上に存在しない場合,又は SQL が構文エラーになる場合は,“コンテンツがありません”というメッセージを返す。・Web アプリケーションプログラムにおいて,クエリパラメータ article の値は SQL での検索では数値型として扱われる。
図1 サイト X の仕様(抜粋)

情報システム部の E さんと J 課長は,報告の内容を確認するために,情報システム部が診断ツールを実行する旨をサイト X の担当者に伝えた。

Web アプリ診断用の診断ツールを該当ページに対して実行したところ,深刻度レベルが High の SQL インジェクションの脆弱性が検出された。SQL インジェクションの脆弱性検出時のクエリパラメータ及び応答を表1に示す。

クエリパラメータ,応答の2列の表。article=20250401:2025年4月1日のキャンペーンのコンテンツが返される。article=20250401':[ a ]。article=20250401'%20and%20'a'='a:[ b ]。article=20250401'%20and%20'a'='b:[ c ]。article=20250401%20and%201=0:[ d ]。article=20250401%20and%201=1:[ e ]。
表1 クエリパラメータ及び応答(概要)

E さんは,速やかにサイト担当者に連絡し,インターネットからサイト X にアクセスできないようネットワーク構成を変更した上で,該当するプログラムを修正するよう依頼した。これに対してサイト X の担当者は,“重要情報の漏えいなどの問題が発生することはない。DB には重要情報もない。サイト X にアクセスできないようにする必要はない。”と主張した。それに対して E さんは,“本脆弱性はブラインド SQL インジェクションの脆弱性に該当する。そのため,表1と同様の手法を用いることによって,DB のテーブル名が特定できることになる。”と説明した。E さんは,DB のテーブル名を使うと攻撃者が次にどのような攻撃を行えるかを説明し,対応する必要性を説いた。これを受け,迅速に対応が行われた。

〔脆弱性が存在していた状況の確認と一斉診断の実施〕

対応完了後,情報システム部では,公開サイトは全て重要サイトに指定するようにルールを変更することにした。同時に,M 社が保有する全ての公開サイトに対する一斉の両診断(以下,一斉診断という)を実施することにし,その診断を P 社に依頼した。診断対象サイトの情報を表2に示す。

サイト名,サイト特性,社外利用者向けアカウントの作成方法,1日当たりのアクセス数,顧客情報有無,停止による影響の6列の表。サイトA:EC サイト,利用者が作成,10,000,有,大。サイトB:業務サイト,管理者が発行,3,000,有,中。サイトC:情報提供サイト,なし,10,000,無,小。(中略)サイトZ:(省略)。
表2 診断対象サイトの情報

診断の結果,深刻度レベル High 以上の脆弱性が検出されたサイトが数サイトあり,Medium 以下の脆弱性が数十件検出されたサイトも多数あった。

サイトによっては,初回リリース時の両診断以降にアップデートや設定変更をしていないにもかかわらず,初回リリース時の両診断結果と今回の一斉診断結果が異なっている場合もあった。P 社の診断は,決められた手順に従って行い,診断結果は技術レビューを行うので,診断員による差異はほぼないと,E さんは P 社から聞いていた。また,初回リリース時の両診断では,サイトに不具合はなかったと報告を受けている。E さんが,改めて P 社に確認すると,診断結果が異なっていた要因は,f や g だった。これらのことから,E さんは初回リリース後も定期的な両診断が必要であると結論づけた。

〔PF 診断で検出された脆弱性〕

PF 診断で検出された脆弱性を表3に示す。

サイト名,脆弱性ID,脆弱性,深刻度レベル,CVSSv3基本値,補足の6列の表。サイトA,PA-1:SSL/TLS サーバの暗号強度が弱く,推奨されていない鍵交換をサポート,Medium,5.9,―。サイトB,PB-1:OpenSSH でリモートから認証なしに任意のコード実行が可能,High,8.1,CVE番号:CVE-20XX-XXXXX。サイトB,PB-2:管理者用の Web のログイン画面に認証試行が何回でも可能,Medium,5.3,―。サイトB,PB-3:SSL/TLS サーバの暗号強度が弱く,推奨されていない鍵交換をサポート,Medium,5.9,―。サイトC,PC-1:SSH 接続の安全性を低下させることが可能,Medium,5.9,CVE番号:CVE-20YY-YYYYY。サイトD,PD-1:(省略),High,7.2,―。サイトD,PD-2:(省略),Critical,9.8,―。サイトE,PE-1:(省略),Medium,6.5,―。
表3 PF 診断で検出された脆弱性(抜粋)

脆弱性 PA-1 と PB-3 について,CRYPTREC が作成し,IPA が発行している“TLS 暗号設定ガイドライン Ver.3.1.0”の“4. 推奨セキュリティ型の要求設定”には,表4に示す鍵交換におけるビットセキュリティの基準を満たすよう記載されていた。そのため,サイト A 及びサイト B は基準を満たす設定に変更することにした。

鍵交換プロトコル,基準の2列の表。ECDHE:[ h ]ビットセキュリティ以上を満たす[ i ]。DHE:[ j ]ビットセキュリティ以上を満たす[ k ]。
表4 鍵交換におけるビットセキュリティの基準

脆弱性 PB-1 は,管理者がメンテナンス用にリモートアクセスで使っている OpenSSH において検出された。OpenSSH では,ログインが一定時間内に成功しないと,認証試行のタイムアウト処理が実行される。脆弱性 PB-1 は,あるセキュリティベンダーの報告によると,認証試行のタイムアウト処理が同時に多数実行されると起き得る問題であり,認証試行の接続時間(LoginGraceTime)の設定が 120 秒の場合,その間に 100 件試行されると,OpenSSH のログに “Timeout before authentication” という認証タイムアウトのメッセージが多数出力され,3〜4時間で悪用に成功する可能性があるとのことだった。もしも,脆弱性を修正したバージョンの OpenSSH に更新できない場合には,次のいずれかを行う。

サイト B では,OpenSSH の更新を行った。

脆弱性 PB-2 は,送信元 IP アドレス制限が対策の一つだが現実的な運用が難しい。代わりの対策として,ログイン画面のアカウントロックがあるが,採用する場合はロック解除の運用方法や実装について検討が必要である。サイト B では,②アクセス元の PC を認証する対策を採用した。

〔Web アプリ診断で検出された脆弱性〕

Web アプリ診断で検出された脆弱性を表5に示す。

サイト名,脆弱性ID,脆弱性,深刻度レベル,CVSSv3基本値,補足の6列の表。サイトA,WA-1:本来閲覧できない画面を閲覧可能,Medium,4.3,補足:購入機能で,商品の詳細を閲覧するリクエストに含まれるパラメータ item の5桁の数字を変更することによって一般会員が本来閲覧できない商品の説明画面を閲覧できた。評価指標を次に示す。CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N。サイトB,WB-1:本来閲覧できない画面を閲覧可能,Medium,5.3,補足:管理者用アカウントでログインし,発注確認機能の URL(注1)を確認後,一般利用者アカウントでログインし直し,Web ブラウザのアドレスバーに当該 URL を入力することによって,管理者用の画面を閲覧できた。この画面では,他人の発注情報が全て閲覧できた。評価指標を次に示す。CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N。注1)https://site-b.m-sha.co.jp/administrator0001/order_history
表5 Web アプリ診断で検出された脆弱性(抜粋)
サイト名,脆弱性ID,脆弱性,深刻度レベル,CVSSv3基本値,補足の6列の表(続き)。サイトC,WC-1:OS コマンドインジェクション,Critical,9.8,補足:問合せフォームが直接シェルに入力値を渡す作りになっていて,任意の OS コマンドが実行できた。ただし,管理者権限が必要な操作はできなかった。
表5 Web アプリ診断で検出された脆弱性(抜粋)(続き)

脆弱性 WA-1 と WB-1 は,HTTP リクエストの内容を一部変更することによって本来閲覧できない画面を閲覧できるという点では同じであるが,評価指標の値が異なる。評価指標のうち,③ Attack Complexity(AC)の値はそれぞれ L と H であった。

脆弱性 WC-1 について,④管理者権限が必要な操作ができなかったのは,サイト C の仕様どおりであった。サイト C の仕様を図2に示す。

番号付きの箇条書き(1〜6)。1. Web サーバ及び Web アプリケーションサーバから成る。2. DB サーバとの連携はしていない。3. Web アプリケーションプログラムは,一般利用者権限の専用アカウントでプロセスを実行している。4. 問合せフォームに入力された値をメールコマンドで管理者宛てに送る。5. 問合せ内容がログに保存され,その中にメールアドレスなどの個人情報をもつ。6. ログには特定のアカウントだけがアクセスできる。
図2 サイト C の仕様(抜粋)

〔脆弱性評価方法の検討〕

一斉診断が一段落したところで,情報システム部は脆弱性管理についての課題を議論した。対応の要否判断が不適切であったサイトや対応が遅すぎたサイトがあったので,J 課長は,E さんに新たな脆弱性評価方法を検討するよう指示した。

はじめに E さんが調査したところ,IPA のホームページに“脆弱性対応におけるリスク評価手法のまとめ”というレポートが公開されていたので,これを参考にすることにした。E さんは,検討内容を J 課長に報告した。次は,その際の E さんと J 課長の会話である。

縦軸が EPSS 値(%,0〜100,しきい値Bの位置に破線),横軸が基本値(0.0〜10.0,しきい値Aの位置に破線)の領域図。しきい値Aとしきい値Bの破線で4領域に分かれ,右上(基本値がしきい値A以上,EPSS値がしきい値B以上)が領域I,右下(基本値がしきい値A以上,EPSS値がしきい値B未満)が領域II,左上(基本値がしきい値A未満,EPSS値がしきい値B以上)が領域III,左下(基本値がしきい値A未満,EPSS値がしきい値B未満)が領域IVである。注記 EPSS 値がしきい値 B の場合は,領域III又はIと,基本値がしきい値 A の場合は,領域I又はIIと考える。
図3 1次評価の領域図
領域と CVSSv3環境値(0〜3.9/4.0〜6.9/7.0〜8.9/9.0〜10.0)による対応優先度の表。領域I,III:0〜3.9はC,4.0〜6.9はB,7.0〜8.9はA,9.0〜10.0はS。領域II:0〜3.9はC,4.0〜6.9はC,7.0〜8.9はB,9.0〜10.0はA。S:即時対応,A:対応優先度高,B:対応優先度中,C:対応優先度低。
表6 対応優先度表

〔対応優先度評価の実施〕

E さんが2次評価を幾つか行った結果を表7及び表8に示す。

脆弱性ID,EPSS値(%),CVSSv3環境値,対応優先度の4行の表。PB-1:EPSS値39,環境値8.1,対応優先度[ m ]。PC-1:EPSS値96.54,環境値7.7,対応優先度[ n ]。PD-1:EPSS値0.0,環境値5.7,対応優先度[ o ]。PD-2:EPSS値2.6,環境値8.0,対応優先度[ p ]。PE-1:EPSS値8.7,環境値6.5,対応優先度[ q ]。
表7 PF 診断で検出された脆弱性に対する評価結果(抜粋)
脆弱性ID,EPSS値(%),CVSSv3環境値,対応優先度の4行の表。WA-1:EPSS値対象外,環境値5.0,対応優先度[ r ]。WB-1:EPSS値対象外,環境値7.1,対応優先度[ s ]。WC-1:EPSS値対象外,環境値9.8,対応優先度[ t ]。
表8 Web アプリ診断で検出された脆弱性に対する評価結果(抜粋)

この運用によって,脆弱性対応の優先度評価がサイト担当者によらず適切かつ迅速にできるようになった。

出題趣旨(IPA)

脆弱性対応の優先順位の判断は,脆弱性が悪用されることを防ぐために非常に重要である。本問では,公開サイトの脆弱性診断で検出された脆弱性を題材として,脆弱性の深刻度レベルと対応優先度を判断する能力及び対応を検討する能力を問う。

採点講評(問全体・IPA)

問2では,脆弱性管理を題材に,脆弱性,その深刻度レベル及び対応優先度について出題した。全体として正答率は平均的であった。

設問と解答例

設問1 解答欄5つ

表1中の a 〜 e に入れる応答を,解答群の中から選び,記号で答えよ。なお,解答は重複して選んでもよい。解答群:ア “コンテンツがありません”というメッセージが返される。,イ 2025年4月1日のキャンペーンのコンテンツが返される。,ウ サーバから応答が返されない。,エ 内部サーバエラーが返される。

〔a〕解答例

  • ア

〔b〕解答例

  • ア

〔c〕解答例

  • ア

〔d〕解答例

  • ア

〔e〕解答例

  • イ
解説

本文の根拠

図1

コンテンツ番号が DB サーバ上に存在しない場合,又は SQL が構文エラーになる場合は,“コンテンツがありません”というメッセージを返す。

図1

Web アプリケーションプログラムにおいて,クエリパラメータ article の値は SQL での検索では数値型として扱われる。

表1

article=20250401:2025年4月1日のキャンペーンのコンテンツが返される。

article は SQL 上で数値型として扱われるので,20250401' のように引用符(')を付け加えると,数値のリテラルとして構文が崩れ,SQL が構文エラーになる。図1のとおり,DB に該当がない場合と構文エラーの場合はどちらも同じ“コンテンツがありません”というメッセージになるので,a(20250401')だけでなく,引用符を使って and 条件を付け足した b('a'='a',常に真)と c('a'='b',常に真にならない)も,引用符の時点で構文が崩れて同じエラー応答になる。a,b,c はいずれも ア である。

d(20250401 and 1=0)と e(20250401 and 1=1)は引用符を使わず,article が数値のまま and 条件を続けているので,構文エラーにはならない。d は 1=0 が常に偽なので該当するコンテンツがなくなり,“コンテンツがありません”(ア)になる。e は 1=1 が常に真なので article=20250401 と同じ結果になり,2025年4月1日のキャンペーンのコンテンツが返される(イ)。

この d と e の違い(真の条件では普段どおりの応答,偽の条件では通常と異なる応答)が得られることが,ブラインド SQL インジェクションで真偽を判定する仕組みであり,E さんが本文で説明した“表1と同様の手法を用いることによって,DB のテーブル名が特定できる”の根拠にもなる。

採点講評(IPA)

設問1は,正答率が平均的であった。本文中で示されているWebサイトの仕様が考慮されていない解答が散見された。本文をよく読んで解答してほしい。

設問2 解答欄2つ

本文中の f,g に入れる適切な字句を,それぞれ20字以内で答えよ。

〔f〕解答例

  • 新たな脆弱性が発見されたこと

〔g〕解答例

  • リスクが変わったと評価し値を変えたこと

〔備考〕順不同

解説

本文の根拠

〔脆弱性が存在していた状況の確認と一斉診断の実施〕

サイトによっては,初回リリース時の両診断以降にアップデートや設定変更をしていないにもかかわらず,初回リリース時の両診断結果と今回の一斉診断結果が異なっている場合もあった。

〔脆弱性が存在していた状況の確認と一斉診断の実施〕

P 社の診断は,決められた手順に従って行い,診断結果は技術レビューを行うので,診断員による差異はほぼないと,E さんは P 社から聞いていた。

本文冒頭

P 社の診断では,P 社が独自の知見で CVSS 基本値を基に値を変え,分類している。

サイト側の設定やソフトウェアは変わっていないのに,P 社の診断結果だけが変わった理由を考える。診断員による差異はほぼないと分かっているので,残る理由はサイト側の変化ではなく,脆弱性そのものを取り巻く状況の変化である。

一つは,初回診断のあとで,それまで知られていなかった脆弱性が新たに発見され公表されたことである。新しい脆弱性は,対象のソフトウェアが変わっていなくても今回の診断で初めて検出される。もう一つは,P 社が独自の知見で CVSS 基本値を基に深刻度を変えて分類していると本文にあるとおり,既知の脆弱性でも P 社がリスクの評価をし直し,値(深刻度レベル)を変えたことである。

f,g はどちらを先に書いてもよい(順不同)。

設問3(1)

表4中の h 〜 k に入れる適切な字句の組合せを,解答群の中から選び,記号で答えよ。解答群:記号ア h=112,i=曲線,j=128,k=鍵長/記号イ h=112,i=直線,j=128,k=署名/記号ウ h=128,i=曲線,j=112,k=鍵長/記号エ h=128,i=直線,j=112,k=署名

解答例

  • ウ
解説

本文の根拠

〔PF 診断で検出された脆弱性〕

脆弱性 PA-1 と PB-3 について,CRYPTREC が作成し,IPA が発行している“TLS 暗号設定ガイドライン Ver.3.1.0”の“4. 推奨セキュリティ型の要求設定”には,表4に示す鍵交換におけるビットセキュリティの基準を満たすよう記載されていた。

表4

ECDHE:hビットセキュリティ以上を満たすi。DHE:jビットセキュリティ以上を満たすk。

CRYPTREC の“TLS暗号設定ガイドライン”の推奨セキュリティ型は,鍵交換アルゴリズムの危殆化を防ぐために必要な強度を,ビットセキュリティ(総当たり攻撃に必要な計算量を2のべき乗で表した値)で定めている。ECDHE は楕円曲線を使う鍵交換なので,128 ビットセキュリティ以上を満たす曲線(例えば P-256 などの曲線)を選ぶことで強度を確保する。DHE は有限体上の鍵交換なので,112 ビットセキュリティ以上を満たす鍵長(例えば 2048 ビット以上の素数)を選ぶことで強度を確保する。

ECDHE と DHE では,同じビットセキュリティを得るために必要なパラメータの種類が異なり,ECDHE は曲線の種類,DHE は鍵長(ビット数)で調整する。また,推奨される下限の値も,ECDHE の128ビットと DHE の112ビットでは異なる。

したがって h は128,i は曲線,j は112,k は鍵長であり,記号 ウ が正しい組合せである。

設問3(2)

本文中の下線①について,検知する方法を,具体的に答えよ。

解答例

  • OpenSSHのログに認証タイムアウトのメッセージの出力が多数あったらサイト担当者に電子メールでアラートを送る。
解説

本文の根拠

〔PF 診断で検出された脆弱性〕

あるセキュリティベンダーの報告によると,認証試行のタイムアウト処理が同時に多数実行されると起き得る問題であり,認証試行の接続時間(LoginGraceTime)の設定が 120 秒の場合,その間に 100 件試行されると,OpenSSH のログに “Timeout before authentication” という認証タイムアウトのメッセージが多数出力され,3〜4時間で悪用に成功する可能性があるとのことだった。

この脆弱性の悪用では,短時間に大量の認証試行を同時に行い,LoginGraceTime の間に多数のタイムアウトを発生させる。そのとき OpenSSH のログには “Timeout before authentication” という認証タイムアウトのメッセージが通常よりも多数出力されることが分かっている。

したがって,サイト担当者が攻撃を早期に検知するには,このログを継続的に監視し,短時間に認証タイムアウトのメッセージが多数出力された場合に気付けるようにすればよい。具体的には,ログを監視する仕組みを作り,しきい値を超えたらサイト担当者へ電子メールでアラートを送るようにする。

攻撃そのものを防ぐ対策(アップデートやタイムアウトの設定変更)とは別に,“検知する方法”を問われているので,ログの異常を監視して知らせる仕組みを具体的に答える。

設問3(3) 20字以内

本文中の下線②について,採用した対策を,20字以内で答えよ。

解答例

  • クライアント認証を行う。
解説

本文の根拠

〔PF 診断で検出された脆弱性〕

脆弱性 PB-2 は,送信元 IP アドレス制限が対策の一つだが現実的な運用が難しい。代わりの対策として,ログイン画面のアカウントロックがあるが,採用する場合はロック解除の運用方法や実装について検討が必要である。サイト B では,②アクセス元の PC を認証する対策を採用した。

表3

PB-2:管理者用の Web のログイン画面に認証試行が何回でも可能

脆弱性 PB-2 は,管理者用ログイン画面に認証試行の回数制限がなく,パスワードを何度でも試せてしまう問題である。送信元 IP アドレス制限は管理者がリモートアクセスする場所が一定しないため運用が難しく,アカウントロックは正規の管理者を誤って締め出したときの解除作業が課題になる。

サイト B で採用した“アクセス元の PC を認証する対策”は,あらかじめ許可した PC にだけ証明書を配布し,ログイン画面にたどり着く前に PC 自体を認証する,クライアント認証(クライアント証明書による認証)である。証明書を持たない PC からはログイン画面へのアクセス自体ができなくなるので,パスワードの総当たり試行そのものができなくなる。

20 字に収めるには,“クライアント認証を行う”という対策の名称を端的に答える。

設問4(1) 解答欄2つ

本文中の下線③について,脆弱性 WA-1 の AC が L と評価された評価根拠と脆弱性 WB-1 の AC が H と評価された評価根拠を,それぞれ具体的に答えよ。

〔WA-1〕解答例

  • パラメータitemの値が容易に推測できること

〔WB-1〕解答例

  • 発注確認機能のURLが推測困難であること
  • 発注確認機能のURLを入手する必要があること
解説

本文の根拠

表5

WA-1:本来閲覧できない画面を閲覧可能,Medium,4.3,補足:購入機能で,商品の詳細を閲覧するリクエストに含まれるパラメータ item の5桁の数字を変更することによって一般会員が本来閲覧できない商品の説明画面を閲覧できた。

表5

WB-1:本来閲覧できない画面を閲覧可能,Medium,5.3,補足:管理者用アカウントでログインし,発注確認機能の URL(注1)を確認後,一般利用者アカウントでログインし直し,Web ブラウザのアドレスバーに当該 URL を入力することによって,管理者用の画面を閲覧できた。

表5(続き)注1

https://site-b.m-sha.co.jp/administrator0001/order_history

CVSS v3 の Attack Complexity(AC)は,攻撃者が攻撃を成立させるために,攻撃者の制御が及ばない特別な条件を満たす必要があるかどうかを表す指標で,必要なければ L(Low),必要なら H(High)になる。

WA-1 は,パラメータ item の値が5桁の数字というだけで,総当たりや値を一つずつ変えていくだけで本来閲覧できない画面に行き着ける。特別な事前情報を入手する必要がないので AC は L である。WB-1 は,閲覧に必要な URL のパス(“administrator0001”)が推測しにくい値になっており,しかも管理者用アカウントで一度ログインするなどしてこの URL をあらかじめ入手しておく必要がある。攻撃者の努力だけでは成立させにくい条件が必要なので AC は H である。

WA-1 は“パラメータ item の値が容易に推測できること”,WB-1 は“発注確認機能の URL が推測困難であること”又は“発注確認機能の URL を入手する必要があること”が評価根拠になる。

採点講評(IPA)

設問4(1)は,正答率が低かった。CVSSv3の評価指標のうち,Attack Complexity(AC)の攻撃条件の複雑さについて出題をしたが,多くの受験生がC(Confidentiality Impact)の機密性への影響として解答していた。各評価指標の意味を理解して解答してほしい。

設問4(2)

本文中の下線④について,該当するサイト C の仕様を,図2中の項番から選び,答えよ。

解答例

  • 3
解説

本文の根拠

表5(続き)

WC-1:OS コマンドインジェクション,Critical,9.8,補足:問合せフォームが直接シェルに入力値を渡す作りになっていて,任意の OS コマンドが実行できた。ただし,管理者権限が必要な操作はできなかった。

図2

3. Web アプリケーションプログラムは,一般利用者権限の専用アカウントでプロセスを実行している。

WC-1 は OS コマンドインジェクションにより任意の OS コマンドが実行できる脆弱性であるが,管理者権限が必要な操作まではできなかった。OS コマンドは,それを実行している Web アプリケーションプログラムのプロセスの権限で動くので,そのプロセスがどの権限のアカウントで動いているかによって,できる操作の範囲が決まる。

図2の項番3には,Web アプリケーションプログラムは一般利用者権限の専用アカウントでプロセスを実行していると書かれている。管理者権限を持たないアカウントで動いている以上,OS コマンドインジェクションが成功しても,実行できるコマンドは一般利用者権限の範囲に限られ,管理者権限が必要な操作はできない。これはサイト C がもともとそのように設計されていたこと(仕様どおり)を示している。

したがって該当する項番は3である。

設問5(1) 解答欄2つ

本文中の下線⑤について,現状値は手間が掛かる理由と EPSS 値は手間が掛からない理由を,それぞれ40字以内で答えよ。

〔現状値〕解答例

  • 攻撃コードなどの情報を多くの公開サイトにある情報から判断する必要があるから

〔EPSS値〕解答例

  • FIRSTのサイトで公開されている値をそのまま使えばよいから
解説

本文の根拠

〔脆弱性評価方法の検討〕

1次評価では,基本値と Exploit Prediction Scoring System(EPSS)値を用います。EPSS 値の代わりに CVSSv3 の現状値を用いる方法もありますが,⑤現状値と EPSS 値を比べると,現状値は手間が掛かり,EPSS 値は手間が掛からないとされています。

CVSSv3 の現状値(Temporal Score)は,攻撃コードの成熟度や対策情報の有無といった現状評価基準の指標から算出する。これらの指標の値は自動では決まらないので,評価者が攻撃コードの公開状況や対策の有無を,複数の公開サイト(脆弱性情報サイトやエクスプロイトデータベースなど)の情報を集めて自分で判断しなければならず,手間が掛かる。

一方 EPSS 値は,FIRST(脆弱性対応に関する国際団体)が日々算出して無償で公開しているスコアで,評価者はその値をそのまま使えばよく,自分で情報を集めて判断する必要がない。

現状値は“攻撃コードなどの情報を多くの公開サイトにある情報から判断する必要があるから”手間が掛かり,EPSS 値は“FIRST のサイトで公開されている値をそのまま使えばよいから”手間が掛からない。

採点講評(IPA)

設問5(1)は,正答率が低かった。CVSSv3の現状値とEPSS値を比較して,手間の掛かる理由と掛からない理由を出題した。CVSSv3の現状値とEPSS値の利用手順を理解していない解答が散見された。それぞれの利用方法を具体的に理解してほしい。

設問5(2)

本文中の l に入れる適切な字句を,15字以内で答えよ。

解答例

  • l EPSS値の監視
解説

本文の根拠

〔脆弱性評価方法の検討〕

あとは EPSS 値を用いた脆弱性評価について,しきい値の見直し以外にも,l を継続的に行うことで被害を防ぐ助けになるだろう。

〔脆弱性評価方法の検討〕

領域IVは対応不要とし,領域I〜IIIを2次評価の対象にします。

EPSS 値は固定ではなく,攻撃コードの公開や悪用の広まりに応じて日々変動する。1次評価の時点では領域IV(対応不要)に区分された脆弱性でも,その後 EPSS 値が上がってしきい値 B を超えれば,領域III に移って2次評価の対象にすべきものに変わる可能性がある。

J 課長が“しきい値の見直し以外にも”と言っているとおり,しきい値という基準自体を変える話とは別に,既に1次評価を済ませた脆弱性についても EPSS 値を継続的に確認し直す運用が必要になる。

15 字に収めるには,“EPSS 値の監視”のように,何を継続的に見るのかを端的に答える。

設問5(3) 30字以内

本文中の下線⑥について,妥当である理由を,30字以内で答えよ。

解答例

  • 診断時に実際に悪用できることを確認しているから
解説

本文の根拠

本文冒頭

P 社の Web アプリ診断は,脆弱性が実際に悪用できることを確認した上で報告してくれるので,評判がよい。

〔脆弱性評価方法の検討〕

⑥ P 社の Web アプリ診断であれば,見つかった脆弱性の EPSS 値は,しきい値 B よりも高いとみなすのが妥当である

EPSS 値は,実際に悪用される確率の高さを表す指標である。本来は公表された脆弱性について FIRST が統計的に算出するものだが,Web アプリ診断で見つかる脆弱性には個別の EPSS 値は存在しない。

しかし,P 社の Web アプリ診断は,見つけた脆弱性について実際に悪用できることを確認した上で報告するという特徴がある。診断の時点で既に実際に悪用できることが確認されているなら,その脆弱性が悪用される確率はほぼ100%とみなしてよく,わずか1%のしきい値 B を上回っていると考えるのは妥当である。

30 字に収めるには,“診断時に実際に悪用できることを確認している”という P 社の診断の性質を残す。

設問6 解答欄8つ

表7中及び表8中の m 〜 t に入れる対応優先度を答えよ。

〔m〕解答例

  • A

〔n〕解答例

  • A

〔o〕解答例

  • C

〔p〕解答例

  • A

〔q〕解答例

  • B

〔r〕解答例

  • B

〔s〕解答例

  • A

〔t〕解答例

  • S
解説

本文の根拠

〔脆弱性評価方法の検討〕

しきい値 A は 7.0 に,しきい値 B は1%に設定しようと考えています。

〔脆弱性評価方法の検討〕

⑥ P 社の Web アプリ診断であれば,見つかった脆弱性の EPSS 値は,しきい値 B よりも高いとみなすのが妥当である

表6

領域I,III:0〜3.9はC,4.0〜6.9はB,7.0〜8.9はA,9.0〜10.0はS。領域II:0〜3.9はC,4.0〜6.9はC,7.0〜8.9はB,9.0〜10.0はA。

表7

PB-1:EPSS値39,環境値8.1,対応優先度m。PC-1:EPSS値96.54,環境値7.7,対応優先度n。PD-1:EPSS値0.0,環境値5.7,対応優先度o。PD-2:EPSS値2.6,環境値8.0,対応優先度p。PE-1:EPSS値8.7,環境値6.5,対応優先度q。

表8

WA-1:EPSS値対象外,環境値5.0,対応優先度r。WB-1:EPSS値対象外,環境値7.1,対応優先度s。WC-1:EPSS値対象外,環境値9.8,対応優先度t。

まず表7・表8の各脆弱性が1次評価で領域I〜IIIのどれに区分されるかを,表3・表5の基本値としきい値 A(7.0),EPSS 値としきい値 B(1%)で判定する。基本値がしきい値 A 以上かつ EPSS 値がしきい値 B 以上なら領域I,基本値が A 以上で EPSS 値が B 未満なら領域II,基本値が A 未満で EPSS 値が B 以上なら領域IIIである。PB-1(基本値8.1,EPSS 39%)は領域I,PC-1(基本値5.9,EPSS 96.54%)は領域III,PD-1(基本値7.2,EPSS 0.0%)は領域II,PD-2(基本値9.8,EPSS 2.6%)は領域I,PE-1(基本値6.5,EPSS 8.7%)は領域IIIになる。Web アプリ診断の WA-1〜WC-1 は,下線⑥のとおり EPSS 値がしきい値 B より高いとみなすので,基本値だけで領域IかIIIかが決まる。WA-1(基本値4.3),WB-1(基本値5.3),WC-1(基本値9.8)はいずれも基本値がしきい値 A 未満又は以上のどちらでも,EPSS が B 以上という前提なので領域I又はIIIになる。

区分した領域と表7・表8の環境値を,表6の対応優先度表に当てはめる。PB-1(領域I,環境値8.1)は7.0〜8.9の行で A,PC-1(領域III,環境値7.7)も領域I,IIIの行なので7.0〜8.9で A,PD-1(領域II,環境値5.7)は領域IIの行の4.0〜6.9で C,PD-2(領域I,環境値8.0)は7.0〜8.9で A,PE-1(領域III,環境値6.5)は領域I,IIIの行の4.0〜6.9で B になる。WA-1(環境値5.0)は領域I,IIIの行の4.0〜6.9で B,WB-1(環境値7.1)は同じ行の7.0〜8.9で A,WC-1(環境値9.8)は同じ行の9.0〜10.0で S になる。

したがって,m は A,n は A,o は C,p は A,q は B,r は B,s は A,t は S である。

出典:令和7年度 春期 情報処理安全確保支援士試験 午後 問2(表記を一部改変)

問3 スマートフォン用アプリケーションプログラムの開発

スマートフォン用アプリケーションプログラムの開発に関する次の記述を読んで,設問に答えよ。

A 社は,撮影機器の販売や写真のプリントサービスを全国に 200 店舗で展開する従業員 2,000 名の企業である。実店舗の運営に加え,インターネットを介して撮影機器の販売を行う EC サイト事業を有している。このたび,会員がスマートフォン(以下,スマホという)用アプリケーションプログラム(以下,スマホ用アプリケーションプログラムをスマホアプリという)を通じて,写真入りのカレンダーなどのグッズ(以下,フォトグッズという)を注文できるサービス(以下,E サービスという)を新規に開始することになった。E サービス用スマホアプリ(以下,F アプリという)は国内で流通する主要なスマホ OS である OS-α と OS-β の過去5年以内に正式リリースされたバージョンをサポートする。

〔E サービスの説明〕

E サービスは,F アプリとサーバサイドのシステム群で構成される。F アプリは,インターネットを介して E サービス用 Web サーバ(以下,A 社 Web サーバといい,FQDN は www.a-sha.co.jp とする)及び大手クラウドサービスプロバイダ C 社のクラウドストレージサービス(以下,C サービスという)との間で HTTPS を使用して通信する。フォトグッズの作成に使う写真は,F アプリから C サービスにアップロードする。E サービスのネットワーク構成を図1に,機能概要を図2に,F アプリの画面構成を図3に,フォトグッズの注文処理の流れを図4に,C サービスの仕様を図5に示す。

スマホの枠の中に F アプリがあり,インターネットを介して A 社の枠(FW,A 社 Web サーバ,DB サーバが直列に接続)及び C サービスに接続している。凡例:FW:ファイアウォール,DB サーバ:データベースサーバ。
図1 E サービスのネットワーク構成(概要)
番号付きの箇条書き(1〜4)。1. 新規会員登録機能:E サービスを利用するための新規会員登録を行う。2. ログイン機能:会員 ID とパスワードでログインする。ログインした会員には,認証トークン(注1)が払い出され,ログアウトするまでの間,F アプリに保存される。認証トークンは,A 社 Web サーバ上で会員のセッションを識別するために使用する推測困難な値である。3. フォトグッズ注文機能:F アプリ上でフォトグッズを注文する。ログイン済み会員だけが利用できる。なお,フォトグッズは,指定した A 社の実店舗で受け取ることができる。4. キャンペーン案内機能:キャンペーンの Web ページ(以下,キャンペーンページという)を表示する。ログイン済み会員だけが利用できる。なお,キャンペーンに応募することによって,フォトグッズの割引などに利用可能なクーポンを入手できる。会員には,電子メール(以下,メールという)などを通じて,期間限定のキャンペーンを案内する。キャンペーンの内容は,2週間ごとに更新される。注1)認証トークンは,ログイン後に F アプリが A 社 Web サーバに HTTP リクエストを送信する際,Authorization ヘッダーに指定される。
図2 E サービスの機能概要(抜粋)
初期画面,ログイン画面,ホーム画面,キャンペーン案内画面の4つの画面からなる画面遷移図。初期画面:「新規会員登録へ」ボタン,「ログイン画面へ」ボタン(押下でログイン画面へ)。ログイン画面:会員ID 入力欄,パスワード入力欄,「ログイン」ボタン(適切な値を入力してボタン押下でホーム画面へ)。ホーム画面:「フォトグッズ注文」ボタン,「キャンペーン案内」ボタン(押下でキャンペーン案内画面へ),「ログアウト」ボタン。キャンペーン案内画面:キャンペーンページ(破線の枠)。凡例:→:ボタンが押下されたときの画面遷移,->:適切な値を入力してボタンが押下されたときの画面遷移。注記 キャンペーンページは HTML 形式で作成し,A 社 Web サーバにアップロードしておく。
図3 F アプリの画面構成(抜粋)
F アプリ,A 社 Web サーバ,C サービスの3者のシーケンス図。F アプリから A 社 Web サーバへ「フォトグッズを注文」。A 社 Web サーバの自己処理(あ)。A 社 Web サーバの自己処理「注文内容を DB サーバに登録し,注文番号を採番」。A 社 Web サーバの自己処理(い)。A 社 Web サーバから F アプリへ「注文番号を通知」。F アプリの自己処理(う)。F アプリの自己処理「写真を“nnnnnnnn.zip”というファイル名で ZIP 形式に圧縮」。F アプリの自己処理(え)。F アプリから C サービスへ「nnnnnnnn.zip をアップロード」。C サービスの自己処理(お)。C サービスから F アプリへ「アップロード成功を通知」。注記 “nnnnnnnn”は注文番号であり,00000001 から始まる十進数の連番である。
図4 フォトグッズの注文処理の流れ
1. サービスの概要 (1) C サービスはマルチテナントのストレージサービスである。テナントの管理権限をもつ利用者(以下,管理者という)が作成したストレージに対し,テナントの作成したシステム(以下,利用システムという)からファイルのアップロードやダウンロード(以下,アップロード,ダウンロードを併せてファイル操作という)を行う。(2) 管理者は,ストレージの作成時に任意のストレージ名を設定する。ストレージを作成すると,C サービスからアクセスキーが発行される。アクセスキーはストレージごとに異なる40字の英数字である。(3) 利用システムは,ストレージ上のファイルを URL のパスで指定する。例えば,ストレージ“●●●”上のファイル“▲▲▲”をファイル操作する際は,“/●●●/▲▲▲”を指定する。ファイルのアップロードには HTTP の PUT メソッドを,ファイルのダウンロードには GET メソッドを用いる。(4) 利用システムは,次の方式a又は方式bでファイル操作を行う。2. 方式a (1) 説明:アクセスキーを HTTP リクエストの Authorization ヘッダーに指定する方式である。利用システムは,C サービスから発行されたアクセスキーを用いることによって,アクセスキーに対応するストレージに格納された全てのファイルに対するファイル操作が可能となる。Authorization ヘッダーに正しいアクセスキーが指定されていない場合,ファイル操作は拒否される。
図5 C サービスの仕様(抜粋)
(2) 使用例:アクセスキー“○○○”を指定して,ストレージ“abc”上のファイル“xyz”をダウンロードする際に送信する HTTP リクエストの例を次に示す。リクエストライン:GET /abc/xyz HTTP/1.1 ヘッダーフィールド:Host: storage.c-sha.jp Authorization: Bearer ○○○。3. 方式b (1) 説明:有効期限(Expires)と署名値(Signature)をクエリパラメータとして付加した URL(以下,署名付きURLという)を用いて,特定のファイルに対するファイル操作を一時的に可能とする方式である。ここで,Expires パラメータに指定する有効期限は UNIX タイムスタンプ形式である。署名値の生成は次のように行う。(ⅰ)GET又はPUTから始まり,パス中の“/●●●/▲▲▲?Expires=【有効期限】”で終わる文字列を署名対象文字列とする。(ⅱ)アクセスキーを秘密鍵とする。(ⅲ)署名対象文字列と秘密鍵から HMAC-SHA256 値を求める。(ⅳ)(ⅲ)で求めた値を base64url エンコードする。利用システムは,署名付き URL を生成し,ファイル操作を許可する利用者に伝える。伝えられた利用者は,署名付き URL を指定して HTTP リクエストを送ることによって,ファイル操作ができる。有効期限が切れた場合やサーバ側で署名値の検証が失敗した場合は,ファイル操作が拒否される。(2) 使用例:ストレージ“abc”上のファイル“xyz”をダウンロードする場合で,かつ,署名値が“△△△”の場合の HTTP リクエストの例を次に示す。xyz は,日本時間の 2025 年5月 30 日0時0分0秒,つまり UNIX タイムスタンプで 1748530800 までの間,ダウンロードが許可されている。リクエストライン:GET /abc/xyz?Expires=1748530800&Signature=△△△ HTTP/1.1 ヘッダーフィールド:Host: storage.c-sha.jp
図5 C サービスの仕様(抜粋)(続き)

E サービスで使う C サービスのストレージ名は,e-service である。F アプリでは,方式a を利用する。アクセスキーは,鍵長 256 ビットの共通鍵と AES-CBC アルゴリズムで暗号化し,F アプリ内にリソースとして保存する。C サービスのストレージ名並びに AES-CBC の共通鍵及び初期ベクトルは,F アプリのコード中に定数として定義する。

〔キャンペーン案内機能の実装方法〕

F アプリでのキャンペーンページの表示には,WebView という仕組みを用いる。WebView は,スマホ OS の提供する仕組みであり,スマホアプリの画面の一部に Web ページを表示させることができる。キャンペーンページの HTML は,WebView を用いて,F アプリの画面上に表示させる。

会員に送るキャンペーン案内のメール本文中には,F アプリでキャンペーンページを表示するための URL(以下,F-URL という)を含める。会員がメールアプリから F-URL を開くと,F アプリが起動し,WebView 上にキャンペーンページが表示される。キャンペーンページからキャンペーンに応募する際の会員のセッションの識別には,F アプリに保存されている認証トークンを用いる。OS-α では,キャンペーンページが表示された後に,WebView の機能によってキャンペーンページ上の ECMAScript コードが F アプリの getToken 関数を呼び出す。これによって,認証トークンが F アプリからキャンペーンページに引き渡される。OS-β では別の方式で同様の機能を実現する。キャンペーンページ上の ECMAScript コードを図6に示す。

const token = f_app.getToken();
図6 キャンペーンページ上の ECMAScript コード

キャンペーンページ以外から getToken 関数を悪用されないように,getToken 関数の内部では,図7のように呼出し元の Web ページの URL を確認する。

フローチャート。開始 → 判定「呼出し元の Web ページの URL の先頭は“https://www.a-sha.co.jp”か。」→ Yes なら「認証トークンを返す。」→ 終了。No なら「空文字列,つまり長さ0の文字列を返す。」→ 終了。
図7 getToken 関数の処理の流れ

F-URL の例を図8に示す。

f-app://campaign?url=https://www.a-sha.co.jp/campaign/□□□。注記1 “f-app”はカスタム URL スキームである。注記2 “□□□”はキャンペーンページの URL のパスである。
図8 F-URL の例

〔F アプリの脆弱性診断結果〕

A 社は,セキュリティ専門会社の D 社に依頼して F アプリの脆弱性診断を実施した。その結果,表1に示す脆弱性が検出された。

脆弱性,脆弱性の概要,解説の3列の表。脆弱性1,サーバ証明書の検証不備がある。,解説:F アプリは,HTTPS でサーバと接続する際,サーバ証明書の検証エラーがあっても無視し,通信を続行する。そのため,HTTPS 通信の内容が盗聴されたり,改ざんされたりするおそれがある。盗聴されると,①盗聴した内容からアクセスキーとストレージ名を攻撃者が取得するおそれがある。(省略)脆弱性2,C サービスのアクセスキーの保護に不備がある。,解説:②攻撃者が F アプリから平文のアクセスキーとストレージ名を取得できる。そのアクセスキーを用いて,③攻撃者が E サービスの全利用者の写真を不正にダウンロードするおそれがある。(省略)脆弱性3,F-URL の処理にアクセス制御の不備がある。,解説:F-URL の url クエリパラメータに,④細工した URL が指定されることによって,攻撃者の Web サイトにアクセスしてしまうおそれがある。また,攻撃者が会員の認証トークンを取得するおそれがある。(省略)
表1 脆弱性診断結果(抜粋)

〔脆弱性1〕

F アプリの開発チームに所属する U さんは,D 社の S さんが開催する診断結果報告会に参加した。

U さんは,脆弱性1が作り込まれた経緯を説明した。U さんによると,F アプリと A 社 Web サーバとの間の通信内容に異常がないかどうかを調査するために,開発用 PC で通信解析ツールを利用した。この通信解析ツールはプロキシサーバとして動作する。このツールを利用すると,F アプリでは,サーバ証明書の検証エラーが発生し,F アプリと A 社 Web サーバとの間の通信が中断されてしまった。そこで,インターネット上のある記事でエラーが発生しても通信を続行する方法が紹介されていたのを参考にして,F アプリのコードを変更したということであった。

この通信解析ツールを利用し,“https://www.a-sha.co.jp/campaign/□□□”にアクセスした際のレイヤー4〜7の通信フローの例を図9に示す。

スマホ,通信解析ツール,A 社 Web サーバの3者のシーケンス図。スマホ―通信解析ツール間:「TCP の3ウェイハンドシェイク」(双方向)。スマホから通信解析ツールへ「[ a ]を送信」。通信解析ツールからスマホへ「[ b ]を送信」。スマホから通信解析ツールへ「[ c ]を送信」。通信解析ツールの自己処理「⑤サーバ証明書を生成(注1)」。通信解析ツールからスマホへ,次の順にまとめて送信:(1)[ d ] (2) Encrypted Extensions (3)[ e ] (4)[ f ] (5)[ g ](この一連が TLS ハンドシェイクの範囲)。スマホから通信解析ツールへ「[ g ]を送信」。スマホから通信解析ツールへ「[ h ]を送信」。通信解析ツール―A 社 Web サーバ間:「TCP の3ウェイハンドシェイク」(双方向)。通信解析ツール―A 社 Web サーバ間の自己処理「左記の TLS ハンドシェイクと同様のフロー」。通信解析ツールから A 社 Web サーバへ「[ h ]を送信」。A 社 Web サーバから通信解析ツールへ「[ b ]を送信」。通信解析ツールからスマホへ「[ b ]を送信」。注記 通信解析ツールのプライベート IP アドレスは,○○○.○○○.○○○.○○○とする。注1)通信解析ツールは,自身のプライベート認証局機能を用いる。
図9 通信解析ツールを利用した際の通信フローの例(抜粋)

U さんは,通信解析ツールを利用してテストを行う際も通信を正常に続行させる方法をチーム内で話し合った。その結果,今後,開発用のスマホに⑥必要な設定を行うことにした。加えて,OS-α ではテストを行う際だけその設定を有効化するように,F アプリの中にも設定を追加した。

〔脆弱性2〕

脆弱性2への対応について,S さんからは方式bを利用し,その際に署名付き URL の生成を図4中の i の時点で行ってはどうかとの提案があった。U さんは S さんの提案を了承した。

〔脆弱性3〕

次は,脆弱性3についての U さんと S さんの会話である。

A 社は,検出された脆弱性を修正し,E サービスの提供を開始した。

出題趣旨(IPA)

JPCERTコーディネーションセンター及びIPAが運営する脆弱性対策情報ポータルサイト“JVN(Japan Vulnerability Notes)”には,国内企業が開発したスマートフォンアプリケーションプログラムの脆弱性が公表されている。本問では,スマートフォン用アプリケーションプログラムの脆弱性を題材として,脆弱性への対策の能力を問う。

採点講評(問全体・IPA)

問3では,スマートフォン用アプリケーションプログラム(以下,スマホアプリという)を題材に,脆弱性,それを悪用した攻撃手法及びその対策について出題した。全体として正答率はやや低かった。

設問と解答例

設問1(1)

表1中の下線①について,アクセスキーを取得する方法を,具体的に答えよ。

解答例

  • Cサービスに送られたHTTPリクエストのAuthorizationヘッダーから取り出す。
解説

本文の根拠

表1 脆弱性1

盗聴されると,①盗聴した内容からアクセスキーとストレージ名を攻撃者が取得するおそれがある。

図5

アクセスキーを HTTP リクエストの Authorization ヘッダーに指定する方式である。

F アプリは方式aを利用しており,C サービスにファイル操作を依頼する HTTP リクエストの Authorization ヘッダーに,アクセスキーをそのまま指定して送信する。脆弱性1は,サーバ証明書の検証エラーを無視して通信を続行してしまう不備なので,攻撃者は通信経路に割り込んで HTTPS 通信の内容を盗聴できる。

盗聴できれば,F アプリが C サービス宛てに送る HTTP リクエストもそのまま見えるので,その Authorization ヘッダーからアクセスキーを読み取れる。ストレージ名も同じリクエストの URL のパスに含まれているので,併せて取得できる。

したがって,アクセスキーを取得する方法は,C サービスに送られた HTTP リクエストの Authorization ヘッダーから取り出すことである。

設問1(2)

表1中の下線②について,アクセスキーを取得する方法を,具体的に答えよ。

解答例

  • Fアプリを解析し,暗号化されたアクセスキー並びに共通鍵及び初期ベクトルを入手し,暗号化されたアクセスキーをAES-CBCで復号する。
解説

本文の根拠

〔E サービスの説明〕

アクセスキーは,鍵長 256 ビットの共通鍵と AES-CBC アルゴリズムで暗号化し,F アプリ内にリソースとして保存する。C サービスのストレージ名並びに AES-CBC の共通鍵及び初期ベクトルは,F アプリのコード中に定数として定義する。

表1 脆弱性2

②攻撃者が F アプリから平文のアクセスキーとストレージ名を取得できる。

アクセスキーは暗号化して F アプリ内にリソースとして保存されているが,復号に使う AES-CBC の共通鍵と初期ベクトルは,同じ F アプリのコード中に定数として定義されている。F アプリは利用者のスマホに配布される実行ファイルなので,攻撃者も同じファイルを入手して解析できる。

攻撃者は配布された F アプリを解析(デコンパイルなど)することで,暗号化されたアクセスキーのリソースと,コード中に定義された AES-CBC の共通鍵・初期ベクトルの両方を入手できる。暗号化に使った鍵と初期ベクトルが分かれば,誰でも同じ手順でアクセスキーを復号できてしまう。

したがって,F アプリを解析して暗号化されたアクセスキー並びに共通鍵及び初期ベクトルを入手し,暗号化されたアクセスキーを AES-CBC で復号する方法になる。

設問1(3)

表1中の下線③について,ダウンロードする方法を,具体的に答えよ。

解答例

  • ファイル名に含まれる注文番号を00000001から順に増やしてダウンロードを試行する。
解説

本文の根拠

図4

写真を“nnnnnnnn.zip”というファイル名で ZIP 形式に圧縮

図4

“nnnnnnnn”は注文番号であり,00000001 から始まる十進数の連番である。

図5

利用システムは,C サービスから発行されたアクセスキーを用いることによって,アクセスキーに対応するストレージに格納された全てのファイルに対するファイル操作が可能となる。

表1 脆弱性2

③攻撃者が E サービスの全利用者の写真を不正にダウンロードするおそれがある。

脆弱性2でアクセスキーを取得すると,そのアクセスキーに対応するストレージ(e-service)に格納された全てのファイルに対してファイル操作ができる。写真のファイル名は,00000001から始まる十進数の連番である注文番号を使った“nnnnnnnn.zip”という単純な形式である。

したがって攻撃者は,盗んだアクセスキーを使い,ファイル名の注文番号部分を00000001から1ずつ増やしながら次々にダウンロードを試行すれば,他の利用者の写真を含めてストレージ上の全てのファイルを機械的にダウンロードできる。

したがって,ファイル名に含まれる注文番号を00000001から順に増やしてダウンロードを試行する方法になる。

採点講評(IPA)

設問1(3)は,正答率が低かった。クラウドストレージサービスのアクセスキーを不正利用することによって,ストレージ上の全利用者の写真をダウンロードする具体的な方法を問う問題であったが,抽象的な解答が散見された。設問文をよく読んで解答してほしい。

設問1(4)

表1中の下線④について,攻撃者の Web サイトにアクセスさせることができるように細工した URL の例を,攻撃者が取得したドメイン名を k-sha.co.jp とした場合で答えよ。

解答例(3通り)

解説

本文の根拠

図8

f-app://campaign?url=https://www.a-sha.co.jp/campaign/□□□

〔キャンペーン案内機能の実装方法〕

キャンペーンページ以外から getToken 関数を悪用されないように,getToken 関数の内部では,図7のように呼出し元の Web ページの URL を確認する。

表1 脆弱性3

F-URL の url クエリパラメータに,④細工した URL が指定されることによって,攻撃者の Web サイトにアクセスしてしまうおそれがある。

F-URL は会員へのメール本文に含める URL で,F アプリはこの url クエリパラメータの値をそのまま WebView で開く。url の値が正規のキャンペーンページであるかどうかを確認する仕組みは,getToken 関数の内部,つまりページが表示された後に JavaScript から呼び出されたときにしか働かない。F アプリが WebView を開く時点では,url の値がどんなサイトを指していても確認されない。

したがって,攻撃者は F-URL の url パラメータに自分の Web サイト(k-sha.co.jp)の URL をそのまま指定するだけで,会員を自分のサイトへアクセスさせることができる。見た目を本物に似せたいなら,www.a-sha.co.jp をサブドメインの一部として含めたり(“www.a-sha.co.jp.k-sha.co.jp”),ユーザー情報部分に含めたり(“[email protected]”)するが,WebView が開く時点では確認されないので,単に“https://k-sha.co.jp/”を指定するだけでも成立する。

答えは,“https://www.a-sha.co.jp.k-sha.co.jp/”,“https://[email protected]/”,“https://k-sha.co.jp/”のいずれかでよい。

設問2(1)

図9中の下線⑤について,サーバ証明書の Subject Alternative Name の値を,具体的に答えよ。

解答例

  • www.a-sha.co.jp
解説

本文の根拠

〔脆弱性1〕

この通信解析ツールを利用し,“https://www.a-sha.co.jp/campaign/□□□”にアクセスした際のレイヤー4〜7の通信フローの例を図9に示す。

図9 注1

通信解析ツールは,自身のプライベート認証局機能を用いる。

通信解析ツールはプロキシサーバとして動作し,スマホから見て www.a-sha.co.jp と通信しているように振る舞う(中間者として割り込む)。そのため,スマホに提示するサーバ証明書は,自身のプライベート認証局の機能を使ってその場で生成する。

TLS のサーバ証明書には,その証明書がどのホスト名に対して有効かを示す Subject Alternative Name(SAN)が含まれる。スマホはアクセス先のホスト名 www.a-sha.co.jp と証明書の SAN を照合して正当性を確認しようとするので,通信解析ツールが生成する証明書の SAN には,アクセス先と同じ www.a-sha.co.jp を設定しておく必要がある。

したがって,SAN の値は www.a-sha.co.jp である。

設問2(2) 解答欄8つ

図9中の a 〜 h に入れる適切な字句を,解答群の中から選び,記号で答えよ。解答群:ア Certificate,イ Certificate Verify,ウ Client Hello,エ CONNECT ○○○.○○○.○○○.○○○:443 HTTP/1.1,オ CONNECT www.a-sha.co.jp:443 HTTP/1.1,カ Finished,キ GET /campaign/□□□ HTTP/1.1,ク HTTP ステータスコード 101(Switching Protocols),ケ HTTP ステータスコード 200(OK),コ Server Hello

〔a〕解答例

  • オ

〔b〕解答例

  • ケ

〔c〕解答例

  • ウ

〔d〕解答例

  • コ

〔e〕解答例

  • ア

〔f〕解答例

  • イ

〔g〕解答例

  • カ

〔h〕解答例

  • キ
解説

本文の根拠

図9

スマホから通信解析ツールへ「aを送信」。通信解析ツールからスマホへ「bを送信」。スマホから通信解析ツールへ「cを送信」。

図9

次の順にまとめて送信:(1)d (2) Encrypted Extensions (3)e (4)f (5)g

図9

スマホから通信解析ツールへ「gを送信」。スマホから通信解析ツールへ「hを送信」。

図9

通信解析ツールから A 社 Web サーバへ「hを送信」。A 社 Web サーバから通信解析ツールへ「bを送信」。

通信解析ツールは明示的なプロキシとして動作するので,スマホはまず TCP の3ウェイハンドシェイクのあとに HTTP の CONNECT メソッドでトンネルの確立を要求する。a は“CONNECT www.a-sha.co.jp:443 HTTP/1.1”(オ),それに対する b は確立成功を示す“HTTP ステータスコード200(OK)”(ケ)である。

トンネルが確立すると,その中で TLS 1.3 のハンドシェイクが始まる。c はクライアントからの最初のメッセージである Client Hello(ウ)である。通信解析ツールは下線⑤でサーバ証明書を生成したあと,Server Hello(d,コ),Encrypted Extensions,Certificate(e,ア),Certificate Verify(f,イ),サーバの Finished(g,カ)をまとめて送信する(TLS 1.3 では Server Hello 以降の一連のメッセージが1回でまとめて送られる)。スマホはこれを受けて,自分の Finished(同じく g,カ)を送り返し,ハンドシェイクを完了させる。

ハンドシェイクが終わって暗号化チャネルが確立すると,スマホは h として実際の HTTP リクエスト“GET /campaign/□□□ HTTP/1.1”(キ)を送る。通信解析ツールは A 社 Web サーバとの間でも同様に TCP 接続と TLS ハンドシェイクを行った上で,この h を中継し,A 社 Web サーバからの応答 b(200 OK)をスマホへそのまま中継する。

設問2(3)

本文中の下線⑥について,設定の内容を,具体的に答えよ。

解答例

  • 通信解析ツールのプライベート認証局のルート証明書をインストールし,信頼設定を行う。
解説

本文の根拠

図9 注1

通信解析ツールは,自身のプライベート認証局機能を用いる。

〔脆弱性1〕

このツールを利用すると,F アプリでは,サーバ証明書の検証エラーが発生し,F アプリと A 社 Web サーバとの間の通信が中断されてしまった。そこで,インターネット上のある記事でエラーが発生しても通信を続行する方法が紹介されていたのを参考にして,F アプリのコードを変更したということであった。

通信解析ツールが生成するサーバ証明書は,世の中の Web ブラウザや OS があらかじめ信頼している公的な認証局ではなく,ツール自身のプライベート認証局が発行したものである。スマホの OS はこのプライベート認証局を知らないので,証明書の検証エラーになっていた。

本来の対処は,サーバ証明書の検証そのものを無視するようにアプリを作ることではなく,開発用のスマホに通信解析ツールのプライベート認証局のルート証明書をインストールし,信頼する認証局として設定することである。こうすれば,テストのときだけ通信解析ツールの証明書を正当なものとして検証でき,検証を無視する作り(脆弱性1の原因)を本番のコードに残さずに済む。

したがって,開発用のスマホに行う設定は,通信解析ツールのプライベート認証局のルート証明書をインストールし,信頼設定を行うことである。

採点講評(IPA)

設問2(3)は,正答率が低かった。プライベート認証局のルート証明書を端末にインストールすることによって,サーバ証明書の検証エラーを解消させる方法を問う問題であった。同様の方法は,ネットワーク機器のTLSインスペクション機能などでも利用されるので,理解してほしい。

設問3

本文中の i に入れる記号を,図4中の(あ)〜(お)から選び,答えよ。

解答例

  • i (い)
解説

本文の根拠

〔脆弱性2〕

脆弱性2への対応について,S さんからは方式bを利用し,その際に署名付き URL の生成を図4中の i の時点で行ってはどうかとの提案があった。

図4

A 社 Web サーバの自己処理「注文内容を DB サーバに登録し,注文番号を採番」。A 社 Web サーバの自己処理(い)。A 社 Web サーバから F アプリへ「注文番号を通知」。

図5

有効期限(Expires)と署名値(Signature)をクエリパラメータとして付加した URL(以下,署名付きURLという)を用いて,特定のファイルに対するファイル操作を一時的に可能とする方式である。

方式bの署名付き URL は,ファイルのパス(ストレージ名とファイル名)を含む文字列から署名値を計算して作る。写真のファイル名は注文番号を使った“nnnnnnnn.zip”なので,署名付き URL を作るには,まず注文番号が決まっている必要がある。

図4では,A 社 Web サーバが注文内容を DB サーバに登録して注文番号を採番した直後が(い)であり,その後に「注文番号を通知」が続く。この時点で注文番号(=アップロード先のファイル名)が確定しているので,A 社 Web サーバはここで署名付き URL を生成し,注文番号の通知と合わせて F アプリに渡せる。(あ)は注文番号が決まる前なのでファイル名を確定できず,(う)(え)は F アプリ側の処理であり,秘密鍵であるアクセスキーを使う署名の計算をクライアント側で行うことになってしまう。

したがって i は(い)である。

採点講評(IPA)

設問3は,正答率が平均的であった。署名付きURLの適切な生成場所を解答させる問題であったが,攻撃者による解析が容易なスマホアプリ上という解答が散見された。秘密情報の処理をサーバ上で完結させ安全を確保する実装は,クライアントサーバ型でも採用される基本的な方法なので,理解してほしい。

設問4(1) 20字以内

本文中の下線⑦について,問題点を,20字以内で答えよ。

解答例

  • URLを確認する手段がない。
解説

本文の根拠

〔脆弱性3〕

⑦フィッシングサイトにアクセスしてしまっても気付くことができないという F アプリの仕様上の問題点が残ります

Web ブラウザでは,アドレスバーに今表示しているページの URL が表示されるので,利用者はアクセス先のドメインがいつもと違うことに気付いて,フィッシングサイトであることを疑える。

F アプリは WebView を使ってキャンペーンページをアプリの画面の一部に表示するだけで,アドレスバーのように URL を表示する手段を持たない。そのため,図7の処理を修正して認証トークンの漏えいを防げたとしても,WebView に表示されているページが本物かどうかを利用者自身が確認するすべがない。

20 字に収めるには,“URL を確認する手段がない”という,アドレスバーに相当するものが F アプリにないという点を端的に答える。

設問4(2)

本文中の下線⑧について,実装する機能を,具体的に答えよ。

解答例

  • WebViewを呼び出す前に,URLの先頭がhttps://www.a-sha.co.jp/であるかを検証する。
解説

本文の根拠

〔脆弱性3〕

U さん:対策として,図7の処理を修正します。

〔脆弱性3〕

U さん:はい。図7の処理の修正に加えて,⑧フィッシングサイトにアクセスできないようにする機能を実装します。

図7

判定「呼出し元の Web ページの URL の先頭は“https://www.a-sha.co.jp”か。」

図7の getToken 関数の確認は,WebView にページが表示され,そのページの JavaScript が getToken を呼び出した時点で初めて働く。つまり,フィッシングサイトが WebView に表示されてしまったあとの話であり,認証トークンの漏えいは防げても,フィッシングサイト自体の表示は防げない。

そこで U さんは,図7の処理の修正に加えて,WebView を呼び出す前の段階,つまり F-URL の url パラメータを受け取った時点で,その値が正規のキャンペーンページを指しているかどうかを検証する機能を実装する。検証の方法は,図7の getToken 関数と同じく,URL の先頭が“https://www.a-sha.co.jp/”であるかどうかを確認すればよい。

この検証に失敗した場合は WebView 自体を開かないようにすれば,フィッシングサイトへのアクセスそのものを防げる。

出典:令和7年度 春期 情報処理安全確保支援士試験 午後 問3(表記を一部改変)

問4 IT資産管理及び脆弱性管理

IT資産管理及び脆弱性管理に関する次の記述を読んで,設問に答えよ。

V 社は,従業員 3,000 名の製造業である。東京に本社,大阪,名古屋,福岡に支社がある。V 社は,J 事業部,K 事業部,情報システム部(以下,情シ部という),総務部,経理部などから成る。

V 社の社内システム及びネットワークの運用並びに情報セキュリティ管理は,情シ部の B 部長と S 主任を含む8名の部員が担当している。V 社のネットワーク構成を図1に示す。

V 社本社の枠の中に,DMZ(破線の枠:DNS キャッシュサーバ,権威 DNS サーバ,公開 Web サーバ,プロキシサーバ,メールサーバが L2SW に接続),サーバセグメント(破線の枠:会計システム,人事システム,ファイルサーバが UTM に接続),PC セグメント(破線の枠,UTM に接続)がある。DMZ の L2SW とサーバセグメントの UTM は接続している。UTM はインターネットに接続している。インターネットには V 社データセンター(UTM 経由でデータセンターセグメントに接続)と,複数の V 社支社(それぞれ UTM 経由で工場セグメントと PC セグメントに接続,UTM と工場セグメントの間は直結もある)が接続している。凡例:L2SW:レイヤー2スイッチ,メール:電子メール,UTM:統合脅威管理。
図1 V 社のネットワーク構成

公開 Web サーバでは,V 社製品のキャンペーンなどを紹介している。V 社本社と各支社及び V 社データセンターの間は UTM の VPN 機能を使用して通信を行っている。各支社には,UTM を除いてインターネットからアクセス可能な IT 機器はない。

V 社の IT 資産管理,ドメイン名及び IP アドレスの管理,導入ソフトウェア(以下,ソフトウェアを SW という)の管理並びに脆弱性管理の現状を表1に示す。

項目,状況の2列の表。項目「IT 資産管理」:状況1. IT 資産管理台帳に対して,IT 資産の登録,更新及び削除を行う。2. IT 資産管理台帳は,全社で共有されている。3. インターネットからアクセス可能な全ての IT 資産を公開 IT 資産と定義する。4. IT 資産管理台帳の管理項目には,資産 ID,資産名称,取得金額,管理部門名,管理者名,公開 IT 資産かどうかの区分,及びその他特記事項を含める。また,公開 IT 資産の場合はグローバル IP アドレス(以下,GIP という)(注1)及びドメイン名も含める。5. IT 資産管理台帳への登録は次のように行っている。(1) 情シ部が購入する IT 資産は,情シ部が IT 資産管理台帳に登録する。(2) 事業部が V 社データセンター又は V 社 DMZ にサーバを設置する場合は,情シ部に設置申請し,承認を得た後に設置する。情シ部は承認後 IT 資産管理台帳に登録する。(3) 事業部が他社データセンター,クラウドサービス又はレンタルサービスを契約して,サーバなどを利用する場合については,IT 資産管理台帳に登録していない。6. IT 資産は,年1回の棚卸しで管理部門が現物確認する。その際に,管理部門が IT 資産管理台帳を更新する。IT 資産の廃棄は管理部門が実施し,その際に,管理部門が IT 資産管理台帳を更新する。項目「ドメイン名及び IP アドレスの管理」:状況1. V 社データセンター及び V 社本社で使用する IP アドレス及びドメイン名の管理は,次のように行っている。(1) 情シ部が,“v-sha.co.jp”というドメイン名(以下,V 社のドメイン名という)をレジストラの W 社から取得し,V 社データセンター,V 社 DMZ などにある公開 IT 資産に使用している。ドメイン名の使用料は情シ部が支払っている。JPRS が管理しているドメイン名の登録者情報の組織名に V 社を,担当者情報の部署名に情シ部を,担当者名に S 主任を登録している。(2) GIP は,ISP の R 社から割り当てられている。GIP の使用料は,情シ部が回線使用料と併せて R 社に支払っている。JPNIC の登録者情報の組織名に V 社を,担当者情報の部署名に情シ部を,担当者名に S 主任を登録している。(3) 事業部が V 社データセンター又は V 社 DMZ にサーバなどを設置する場合は,情シ部に IP アドレス使用申請を行う。(4) 事業部が V 社のドメイン名を使用する場合は,情シ部にドメイン使用申請を行う。この際,情シ部は,必要な DNS レコードを登録している。2. 事業部が他社データセンター,クラウドサービス又はレンタルサービスを契約し,新たなドメイン名を登録してサーバを利用する場合は,次のように行っている。(1) GIP は,各サービス会社から割り当てられたものを使用している。(2) ドメイン名は,各事業部が取得している。なお,使用するドメイン名は全て,トップレベルドメインが“.jp”のドメインを使用している。
表1 V 社の IT 資産管理,ドメイン名及び IP アドレスの管理,導入 SW の管理並びに脆弱性管理の現状
項目,状況の2列の表(続き)。項目「導入 SW の管理」:状況1. PC に導入する SW は,IT 資産管理ツール(以下,AM ツールという)で管理しており,IT 資産管理台帳には登録せず,PC の“資産 ID”を AM ツールに入力して管理している。2. ビジネス上,重要なサーバに導入する SW は,AM ツールで管理している。ビジネス上,重要ではないサーバに導入する SW は,主なものを IT 資産管理台帳の“その他特記事項”に記入している。項目「脆弱性管理」:状況1. サーバに導入した SW の脆弱性情報は,情シ部が脆弱性のニュースを毎日見て確認している。2. 情シ部が,脆弱性のニュースで話題になった脆弱性情報全てを全部門に連絡している。3. 連絡を受けた各部門が取捨選択し,必要に応じて対応している。注1)インターネットから当該 IT 資産にアクセスする時の GIP である。
表1 V 社の IT 資産管理,ドメイン名及び IP アドレスの管理,導入 SW の管理並びに脆弱性管理の現状(続き)

最近,次のようなサイバー攻撃のニュースが報道された。

これらを受けて,V 社の経営層は,V 社でも対策が必要だと考え,対策の検討と実施を情シ部に指示した。(2)については,V 社でも,CDN 事業者のサービスを利用して Web サーバを立ち上げてキャンペーンを行った後,CDN サービスを解約した経緯があったので,緊急に確認した。その結果,問題があることが分かり,①図1中のサーバの設定を変更した。この事態も踏まえて,公開 IT 資産管理及び脆弱性管理を見直すことにした。

〔公開 IT 資産管理及び脆弱性管理の目標の設定〕

情シ部の B 部長と S 主任は,まず,公開 IT 資産管理の現状を分析し,公開 IT 資産管理及び脆弱性管理の主な目標を表2にまとめた。

目標,内容の2列の表。K-1:IT 資産管理台帳に公開 IT 資産を漏れなく登録する。具体的には,次のようなケースの登録漏れをなくす。(1) 事業部がクラウドサービスを契約して利用している公開 IT 資産(省略)。K-2:情シ部が,サーバの導入 SW を一元管理する。K-3:重要な脆弱性を事業部が修正したかどうかを情シ部が確認できるようにする。K-4:利用が終了した公開 IT 資産について,必要な措置を漏れなく行う。
表2 公開 IT 資産管理及び脆弱性管理の主な目標(抜粋)

〔目標 K-1 の実現〕

まず,目標 K-1 について検討を行い,各事業部への未登録の公開 IT 資産の調査依頼を図2にまとめた。

次の未登録の公開 IT 資産を調査し,その一覧を回答すること。・クラウドサービスを契約して利用している公開 IT 資産。・[ a ]公開 IT 資産。・[ b ]公開 IT 資産。
図2 事業部への調査依頼

次は,目標 K-1 の実現に関する B 部長と S 主任の会話である。

検索キーワード,検索可能な情報の2列の表。組織名(注1):登録されているドメイン名。ドメイン名:組織名,ドメイン名の担当者識別番号(注2),ドメイン名を管理するネームサーバ名(注3),登録年月日,接続年月日,最終更新日時など。ネームサーバ名:ネームサーバの IP アドレス,登録年月日,最終更新日時など。ドメイン名の担当者識別番号(注2):ドメイン名の担当者名,メールアドレス,ドメイン名の部署名,電話番号など。注1)検索キーワードとして入力した文字列が“組織名”とマッチした検索結果が全て得られる。注2)一部の“.jp”ドメインの場合だけ検索可能である。注3)セカンダリ DNS などが設置されている場合は,複数得られる。
表3 X サービスで検索可能な情報(抜粋)
検索キーワード,検索可能な情報の2列の表。GIP:組織名,GIP の担当者識別番号,ネームサーバ名,割当て年月日,返却年月日,最終更新日時など。GIP の担当者識別番号:GIP の担当者名,メールアドレス,GIP の部署名,電話番号など。
表4 Y サービスで検索可能な情報(抜粋)
検索キーワード,検索可能な情報の2列の表。ドメイン名,GIP,又は組織名:GIP,GIP 割当て元の事業者名,FQDN,位置情報(国名,都市名,緯度・経度),ポート番号,OS,応答メッセージ情報(注1)。注記1 検索キーワードとして入力した文字列が,“ドメイン名”とマッチした検索結果が全て得られる。注記2 検索キーワードとして入力した文字列が,“GIP”とマッチした検索結果が全て得られる。注記3 検索キーワードとして入力した文字列が,“ドメイン名を取得した組織名”又は“GIP を取得した組織名”とマッチした検索結果が全て得られる。注1)製品名やバージョン情報,デフォルトパスワードの使用などである。
表5 Z サービスで検索可能な情報(抜粋)
手順1:[ あ ]サービスを用い,検索キーワードとして[ d ]を入力して,検索し,検索結果として[ e ]及び[ f ]を得る。手順2-1:手順1の結果を基に,[ い ]サービスを用い,検索キーワードとして[ g ]を指定して,検索し,検索結果として[ g ]の組織名及び[ g ]の[ h ]を得る。手順2-2:手順2-1の結果を基に,[ い ]サービスを用い,検索キーワードとして[ g ]の[ h ]を指定して,検索し,検索結果として[ g ]の部署名及び[ g ]の担当者名を得る。手順3-1:手順1の結果を基に,[ う ]サービスを用い,検索キーワードとして[ f ]を指定して,検索し,検索結果として[ f ]の組織名及び[ f ]の[ h ]を得る。手順3-2:手順3-1の結果を基に,[ う ]サービスを用い,検索キーワードとして[ f ]の[ h ]を指定して,検索し,検索結果として[ f ]の部署名及び[ f ]の担当者名を得る。手順4:得られた検索結果から F リストをまとめる。注記1 手順2-1〜3-2は,手順1で得られた検索結果のうち,“.jp”ドメインのものについて,それぞれ行う。注記2 手順4では,F リストの作成に必要な検索結果だけを選択する。
図3 F リストの作成手順

〔V 社の管理すべき IT 資産の確認と管理の強化〕

事業部の提出した未登録の公開 IT 資産一覧と S 主任の調査結果を突合したところ,幾つか F リストだけにあるもの(以下,調査漏れという)が見つかった。次は,B 部長と S 主任の会話である。

結果項番,GIP,GIP の部署名,ドメイン名の組織名,FQDN の5列の表。結果1:GIP(省略),GIP の部署名 V 社 G 事業部,ドメイン名の組織名 V 社,FQDN sub1.v-sha-g.jp。結果2:GIP(省略),GIP の部署名 V 社 H 部,ドメイン名の組織名 P 協議会,FQDN(省略)。
表6 調査漏れのリスト(抜粋)

〔脆弱性管理の改善〕

次に,目標 K-2 及び目標 K-3 に対する実現方法を検討した。目標 K-2 については,S 主任が必要なルールを決めた。次は,目標 K-3 の実現方法についての B 部長と S 主任の会話である。

さらに,目標 K-4 について,公開 IT 資産の利用終了時に行うべき措置を S 主任がまとめた。

経営層に対応策を説明し,了承を得た。その後,B 部長と S 主任が作成したルールに従って,V 社の公開 IT 資産管理及び脆弱性管理の運用が開始された。

出題趣旨(IPA)

企業で利用しなくなったのに残っていたドメインや公開されたままになっていたWebサーバを悪用するサイバー攻撃が多発している。本問では,ある企業でのIT資産管理及び脆弱性管理を題材として,未把握の公開IT資産を発見し,管理するマネジメント能力を問う。

採点講評(問全体・IPA)

問4では,IT資産管理と脆弱性管理を題材に,アタックサーフェスマネジメント(ASM)について出題した。全体として正答率は平均的であった。

設問と解答例

設問1 解答欄2つ

本文中の下線①について,設定を変更したサーバを,図1中から一つ選び,サーバ名を答えよ。また,その設定の変更内容を,30字以内で具体的に答えよ。

〔サーバ名〕解答例

  • 権威DNSサーバ

〔変更内容〕解答例

  • 終了したサブドメインのCNAMEレコードを削除する。
解説

本文の根拠

ニュース(2)

(2) 著名な会社が1年前,CDN 事業者のサービスを利用して Web サーバを立ち上げ,1か月間商品のキャンペーンを行った。この Web サーバには,その会社のサブドメインを使用した。キャンペーン後すぐに,CDN サービスを解約したが,今になって,そのサブドメインが海外の会社の広告サイトとして使われていることが発覚した。

本文

(2)については,V 社でも,CDN 事業者のサービスを利用して Web サーバを立ち上げてキャンペーンを行った後,CDN サービスを解約した経緯があったので,緊急に確認した。その結果,問題があることが分かり,①図1中のサーバの設定を変更した。

表1 ドメイン名及び IP アドレスの管理

事業部が V 社のドメイン名を使用する場合は,情シ部にドメイン使用申請を行う。この際,情シ部は,必要な DNS レコードを登録している。

ニュース(2)は,CDN 事業者のサービスで使ったサブドメインを,サービス解約後もドメイン名の DNS レコード(CNAME レコードなど)から削除しないままにしていたために,解約で空いた CDN 側のアドレスを他者(攻撃者)が取得し,V 社のサブドメイン名でアクセスすると攻撃者のサイトが表示されてしまう,いわゆるサブドメインテイクオーバーの事例である。

V 社でも同様に CDN サービスを使ってキャンペーンサイトを立ち上げ,解約した経緯があった。V 社のドメイン名の DNS レコードは情シ部が登録しており,図1の DMZ にある権威 DNS サーバがこれを保持している。キャンペーン終了後も,そのサブドメインを CDN サービスに向ける CNAME レコードが残っていれば同じ問題が起き得るので,緊急に確認した結果,このレコードが残っていたことが分かった。

したがって,設定を変更したサーバは権威 DNS サーバであり,変更内容は終了したサブドメインの CNAME レコードを削除することである。

採点講評(IPA)

設問1のサーバの設定の変更内容を問う設問は,正答率が低かった。本文中で示された事象が,CDNサービスやWebサーバの使用終了後のDNSのCNAMEレコード削除漏れによってサブドメインテイクオーバーが起きていることを理解した上で,その具体的な対策方法を解答してほしい。

設問2(1) 解答欄2つ

図2中の a,b に入れる適切な内容を,それぞれ30字以内で答えよ。

〔a〕解答例

  • レンタルサービスを契約して利用した

〔b〕解答例

  • 他社データセンターを契約して利用した

〔備考〕順不同

解説

本文の根拠

表1 IT 資産管理

事業部が他社データセンター,クラウドサービス又はレンタルサービスを契約して,サーバなどを利用する場合については,IT 資産管理台帳に登録していない。

図2

次の未登録の公開 IT 資産を調査し,その一覧を回答すること。・クラウドサービスを契約して利用している公開 IT 資産。

表1の IT 資産管理には,事業部が他社データセンター,クラウドサービス又はレンタルサービスを契約してサーバなどを利用する場合は,台帳に登録されていないと書かれている。登録されていない公開 IT 資産は,このいずれかの契約形態で存在している可能性がある。

図2の調査依頼は,このうち“クラウドサービスを契約して利用している公開 IT 資産”を既に一つ挙げているので,残る a,b には,表1に並んでいたもう二つの契約形態である“レンタルサービスを契約して利用した”公開 IT 資産と,“他社データセンターを契約して利用した”公開 IT 資産が入る。

a,b はどちらを先に書いてもよい(順不同)。

設問2(2)

本文中の c に入れる適切な字句を,英字10字以内で答えよ。

解答例

  • c WHOIS
解説

本文の根拠

〔目標 K-1 の実現〕

まず,IP アドレスの割当て,ドメイン名の登録などに関する情報をレジストラ又はレジストリに問い合わせることができます。そのための標準プロトコルとして,c が用意されており,RFC 3912 で定義されています。

IP アドレスの割当てやドメイン名の登録者情報など,レジストラ・レジストリが管理する情報を問い合わせるための標準プロトコルは WHOIS である。WHOIS プロトコルは RFC 3912 で定義されている,簡潔なテキストベースの問合せ・応答プロトコルで,ドメイン名や IP アドレスを指定して問い合わせると,登録者や管理者の情報が返ってくる。

本文で紹介されている X サービス・Y サービス・Z サービスは,いずれもこの WHOIS などの情報を基にした検索サービスである。

c には英字10字以内で WHOIS が入る。

設問2(3) 解答欄3つ

図3中の [ あ ] 〜 [ う ] に入れる適切な文字を,X,Y,Z から選び,答えよ。

〔あ〕解答例

  • Z

〔い〕解答例

  • X

〔う〕解答例

  • Y
解説

本文の根拠

図3

手順1:[ あ ]サービスを用い,検索キーワードとしてdを入力して,検索し,検索結果としてe及びfを得る。

表5

ドメイン名,GIP,又は組織名:GIP,GIP 割当て元の事業者名,FQDN,位置情報(国名,都市名,緯度・経度),ポート番号,OS,応答メッセージ情報(注1)。

表3

ドメイン名:組織名,ドメイン名の担当者識別番号(注2),ドメイン名を管理するネームサーバ名(注3),登録年月日,接続年月日,最終更新日時など。

表4

GIP:組織名,GIP の担当者識別番号,ネームサーバ名,割当て年月日,返却年月日,最終更新日時など。

手順1は,検索キーワード d(V 社)を指定して,FQDN e と GIP f を得ている。組織名を検索キーワードにして FQDN や GIP が得られるのは,表5の Z サービス(検索キーワード“ドメイン名,GIP,又は組織名”で GIP・FQDN などが得られる)である。したがって あ は Z である。

手順2-1,2-2 は,手順1で得たドメイン名(FQDN に含まれる .jp ドメイン)を検索キーワードにして,その組織名や担当者識別番号,さらに部署名・担当者名を得ている。ドメイン名を検索キーワードにして組織名や担当者識別番号が得られるのは,表3の X サービスである。したがって い は X である。

手順3-1,3-2 は,手順1で得た GIP(f)を検索キーワードにして,その組織名や担当者識別番号,部署名・担当者名を得ている。GIP を検索キーワードにして組織名や GIP の担当者識別番号が得られるのは,表4の Y サービスである。したがって う は Y である。

設問2(4) 解答欄5つ

図3中の d 〜 h に入れる適切な内容を,次の解答群の中から選び,記号で答えよ。解答群:ア FQDN,イ GIP,ウ GIP 割振り元の事業者名,エ OS,オ V 社,カ 位置情報,キ 担当者識別番号,ク ドメイン名,ケ ポート番号,コ メールアドレス

〔d〕解答例

  • オ

〔e〕解答例

  • ア

〔f〕解答例

  • イ

〔g〕解答例

  • ク

〔h〕解答例

  • キ
解説

本文の根拠

図3

検索結果としてe及びfを得る。

図3

検索結果としてgの組織名及びgのhを得る。

図3 注記1

手順2-1〜3-2は,手順1で得られた検索結果のうち,“.jp”ドメインのものについて,それぞれ行う。

表3

ドメイン名の担当者識別番号(注2):ドメイン名の担当者名,メールアドレス,ドメイン名の部署名,電話番号など。

手順1 の検索キーワード d は,対象の組織である V 社(オ)である。手順1 では Z サービスで V 社を検索し,e(FQDN,ア)と f(GIP,イ)を得る。

注記1のとおり,手順2-1 以降は手順1で得られた“.jp”ドメインについて行う。FQDN(e)に含まれる .jp のドメイン名が g(ドメイン名,ク)であり,これを X サービスで検索すると,g の組織名と,g の h(担当者識別番号,キ)が得られる。手順2-2 では,その担当者識別番号(g の h)を使って,表3のとおり部署名・担当者名を得る。手順3-1,3-2 では,手順1で得た GIP(f)を Y サービスで検索し,同様に GIP の組織名・担当者識別番号(h)から部署名・担当者名を得る。

したがって,d はオ,e はア,f はイ,g はク,h はキである。

設問3(1) 40字以内

本文中の下線②について,調査方法を,40字以内で具体的に答えよ。

解答例

  • ポートスキャンでWebのポートだけが開いていることを確認する。
解説

本文の根拠

〔V 社の管理すべき IT 資産の確認と管理の強化〕

表6の結果1については,SSH では接続できませんでしたが,公開サービスは Web だけが稼働しているようだということが,X,Y,Z サービス以外の②調査から分かりました。

X,Y,Z サービスは,ドメイン名や GIP の登録情報を調べる検索サービスであり,対象のサーバで実際にどのサービス(ポート)が稼働しているかまでは分からない。SSH(通常22番ポート)で接続できなかったことと,Web サービスが稼働していることを確認するには,対象の IP アドレスに対して実際に通信を行い,各ポートの応答の有無を調べる必要がある。

したがって,②の調査方法は,ポートスキャンを行い,Web のポート(80番や443番など)だけが開いている(応答がある)ことを確認する方法である。

40 字に収めるには,“ポートスキャン”という手段と,“Web のポートだけが開いている”ことを確認する対象の両方を残す。

採点講評(IPA)

設問3(1),(2)は,正答率が平均的であった。本文中で示された状況を踏まえて公開サーバの稼働状況の調査方法を問う問題である。実際の現場でも,状況に応じて調査方法を選ぶ知識が必要なので,理解を深めてほしい。

設問3(2) 40字以内

本文中の下線③について,調査方法を,40字以内で具体的に答えよ。

解答例

  • 脆弱性スキャナーを実行して,脆弱性の有無を確認する。
解説

本文の根拠

〔V 社の管理すべき IT 資産の確認と管理の強化〕

利用 OS や SW もバージョンが古く,多くの脆弱性が内在しているようだということが,③別の調査から分かりました。

稼働しているポートが分かるだけでは,その上で動いている OS や SW のバージョン,既知の脆弱性の有無までは分からない。これらを外部から確認するには,対象に対して脆弱性診断ツール(脆弱性スキャナー)を実行し,レスポンスの内容などから OS・SW の種類やバージョンを推定した上で,既知の脆弱性に該当するかどうかを機械的にチェックする必要がある。

したがって,③の調査方法は,脆弱性スキャナーを実行して,脆弱性の有無を確認する方法である。

40 字に収めるには,“脆弱性スキャナー(診断ツール)を実行する”という手段と,“脆弱性の有無を確認する”という目的の両方を残す。

採点講評(IPA)

設問3(1),(2)は,正答率が平均的であった。本文中で示された状況を踏まえて公開サーバの稼働状況の調査方法を問う問題である。実際の現場でも,状況に応じて調査方法を選ぶ知識が必要なので,理解を深めてほしい。

設問3(3) 解答欄2つ

本文中の下線④について,二つの場合における主な対応方法を,それぞれ35字以内で具体的に答えよ。

〔する場合〕解答例

  • 一旦,サービスを停止し,脆弱性を修正後に再開する。

〔しない場合〕解答例

  • 速やかにネットワークから切り離し,機器を廃棄する。
解説

本文の根拠

〔V 社の管理すべき IT 資産の確認と管理の強化〕

攻撃を受けて被害が発生しないようにするために,④表6の結果1の公開 IT 資産を継続利用する場合としない場合のそれぞれの場合に K 事業部が行うべき具体的な対応方法を伝えます。

ニュース(3)

(3) 競合他社で,不要になったにもかかわらず公開されたままとなっていた Web サーバが改ざんされ,フィッシングに悪用されていることが発覚した。

表6の結果1は,既に存在しないはずの G 事業部名義で公開されたままの古いサーバで,利用 OS・SW のバージョンが古く多くの脆弱性が内在している。このまま放置すれば,ニュース(3)のように改ざんされてフィッシングなどに悪用されるおそれがある。

継続して利用する場合は,脆弱性を抱えたまま公開を続けるわけにはいかないので,一旦サービスを停止し,脆弱性を修正してから公開を再開する必要がある。継続して利用しない場合は,もはや不要な公開 IT 資産を放置する理由がないので,速やかにネットワークから切り離して停止し,機器そのものを廃棄してしまうのがよい。

する場合は“一旦,サービスを停止し,脆弱性を修正後に再開する。”,しない場合は“速やかにネットワークから切り離し,機器を廃棄する。”と,それぞれ35字以内で具体的に答える。

採点講評(IPA)

設問3(3)は,正答率が平均的であった。継続する場合としない場合を取り違えて反対を解答するケアレスミスと思われる解答が散見された。長文を根気よく読み解いた上で,慎重に解答してほしい。

設問4(1) 4字以内

本文中の下線⑤について,CVSS の最新のバージョン番号を,4字以内で答えよ。

解答例

  • 4.0
解説

本文の根拠

〔脆弱性管理の改善〕

脆弱性についての⑤ CVSS の深刻度と⑥ KEV カタログへの掲載の有無に基づいて判断するのがよいです。

CVSS(Common Vulnerability Scoring System)は,脆弱性の深刻度を共通の基準で数値化する業界標準の仕組みであり,これまでも本文中で CVSS 基本値として登場している。CVSS は版が改訂されており,2025年春の時点での最新バージョンは CVSS v4.0 である(v3.1 の後継として FIRST が公開した版)。

したがって,CVSS の最新のバージョン番号は4.0である。

設問4(2)

本文中の下線⑥について,KEV カタログのフルスペルを,解答群の中から選び,記号で答えよ。解答群:ア Key Exploited Vulnerabilities catalog,イ Key Exposure Vulnerabilities catalog,ウ Known Exploited Vulnerabilities catalog,エ Known Exposure Vulnerabilities catalog

解答例

  • ウ
解説

本文の根拠

〔脆弱性管理の改善〕

脆弱性についての⑤ CVSS の深刻度と⑥ KEV カタログへの掲載の有無に基づいて判断するのがよいです。

KEV(Known Exploited Vulnerabilities)カタログは,米国 CISA(サイバーセキュリティ・インフラセキュリティ庁)が公開している,実際に悪用が確認された脆弱性の一覧である。KEV は“Known Exploited Vulnerabilities”の略であり,フルスペルは“Known Exploited Vulnerabilities catalog”である。

CVSS が脆弱性そのものの技術的な深刻度を表すのに対し,KEV カタログは現実に悪用されているかどうかという切り口の情報であり,S 主任はこの二つを組み合わせて対策の優先度を判断しようとしている。

したがって,解答群の中では ウ が正しい。

採点講評(IPA)

設問4(2),(3)は,正答率が低かった。対応の優先度を考える上では,脆弱性の技術的な特性,脆弱性を取り巻く現状,ユーザーの環境が重要であるとされ,KEVカタログが現状の評価に活用されるので,理解してほしい。

設問4(3) 20字以内

本文中の下線⑥について,KEV カタログに掲載される脆弱性はどのようなものか。掲載される条件のうち主なものを,20字以内で答えよ。

解答例

  • 実際に悪用された。
解説

本文の根拠

〔脆弱性管理の改善〕

脆弱性についての⑤ CVSS の深刻度と⑥ KEV カタログへの掲載の有無に基づいて判断するのがよいです。

KEV カタログは,単に脆弱性として知られている(Known)だけでなく,“Exploited”,つまり実際に悪用された実績があることが掲載の条件になっている。理論上悪用され得る(exploitable)だけの脆弱性ではなく,現実の攻撃で悪用されたことが確認された脆弱性だけが掲載される。

CVSS の深刻度(理論上の危険性)だけでは,次々発表される脆弱性すべてに同じ優先度を付けることになりかねないが,KEV カタログへの掲載の有無を組み合わせれば,実際に攻撃が起きている脆弱性を優先して対応できる。

20 字に収めるには,“実際に悪用された”という条件を端的に答える。

採点講評(IPA)

設問4(2),(3)は,正答率が低かった。対応の優先度を考える上では,脆弱性の技術的な特性,脆弱性を取り巻く現状,ユーザーの環境が重要であるとされ,KEVカタログが現状の評価に活用されるので,理解してほしい。

設問4(4) 解答欄2つ

本文中の下線⑦について,表1の脆弱性管理の項番1,2の改善策を,項番1の改善策は60字以内で,項番2の改善策は40字以内でそれぞれ具体的に答えよ。

〔項番1〕解答例

  • 情シ部がIT資産管理台帳にあるSWについて,重要な脆弱性情報が発表されていないかを継続的に確認する。

〔項番2〕解答例

  • 該当SWを保有する管理部門に対策の優先度を連絡し,対策実施を確認する。
解説

本文の根拠

表1 脆弱性管理

1. サーバに導入した SW の脆弱性情報は,情シ部が脆弱性のニュースを毎日見て確認している。2. 情シ部が,脆弱性のニュースで話題になった脆弱性情報全てを全部門に連絡している。3. 連絡を受けた各部門が取捨選択し,必要に応じて対応している。

表2

K-2:情シ部が,サーバの導入 SW を一元管理する。K-3:重要な脆弱性を事業部が修正したかどうかを情シ部が確認できるようにする。

表1の現状の項番1は,情シ部が脆弱性のニュースを毎日見て確認するという,ニュース頼みで網羅性に欠ける方法になっている。目標 K-2 で情シ部がサーバの導入 SW を一元管理できるようになれば,ニュースを待つだけでなく,台帳に登録された SW の一覧と,CVSS の深刻度や KEV カタログへの掲載状況を突き合わせて,重要な脆弱性情報が出ていないかを情シ部から継続的に確認できるようになる。

項番2は,脆弱性のニュースで話題になった情報を全て全部門に連絡するだけで,その後の対応は各部門任せになっており,目標 K-3 の“事業部が修正したかどうかを情シ部が確認できるようにする”が実現できていない。改善策としては,該当する SW を保有する管理部門にだけ対策の優先度(判断ルールに基づく S〜C 相当の優先度)を連絡し,対策が実施されたかどうかを情シ部が確認するようにする。

項番1の改善策は60字以内で“情シ部が IT 資産管理台帳にある SW について,重要な脆弱性情報が発表されていないかを継続的に確認する”こと,項番2の改善策は40字以内で“該当 SW を保有する管理部門に対策の優先度を連絡し,対策実施を確認する”ことを答える。

出典:令和7年度 春期 情報処理安全確保支援士試験 午後 問4(表記を一部改変)