USB接続の痕跡・削除ファイルの復元・メモリダンプ・攻撃者が好む隠蔽手法の検出・自動収集スクリプトといった実践的なテーマ 対応OS:Windows / macOS / Linux

解析

フォレンジック系コマンド記事の第2弾です。前回はイベントログの抽出・ネットワーク証跡・ファイルのタイムスタンプ確認など「調査の基本動作」を解説しました。今回はさらに深く踏み込み、USB接続の痕跡・削除ファイルの復元・メモリダンプ・攻撃者が好む隠蔽手法の検出・自動収集スクリプトといった実践的なテーマを扱います。

セキュリティインシデントの調査では「攻撃者の視点」を持つことが重要です。攻撃者がどこに痕跡を残し、どこを消そうとするかを知ることで、調査の抜け漏れを防げます。本記事はその視点に立った内容になっています。

⚠️ 重要: 本記事の内容は自分が管理するPCやシステムの調査・学習目的で掲載しています。他者のシステムへの無断調査・アクセスは不正アクセス禁止法の対象となります。企業・組織での調査は必ず適切な権限と承認のもとで実施してください。


目次

  1. 【USB・外部デバイス編】接続履歴を追うコマンド
  2. 【削除ファイル・復元編】消えたデータの痕跡を探すコマンド
  3. 【永続化・隠蔽検出編】攻撃者の潜伏手法を暴くコマンド
  4. 【メモリ解析編】揮発性データを保全・調査するコマンド
  5. 【自動収集編】証拠を一括保全するスクリプト
  6. まとめ

【USB・外部デバイス編】接続履歴を追うコマンド

情報漏えいの手口として、USBメモリへのデータのコピーは今も定番の手法です。IPA(情報処理推進機構)の「企業における情報漏えい対策実態調査」でも、USBメモリ・外部メディアは内部犯行による情報持ち出しの主要経路として毎年上位にランクされています。Windowsはレジストリにデバイス接続の詳細な履歴を自動保存しており、コマンドで掘り起こすことができます。

① reg query — USB接続履歴をレジストリから抽出する(Windows)

Windowsは過去に接続されたすべてのUSBデバイスの情報をレジストリに記録しています。デバイス名・ベンダーID・最終接続日時が残っており、「いつ・どんなデバイスが接続されたか」を後から追跡できます。

Windows(コマンドプロンプト):

# 過去に接続されたUSBストレージデバイスの一覧
reg query HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR /s

# USBデバイス全般の接続履歴
reg query HKLM\SYSTEM\CurrentControlSet\Enum\USB /s

# デバイスのフレンドリ名(ドライブ名)を確認
reg query HKLM\SOFTWARE\Microsoft\Windows Portable Devices\Devices /s | findstr "FriendlyName"

# マウントされたデバイスのボリューム情報
reg query HKLM\SYSTEM\MountedDevices

USBSTORキーの中には「VendorID_ProductID_Revision_SerialNumber」の形式でデバイスが記録されます。シリアルナンバーを特定できれば、同一デバイスが別のPCに接続されたかどうかも追跡できます。

PowerShellでより読みやすく整形する:

Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Enum\USBSTOR\*\*" |
  Select-Object FriendlyName, DeviceDesc, Mfg |
  Where-Object { $_.FriendlyName -ne $null } |
  Format-Table -AutoSize

② イベントログからUSB接続日時を特定する(Windows)

レジストリはデバイス情報を持ちますが、接続の「日時」はイベントログから確認します。

Windows(PowerShell):

# USB接続時に記録されるイベントを抽出(System / Microsoft-Windows-DriverFrameworks-UserMode)
Get-WinEvent -LogName "Microsoft-Windows-DriverFrameworks-UserMode/Operational" |
  Where-Object { $_.Id -eq 2003 -or $_.Id -eq 2100 } |
  Select-Object TimeCreated, Message |
  Select-Object -First 30 | Format-List

# デバイス着脱のSystem ログを確認(イベントID 20001:ドライバーインストール)
Get-WinEvent -FilterHashtable @{LogName='System'; Id=20001} |
  Select-Object TimeCreated, Message | Select-Object -First 20

💡 FACT: SANS Instituteのデジタルフォレンジックトレーニング資料によると、WindowsのUSB接続履歴はレジストリ削除ツールを使っても痕跡が完全に消えないケースがあります。レジストリのUSBSTORキー・Setupapiログ(C:\Windows\inf\setupapi.dev.log)・イベントログの3箇所を突き合わせることで、より正確な証拠が得られます。

