戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2012年 秋期 午前(科目A)41


問題文

Webサーバのコンテンツの改ざんを検知する方法のうち、最も有効なものはどれか。

選択肢

Webサーバのコンテンツの各ファイルの更新日を保管しておき、定期的に各ファイルの更新日と比較する。
Webサーバのコンテンツの各ファイルのハッシュ値を保管しておき、定期的に各ファイルから生成したハッシュ値と比較する。(正解)
Webサーバのメモリ使用率を定期的に確認し、バッファオーバフローが発生していないことを確認する。
Webサーバへの通信を監視し、HTTP、HTTPS以外の通信がないことを確認する。

Webサーバのコンテンツの改ざんを検知する方法のうち、最も有効なものはどれか。【午前2 解説】

要点まとめ

  • 結論: ファイルのハッシュ値を保管して定期的に再計算して比較する方法が最も確実で改ざん検知に有効です。
  • 根拠: ハッシュはファイル内容の一意性を反映し、更新日時よりも改ざんの有無を正確に判定できます。
  • 差がつくポイント: ハッシュは暗号学的に安全な関数(例: SHA-256)を使い、ハッシュ値を安全に別場所で保管する運用が重要です。

正解の理由

正解:
ハッシュ値(チェックサム)比較はファイルの実際の内容を基に改ざんを検知します。ファイル内容のわずかな変更でもハッシュが大きく変化するため偽装や改竄を高い確度で検出できます。更新日時は容易に操作可能であり(touch 等で改変可)、メモリ使用率や通信プロトコル監視はファイル中身の変更検知には直接結び付きません。したがって、定期的に各ファイルのハッシュを生成して保管値と比較するイが最も有効です。

よくある誤解

  • 更新日時を信頼してよいと思い込みがち: 更新日時は攻撃者が簡単に変更可能で改ざん検知には不十分です。
  • メモリや通信の異常があればファイル改ざんも検出できると考える誤り: ランタイムや通信監視は攻撃の一側面しかカバーしません。
  • 単にハッシュを使えば万全と考える誤解: ハッシュ値自体が同じ場所に保存されていると攻撃者に書き換えられる恐れがあるため、保管場所や署名が重要です。

解法ステップ

  1. 問題の目的を確認: 「コンテンツの改ざんを検知する方法」を問うている点を把握。
  2. 各選択肢が検知対象に直接関連するか評価: ファイル内容を検査する方法かどうかを基準にする。
  3. 操作の容易さ・信頼性を比較: 更新日時は操作可能、ハッシュは内容依存で高信頼。
  4. 最も直接的で確実な手段を選択: ハッシュ比較が最適と判断。

選択肢別の誤答解説

  • ア: 更新日を比較する方法は簡便だが、攻撃者が更新日時を偽装(touchなど)できるため改ざん検知として不十分です。
  • : ファイル内容のハッシュを保存して比較する方法は内容変化を直接検知でき、改ざん検知として最も有効です。
  • ウ: メモリ使用率監視はバッファオーバーフローなどの異常検知には役立つが、静的ファイルの改ざん検出には無関係です。
  • エ: 通信プロトコルの監視は不正なプロトコルの検出に有効だが、HTTP/HTTPSでの正当な通信でもファイル内容が改ざんされる可能性があり検知対象外です。

補足コラム

実務での運用上の注意点とベストプラクティスを挙げます。ハッシュには暗号学的衝突耐性のある関数(SHA-256以上)を用いること、ハッシュ値やマニフェストはサーバ外部や読み取り専用ストレージ、あるいは署名付きで保管することが重要です。ファイル整合性検知ツール(Tripwire、AIDE、OSSEC)を導入すれば自動化とログ管理が容易になります。動的コンテンツ(CMSテンプレートやデータベース生成ページ)はファイルベースのハッシュだけでは対応できないため、バージョン管理やデプロイパイプラインでの署名管理を併用してください。
簡単なハッシュ作成・検証の例(Python)
import hashlib
def sha256_file(path):
    h = hashlib.sha256()
    with open(path,'rb') as f:
        for chunk in iter(lambda: f.read(8192), b''):
            h.update(chunk)
    return h.hexdigest()

# 生成してマニフェストに保存、後で比較する
print(sha256_file('index.html'))
攻撃者がハッシュも書き換えられるリスクへの対策として、ハッシュ一覧にデジタル署名を付与する、ハッシュを別ネットワークやオフライン媒体に保管する、あるいはハードウェアTPMやWORMストレージを利用することも検討してください。

FAQ

Q: どの頻度でハッシュチェックすべきですか?
A: サイトの変更頻度とリスクに応じますが、重要なコンテンツは少なくとも日次、変更が多い場合は数時間毎のチェックを推奨します。
Q: どのハッシュ関数を使えばよいですか?
A: MD5やSHA-1は衝突のリスクがあるため避け、SHA-256以上(SHA-3等)を推奨します。
Q: ハッシュ値はどこに保管すれば安全ですか?
A: Webサーバとは別の安全なサーバ、外部ストレージ、あるいは署名付きのマニフェストとして保管してください。改ざんされにくいオフライン保管が理想です。
Q: 動的に生成されるコンテンツはどう検知する?
A: ソースやテンプレート、デプロイ成果物に対してハッシュ/署名を適用し、ランタイムの生成物はログ整合性や差分検出を組み合わせます。
Q: 攻撃者がファイルとハッシュ両方を書き換えたら?
A: ハッシュを外部で保管、署名する、あるいはWORM/TPM等の保護を用いることでリスクを低減できます。

関連キーワード: Webサーバ、改ざん検知、ハッシュ、ファイル整合性、チェックサム、Tripwire、AIDE、SHA-256、署名、侵入検知
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について