Screensavers are programs that execute after a configurable time of user inactivity and consist of Portable Executable (PE) files with a .scr file extension.(Citation: Wikipedia Screensaver) The Windows screensaver application scrnsave.scr is located in C:\Windows\System32\, and C:\Windows\sysWOW64\ on 64-bit Windows systems, along with screensavers included with base Windows installations.
The following screensaver settings are stored in the Registry (HKCU\Control Panel\Desktop\) and could be manipulated to achieve persistence:
SCRNSAVE.exe - set to malicious PE pathScreenSaveActive - set to '1' to enable the screensaverScreenSaverIsSecure - set to '0' to not require a password to unlockScreenSaveTimeout - sets user inactivity timeout before screensaver is executedAdversaries can use screensaver settings to maintain persistence by setting the screensaver to run malware after a certain timeframe of user inactivity. (Citation: ESET Gazer Aug 2017)
T1180は「Screensaver(スクリーンセーバーの悪用)」として定義されている、Windows環境における古典的かつ非常に実用的な自動実行手法です。
Windowsのスクリーンセーバーが起動する仕組みを悪用し、指定された時間が経過して画面がロックされる、あるいは暗転するタイミングで正規のスクリーンセーバーファイルの代わりにマルウェア(.exe)を自動実行させる手法です。主に「永続化(Persistence)」のために利用されます。
この手法で攻撃者は、「ユーザーが席を外してPCの操作を止めた瞬間を狙った、管理者権限すら不要な自動実行環境」を実現します。
簡単な永続化:
独自の常駐プログラム(サービスなど)を常に動かしておく必要がありません。「ユーザーが席を離れる」という日常的な動作がそのままマルウェアの起動スイッチになります。
一般ユーザー権限での潜伏:
Windowsのスタートアップ設定やサービスの登録には管理者権限が必要なことが多いですが、自分のアカウントのスクリーンセーバー設定を変更するだけであれば、一般ユーザー権限(特権なし)のままで実行可能です。
時間差での実行(防御回避):
セキュリティ担当者やユーザーがPCを操作してログを監視している間はマルウェアが起動せず、誰も操作していない時間(深夜や休憩中)にだけ活動を開始させることができます。
Windowsは、ユーザーの「現在の環境(HKCUレジストリ)」にスクリーンセーバーの設定を保存しています。攻撃者はここを狙います。
初期侵入:
フィッシングメールなどを経由してターゲットのWindows端末に侵入し、一般ユーザー権限を確保します。
マルウェアの配置:
遠隔操作ツール(RAT)などの実行ファイル(例: bad.exe)を、目立たないフォルダ(AppData や Temp など)に配置します。拡張子は本来のスクリーンセーバーである .scr に偽装されることもあります。
レジストリの改ざん:
Windowsのスクリーンセーバー設定を管理する以下のレジストリキーを、コマンド(reg add)やスクリプトを悪用して書き換えます。
HKCU\Control Panel\DesktopScreenSaveActive = "1" (スクリーンセーバーを有効にする)ScreenSaverIsSecure = "1" (再開時にパスワード入力を求める設定。偽装用)ScreenSaveTimeOut = "600" (起動するまでの時間。秒単位。例:10分間操作がないと起動)SCRNSAVE.EXE = [手順2で置いたマルウェアの絶対パス]自動実行の発動:
仕込み完了後、ユーザーが昼食や離席でPCの操作を10分間止めると、Windowsシステムが「スクリーンセーバーの時間だ」と判断し、レジストリに登録されたマルウェア(bad.exe)をバックグラウンドで自動実行します。
「レジストリの監視」と「グループポリシーによる統制」が極めて有効なディフェンスになります。
グループポリシー(GPO)による強制無効化(企業における最重要対策):
企業のActive Directory環境であれば、グループポリシーを使って全社的に「スクリーンセーバーを特定の安全なファイル(例: scrnsave.scr)に固定する」、あるいは「独自のスクリーンセーバー設定を禁止する」というポリシーを強制適用します。これにより、個々の端末のHKCUレジストリが書き換えられてもシステムに無視させることができます。
レジストリの監視:
EDRやSysmon(Event ID 13: RegistryEvent)を使用し、HKCU\Control Panel\Desktop\SCRNSAVE.EXE という値が新規に作成されたり、変更されたりする挙動を常時監視します。正規の手段(コントロールパネルの画面設定)以外からこのレジストリが急に書き換わることは通常ありません。
プロセス起動ログのチェック:
ユーザーが離席するタイミング(キーボードやマウスの入力が途絶えた時間帯)に、不審なパスから予期せぬプロセスが起動していないかをSIEM等のログで相関分析します。
.scr ファイルの正体:
Windowsのスクリーンセーバーファイル(.scr)は、中身としては一般的な実行ファイル(.exe)と全く同じ構造(PEフォーマット)をしています。そのため、攻撃者はマルウェアのプログラムの拡張子を単に .exe から .scr にリネームするだけで、Windowsにそのまま実行させることができます。
ユーザーに気づかれやすい弱点:
マルウェアが起動した際、画面を真っ暗にしたり、ダミーのグラフィックを表示したりするカモフラージュ処理を正しく実装していないと、ユーザーが席に戻ってきたときに「画面が固まっている」「怪しい黒い画面(CUI)が出ている」と気づかれて通報されるリスクがあるため、攻撃者にとっても好悪が分かれる手法です。
CWE-15: External Control of System or Configuration Setting(システムまたは構成設定の外部制御)
ユーザー環境の構成設定(スクリーンセーバーのパス)が外部(マルウェア)から自由に書き換え可能になっており、実行フローの制御を奪われてしまう問題。
CWE-732: Incorrect Permission Assignment for Critical Resource(重要なリソースに対する不適切なアクセス権限の割り当て)
自身のユーザー権限(HKCU)の範囲内で、システムの自動起動に関わる重要なレジストリ値を管理者権限なしに変更できてしまう設計上の割り当ての問題。
T1180(Screensaver)は、Windows OSが仕様として提供している「正規のレジストリ設定」をそのまま利用する攻撃であるため、特定のソフトウェアのバグ(CVE番号を持つ脆弱性)を突くものではありません。 しかし、ハッカーがこのスクリーンセーバー設定をリモートから強制的に仕込むために、一般ユーザーから管理者へと権限昇格(Privilege Escalation)を狙う際や、初期侵入時に以下のような脆弱性と組み合わせて一連の攻撃シナリオが組み立てられます。
エンドポイントのフォレンジック調査において、「Runレジストリやスタートアップフォルダ、タスクスケジューラには一切怪しい形跡がないのに、PCを放置してしばらく経つと必ず不審な通信(C2への接続)が発生する」という事例があった場合、この T1180 / T1546.010 が使われている可能性を疑ってください。
reg query "HKCU\Control Panel\Desktop" /v SCRNSAVE.EXE コマンドを叩き、登録されているパスに見覚えのない怪しいファイルが指定されていないかチェックすることが、解決の鍵になります。
この攻撃手法に関連する CVE は登録されていません。