情報処理安全確保支援士試験 令和5年度 秋期 午後 問3
【出典:情報処理安全確保支援士試験 令和5年度 秋期 午後 問3(一部、加工あり)】
問3 継続的インテグレーションサービスのセキュリティに関する次の記述を読んで、設問に答えよ。
N社は、Nサービスという継続的インテグレーションサービスを提供している従業員400名の事業者である。Nサービスの利用者(以下、Nサービス利用者という)は、バージョン管理システム(以下、VCSという)にコミットしたソースコードを自動的にコンパイルするなどの目的で、Nサービスを利用する。VCSでは、リポジトリという単位でソースコードを管理する。Nサービスの機能が概要を表1に示す。
NサービスはC社のクラウド基盤で稼働している。Nサービスの構成要素の概要を表2に示す。
フロントエンドは、ソースコードのコミットの通知を受け取ると図1の処理を行う。
CIデーモンは、処理命令を受け取ると、特権を付与せずに新しいコンテナを起動し、当該コンテナ内でソースコード取得機能とコマンド実行機能を順に実行する。
ビルドスクリプトには、利用者が任意のコマンドを記述できるので、不正なコマンドを記述されてしまうおそれがある。さらに、不正なコマンドの処理の中には、①コンテナによる仮想化の脆弱性を悪用しなくても成功してしまうものがある。そこで、バックエンドには管理者権限で稼働する監視ソフトウェア製品Xを導入している。製品Xは、バックエンド上のプロセスを監視し、プロセスが不正な処理を実行していると判断した場合は、当該プロセスを停止させる。
C社は、C社のクラウド基盤を管理するためのWebサイト(以下、クラウド管理サイトという)を提供している。N社では、クラウド管理サイト上で、クラウド管理サイトのアカウントの管理、Nサービスの構成要素の設定変更、バックエンドへの管理者権限でのアクセス、並びにクラウド管理サイトの認証ログの監視をしている。N社では、C社が提供するスマートフォン用アプリケーションソフトウェア(以下、スマートフォン用アプリケーションソフトウェアをアプリという)に表示される、時刻を用いたワンタイムパスワード(TOTP)を、クラウド管理サイトへのログイン時に入力するように設定している。
N社では、オペレーション部がクラウド管理サイト上でNサービスの構成要素の設定及び管理を担当し、セキュリティ部がクラウド管理サイトの認証ログの監視を担当している。
下線①について、該当するものはどれか。解答群の中から全て選び記号で答えよ。:ウ、エ
(解答群)
ア CIデーモンのプロセスを中断させる。
イ いずれかのバックエンド上の全プロセスを列挙して攻撃者に送信する。
ウ インターネット上のWebサーバに不正アクセスを試みる。
エ 攻撃者サイトから命令を取得し、得られた命令を実行する。
オ ほかのNサービス利用者のビルドスクリプトの出力を取得する。
「ビルドスクリプトには、利用者が任意のコマンドを記述できるので、不正なコマンドを記述されてしまうおそれがある。さらに、不正なコマンドの処理の中には、①コンテナによる仮想化の脆弱性を悪用しなくても成功してしまうものがある。」
ビルドスクリプトによる処理の流れを確認します。
ビルドスクリプトは、表1のコマンド実行機能に「ソースコード取得機能がリポジトリからソースコードを取得した後に、リポジトリのルートディレクトリにあるci.shという名称のシェルスクリプト」とあるように、利用者が自由に作成し、リポジトリに保存しているため、攻撃者が不正なコマンドを記述したビルドスクリプトを仕込むことが可能です。
そして、コマンド実行機能は、「CIデーモンは、処理命令を受け取ると、特権を付与せずに新しいコンテナを起動し、当該コンテナ内でソースコード取得機能とコマンド実行機能を順に実行する。」とあるように、CIデーモン(←バックエンドにあるコマンド実行機能を提供する常駐プログラム)が、利用者ごとに新しいコンテナを起動して、コマンド実行機能でビルドスクリプトを実行します。
整理すると、バックエンド上にはCIデーモンが常駐し、コンテナエンジン(Dockerなど)を介して、利用者ごとのコンテナが稼働することになります。
したがって、各コンテナには特権が付与されていないため、コンテナからバックエンド自体や他のコンテナへのアクセスはできません。
この状況を踏まえ、各解答群を確認します。
- ア CIデーモンのプロセスを中断させる。
→コンテナからバックエンドへのアクセスが必要なため、これは実行できません。 - イ いずれかのバックエンド上の全プロセスを列挙して攻撃者に送信する。
→コンテナからバックエンドへのアクセスが必要なため、これは実行できません。 - ウ インターネット上のWebサーバに不正アクセスを試みる。
→表2のバックエンドに「インターネットへの通信が可能である。」とあり、コンテナからもインターネットへの通信は可能なため、これは実行可能です。 - エ 攻撃者サイトから命令を取得し、得られた命令を実行する。
→コンテナからインターネット上の攻撃者サイトにアクセス可能なため、これは実行可能です。 - オ ほかのNサービス利用者のビルドスクリプトの出力を取得する。
→他のコンテナへのアクセスが必要なため、これは実行できません。