【情報処理安全確保支援士試験 令和6年度 春期 午後 問4 No.1】
情報処理安全確保支援士試験 令和6年度 春期 午後 問4
【出典:情報処理安全確保支援士試験 令和6年度 春期 午後 問4(一部、加工あり)】
問4 Webアプリケーションプログラムに関する次の記述を読んで、設問に答えよ。
A社は、加工食品の製造・販売を行う従業員500名の会社である。問屋や直販店からの注文の受付に、商品の注文と在庫を管理するシステム(以下、業務システムという)を利用している。業務システムは、A社内に設置したサーバ上に構築されている。
このたび、販売拡大を目指して、インターネットを使ったギフト販売を行うことになり、個人顧客から注文を受けるためのWebシステム(以下、Web受注システムという)を構築することになった。
A社はITベンダーのB社との間で開発の委託契約を締結し、両社はWeb受注システムの開発に着手した。
[Web受注システムの要件]
Web受注システムの要件を表1に示す。
[Web受注システムの設計]
A社とB社はWeb受注システムを設計した。
Web受注システムのサーバで定義されるQSアカウントの一覧を表2に、所属グループとその権限を表3に示す。
業務システムとWeb受注システムは、CSV形式のデータ連携用ファイル(以下、CSVファイルという)でデータ連携を行う。1時間ごとに業務システムのバッチサーバとWeb受注システムのバッチサーバにおいてCSVファイルを作成し、HTTPSで他方のバッチサーバに送信し、他方のバッチサーバでは受信したCSVファイルを保存する。保存したCSVファイルを使用してWeb受注システム又は業務システムのDBに対して更新処理を実行する。更新処理後のCSVファイルは、障害発生に備えて1週間保存する。
データ連携機能のプログラム一覧を表4に示す。
表4のうち、No.3のプログラムの内容を図1に示す。
Web受注システムの開発が進み、結合テスト前に、A社は、設計書とソースコードのセキュリティレビューを、セキュリティ専門会社のC社に委託した。C社の情報処理安全確保支援士(登録セキスペ)のE氏は、セキュリティレビューを実施した。
[データ連携機能のセキュリティレビュー]
E氏は、表2〜4及び図1の内容では表1の要件を満たしておらず、(a)がCSVファイルを閲覧できてしまうという問題を発見した。また、CSVファイルには重要情報が記録されるので、本番バッチサーバにアクセスできる者が不正に閲覧するリスクを軽減するための保険的対策も併せて実施することを提案した。具体的には、次のように提案した。
⑴ 問題に対しては、表2のbatchappuserについて、所属グループを(b)に変更する。
⑵ 保険的対策としては、表4のNo.3のプログラムに暗号化を行う処理を追加し、表4のNo.(c)のプログラムに復号を行う処理を追加する。
A社は、E氏の提案どおり修正することにした。
(a)に入れる適切な字句を、解答群の中から選び、記号で答えよ。:
ア システム運用担当者
イ システム運用担当者とシステム開発者
ウ システム開発者
エ システム開発者と重要情報取扱運用者
オ 重要情報取扱運用者
「E氏は、表2〜4及び図1の内容では表1の要件を満たしておらず、(a)がCSVファイルを閲覧できてしまうという問題を発見した。」
図1でCSVファイルの閲覧に関する記述を確認すると、「注文テーブルの連携済フラグが0である注文データを、CSVファイルとして平文で/var/dataディレクトリに出力する。なお、/var/dataディレクトリのオーナーはbatchappuserで、パーミッションは770とする。CSVファイルのオーナーはbatchappuserで、パーミッションは660とする。」とあります。
「パーミッションが660」ということは、CSVファイルの閲覧については、オーナーである「batchappuser」と、その所属グループ(表2より)である「operation」が可能ということです。
所属グループ「operation」はユーザID「operator」であるシステム運用担当者も所属することになり、「batchappuser」以外の閲覧も可能になってしまっています。
パーミッション
- ファイルやディレクトリに対して「誰が」「どのような操作をできるか」を制御する権限設定のことです。
- パーミッションは、主に以下の3つのユーザー区分に対して設定されます。
- 所有者(Owner):ファイルやディレクトリを作成したユーザー
- グループ(Group):グループに属するユーザー
- その他のユーザー(Other):所有者でもグループにも属さないその他のユーザー
- 各区分に対して「読み取り(read: r)」「書き込み(write: w)」「実行(execute: x)」の3種類の権限が設定できます。
- パーミッションは、「ls -l」コマンドで確認できます。例えば、「-rwxr-xr-x」のような表示があり、これは「所有者に読み・書き・実行」「グループに読み・実行」「その他に読み・実行」の権限が与えられていることを表します。
- また、パーミッションは数字による表現も可能で、「r=4」「w=2」「x=1」の合計値で表します。例えば、「rwxr-xr-x」は「7(4+2+1)」「5(4+0+1)」「5(4+0+1)」で「755」となります。
- パーミッションの設定はセキュリティ上非常に重要で、誤った設定はファイルの改ざんや情報漏洩の原因となるため、注意が必要です。
なお、システム運用担当者については、表1のNo.18に「重要情報にアクセスしてはならない。」とあるように、CSVファイルに含まれる注文データが閲覧できてはいけません。
(b)に入れる適切な所属グループを、表3中から選び答えよ。:personal
「問題に対しては、表2のbatchappuserについて、所属グループを(b)に変更する。」
ここの問題とは、前の設問にあった、batchappuserとoperatorが同じ所属グループ(operation)のため、batchappuserが作ったCSVファイルにoperatorのシステム運用担当者が閲覧できてしまうということです。
そこで、batchappuserの所属グループを変更します。
表3の所属グループを確認すると、root、operation以外にpersonalとdevelopがあり、その違いは、本番環境へのアクセス権の有無であることがわかります。
当然ですが、batchappuserでは本番環境でのCSVファイルへのアクセス権が必要となるため、personalグループへの変更となります。
(c)に入れる適切なプログラムを、表4中から選び、No.列の番号で答えよ。:4
「保険的対策としては、表4のNo.3のプログラムに暗号化を行う処理を追加し、表4のNo.(c)のプログラムに復号を行う処理を追加する。」
表4のNo.3に関連する動作を確認します。
- No.3(注文データCSV出力バッチ処理):Web受注システムのバッチサーバで、DBから注文データを取得し、CSVファイルに出力する。
- No.7(データ送信1バッチ処理):Web受注システムのバッチサーバで、CSVファイルを業務システムのバッチサーバにHTTPSで送信する。
- No.4(注文データCSV取込みバッチ処理):業務システムのバッチサーバで、CSVファイルを読み込んで、業務システムのDBを更新する。
そして、CSVファイルに不正に閲覧できないようにする保険的対策として、No.3の処理でCSVファイルに対して暗号化するということです。
暗号化したCSVファイルを復号する処理としては、No.4のDB更新をする前であるCSVファイルの読み込み処理で必要となります。