【情報処理安全確保支援士試験 令和5年度 春期 午後2 問2 No.5】
情報処理安全確保支援士試験 令和5年度 春期 午後2 問2
【出典:情報処理安全確保支援士試験 令和5年度 春期 午後2 問2(一部、加工あり)】
[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モジュールに問題がないことを確認し、新日記サービスの提供を開始した。
下線⑤について、第三者がXトークンを取得するための操作を、40字以内で答えよ。:OSSリポジトリのファイルZの変更履歴から削除前のファイルを取得する。
「F社では、⑤第三者がXトークンを不正に取得して、リポジトリWに不正アクセスし、不正コードMをソースコードに追加したと推測した。」
Xトークンについては、表9に「X社CI(←外部のX社が提供している継続的インテグレーションサービス)に発行するEトークン(以下、Xトークンという)には、リポジトリWの全ての権限が付与されている。」とあります。
そして、「調査の結果、サービスEのOSSリポジトリ上に、Xトークンなどの情報が含まれるファイル(以下、ファイルZという)がアップロードされた後に削除されていたことが分かった。」との記述から、XトークンがOSSリポジトリ上に一時的にアップロードされています。
表9の注記「OSSリポジトリには、利用者認証を”不要”に設定している。また、OSSリポジトリのソースコードと変更履歴のダウンロードは誰でも可能である。」とあるように、OSSリポジトリ上のXトークンを含むファイルZは第三者によってダウンロード可能な状態であったことが分かります。
ただし、「開発リーダーは、ファイルZがOSSリポジトリから削除されていること、ファイルZがアップロードされてから削除されるまでの間にダウンロードされていなかったことを確認して、問題なしと判断していた。」とあり、OSSリポジトリ上にXトークンを含むファイルZが存在していた間にはダウンロードされていなかったようです。
ここで、表9のバージョン管理機能を確認すると、「新規作成、変更、削除の前後の差分をソースコードの変更履歴として記録する。」とあるように、Xトークンの内容が変更履歴として記録されていることが分かります。
したがって、第三者はZファイルの変更履歴をダウンロードし、その情報から削除前のファイルZを取得することができたと言えるでしょう。
下線⑥について、権限管理の変更内容を、50字以内で答えよ。:アップロードされたソースコードを承認する承認権限は、開発リーダーだけに与えるようにする。
「表9中のバージョン管理に関わる見直しと⑥表9中の権限管理についての変更」
表9の権限管理の内容は以下のとおりです。
- サービスEの仕様
- 設定できる権限には、ソースコードのダウンロード権限、ソースコードのアップロード権限、アップロードされたソースコードを承認する承認権限がある。
- 利用者ごとに、個別のリポジトリの権限を設定することが可能である。
- F社のソースコード管理プロセス
- 開発者、開発リーダーなど全ての利用者に対して、設定できる権限全てを与える。
利用者ごとに各機能の権限を設定できるにも関わらず、全ての利用者に全ての権限を与えていることに違和感があります。
今回の問題発生の経緯は「F社の開発者の1人が、ファイルZを誤ってアップロードし、承認した後、誤ってアップロードしたことに気付き、ファイルZを削除した上で開発リーダーに連絡していた。」とあり、開発者が自分でアップロードした行為を自身で承認できてしまっていることについて改善が必要です。
したがって、アップロードされたソースコードを承認する承認権限は、開発者には与えず、開発リーダーにのみ与えるようにします。
下線⑦について、見直し後の設定を、40字以内で答えよ。:Xトークンには、ソースコードのダウンロード権限だけを付与する。
「Xトークンが漏えいしても不正にプログラムが登録されないようにするための、⑦表9中のサービス連携に関わる見直し」
表9のサービス連携の内容は以下のとおりです。
- サービスEの仕様
- 別のクラウドサービスと連携する際に、権限を付与するトークン(以下、Eトークンという)を、リポジトリへアクセスしてきた連携先に発行することができる。
- F社のソースコード管理プロセス
- X社CIに発行するEトークン(以下、Xトークンという)には、リポジトリWの全ての権限が付与されている。
トークンの利用シーンでは、発行、つまり、リポジトリからダウンロードできる機能を利用することが分かります。
しかし、Xトークンには全ての権限(ソースコードのダウンロード権限、ソースコードのアップロード権限、アップロードされたソースコードを承認する承認権限)が付与されており、今回、攻撃者はこのうちアップロード権限を使って不正コードを含むソースコードをリポジトリWにアップロードしました。
したがって、Xトークンには、ソースコードのダウンロード権限のみを付与すればいいでしょう。