recovering-from-ransomware-attack について
インシデント対応チーム向けのランサムウェア復旧スキルです。隔離環境、ID 基盤、バックアップ検証、依存関係に沿った復旧を整理し、再接続前の確認も示します。
主な機能
- 01隔離された復旧環境の構築
- 02Active Directory の優先復旧
- 03バックアップの完全性と安全性の検証
- 04依存関係に沿った段階的な復旧
- 05永続化の確認と段階的なネットワーク再接続
活用シーン
- 01検証済みバックアップからのシステム復元
- 02ランサムウェア復旧手順書の作成や検証
- 03復号後のシステムの安全な復旧
- 04復旧訓練と RTO の評価
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill recovering-from-ransomware-attackインストール後、Claude Code で/recovering-from-ransomware-attackを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEreferences/api-reference.mdstandards.mdworkflows.mdscripts/agent.pyprocess.py詳細
ランサムウェア攻撃からの復旧
使用するタイミング
- ランサムウェアによって本番システムが暗号化され、バックアップから復旧する判断が下された後
- 実際のインシデントが発生する前に、ランサムウェア復旧ランブックを作成または検証するとき
- 復号キーを受け取った後(身代金を支払った場合、または法執行機関から提供された場合)に、安全に復号する必要があるとき
- 残りのシステムを復号しながら、一部のシステムを復旧する必要があるとき
- RTO のコミットメントを検証するために復旧訓練を実施するとき
封じ込めとフォレンジック調査範囲の特定を完了する前には、使用しないでください。攻撃者のアクセス経路と永続化の仕組みを把握しないまま早期に復旧すると、再感染のリスクがあります。
前提条件
- インシデントが宣言され、封じ込めフェーズが完了している(攻撃者のアクセスをすべて遮断済み)
- フォレンジック証拠が保全されている(ディスクイメージ、メモリダンプ、ネットワークキャプチャ)
- バックアップの完全性が検証されている(イミュータブルまたはエアギャップされたコピーがクリーンであることを確認済み)
- クリーンなビルドメディアを利用できる(OS インストールメディア、ゴールデンイメージ)
- 復旧環境が準備されている(侵害されたインフラから隔離されたクリーンなネットワークセグメント)
- 復旧優先順位リストが記録されている(依存関係に基づく Tier 1/2/3 システム)
ワークフロー
ステップ 1:クリーンな復旧環境を確立する
侵害されたネットワークから隔離された復旧インフラを構築します。
# Create isolated recovery VLAN
# No connectivity to compromised network segments
# Dedicated internet access for patch downloads only (via proxy)
# Recovery network architecture:
# VLAN 999 (Recovery) - 10.99.0.0/24
# - Recovery workstations (10.99.0.10-20)
# - Recovered DCs (10.99.0.50-55)
# - Recovered servers (10.99.0.100+)
# - Proxy for internet (10.99.0.1) - patches and updates only
# Firewall rules: DENY all from recovery VLAN to production VLANs
# Allow: Recovery VLAN -> Internet (HTTPS only, via proxy)
# Allow: Recovery VLAN -> Backup infrastructure (restore traffic only)
ステップ 2:最初に ID インフラを復旧する
ドメインに参加しているシステムを復旧する前に、Active Directory を復旧する必要があります。
# AD Recovery Procedure
# Step 2a: Restore AD from known-good backup
# Use DSRM (Directory Services Restore Mode) boot
# 1. Build clean Windows Server from ISO
# 2. Promote as DC using AD restore
# 3. Restore System State from immutable backup
# Verify AD backup is pre-compromise
# Check backup timestamp against earliest known compromise date
wbadmin get versions -backuptarget:E: -machine:DC01
# Restore system state in DSRM
wbadmin start systemstaterecovery -version:02/15/2026-04:00 -backuptarget:E: -machine:DC01 -quiet
# After restore, reset critical accounts
# Reset krbtgt password TWICE (invalidates all Kerberos tickets)
# This prevents Golden Ticket persistence
Import-Module ActiveDirectory
Set-ADAccountPassword -Identity krbtgt -Reset -NewPassword (ConvertTo-SecureString "NewKrbtgt2026!Complex#1" -AsPlainText -Force)
# Wait for replication (minimum 12 hours), then reset again
Set-ADAccountPassword -Identity krbtgt -Reset -NewPassword (ConvertTo-SecureString "NewKrbtgt2026!Complex#2" -AsPlainText -Force)
# Reset all privileged account passwords
$privilegedGroups = @("Domain Admins", "Enterprise Admins", "Schema Admins", "Administrators")
foreach ($group in $privilegedGroups) {
Get-ADGroupMember -Identity $group -Recursive | ForEach-Object {
Set-ADAccountPassword -Identity $_.SamAccountName -Reset `
-NewPassword (ConvertTo-SecureString (New-Guid).Guid -AsPlainText -Force)
Set-ADUser -Identity $_.SamAccountName -ChangePasswordAtLogon $true
}
}
# Validate AD health
dcdiag /v /c /d /e /s:DC01
repadmin /showrepl
ステップ 3:復元前にバックアップの完全性を検証する
# Scan backup files for ransomware artifacts before restoring
# Use offline antivirus scanning on backup mount
# Mount backup as read-only
mount -o ro,noexec /dev/backup_lv /mnt/backup_verify
# Scan with ClamAV
clamscan -r --infected --log=/var/log/backup_scan.log /mnt/backup_verify
# Check for known ransomware indicators
find /mnt/backup_verify -name "*.encrypted" -o -name "*.locked" \
-o -name "*.lockbit" -o -name "DECRYPT_*" -o -name "readme.txt" \
-o -name "RECOVER-*" -o -name "HOW_TO_*" | tee /var/log/ransomware_check.log
# Verify database consistency (SQL Server example)
# Restore database to temporary instance for validation
RESTORE VERIFYONLY FROM DISK = '/mnt/backup_verify/databases/erp_db.bak'
WITH CHECKSUM
ステップ 4:優先順位に従ってシステムを復元する
依存関係に基づく復旧順序に従います。
Recovery Order:
Phase 1 (Hours 0-4): Identity & Infrastructure
1. Domain Controllers (AD, DNS, DHCP)
2. Certificate Authority (if applicable)
3. Core network services (DHCP, NTP)
Phase 2 (Hours 4-12): Critical Business Systems
4. Database servers (SQL, Oracle, PostgreSQL)
5. Core business applications (ERP, CRM)
6. Email (Exchange, M365 hybrid)
Phase 3 (Hours 12-24): Important Systems
7. File servers
8. Web applications
9. Monitoring and security tools (SIEM, EDR)
Phase 4 (Hours 24-48): Remaining Systems
10. Development environments
11. Archive systems
12. Non-critical applications
# Veeam Instant Recovery - fastest restore for VMware/Hyper-V
# Boots VM directly from backup file, then migrates to production storage
# Instant recovery for Tier 1 system
Start-VBRInstantRecovery -RestorePoint (Get-VBRRestorePoint -Name "DC01" |
Sort-Object CreationTime -Descending | Select-Object -First 1) `
-VMName "DC01-Recovered" `
-Server (Get-VBRServer -Name "esxi01.recovery.local") `
-Datastore "recovery-datastore"
# After validation, migrate to production storage
Start-VBRQuickMigration -VM "DC01-Recovered" `
-Server (Get-VBRServer -Name "esxi01.prod.local") `
-Datastore "production-datastore"
ステップ 5:復旧したシステムを検証し、強化する
復旧したシステムを本番環境に接続する前に、次のことを行います。
# Check for persistence mechanisms
# Scheduled Tasks
Get-ScheduledTask | Where-Object {$_.State -ne "Disabled"} |
Select-Object TaskName, TaskPath, State, Author |
Export-Csv C:\recovery\scheduled_tasks.csv
# Services
Get-Service | Where-Object {$_.StartType -eq "Automatic"} |
Select-Object Name, DisplayName, StartType, Status |
Export-Csv C:\recovery\auto_services.csv
# Startup items
Get-CimInstance Win32_StartupCommand |
Select-Object Name, Command, Location, User |
Export-Csv C:\recovery\startup_items.csv
# WMI event subscriptions (common persistence)
Get-WmiObject -Namespace root\subscription -Class __EventFilter
Get-WmiObject -Namespace root\subscription -Class __EventConsumer
# Registry run keys
Get-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run"
Get-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\RunOnce"
Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run"
# Verify no unauthorized admin accounts
Get-LocalGroupMember -Group "Administrators"
Get-ADGroupMember -Identity "Domain Admins"
# Apply latest patches before connecting to production
Install-WindowsUpdate -AcceptAll -AutoReboot
ステップ 6:段階的にネットワークへ再接続する
Phase 1: Reconnect identity infrastructure
- DCs online in production VLAN
- Validate replication and authentication
- Monitor for suspicious authentication patterns
Phase 2: Reconnect Tier 1 systems
- One system at a time
- Monitor EDR for 1 hour before proceeding to next
- Validate application functionality
Phase 3: Reconnect remaining systems
- Groups of 5-10 systems
- Continue monitoring for re-infection indicators
Throughout: SOC monitoring on high alert
- EDR in aggressive blocking mode
- All previous IOCs loaded in detection rules
- Canary files deployed on recovered systems
主な概念
| 用語 | 定義 |
|---|---|
| DSRM | Directory Services Restore Mode:ドメインコントローラーの特別な起動モードで、AD データベースを復元できます |
| krbtgt Reset | krbtgt アカウントのパスワードを 2 回リセットすると、すべての Kerberos チケットが無効になり、Golden Ticket による永続化を阻止できます |
| Instant Recovery | バックアップストレージから VM を直接起動してすぐに利用可能にし、バックグラウンドでデータを移行するバックアップ技術 |
| Evidence Preservation | 復旧開始前にフォレンジックイメージとログを維持すること。法執行機関への対応や保険請求に必要です |
| Clean Build | 感染したシステムをクリーンアップするのではなく、信頼できるインストールメディアからシステムを再構築すること |
| Dependency Chain | サービスの依存関係に基づくシステムの復旧順序(例:ドメインメンバーより先に AD を復旧) |
ツールとシステム
- Veeam Instant Recovery:バックアップから VM を直接起動して RTO をほぼゼロにし、その後本番環境へライブマイグレーションします
- Microsoft DSRM:バックアップからドメインコントローラーを復元するための、AD 専用の復旧モード
- DSInternals PowerShell Module:復旧後に AD データベースの完全性を検証し、侵害された認証情報を特定します
- Rubrik Instant Recovery:バックアップを数秒で稼働中の VM としてマウントし、迅速な復旧検証を可能にします
- ClamAV:復元前にバックアップファイルをスキャンするオープンソースのウイルス対策ソフトウェア
よくあるシナリオ
シナリオ:LockBit 攻撃からの製造業の完全復旧
背景:300 台のサーバーを抱える製造業者で、インフラの 80%が LockBit によって暗号化されました。48 時間前のイミュータブルバックアップがクリーンであることを確認済みです。生産ラインが停止しており、1 日あたり 50 万ドルの損失が発生しています。
アプローチ:
- 侵害されたネットワークから隔離した復旧 VLAN(10.99.0.0/24)を確立します
- Veeam Instant Recovery を使用して、イミュータブルバックアップから 2 台のドメインコントローラーを復元します(2 時間)
- krbtgt パスワードを 12 時間の間隔を空けて 2 回リセットし、すべての管理者パスワードをリセットします
- dcdiag で AD を検証し、DSInternals で Golden Ticket の兆候をスキャンします
- ERP データベース(SAP)を復元し、データの整合性を確認します(4 時間)
- MES(製造実行システム)と SCADA ヒストリアンを復元します(3 時間)
- まず、隔離された OT ネットワークで生産ラインのコントローラーを稼働させます
- EDR による継続的な監視のもと、48 時間かけて段階的に再接続します
- 復旧完了まで合計 72 時間(96 時間の RTO コミットメント以内)
注意点:
- 永続化メカニズムが存在しないことを検証せずにシステムを急いで再接続すると、再感染を招く可能性があります
- 最新のバックアップが侵害前のものであることを確認せずに復元すると、攻撃者が最近のバックアップを汚染している可能性があります
- krbtgt パスワードを 2 回リセットしないと、攻撃者が Golden Ticket でのアクセスを維持できる可能性があります
- システムを誤った順序で復元すると、データベースへの依存関係があるアプリケーションサーバーを先に復元してしまう可能性があります
出力形式
## Ransomware Recovery Status Report
**Incident ID**: [ID]
**Recovery Start**: [Timestamp]
**Current Phase**: [1-4]
**Estimated Completion**: [Timestamp]
### Recovery Progress
| Phase | Systems | Status | Started | Completed | RTO Target |
|-------|---------|--------|---------|-----------|------------|
| 1 - Identity | DC01, DC02, DNS | Complete | HH:MM | HH:MM | 4 hours |
| 2 - Critical | ERP, DB01, DB02 | In Progress | HH:MM | -- | 12 hours |
| 3 - Important | FS01, Email, Web | Pending | -- | -- | 24 hours |
| 4 - Remaining | Dev, Archive | Pending | -- | -- | 48 hours |
### Validation Checklist
- [ ] AD integrity verified (dcdiag, repadmin)
- [ ] krbtgt password reset (2x with interval)
- [ ] All admin passwords reset
- [ ] Persistence mechanisms scanned
- [ ] EDR deployed and active on recovered systems
- [ ] IOCs loaded in detection rules
- [ ] Canary files deployed
コメント
Markdown 対応