【解答速報】情報処理安全確保支援士 令和7年度春季【午後問3】

令和7年の情報処理技術者試験です。

解説も記載しておりますので見直しにどうぞ。

目次

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

設問1 [Fアプリの脆弱性診断結果]について答えよ。

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

解答

HTTPヘッダのヘッダーフィールドのAuthorizationヘッダから取得する

解説

HTTPリクエスト内のアクセスキーの格納位置に関する設問です。

図5に記載されています。

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

解答

Fアプリを解析し、アプリ内に保存されているストレージ名とAES-CBC方式の共通鍵および初期ベクトルを取得して、Fアプリに保存し暗号化されたアクセスキーを復号する。

解説

Fアプリに保存されているアクセスキーについての記述が図5の直後にあります。

暗号化したアクセスキーと暗号化に使った共通鍵を同じ場所に保存することは非常にセキュリティリスクが高いです。

鍵情報の危殆化についてはこちらを参考にしてください。

暗号鍵管理ガイドライン

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

解答

Authorizationヘッダにアクセスキーを指定してアクセスし、Cサービス内のファイルに対して0000001から順にGETメソッドでアクセスする

解説

ポイントは2つです。

1つ目はCサービスへのアクセスです。これは(1)でも同様の内容が問われておりますので特に問題ないと思います。

2つ目が重要。下線3に記載されているのは『全利用者の写真をダウンロードする』方法について問われています。ファイルアクセスについては図5の1.サービスの概要(3)に記載されているように、URLパスにGETメソッドでアクセスすることでダウンロード可能です。

では、全利用者の写真をダウンロードするにはどうすればいいでしょう。

これは図4にヒントがあります。注釈をよく見てみるとファイル名は0000001から始まる連番であると記載されています。

この仕様を利用し、連番に対して順次アクセスしていくことで全利用者の写真をダウンロードすることが可能です。

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

解答

https://www.a-sha.co.jp.k-sha.co.jp

解説

URLを細工することにより、攻撃者のサイトにアクセスしかつ認証トークンが取得される可能性があるという問題です。

攻撃者のサイトにアクセスさせるには、url=の部分を書き換えればいいことはすぐにわかります。問題は認証トークンを取得する部分です。

認証トークンの送信にはECMAscriptが使われておりURLの先頭が「https://www.a-sha.co.jp」である必要があります。

この条件ですが、よく見ると気づくのですが最後に「/」がありません。

よってこのようなURLでも認証トークンが送信されます。

https://www.a-sha.co.jp.k-sha.co.jp

k-sha.co.jpのサブドメインとしてwww.a-sha.co.jpを取得して、このサイトに対してアクセスさせます。

設問2 [脆弱性1]について答えよ。

(1)図9中の下線5について,サーバ証明書のSubjectAlternativeNameの値を、具体的に答えよ。

解答

www-asha.co.jp

解説

(2)図9中のa~hに入れる適切な字句を,解答群の中から選び,記号で答えよ。

解答

a
b
c
d
e
f
g
h

解説

サーバ・クライアント間のTSL通信について、前後のコネクションまで含めたTLS通信全体像に関する問題です。

ステップ0:CONNECTリクエスト(プロキシ経由時)

プロキシサーバ(中継)を使う場合のみ、以下のようなCONNECTリクエストが送られます。

CONNECT www.example.com:443 HTTP/1.1
Host: www.example.com:443

目的:HTTPS用のトンネルを作る
成功するとプロキシは HTTP/1.1 200 Connection Established を返す

※これはHTTPSリクエストではない。単に暗号化されていないTCPトンネルの許可を求めている段階。

ステップ1:ClientHello(TLSハンドシェイク開始)

プロキシ経由で接続が確立したら、ブラウザ(クライアント)はサーバに ClientHello を送信。

  • TLSのバージョン(例:TLS 1.3)
  • 対応する暗号スイート(例:AES, ChaCha20など)
  • ランダムな数値(セッション固有)
  • SNI(Server Name Indication)=ドメイン名
ステップ2:ServerHello(サーバ応答)

サーバは ClientHello に応じて ServerHello を送る。

下記の情報も続けて送信される

  • 暗号化された拡張情報 (EncryptedExtensions)
  • サーバのX.509証明書など (Certificate)
  • サーバがCertificateの所有者であることを証明するための署名(CertificateVerify)
ステップ3:Finishedメッセージと暗号化通信開始
  • クライアントとサーバはそれぞれ Finished メッセージを交換(この時点で通信は暗号化済み)
  • 双方が共有鍵を使って通信を開始

以降の通信(例:HTTPリクエスト)はTLSで暗号化されて送信される。

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

解答

通信解析ツールのプライベート証明書を信頼するルート証明書としてインストールする

解説

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

解答

解説

設問4 [脆弱性3]について答えよ。

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

解答

webviewでページ遷移する際にアプリ画面に遷移先URLが表示されない

解説

図6の前でキャンペーンページの実証方法としてwebviewが利用されていると記述されています。
また、webviewで画面を表示する際に遷移先のURLが表示されるなどの記述は特にないため、遷移先のページがそのまま表示される仕様となっていることがわかります。

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

解答

遷移先となるURLをホワイトリストとして管理し、許可されたドメイン以外の遷移を禁止する

解説

コメントを残す