③ ioreg / system_profiler — macOSでデバイス接続履歴を確認する

macOS:

# 接続中のUSBデバイス一覧
system_profiler SPUSBDataType

# より詳細なデバイスツリーを表示
ioreg -p IOUSB -l -w 0 | grep -E "USB Product Name|idVendor|idProduct|USB Serial Number"

# 過去の外部デバイス接続ログをシステムログから検索
log show --predicate 'subsystem == "com.apple.DiskArbitration"' --last 30d |
  grep -i "appeared\|mount"

# ディスクのマウント/アンマウント履歴
log show --predicate 'process == "diskarbitrationd"' --last 7d | grep -i "disk"

【削除ファイル・復元編】消えたデータの痕跡を探すコマンド

「削除したから大丈夫」は大きな誤解です。通常の削除操作ではファイルの実体はディスクに残り、ファイルシステムの管理情報が「空き領域」として書き換えられるだけです。新しいデータで上書きされるまでは、専用ツールで復元可能な状態が続きます。

① $Recycle.Bin の内容を確認する(Windows)

ゴミ箱は実はフォルダです。エクスプローラーでは見えにくい情報も、コマンドなら詳細に確認できます。

Windows(コマンドプロンプト / PowerShell):

# ゴミ箱フォルダの中身を強制表示(隠しファイル含む)
dir /a C:\$Recycle.Bin /s

# PowerShellで全ユーザーのゴミ箱を確認(管理者権限)
Get-ChildItem "C:\`$Recycle.Bin" -Force -Recurse |
  Select-Object FullName, CreationTime, LastWriteTime, Length |
  Format-Table -AutoSize

# ゴミ箱内の$Iファイル(元のパスと削除日時を記録)を解析
Get-ChildItem "C:\`$Recycle.Bin" -Force -Recurse -Filter '$I*' |
  ForEach-Object { Get-Content $_.FullName -Encoding Byte | Out-Null; $_.FullName }

Windowsのゴミ箱には$Ixxxxxxx(メタデータ)と$Rxxxxxxx(実際のファイル内容)がペアで保存されます。$Iファイルには元のファイルパスと削除日時が記録されており、フォレンジック調査で非常に価値の高い証拠になります。

② strings — バイナリファイルからテキストを抽出する

削除されたファイルや不審なバイナリの中に埋め込まれた文字列(URLやパスワード、コマンドなど)を読み取ります。

macOS / Linux:

# バイナリファイルから可読文字列を抽出
strings /path/to/suspicious_file

# 8文字以上の文字列のみ抽出(ノイズを減らす)
strings -n 8 /path/to/suspicious_file

# URLらしき文字列を抽出
strings /path/to/file | grep -E "https?://"

# IPアドレスらしき文字列を抽出
strings /path/to/file | grep -E "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"

# マルウェアが使いそうなWindowsAPIを抽出
strings /path/to/suspicious.exe | grep -iE "CreateRemoteThread|VirtualAlloc|WriteProcessMemory|WinExec"

Windows(Sysinternalsのstrings.exeを使用):

strings.exe C:\path\to\suspicious.exe
strings.exe -n 8 C:\path\to\file.bin | findstr "http"

💡 FACT: MicrosoftのSysinternalsスイートはNSA・FBI・CISAなどの政府機関のインシデント対応チームも採用しているツール群です。strings.exeをはじめAutorunsProcess Monitorなど、フォレンジック調査に欠かせないツールが無償で提供されています。

③ foremost / photorec — 削除ファイルをカービングで復元する(Linux)

ファイルシステムの管理情報ではなく、ディスク上のファイルヘッダー・フッターのパターンを直接スキャンしてファイルを復元する「カービング」技術です。

Linux(要インストール):

# foremostのインストール(Ubuntu)
sudo apt install foremost

# ディスクイメージからファイルをカービング復元
sudo foremost -i disk_image.img -o /recovery/output -t pdf,jpg,docx

# ドライブ全体をスキャン(/dev/sdb等は要確認)
sudo foremost -i /dev/sdb -o /recovery/output -t all

# photorecで対話式に復元(より高い復元率)
sudo apt install testdisk
sudo photorec /dev/sdb

