学校PCから持ち帰ったUSBを挿した直後に「削除できない」「場所が見つからない」不審ファイルやコインマイナーが動き出す――そんな自己隠蔽・自己改名型マルウェアの駆除は、やり方さえ押さえれば確実に終わらせられます。この記事は、再感染防止までを含む実務的な手順書です。
想定シナリオと症状の整理
USBメモリーを介して自宅のWindows 10/11ノートPCに感染。System32配下に実体があるのにエクスプローラーでは「ディレクトリが見つからない」と表示され、セーフモード↔通常モードでファイル名・場所が変わる自己隠蔽/自己改名型のトロイの木馬(コインマイナー)という状況を想定します。
| 症状 | 起きていること | 直近の対処 |
|---|---|---|
| System32に見えるのに「場所が見つからない」 | NTFSの再解析ポイント(ジャンクション)や不正ハンドル、ADS(代替データストリーム)、予約名や不可視属性の悪用 | 実行中プロセスの停止→メモリ内を駆除→オブジェクト属性を戻してから削除 |
| 起動のたびにファイル名・場所が変わる | 自己改名・自己複製(テンポラリ配下/ユーザープロファイル配下/タスクスケジューラ/WMI) | 起動永続化の全形態(Logon・タスク・サービス・WMI・IFEO等)を総当たりで止める |
| CPU使用率が突発的に上がる | マイニング実行(例:xmrig系)やプールへの常時通信 | ネットワーク遮断→駆除→通信設定(プロキシ/hosts/ファイアウォール)を初期化 |
初動対応:拡散と自己防衛を止める
- 物理的切り離し:Wi‑Fi/有線LANを切断。Bluetooth・共有フォルダも停止。
- 感染源USBは隔離:ラベルで「要廃棄/要フルフォーマット」と明記し再接続しない。
- 記録:発見時刻、検出名、ファイル名、パス、プロセスID、タスク名をメモ。後の追跡に必須。
- 管理者権限の確保:以降の操作は「管理者として実行」を基本に。
Microsoft Safety Scanner(msert.exe)で完全スキャン
Microsoft公式のスタンドアロン駆除ツールを用いて、実体化前後の残骸やメモリ上の隠しプロセスまで一括処理します。常駐型のWindows Defenderと競合せず併用できます。
- msert.exeを最新版に差し替え(毎日更新のため、古いコピーを使わない)。
- ネットワークを一時的に有効化してダウンロード後、再び遮断。
- 右クリック→管理者として実行→「フル スキャン」を選択。外付けドライブ(感染USBは後述のフルフォーマットまで接続禁止)を除き、全ローカルドライブを対象に。
- 検出は自動処理されます。完了後は「脅威なし」の状態で終了することを確認。
- ログ確認:
C:\Windows\debug\msert.logを開き、検出名・処置結果(Removed/Quarantined/No Action)を確認・保全。
ここで「脅威なし」で終われない場合は、並行して後述のオフラインスキャン・Autoruns・手動処置を続けます。
Autoruns(Sysinternals)で起動永続化の目視監査
自己改名型は「起動時に毎回新しい自分を用意する」仕掛けを複数持ちます。AutorunsでLogon/Scheduled Tasks/Services/Drivers/WMI/IFEO/Browser Helperなどを横断的に洗います。
- Autorunsを展開し、
Autoruns64.exeを管理者として実行。 - Options → Scan Optionsで「Verify Code Signatures」を有効化。必要に応じて「Check VirusTotal」を有効化(オフライン環境では未使用でOK)。
- ノイズを減らすため「Hide Microsoft Entries」を一時的に有効化し、明らかな非Microsoft項目を先に精査。最終確認では無効化して全表示で再チェック。
- 各タブを上から順に目視。不審エントリはチェックを外す(無効化)→右クリックでDelete(削除)は後で。
| 見る場所 | 不審の典型例 | 見るポイント |
|---|---|---|
| Logon | 乱数/ハッシュ風のEXE名、ユーザープロファイル直下の隠しフォルダ | Publisherが不明、パスが%AppData%や%Temp%配下 |
| Scheduled Tasks | 意味不明なGUID名、1分ごと/ログオン時/アイドル時に実行 | Actionsでwscript.exeやpowershell -encを呼び出していないか |
| Services / Drivers | Windows風の偽装名(例:Windows Update Service Helper) | デジタル署名の有無、説明が空欄、開始種類が自動 |
| WMI | 永続化用のConsumer/Filter/Binding | スクリプト実行や不審なコマンドライン |
| Image Hijacks (IFEO) | 正規EXEに対するDebugger差し替え | 不審exeへリダイレクトされていないか |
| Explorer / Shell Extensions | コンテキストメニュー/シェル拡張に紛れ込む | 不明ベンダーのDLL |
Autorunsで無効化したら再起動し、ふるまいが止まっているかを確認。問題なければ削除へ進みます。
Windows Defender オフライン スキャン
再起動前に予約され、OS起動前にスキャンするため、自己防衛ドライバやルートキット的な隠蔽も炙り出せます。
- 設定 → プライバシーとセキュリティ → Windows セキュリティ → ウイルスと脅威の防止 → スキャンのオプション → Microsoft Defender オフライン スキャンを実行。
- 完了後、検出内容をWindows セキュリティの履歴とイベントビューアで確認。
System32にあるのに削除できないファイルへの対処
自己隠蔽の多くはファイルシステムの仕掛けを悪用します。メモリ内の実行体を先に止める(前述のスキャンとAutoruns)ことが前提です。止めたうえで、以下の順で「実体」を見抜きます。
属性・短縮名・ADSを可視化
cmd.exe(管理者)で実行
REM 隠し/システム属性まで含め一覧
dir C:\Windows\System32 /a /x /r
REM 属性を戻す(必要に応じて)
attrib -s -h -r "C:\Windows\System32<疑わしいファイル>"
ジャンクション/再解析ポイントの判定
fsutil reparsepoint query "C:\Windows\System32\<対象>"
再解析ポイントであれば実体は別の場所です。実体パスを特定してから処置します。
ハンドル保持・ロックの解除(Sysinternals)
handle.exe -a "<ファイル名や一部の文字列>"
ロックしているプロセスを特定し、可能ならプロセスを終了。終了できない場合は再起動時削除(MoveFileEx)やリカバリ環境での削除に切り替えます。
パス長/予約名/不可視名対策
del "\\?\C:\Windows\System32\<対象>"
\\?\ を付けるとWin32パス長制限の影響を受けにくくなります。
所有権とACLを取り戻す
takeown /f "C:\Windows\System32\<対象>"
icacls "C:\Windows\System32\<対象>" /grant administrators:F
最終削除
del /f /a "C:\Windows\System32\<対象>"
ここまでで消えない場合は、回復環境(Windows RE)やWinPEからオフラインで削除します。
PowerShell/コマンドでの補助チェック
GUIに頼らず、残骸と永続化の有無をスクリプトで点検します。
Defenderシグネチャ更新とフルスキャン
PowerShell(管理者):
Update-MpSignature
Start-MpScan -ScanType FullScan
Get-MpThreat
起動項目・タスク・サービス
# スタートアップ(ユーザー/全体)
Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location, User
# タスクスケジューラ
Get-ScheduledTask | Where-Object {$*.State -ne 'Disabled'} |
Select-Object TaskName,TaskPath,Author,@{n='Action';e={$*.Actions}}
# サービス
Get-Service | Where-Object {$_.Status -ne 'Stopped'} | Sort-Object DisplayName
WMI永続化
Get-WmiObject -Namespace root\Subscription -Class __EventFilter
Get-WmiObject -Namespace root\Subscription -Class CommandLineEventConsumer
Get-WmiObject -Namespace root\Subscription -Class __FilterToConsumerBinding
ネットワーク常時接続・プロキシ/hosts改変
netstat -ano | findstr ESTABLISHED
netsh winhttp show proxy
ipconfig /displaydns
type C:\Windows\System32\drivers\etc\hosts
USBドライブの初期化(フルフォーマット)
感染源USBはクイックではなくフルフォーマットします。データ救出が不要な場合は上書き消去を推奨。
- 重要データの救出は別の安全なPC上の隔離VMで実施(コピー先は自動実行しない領域)。
- Windowsの「ディスクの管理」でボリュームを削除→再作成→フルフォーマット。
- コマンド例:
format X: /FS=exFAT /P:1 /V:CLEANUSB(XはUSBのドライブレター、/P:1で1回上書き)。
復元ポイントと完全な「クリーン状態」づくり
- 古い復元ポイントの削除:感染期間のスナップショットを破棄。
- Windows Updateとドライバー更新を適用。
- 状態が安定したら新規の復元ポイントを作成。
アカウント保全と被害最小化
- 別デバイスから主要アカウント(メール/クラウド/SNS/ゲーム/金融)のパスワード変更。
- 二要素認証(Authenticatorアプリ/セキュリティキー)を有効化。
- メール転送設定・ログイン履歴・不審なセッションを確認。
CoinMiner特有の痕跡チェック
- CPU/GPU使用率のスパイク(アイドル時に上がる)。
- プール接続(例:3333/4444/5555番台など)への継続通信。
- 実行ファイルや設定に「xmr」「crypt」「pool」「rig」等の語。
- 電源プランが「高パフォーマンス」に変更されている。
ブラウザ起因のマイニング回避
ブラウザ拡張やスクリプト型マイナーが混在することもあります。以下を点検:
chrome://extensions/edge://extensions/about:addons:不審な拡張を無効→削除。- キャッシュ・Service Workerのクリア。
- 通知・バックグラウンド許可を見直し。
ネットワークとシステムの初期化
netsh winsock reset
netsh int ip reset
netsh winhttp reset proxy
ipconfig /flushdns
これでプロキシ挿げ替えやDNS毒盛りの後遺症を戻せます。
多層防御の実装(再感染を防ぐ)
| 層 | 推奨設定 | 理由 |
|---|---|---|
| USB運用 | 書き込み禁止スイッチ付きUSBを採用。未知PCから受け取るファイルは受領直後にスキャン。 | 物理的にマルウェアの書き込みを封じる。 |
| AutoPlay/AutoRun | グループポリシーですべてのドライブでAutoPlayを無効化。レジストリのMountPoints2を清掃。 | USB挿入での自動実行をブロック。 |
| Windows Defender | リアルタイム保護・クラウド提供保護・サンプル自動送信を有効化。定期的にオフラインスキャン。 | 未知・ポリモーフィックな亜種にも対抗。 |
| ASR(対応エディション) | Officeからの子プロセス生成やスクリプト悪用をブロック。 | メール/USB経由のマクロ連鎖を遮断。 |
| バックアップ | 3-2-1ルール:本体・別メディア・クラウドを組み合わせ、オフラインコピーを用意。 | 破壊/暗号化/再感染時の迅速復旧。 |
学校や共有PCとファイル授受する人のための実践手順
- USBは受け取ったらまず読み取り専用(物理スイッチ or 書き込み禁止マウント)で開く。
- PC側はAutoPlay無効。拡張子は常に表示。
- USB直下のショートカットやスクリプト(
.lnk .js .vbs .ps1 .bat等)は即開かない。 - ファイルは隔離領域にコピー→オンデマンドスキャン→必要なものだけ本環境へ。
- 提出・返却時はフルフォーマットでリセット。
チェックリスト(駆除完了判定)
- Microsoft Safety Scanner:最新でフルスキャン完走、脅威なし。
- Windows Defender オフライン スキャン:検出無し or 検出は全て処置済み。
- Autoruns:Logon/Tasks/Services/WMI/IFEO/Explorerに不審項目が残っていない。
- System32の不審ファイル:実体を確認のうえ削除成功。再起動後も復活しない。
- ネットワーク・プロキシ・hosts:初期化済み。
- USB:フルフォーマット済み(再接続時も何も起きない)。
- 復元ポイント:クリーンな状態で作成済み。
- 主要アカウント:別デバイスからパスワード更新・2段階認証有効化。
困ったときの代替ルート
- セーフモードでも止められない:回復環境(Windows RE)で「コマンドプロンプト」を起動し、対象ファイルをオフライン削除。
- システム破損が激しい:インプレース修復(上書きインストール)または「このPCをリセット」。機密性の観点で個人用ファイルを削除する選択肢を検討。
- 企業/学校PC:自己判断で進めず、ポリシーに従ってISMS/情報システム部門へエスカレーション。
よくある落とし穴
- クイックスキャンで「安心」:自己改名型は深部に潜む。フルスキャン前提。
- クイックフォーマットのみ:USBに不良セクタや隠し領域が残ることがある。フルフォーマットを。
- Autorunsで即削除:まず無効化→再起動で影響を切り分け、安定後に削除。
- 検出ログを残さない:後で復活した時に追跡不能。
msert.log等はバックアップ。
実運用に役立つコマンド早見表
| 目的 | コマンド | 備考 |
|---|---|---|
| Defender更新 | Update-MpSignature | オフラインでも差分が入っていれば有効 |
| Defenderフルスキャン | Start-MpScan -ScanType FullScan | UI操作ができない時に |
| 現在の脅威 | Get-MpThreat | 検出名と処置結果 |
| ネットワーク初期化 | netsh winsock reset | プロキシ/フィルタの後遺症に |
| ADS列挙 | dir /r | 代替データストリームを確認 |
| 所有権取得 | takeown /f <path> | System32内の不審ファイル |
| ACL修復 | icacls <path> /grant administrators:F | 削除前の事前作業 |
| 長いパスの削除 | del "\\?\<path>" | Win32 APIの制限回避 |
ケーススタディ:自己改名型の挙動を見破る観察ポイント
- 時刻:ログオン直後/1分周期/アイドル復帰のいずれかで発火。
- 場所:
%AppData%、%ProgramData%、%Temp%、%LocalAppData%に隠しフォルダを生成。 - 命名規則:GUID/ハッシュ風、末尾に数字が増える、拡張子偽装(
.scr .com .cpl)。 - 通信:特定ポート宛の断続的接続、プロキシ設定書き換え。
- 防衛:IFEOで解析ツールを差し替え、WMIで自己再生成。
まとめ
自己改名・自己隠蔽型のUSB経由マルウェアは、(1)メモリ常駐の停止(Safety Scanner/Defenderオフライン)→(2)起動永続化の無効化と削除(Autoruns)→(3)ファイルシステムの実体への直接対応(属性/ハンドル/ACL/オフライン削除)→(4)感染源USBのフルフォーマットの順で、理詰めに進めれば確実に根絶できます。最後に復元ポイントの作り直し、パスワード変更、AutoPlay無効化、書き込み禁止USBへの置き換えまで実施すれば、同種の再感染は大幅に抑えられます。
付録:作業フロー(印刷用)
- ネットワーク遮断・USB隔離・記録。
- Microsoft Safety Scannerでフルスキャン。
- AutorunsでLogon/Tasks/Services/WMI/IFEOを無効化。
- Defender オフライン スキャン。
- System32の不審ファイルを属性復旧→ハンドル解除→削除。
- ネットワーク/プロキシ/hosts初期化。
- USBをフルフォーマット。
- Windows/ドライバ更新→新規復元ポイント作成。
- アカウントのパスワード変更・2FA化。
- AutoPlay無効化、バックアップの3-2-1整備、書き込み禁止USBの運用開始。

コメント