情報セキュリティマネジメント 2017年 秋期 午前(科目A) 問38
問題文
入出金管理システムから出力された入金データファイルを、売掛金管理システムが読み込んでマスタファイルを更新する。入出金管理システムから売掛金管理システムへ受け渡されたデータの正確性及び網羅性を確保するコントロールはどれか。
選択肢
ア:売掛金管理システムにおける入力データと出力結果とのランツーランコントロール
イ:売掛金管理システムのマスタファイル更新におけるタイムスタンプ機能
ウ:入金額及び入金データ件数のコントロールトータルのチェック(正解)
エ:入出金管理システムへの入力のエディットバリデーションチェック
🔒 解説は解答すると表示されます
コントロールトータル【情報セキュリティマネジメント解説】
正解の理由
入出金管理システムから売掛金管理システムへ渡されたファイルの「正確性(値が正しい)」と「網羅性(漏れがない)」を同時に確かめるには、ファイル全体の合計(合計金額)や件数(レコード数)といった集計値を比較する方法が有効です。これが「コントロールトータル(制御合計)」です。選択肢の中では、合計金額と件数の照合を示す ウ が、受渡しデータの正確性と網羅性の両方を直接検証できるため正解です。
ポイントを簡単にまとめると:
- 合計金額の一致 → 個々の金額が合っている可能性が高い(大きな改ざんは検出)
- レコード件数の一致 → ファイルの抜け・重複を検出 これらを送信側と受信側で比較して不一致なら処理を止め、原因調査と修正を行います。
解法ステップ
- 問題の要件を確認:システム間で渡されたデータの「正確性」と「網羅性」を確保すること。
- 各選択肢が何を検証するかを整理:
- 個々の入力検査か、更新時刻か、合計か、など。
- 「正確性」=値の誤りを検出できるか、「網羅性」=欠落/重複を検出できるかを基準に選定。
- 合計金額と件数の比較(コントロールトータル)が両方に対応するので選ぶ。
選択肢別の誤答解説
-
ア: 売掛金管理システムにおける入力データと出力結果とのランツーランコントロール
ランツーラン(run-to-run)コントロールはバッチ処理の「前回実行」と「今回実行」など、処理の連続性や処理内での整合性を監視する手法です。システム間の受渡しファイル全体の欠落や合計の一致までは保証しません。したがって今回の「渡されたデータの正確性・網羅性」を直接確かめる手段には不十分です。 -
イ: 売掛金管理システムのマスタファイル更新におけるタイムスタンプ機能
タイムスタンプ(更新日時)は「いつ更新されたか」を示すだけで、値の正しさやレコードの抜け落ちを検出しません。順序や更新の有無は分かりますが、金額や件数の誤りまでは保証できません。 -
エ: 入出金管理システムへの入力のエディットバリデーションチェック
エディットチェック(入力時の形式チェックや必須項目確認)は入力段階での誤入力防止に有効です。しかし既に作成・転送されたファイルが受信側で受け渡された通りに取り込めたか(転送の途中で欠落・破損していないか)は検知できません。送信→受信間の検証が必要です。
よくある誤解
-
「合計が一致すれば完全に安全」
合計が一致しても、二つのレコードで金額が入れ替わったり、一方で誤りが相殺されたりする場合は検出できません。合計は有効だが万能ではない点に注意してください。 -
「タイムスタンプやログだけで十分」
ログは操作の履歴を残しますが、ファイル転送時の漏れや変化(データの欠落や中途破棄)を即座に検知する手段にはなりません。合計や件数との照合が必要です。
補足コラム
-
実運用のイメージ
送信側がファイルを作成する際、ヘッダ/トレーラ(先頭行/末尾行)に「総件数」「総入金額」を書き込みます。受信側はファイルを読み込む前に同じ集計を行い、差異があれば自動的に取り込みを停止して管理者にアラートを出します。調査の結果、送信側の再送や手作業での差分修正を行う運用が一般的です。 -
補完的な対策
コントロールトータルに加えて、レコードごとのシーケンス番号(連番)やチェックサム/ハッシュ(データ改ざん検出)を併用すると検出精度が上がります。特に高い信頼性が必要な場合はデジタル署名も検討します。
FAQ
Q1: コントロールトータルが一致していれば調査は不要ですか?
A1: 多くの誤りは検出できますが、複数の誤りが互いに打ち消し合うケースや個々の値の誤りは見逃されることがあります。重要データならログやレコード単位の検証も併用してください。
A1: 多くの誤りは検出できますが、複数の誤りが互いに打ち消し合うケースや個々の値の誤りは見逃されることがあります。重要データならログやレコード単位の検証も併用してください。
Q2: 合計と件数はどこに保管すればよいですか?
A2: ファイルのトレーラ(末尾行)や別の制御ファイル、送信確認メッセージに含めます。改ざん対策として送信側で生成し、受信側は自動で再計算して照合します。
A2: ファイルのトレーラ(末尾行)や別の制御ファイル、送信確認メッセージに含めます。改ざん対策として送信側で生成し、受信側は自動で再計算して照合します。
Q3: 自動で不一致が出たらどう運用すべきですか?
A3: まずは自動ブロック(取込停止)と管理者通知。次に送信元への照会と再送要求、必要なら手動での差分確認・修正を行います。SLAで対応時間を定めておくと実務がスムーズです。
A3: まずは自動ブロック(取込停止)と管理者通知。次に送信元への照会と再送要求、必要なら手動での差分確認・修正を行います。SLAで対応時間を定めておくと実務がスムーズです。
実例(簡単な実装イメージ)
Pythonでファイルのレコード数と金額合計を計算する簡単な例:
# CSVの各行に "取引ID,金額" がある想定
import csv
count = 0
total = 0
with open('payments.csv', newline='', encoding='utf-8') as f:
reader = csv.reader(f)
for row in reader:
count += 1
total += int(row[1])
print('件数:', count, '合計金額:', total)
送信側と受信側でこの集計を突き合わせます。不一致なら自動で警告を出す仕組みにします。
関連キーワード: コントロールトータル, トレーラレコード, トータルチェック, チェックサム, 受渡データ検証, バッチ処理, インターフェース管理、データ整合性

\ せっかくなら /
情報セキュリティマネジメントを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