-tオプションで復元するファイルタイプを指定できます。PDFやJPEG・Word文書など主要なファイル形式に対応しています。


【永続化・隠蔽検出編】攻撃者の潜伏手法を暴くコマンド

MITRE ATT&CKフレームワークでは「永続化(Persistence)」が攻撃のTTPs(戦術・技術・手順)の重要カテゴリとして定義されています。攻撃者はPCを再起動されても自分のツールが動き続けるよう、様々な場所に「仕掛け」を設置します。その隠し場所を体系的に確認します。

① Autoruns的な確認を手動で行う(Windows)

起動時に自動実行されるプログラムの登録箇所は50か所以上あります。主要な箇所をコマンドで確認します。

Windows(PowerShell):

# スタートアップフォルダの確認(全ユーザー・現在のユーザー)
Get-ChildItem "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup" -Force
Get-ChildItem "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup" -Force

# サービスの一覧(自動起動のもののみ)
Get-Service | Where-Object { $_.StartType -eq "Automatic" } |
  Select-Object Name, DisplayName, Status | Sort-Object Status

# 自動起動サービスの実行ファイルパスを確認(不審なパスを探す)
Get-WmiObject Win32_Service |
  Where-Object { $_.StartMode -eq "Auto" } |
  Select-Object Name, PathName, State |
  Where-Object { $_.PathName -notlike "*System32*" -and $_.PathName -notlike "*SysWOW64*" } |
  Format-Table -AutoSize

# WMIサブスクリプション(高度なマルウェアが使う永続化手法)の確認
Get-WMIObject -Namespace root\subscription -Class __EventFilter
Get-WMIObject -Namespace root\subscription -Class __EventConsumer
Get-WMIObject -Namespace root\subscription -Class __FilterToConsumerBinding

WMI(Windows Management Instrumentation)サブスクリプションは、高度なマルウェアが使う永続化手法です。通常のユーザーPCでは登録されているはずがないため、何かが表示された場合は強く調査を推奨します。

② crontab / launchctl — macOS/Linuxの自動起動を網羅的に確認する

Linux:

# 全ユーザーのcrontabを確認(root権限)
for user in $(cut -d: -f1 /etc/passwd); do
  echo "=== $user ==="; sudo crontab -u $user -l 2>/dev/null
done

# システムcronの設定ファイルを確認
ls -la /etc/cron.d/ /etc/cron.daily/ /etc/cron.hourly/ /etc/cron.weekly/
cat /etc/crontab

# systemdのタイマーユニットを確認(cronの代替)
systemctl list-timers --all

# rc.local(旧来の起動スクリプト)を確認
cat /etc/rc.local 2>/dev/null
ls -la /etc/init.d/

macOS:

# LaunchAgents / LaunchDaemons(macOSの自動起動の仕組み)を確認
ls -la ~/Library/LaunchAgents/
ls -la /Library/LaunchAgents/
ls -la /Library/LaunchDaemons/
sudo ls -la /System/Library/LaunchDaemons/

# 登録済みのLaunchAgentの内容を確認
launchctl list | grep -v "com.apple"  # Apple純正以外を表示

# 疑わしいエントリの詳細を確認
cat ~/Library/LaunchAgents/com.suspicious.plist 2>/dev/null

💡 FACT: macOSのLaunchAgents/LaunchDaemonsはWindowsのスタートアップレジストリに相当します。ESET・Malwarebytesなどのセキュリティ企業の調査では、macOS向けマルウェアの大多数がLaunchAgentsフォルダへのplistファイル設置によって永続化を実現していることが報告されています。

③ 不審なDLL・共有ライブラリを検出する

DLLインジェクションやLDプリロードは、攻撃者が正規プロセスに悪意あるコードを混入させる高度な手法です。

Windows(PowerShell):

# 特定プロセスがロードしているDLLを確認
Get-Process -Name "explorer" | ForEach-Object { $_.Modules } |
  Select-Object ModuleName, FileName | Format-Table -AutoSize

# System32以外の場所からロードされているDLLを検出(不審の可能性)
Get-Process | ForEach-Object {
  $proc = $_
  try {
    $_.Modules | Where-Object {
      $_.FileName -notlike "*System32*" -and
      $_.FileName -notlike "*SysWOW64*" -and
      $_.FileName -notlike "*Program Files*"
    } | Select-Object @{N='Process';E={$proc.Name}}, ModuleName, FileName
  } catch {}
} | Format-Table -AutoSize

