ITパスポート 2018年 秋期 問84
問題文
社内のPCでマルウェアが発見された。そのマルウェアが他のPCにも存在するかどうかを調査する方法として、最も適切なものはどれか。
選択肢
ア:そのマルウェアと同じアクセス権が設定されているファイルを探す。
イ:そのマルウェアと同じ拡張子をもつファイルを探す。
ウ:そのマルウェアと同じ所有者のファイルを探す。
エ:そのマルウェアと同じハッシュ値のファイルを探す。(正解)
🔒 解説は解答すると表示されます
マルウェムが他PCに存在するか調べる方法【ITパスポート 解説】
正解の理由
マルウェアが「完全に同じファイル」であるかを確実に調べるには、ファイルの内容そのものを示す「ハッシュ値(データの指紋)」を使うのが最も適切です。ハッシュ値とは、ファイルの中身から計算される固定長の値で、同じ中身なら同じハッシュ値になります。したがって、同じマルウェアが他のPCに存在するかを探すには、該当ファイルのハッシュ値を求めて、ネットワーク上や他PC上に同じハッシュ値のファイルがないかを検索します。これは選択肢のうち エ にあたります。
(用語補足:ハッシュ関数はデータを短い固定長の値に変換する関数です。MD5、SHA-1、SHA-256などがよく使われます。SHAは「Secure Hash Algorithm」の略です。)
解法ステップ
-
感染PCを隔離する
- まず被害拡大を防ぐため、ネットワークから切り離します。業務システムに触れる前に安全確保が重要です。
-
該当マルウェアファイルを特定する
- マルウェア実行ファイルや疑わしいファイルの場所を確認します。ファイルを“そのまま”触ると上書きやログが更新される恐れがあるため注意。
-
ハッシュ値を計算する(例:SHA-256を推奨)
- Windows(PowerShell): Get-FileHash コマンドを使用
例: Get-FileHash -Algorithm SHA256 C:\path\to\file.exe - Linux/macOS: sha256sum コマンドを使用
例: sha256sum /path/to/file - 簡単な Python 例:
import hashlib def sha256_of_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_of_file('sample.exe'))
- Windows(PowerShell): Get-FileHash コマンドを使用
-
ネットワーク/他PCで同じハッシュを検索する
- 中央管理のアンチウイルスやEDR(Endpoint Detection and Response:端末の脅威検出・対応ツール)でハッシュを照合。
- SIEM(Security Information and Event Management:ログ集約・分析システム)があればそこで検索。
- 共有ファイルサーバやバックアップにも同じハッシュがあるか確認。
-
見つかったら証拠保全と対応
- 同じハッシュが見つかったファイルはコピーして証拠として保存(タイムスタンプやアクセスログも記録)。
- 該当PCを調査・復旧(マルウェア除去、OS再インストール、パスワード変更など)。
選択肢別の誤答解説
-
ア: そのマルウェアと同じアクセス権が設定されているファイルを探す。
- アクセス権(ファイルに誰が読み書きできるかの設定)はファイルごとに変わります。同じ権限でも内容が異なれば別ファイルです。権限はコピー時やシステム設定で変わるため信頼できません。
-
イ: そのマルウェアと同じ拡張子をもつファイルを探す。
- 拡張子(例:.exe、.dll)はファイルの種類を示すだけで、中身が同じかどうかは分かりません。拡張子が同じでも別物の正規プログラムや他のファイルが多数存在します。
-
ウ: そのマルウェアと同じ所有者のファイルを探す。
- 所有者(ファイルのオーナー)は作成者やシステムの設定で変わります。所有者が同じでも異なるファイルは多数あり、有効な判定方法ではありません。
よくある誤解
-
「拡張子が同じなら同じファイル」
- 拡張子は表面的なラベルです。同じ拡張子=同じ中身ではありません。
-
「ハッシュは万能で常に検出できる」
- 完全一致のハッシュは強力ですが、マルウェアが改変(ポリモーフィックやパッカーで変形)されるとハッシュが変わります。こうした場合は別の手法(ふわっと一致するハッシュや振る舞い検知)が必要です。
補足コラム
- ハッシュの種類と選び方
- MD5やSHA-1は古く、衝突(異なるファイルが同じハッシュになる)攻撃が実証されています。信頼性を高めるにはSHA-256などより強力なハッシュを使うのが一般的です。
- ハッシュが一致したときの意味
- 同じハッシュ=バイナリレベルで同一ファイルである可能性が非常に高いです。証拠として使えますが、調査ではファイルの挙動ログやネットワーク通信も合わせて評価します。
- ハッシュでは検出できない改変に備える手法
- ssdeep(ふわっと一致するハッシュ)やYARA(ルールでマルウェアパターンを検出)、EDRの振る舞い検知があります。状況に応じて使い分けます。
(用語補足)
- EDR: Endpoint Detection and Response(端末の脅威検出・対応ツール)
- SIEM: Security Information and Event Management(ログ収集・分析システム)
- YARA: マルウェアの特徴をルールで表現して検出する仕組み
FAQ
Q. ハッシュが一致したら必ず同じマルウェアですか?
A. バイナリレベルでは同一です。実務では他の証拠(挙動ログ、通信先、タイムスタンプ)も合わせて判断します。
A. バイナリレベルでは同一です。実務では他の証拠(挙動ログ、通信先、タイムスタンプ)も合わせて判断します。
Q. ハッシュが一致しない場合は安全ですか?
A. ハッシュ不一致は「同一ファイルではない」ことを意味しますが、改変されたマルウェアや別のサンプルの可能性があるため、挙動解析やEDRでの検出も行ってください。
A. ハッシュ不一致は「同一ファイルではない」ことを意味しますが、改変されたマルウェアや別のサンプルの可能性があるため、挙動解析やEDRでの検出も行ってください。
Q. 大量のPCをどうやって効率的に探せばいいですか?
A. 中央の管理ツール(企業向けアンチウイルス、EDR、SIEM)にハッシュ情報を投入し、一括検索・スキャンするのが現実的です。無ければスクリプトで各端末のファイルハッシュを収集する運用を検討します。
A. 中央の管理ツール(企業向けアンチウイルス、EDR、SIEM)にハッシュ情報を投入し、一括検索・スキャンするのが現実的です。無ければスクリプトで各端末のファイルハッシュを収集する運用を検討します。
関連キーワード: ハッシュ値、ハッシュ関数、SHA-256、MD5、ファイル整合性、マルウェア調査、IOCs(Indicator of Compromise)、EDR、SIEM、YARA、ssdeep、フォレンジックス、Get-FileHash、sha256sum

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

