FE SUBJECT B
基本情報技術者 科目Bの問題解説:A社の開発者が、外部決済サービスのAPIキーを含む設定ファイ…
問題
A社の開発者が、外部決済サービスのAPIキーを含む設定ファイルを公開リポジトリにpushした。数時間後に気付き、該当ファイルだけを削除して再pushしたが、履歴にはAPIキーが残っている。アクセスログには不審なAPI呼出しも見つかった。
対応として、最も適切なものはどれか。
- ア 漏えいしたAPIキーを失効・再発行し、利用状況を確認して必要な調査を行い、今後はシークレット管理と履歴への混入防止を導入する。(正解)
- イ 最新のリポジトリから設定ファイルを削除済みなので、他の対応は不要である。
- ウ APIキーの文字列を大文字へ変換して同じキーを使い続ける。
- エ READMEに悪用禁止と追記する。
- オ 公開リポジトリを非公開に戻すだけで、漏えいしたキーは継続利用する。
正解と解説
正解:漏えいしたAPIキーを失効・再発行し、利用状況を確認して必要な調査を行い、今後はシークレット管理と履歴への混入防止を導入する。
公開リポジトリの履歴に残った秘密情報は漏えい済みと考えます。ファイルを削除しても履歴や外部キャッシュから取得される可能性があるため、キーを失効・再発行する必要があります。
不審な呼出しがあるので利用状況の確認や影響調査も必要です。再発防止としてシークレット管理やコミット前検査を導入します。
Hardでの見抜き方:リポジトリ履歴に入った秘密情報は削除後も漏えい済みと考えます。失効・再発行、利用状況確認、再発防止のシークレット管理まで含めて対応しましょう。
なぜ削除では不十分か:gitは過去のコミットを履歴として保持するため、最新コミットでファイルを消しても以前のコミットをたどればキーを取得できます。さらにフォークや他者のクローン、検索サービスのキャッシュにも残るため、削除では「漏えい済み」の事実は消えません。だからこそ失効・再発行が唯一の確実な対策になります。
他の選択肢はなぜ違う?
- イ最新リポジトリから消しても履歴に残ったキーは漏えい済み。
- ウ大文字へ変換しても同じキーなら無効化にならない。
- エREADMEへの追記は悪用を止められない。
- オ非公開化だけでは、すでに漏れたキーの継続利用が危険。
この問題について
公開問題・サンプル問題のセキュリティ事例形式(A社シナリオ+もっともらしい誤答)を参考にした独自問題です。本文・選択肢・解説は新規作成しています。
公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。