Linux:

# LD_PRELOADの環境変数を確認(ライブラリ挿入の手法)
cat /etc/ld.so.preload 2>/dev/null
env | grep LD_PRELOAD

# 実行中プロセスのライブラリをすべて確認
cat /proc/$(pgrep -n sshd)/maps | grep -v "\.so"

# 不審な場所(/tmp, /dev/shmなど)からライブラリをロードしているプロセスを検出
grep -r "/tmp\|/dev/shm\|/var/tmp" /proc/*/maps 2>/dev/null | awk -F: '{print $1}' |
  sort -u | xargs -I{} cat {}/cmdline 2>/dev/null | tr '\0' ' ' | head -20

【メモリ解析編】揮発性データを保全・調査するコマンド

メモリ(RAM)上には、実行中のプロセス・復号されたデータ・認証トークン・マルウェアのコードなど、ディスクには残らない証拠が含まれています。電源を切ると消えてしまうため、調査の最優先で保全します。

① /proc から実行中プロセスのメモリマップを読む(Linux)

Linux:

# 特定プロセスのメモリマップを表示
cat /proc/$(pgrep -n apache2)/maps

# プロセスのコマンドライン引数を確認(\0区切りをスペースで置換)
cat /proc/1234/cmdline | tr '\0' ' '

# プロセスが開いているファイルディスクリプタを確認
ls -la /proc/1234/fd

# 全プロセスのcmdlineを一覧表示
for pid in /proc/[0-9]*; do
  echo -n "$pid: "; cat $pid/cmdline 2>/dev/null | tr '\0' ' '; echo
done | grep -v "^/proc.*: $" | head -50

# プロセスの環境変数を確認(資格情報が含まれている場合がある)
cat /proc/1234/environ | tr '\0' '\n' | grep -iE "password|token|secret|key"

② memdump — メモリの内容をファイルにダンプする(Linux)

Linux:

# /proc/memを使った全物理メモリのダンプ
sudo dd if=/proc/mem of=/tmp/mem_dump.raw bs=1M 2>/dev/null || true

# 特定プロセスのメモリをダンプ(gdbを使用)
sudo gdb -p 1234 --batch -ex "gcore /tmp/process_1234.core" -ex "detach" -ex "quit"

# LiMEカーネルモジュールを使った高精度メモリ取得(要コンパイル)
# sudo insmod lime.ko "path=/tmp/memory.lime format=lime"

# strings でメモリダンプから文字列を抽出
strings /tmp/process_1234.core | grep -E "https?://|password|token" | head -50

Windows(PowerShellでプロセスのミニダンプを作成):

# .NETのMiniDumpWriteDumpでプロセスメモリをダンプ
$proc = Get-Process -Name "lsass" -ErrorAction SilentlyContinue
# ※ lsassのダンプは資格情報の抽出に悪用されうるため、実施は十分な権限と理由が必要です

# Task ManagerからダンプファイルをGUIで作成する方法:
# タスクマネージャー → 詳細タブ → プロセスを右クリック → "ダンプ ファイルの作成"

💡 FACT: WindowsのLSASS(Local Security Authority Subsystem Service)プロセスのメモリには、ログイン中のユーザーの認証情報が含まれています。Mimikatzなどの攻撃ツールがこれを悪用するため、MicrosoftはWindows 10以降でCredential Guard機能によってLSASSメモリへのアクセスを仮想化により保護しています。

③ volatility — メモリダンプを解析する(要インストール)

Volatilityはオープンソースのメモリフォレンジックフレームワークです。メモリダンプからプロセス・ネットワーク接続・レジストリ・ファイルなどを再構築します。

Linux / macOS / Windows(Python環境):

# インストール
pip install volatility3

# メモリダンプのOSプロファイルを自動判定
python3 vol.py -f memory.dmp windows.info

# 実行中プロセスの一覧(プロセスツリー)
python3 vol.py -f memory.dmp windows.pstree

# 終了済みプロセスも含めてスキャン(rootkit対策)
python3 vol.py -f memory.dmp windows.psscan

# ネットワーク接続の一覧(証拠保全時の状態を再現)
python3 vol.py -f memory.dmp windows.netstat

# 不審なプロセスのDLLリストを表示
python3 vol.py -f memory.dmp windows.dlllist --pid 1234

# プロセスメモリから文字列を抽出
python3 vol.py -f memory.dmp windows.strings --pid 1234

# マルウェア検出:VAD(仮想アドレスディスクリプタ)のスキャン
python3 vol.py -f memory.dmp windows.malfind

特にmalfindプラグインは、書き込み・実行権限が同時に付いたメモリ領域(マルウェアがコードを注入するパターン)を自動検出します。


【自動収集編】証拠を一括保全するスクリプト

インシデントが発生した際、焦りながら個別にコマンドを実行していると、証拠の収集漏れや手順の前後が生じます。よく使う収集手順をスクリプトにまとめておくことで、冷静かつ確実に初動対応ができます。

① Windows初動証拠収集スクリプト(PowerShell)

Windows(管理者権限のPowerShell):

# 実行方法:PowerShellを管理者として実行し、以下を貼り付けて実行

$timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
$outDir = "C:\forensics_$timestamp"
New-Item -ItemType Directory -Path $outDir -Force | Out-Null
Write-Host "[*] 収集開始: $outDir"

# システム情報
Write-Host "[1/7] システム情報を取得中..."
systeminfo > "$outDir\systeminfo.txt"

# 実行中プロセス(実行パス付き)
Write-Host "[2/7] プロセス一覧を取得中..."
Get-WmiObject Win32_Process |
  Select-Object ProcessId, ParentProcessId, Name, CommandLine, ExecutablePath |
  Export-Csv "$outDir\processes.csv" -NoTypeInformation -Encoding UTF8

# ネットワーク接続
Write-Host "[3/7] ネットワーク接続を取得中..."
Get-NetTCPConnection | Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State, OwningProcess |
  Export-Csv "$outDir\network_connections.csv" -NoTypeInformation -Encoding UTF8
netstat -ano > "$outDir\netstat.txt"

# 自動起動エントリ
Write-Host "[4/7] 自動起動エントリを取得中..."
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run > "$outDir\run_hklm.txt"
reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Run > "$outDir\run_hkcu.txt"
Get-Service | Where-Object { $_.StartType -eq "Automatic" } |
  Export-Csv "$outDir\auto_services.csv" -NoTypeInformation -Encoding UTF8

# スケジュールタスク
Write-Host "[5/7] スケジュールタスクを取得中..."
schtasks /query /fo CSV /v > "$outDir\scheduled_tasks.csv"

# 直近のログオン失敗
Write-Host "[6/7] セキュリティログを取得中..."
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624,4625,4648; StartTime=(Get-Date).AddDays(-7)} |
  Select-Object TimeCreated, Id, Message |
  Export-Csv "$outDir\logon_events.csv" -NoTypeInformation -Encoding UTF8

# USB接続履歴
Write-Host "[7/7] USBデバイス履歴を取得中..."
reg query HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR /s > "$outDir\usb_history.txt"

Write-Host "`n[完了] すべての証拠を $outDir に保存しました。"

② Linux/macOS 初動証拠収集スクリプト(Bash)

macOS / Linux(ターミナルで実行):

#!/bin/bash
# 実行方法:chmod +x collect.sh && sudo ./collect.sh

TIMESTAMP=$(date +%Y%m%d_%H%M%S)
OUTDIR="/tmp/forensics_$TIMESTAMP"
mkdir -p "$OUTDIR"
echo "[*] 収集開始: $OUTDIR"

# システム情報
echo "[1/8] システム情報..."
uname -a > "$OUTDIR/uname.txt"
uptime >> "$OUTDIR/uname.txt"
who >> "$OUTDIR/uname.txt"

# 実行中プロセス
echo "[2/8] プロセス一覧..."
ps aux > "$OUTDIR/processes.txt"
# 削除済みファイルを実行しているプロセス(Linux)
ls -la /proc/*/exe 2>/dev/null | grep "(deleted)" > "$OUTDIR/deleted_execs.txt"

