こんにちは、フルスタックエンジニアのryuです。
今回の記事では、基本情報技術者試験の過去問を使いながら、ディジタルフォレンジックスとハッシュ値の関係について解説します。
ディジタルフォレンジックスという言葉を見ると、
「PCから削除されたデータを復元すること?」 「サイバー攻撃を調査すること?」 「ハッシュ値を何のために使うの?」
と分かりづらく感じるかもしれません。
ディジタルフォレンジックスでは、不正アクセスや情報漏えいなどの事故が発生したときに、PC・サーバー・ログなどのデジタルデータを調査し、何が起きたのかを確認します。
そのとき重要になるのが、調査に使っているデータが途中で変更されていないことを確認することです。
そこでハッシュ値が利用されます。
この記事では、過去問を解きながら、ディジタルフォレンジックスとは何か、ハッシュ値で何を確認しているのか、パスワード保存で使うハッシュとの違い、証拠保全で大切な考え方まで順番に解説します。
ディジタルフォレンジックスでハッシュ値を利用する目的はどれか¶
今回はこちらの問題です。
ディジタルフォレンジックスでハッシュ値を利用する目的として,適切なものはどれか。
ア:一方向性関数によってパスワードを復元できないように変換して保存する。 イ:改変されたデータを,証拠となり得るように復元する。 ウ:証拠となり得るデータについて,原本と複製の同一性を証明する。 エ:パスワードの盗聴の有無を検証する。
答えは、ウです。
ディジタルフォレンジックスでは、調査対象となるデータの原本をそのまま何度も操作すると、調査中にデータを書き換えてしまう可能性があります。
そのため、原本から複製を作って調査することがあります。
このとき、原本と複製からハッシュ値を計算し、一致していることを確認することで、
「複製したデータは原本と同一の内容である」
ことを確認するために利用できます。
ディジタルフォレンジックスとは?¶
ディジタルフォレンジックスとは、コンピュータやネットワークなどに残されたデジタルデータを収集・保全・分析し、インシデントや犯罪などの事実関係を調査する考え方・技術です。
例えば、
不正アクセスが発生
↓
いつ侵入された?
↓
どのアカウントが使われた?
↓
どのファイルへアクセスされた?
↓
何が変更された?
といったことを調べます。
調査対象になるものには、
- PCやサーバーのディスク
- アクセスログ
- 認証ログ
- メール
- ファイル
- メモリ上の情報
- ネットワーク通信の記録
などがあります。
単に「削除ファイルを復元する作業」だけを指すわけではありません。
重要なのは、デジタルデータから何が起きたのかを調査し、その証拠性や完全性を保ちながら扱うことです。
なぜ原本をそのまま調査しないの?¶
例えば、不正アクセスを受けたPCのディスクを直接調査するとします。
調査のためにOSを起動したり、ファイルを開いたりすると、その操作自体によって、
最終アクセス日時
ログ
一時ファイル
システム情報
などが変更される可能性があります。
つまり、
調査する行為そのものが証拠を変えてしまう
可能性があります。
そこで、ディスクやファイルの複製を作り、原本をできるだけ保持した状態で、複製側を使って分析する考え方があります。
原本
↓
複製を作成
↓
複製を分析
↓
原本は保全
このとき、
「本当に原本と同じ内容を複製できたのか?」
を確認するために、ハッシュ値を利用できます。
ハッシュ値とは?¶
ハッシュ値とは、データをハッシュ関数へ入力したときに得られる一定長の値です。
イメージすると、
ファイル
↓
ハッシュ関数
↓
ハッシュ値
となります。
例えば、あるファイルから、
ABCDEF1234...
というハッシュ値が得られたとします。
ファイルの内容が変化すると、通常は計算されるハッシュ値も変わります。
そのため、
原本のハッシュ値
複製のハッシュ値
を比較することで、同一性・完全性の確認に利用できます。
原本と複製のハッシュ値を比較する¶
ディジタルフォレンジックスでは、例えば次のように使います。
まず原本のハッシュ値を計算します。
原本
↓
ハッシュ関数
↓
8A4F...
次に、複製したデータのハッシュ値を計算します。
複製
↓
同じハッシュ関数
↓
8A4F...
両方が一致しています。
原本:8A4F...
複製:8A4F...
この結果から、複製時に内容が変化していないことを確認する材料にできます。
逆に、
原本:8A4F...
複製:91BC...
のように値が異なれば、
「複製後のデータが原本と同じではない」
可能性を疑う必要があります。
ハッシュ値は「データを復元する」ためのものではない¶
今回の選択肢イは、
改変されたデータを,証拠となり得るように復元する。
という説明です。
これは誤りです。
ハッシュ値を計算しても、改変されたファイルを元の状態へ戻せるわけではありません。
ハッシュ値は、
データが変わっていないか確認する
ために利用できますが、
変更されたデータを元に戻す
ためのバックアップではありません。
ここは試験でも混同しやすいポイントです。
ハッシュ=復元 ではなく、 ハッシュ=同一性・完全性の確認
と覚えておきましょう。
アはパスワード保存に関する説明¶
アはこちらです。
一方向性関数によってパスワードを復元できないように変換して保存する。
これは、パスワードをそのまま保存せず、ハッシュなどを用いて保存する考え方に関係しています。
ただし、今回聞かれているのは、
ディジタルフォレンジックスでハッシュ値を使う目的
です。
同じハッシュ技術でも、用途が違います。
例えば、
パスワード保存
↓
入力されたパスワードそのものを保存しないため
ディジタルフォレンジックス
↓
証拠データの完全性・同一性を確認するため
と整理できます。
試験では「ハッシュ値」という単語だけを見て答えるのではなく、何の目的で利用しているのかまで確認しましょう。
エは盗聴の有無を直接検証するものではない¶
エはこちらです。
パスワードの盗聴の有無を検証する。
ハッシュ値を比較したからといって、
「通信途中でパスワードが盗聴されたか」
を直接確認できるわけではありません。
盗聴の調査では、ネットワークログや通信記録、端末の状態など、別の情報を確認する必要があります。
今回の問題では、
証拠データそのものが同一か
を確認する目的でハッシュ値を利用しています。
ディジタルフォレンジックスで大切な「完全性」¶
ディジタルフォレンジックスでは、証拠として扱うデータが、
調査途中に勝手に変更されていないこと
が非常に重要です。
例えば、
事故発生時のログ
↓
担当者が編集
↓
一部削除
となれば、元の状態が分からなくなってしまいます。
そのため、
- 原本を適切に保全する
- 複製を作って分析する
- ハッシュ値を記録する
- 誰がいつどの証拠を扱ったか記録する
といった考え方が大切になります。
証拠を「見つける」だけではなく、証拠として信頼できる状態を保つこともフォレンジックスの重要な部分です。
証拠の取扱いを記録する¶
ディジタル証拠では、
「誰が」 「いつ」 「どのデータを」 「どのように扱ったか」
を記録することも重要です。
このような証拠の取扱いの履歴を、チェーン・オブ・カストディという言葉で表すことがあります。
例えば、
10:00 担当Aがディスクを回収
10:30 原本のハッシュ値を計算
11:00 複製を作成
11:10 複製のハッシュ値を確認
12:00 担当Bが複製を分析
のように記録します。
「データ自体が同じ」という確認だけでなく、証拠がどのように管理されてきたのかを説明できるようにしておくことが重要です。
ハッシュ値が一致すれば絶対に同じ?¶
試験対策としては、
ハッシュ値が一致している → 原本と複製の同一性を確認する
と理解して問題ありません。
ただし、ハッシュ関数には「異なるデータから同じハッシュ値が得られる可能性」を完全にゼロにはできないという性質があります。これを衝突と呼びます。
そのため実際のシステムやフォレンジックでは、用途に適した安全なハッシュアルゴリズムを利用することが重要です。
基本情報技術者試験では、まず、
- ハッシュは一方向性を持つ
- データが変わるとハッシュ値も変わる
- 完全性や同一性の確認に利用できる
という基本を理解しておきましょう。
ディジタルフォレンジックスはどんなときに使う?¶
ディジタルフォレンジックスは、さまざまなインシデント調査で利用されます。
例えば、
不正アクセス¶
いつ侵入されたか
どのアカウントが使われたか
どのサーバーへアクセスしたか
をログなどから確認します。
情報漏えい¶
どのデータが持ち出されたか
誰がアクセスしたか
外部送信の記録はあるか
などを調べます。
マルウェア感染¶
どこから感染したか
どのファイルが作成されたか
外部とどのような通信をしたか
を調査します。
つまり、フォレンジックスは、
「攻撃を防ぐための技術」だけではなく、事故が起きたあとに事実関係を調査するための技術
でもあります。
科目Bでは「インシデント発生後の動き」を考える¶
基本情報技術者試験のセキュリティでは、攻撃手法や防御策だけでなく、事故が起きたあとの対応も重要です。
例えば、
サーバーへの不正アクセスを検知
↓
担当者が調査
↓
ログを保全
↓
証拠データの複製を作成
↓
ハッシュ値を確認
↓
分析
という流れが考えられます。
このとき、
「なぜ原本を直接分析しないのか」 「なぜハッシュ値を残すのか」 「何を証明したいのか」
まで理解できると、ディジタルフォレンジックスの問題を解きやすくなります。
単に、
フォレンジックス=証拠を調べる
と暗記するのではなく、
証拠を保全し、完全性を確認しながら分析する
ところまで理解しておきましょう。
Giji Academyで科目Bのセキュリティを実践的に学ぶ¶
科目Bのセキュリティでは、攻撃名だけを知っていても解けない問題があります。
例えば、
不正アクセスが発生した
↓
どのログを確認する?
↓
証拠をどう保全する?
↓
再発防止には何が必要?
というように、システムの状態や対応手順を読み取る必要があります。
Giji Academyでは、基本情報技術者試験の科目Bに関連するセキュリティ問題を、ネットワーク・サーバー・認証などの基礎から段階的に学習できるようにしています。
擬似言語だけではなく、
- 攻撃手法
- ログ
- 認証
- 暗号
- ハッシュ
- インシデント対応
- セキュリティ対策
などを、実際の状況をイメージしながら学べます。
「用語は覚えているけど、長いセキュリティ問題になると何を確認すればいいか分からない」という方は、状況から原因・調査・対策まで考える練習をしてみてください。
登録不要で無料体験できます。
フォレンジックスをさらに学びたい場合¶
基本情報技術者試験では、フォレンジックツールの操作方法まで覚える必要はありません。
まずは、
- デジタル証拠を収集・保全する
- 原本を不用意に変更しない
- 複製を使って分析する
- ハッシュ値で完全性・同一性を確認する
という考え方を理解することを優先しましょう。
過去問解説まとめ¶
今回の記事では、次の問題を解説しました。
ディジタルフォレンジックスでハッシュ値を利用する目的として,適切なものはどれか。
ア:一方向性関数によってパスワードを復元できないように変換して保存する。 イ:改変されたデータを,証拠となり得るように復元する。 ウ:証拠となり得るデータについて,原本と複製の同一性を証明する。 エ:パスワードの盗聴の有無を検証する。
答えは、ウです。
今回のポイントをまとめると、
- ディジタルフォレンジックスはデジタル証拠を収集・保全・分析する
- 原本を直接操作すると証拠を変更する可能性がある
- 複製を作って分析することがある
- 原本と複製のハッシュ値を比較して同一性・完全性の確認に利用する
- ハッシュ値は改変されたデータを復元するものではない
- 証拠の取扱い履歴を記録することも重要
です。
基本情報技術者試験では、
ハッシュ値=パスワード
とだけ覚えないようにしてください。
ハッシュは用途によって、
パスワード保存
完全性確認
デジタル証拠の同一性確認
などに利用されます。
問題文を読み、何を確認するためにハッシュを使っているのかを判断することが大切です。
Giji Academyでは、擬似言語に加えて、科目Bに関連するセキュリティ問題も実践的に学習できます。
Giji Academy|科目Bの擬似言語・セキュリティを学ぶ
基本情報技術者試験の過去問解説はこちらから確認できます。
あわせて読みたい
元記事で紹介していた過去問題集は旧試験制度向けです。画像・リンクはそのまま残しますが、現在受験する場合は科目A・科目Bに対応した最新教材を利用することをおすすめします。