# ネットワーク接続
echo "[3/8] ネットワーク接続..."
ss -tunap > "$OUTDIR/network.txt" 2>/dev/null || netstat -tunap > "$OUTDIR/network.txt"

# ログイン履歴
echo "[4/8] ログイン履歴..."
last -n 100 > "$OUTDIR/last.txt"
sudo lastb -n 100 > "$OUTDIR/lastb.txt" 2>/dev/null

# 自動起動の確認
echo "[5/8] 自動起動エントリ..."
crontab -l > "$OUTDIR/crontab_current.txt" 2>/dev/null
ls -la /etc/cron* > "$OUTDIR/cron_dirs.txt" 2>/dev/null
# macOS の場合
ls -la ~/Library/LaunchAgents/ > "$OUTDIR/launchagents.txt" 2>/dev/null
ls -la /Library/LaunchAgents/ >> "$OUTDIR/launchagents.txt" 2>/dev/null

# 開いているファイルと通信
echo "[6/8] オープンファイルと通信..."
lsof -i TCP -s TCP:ESTABLISHED > "$OUTDIR/lsof_network.txt" 2>/dev/null
lsof | grep "(deleted)" > "$OUTDIR/lsof_deleted.txt" 2>/dev/null

# 最近変更されたファイル
echo "[7/8] 最近変更されたファイル(24時間以内)..."
find /home /tmp /var/tmp /dev/shm -mtime -1 -type f 2>/dev/null > "$OUTDIR/recent_files.txt"

# /tmp の不審ファイル
echo "[8/8] /tmp の実行可能ファイル..."
find /tmp /var/tmp -type f -executable 2>/dev/null > "$OUTDIR/tmp_executables.txt"
ls -la /tmp /var/tmp >> "$OUTDIR/tmp_executables.txt"

echo ""
echo "[完了] すべての証拠を $OUTDIR に保存しました。"
echo "ハッシュ値を記録します..."
find "$OUTDIR" -type f | xargs sha256sum > "$OUTDIR/hashes.txt"
echo "[HASH] $OUTDIR/hashes.txt に保存済み"

💡 FACT: NISTの「コンピューターセキュリティインシデント対応ガイド(SP 800-61)」では、インシデント対応の「封じ込めフェーズ」において証拠の収集と保全を文書化することを強く推奨しています。スクリプトによる自動収集はこの文書化を効率的に実現する手段として有効です。


まとめ

本記事で紹介したフォレンジック系コマンドの一覧です。

カテゴリコマンド / 手法調査目的
USB証跡reg query USBSTOR過去のUSBデバイス接続履歴の抽出
USB証跡Get-WinEvent(DriverFrameworks)USB接続の正確な日時の特定
USB証跡system_profiler / ioreg(macOS)macOSでの外部デバイス接続確認
削除ファイルdir /a $Recycle.Binゴミ箱の削除済みファイルと元パスの確認
削除ファイルstringsバイナリからURL・資格情報を抽出
削除ファイルforemost / photorecディスクからのカービング復元
永続化検出Get-WMIObject __EventFilterWMIサブスクリプションの確認
永続化検出全ユーザーcrontab確認Linux自動起動の網羅的チェック
永続化検出launchctl list(macOS)macOS LaunchAgentsの異常検出
永続化検出LD_PRELOAD / /proc/mapsLinuxライブラリ挿入の検出
メモリ解析/proc/PID/maps・environプロセスのメモリマップ・環境変数確認
メモリ解析gdb gcoreプロセスメモリのダンプ取得
メモリ解析volatility3メモリダンプの総合解析
自動収集PowerShellスクリプトWindows初動証拠の一括保全
自動収集BashスクリプトLinux/macOS初動証拠の一括保全

フォレンジック調査は「後から証明できる」ことが重要です。どれだけ優れた調査をしても、手順や結果が記録されていなければ証拠としての価値が下がります。今回紹介した自動収集スクリプトは、そのまま使えるものとして用意しましたが、自分の環境に合わせてカスタマイズしてみてください。

前回の記事と合わせると、ログ抽出・ネットワーク証跡・ファイル痕跡・USB履歴・メモリ解析・自動収集まで、コマンドラインだけでできるフォレンジックの基礎をひと通り網羅できます。「まず試してみる」ことが、スキルを身につける最短ルートです。


※ 本記事の内容は情報セキュリティの学習・自己管理目的で掲載しています。他者のシステムへの無断調査は不正アクセス禁止法により処罰の対象となります。メモリダンプ・ディスク復元などの作業は、自分が管理するシステム上でのみ実施してください。企業・組織内での調査は法務・情報セキュリティ部門の承認のもとで行ってください。

コメント