Adversaries may create or modify system-level processes to repeatedly execute malicious payloads as part of persistence. When operating systems boot up, they can start processes that perform background system functions. On Windows and Linux, these system processes are referred to as services.(Citation: TechNet Services) On macOS, launchd processes known as Launch Daemon and Launch Agent are run to finish system initialization and load user specific parameters.(Citation: AppleDocs Launch Agent Daemons)
Adversaries may install new services, daemons, or agents that can be configured to execute at startup or a repeatable interval in order to establish persistence. Similarly, adversaries may modify existing services, daemons, or agents to achieve the same effect.
Services, daemons, or agents may be created with administrator privileges but executed under root/SYSTEM privileges. Adversaries may leverage this functionality to create or modify system processes in order to escalate privileges.(Citation: OSX Malware Detection)
T1543は「Create or Modify System Process(システムプロセスの作成または変更)」として定義されている、Windows、Linux、macOSのすべてにおいて極めて頻出する、最重要かつ広範な「永続化(Persistence)」および「特権昇格(Privilege Escalation)」の親テクニックです。
OSの標準的なサービスやデーモンの管理機能を悪用し、「マルウェアをシステムサービスとして新規登録する」か、「既存の正規のサービス設定を書き換えてマルウェアを起動させる」ことで、OS起動時の自動実行や最高権限の獲得を達成します。
現在は、対象となるOSやシステムコンポーネントごとに、以下の4つのサブテクニックに細分化されて管理されています。
この手法で攻撃者は、「ユーザーがログインしていなくても、OSが起動した瞬間からバックグラウンドで最高権限(SYSTEMやroot)のバックドアを完全常駐させること」を実現します。
最高権限(SYSTEM / root)での安定稼働:
OSのサービス(デーモン)は通常、システムを管理する最高特権で実行されます。ここにマルウェアを滑り込ませることで、セキュリティツールの停止や、システム全体のファイル・データへの自由なアクセス権を手に入れます。
強固な永続化(ゾンビ化):
サービス管理機構には「プロセスが異常終了したら自動で再起動する(Windowsのサービス回復動作や、Linuxの Restart=always)」という仕様があります。これを悪用することで、管理者がマルウェアのプロセスを強制終了(kill)しても、数秒後にはOS自身が自動でマルウェアを再起動させてしまう強固な生存環境を作ることができます。
Windowsのサービスを管理するレジストリやサービスコントロールマネージャー(SCM)を書き換えるケース(T1543.003)を例に解説します。この実行には通常、管理者権限(Administrator)が必要です。
初期侵入と権限昇格:
脆弱性を突くなどしてシステムに侵入し、他のテクニックを用いて管理者権限を確保します。
マルウェアの配置:
遠隔操作ツール(RAT)などの実行ファイル(例: svc_agent.exe)をシステムフォルダなどに配置します。
新規サービスの作成(または既存の変更):
Windows標準の sc.exe コマンド、あるいはPowerShellの New-Service を悪用し、正規のシステム管理サービスを装った名前(マスカレード)でマルウェアを登録します。
コマンド例:
sc create "WinUpdateAssist" binPath= "C:\Windows\Temp\svc_agent.exe" start= auto
(※「WinUpdateAssist」という偽のサービス名で、OS起動時に自動実行するよう設定)
レジストリへの反映:
この設定は、Windowsのサービスを司る以下のレジストリ領域に自動的に書き込まれます。
キー: HKLM\SYSTEM\CurrentControlSet\Services\WinUpdateAssist
実行(トリガー):
攻撃者が sc start WinUpdateAssist を実行するか、次回のPC起動時、Windowsのサービスコントロールマネージャー(services.exe)がこのレジストリを読み込み、マルウェアを SYSTEM権限 でバックグラウンド起動します。
「サービス登録コマンドの監視」と「サービス関連レジストリ・フォルダの整合性監視」の徹底が防衛線となります。
サービス管理コマンドの引数監視(最重要):
EDRやSysmon(Event ID 1: Process Creation)を活用し、sc.exe create、sc.exe config、あるいはPowerShellの New-Service や Set-Service が不自然に実行されていないかを厳重に監視します。企業の通常運用で、野良スクリプトから新しいサービスが突発的に登録されることはありません。
サービス関連レジストリ・フォルダの監視(FIM):
Windows:
HKLM\SYSTEM\CurrentControlSet\Services\ 配下への新しいキーの追加や、既存の ImagePath(実行ファイルのパス)の書き換えをEDRでアラート化します。
Linux:
/etc/systemd/system/ や /lib/systemd/system/ 配下における新規 .service ファイルの作成を監視します。
プロセスの親子関係の監査:
Windowsのサービス管理プロセス(services.exe)やLinuxの(systemd)を親プロセスとして、普段は起動するはずのない一時フォルダ(Temp)やユーザーフォルダ配下の不審なバイナリが実行されていないかをプロセスツリーで確認します。
「環境寄生(LOLBas/LOLBins)」との組み合わせ:
攻撃に使うのはOS標準の正規コマンド(sc や systemctl)や、正規のシステム管理機構そのものです。そのため、ツール自体の実行を禁止することは難しく、行われた「設定内容(引数やレジストリの値)」を精査して見極める必要があります。
マスカレード(偽装)の徹底:
攻撃者は一目で怪しいとわかるサービス名は使いません。Windows Defender Update Service や Linux Network Manager Daemon のように、OSに最初から入っていそうな名前を巧みにつけ、数百ある正規サービスの中に完全に溶け込ませようとします。
CWE-15: External Control of System or Configuration Setting(システムまたは構成設定の外部制御)
OSの起動や常駐サービスを管理する重要な構成設定が外部から不正に変更可能になっており、実行フローの制御を奪われてしまう設計・運用の弱点。
CWE-732: Incorrect Permission Assignment for Critical Resource(重要なリソースに対する不適切なアクセス権限の割り当て)
システム全体のサービスやレジストリ、設定フォルダに対する書き込み権限の管理が不適切で、昇格した攻撃者による「サービスプログラムのすり替え・新規登録」を許してしまう問題。
T1543(Create or Modify System Process)はOSの正規仕様を悪用するため、これ自体にCVE番号があるわけではありませんが、攻撃者がサービスを自由に操作できる「最高権限」を得るために、以下の権限昇格(Local Privilege Escalation)やリモートコード実行(RCE)の脆弱性が激しく悪用されます。
CVE-2021-34527 (通称: PrintNightmare - Windows 印刷スプーラーの脆弱性):
WindowsのPrint Spoolerサービスに存在した、リモートやローカルから最高権限で任意のコードを実行できてしまう極めて致命的な脆弱性です。ハッカー(ランサムウェアアクターなど)はこのバグを突いてシステムを掌握した後、その高い権限を活かして即座に T1543.003(Windows Service) を実行し、自身のバックドアをシステムサービスとして永続化させる一連の攻撃テンプレートを多用しました。
CVE-2021-44228 (通称: Log4Shell - Apache Log4jの脆弱性):
Javaベースのアプリケーションに広く使われているライブラリ「Log4j」の、歴史上最も世界に衝撃を与えたRCE脆弱性です。主にLinuxサーバーを標的としたインターネット経由の攻撃において、ハッカーはこの脆弱性でサーバー内への初期侵入(コード実行)に成功した後、長期的な支配権(永続化)を維持するため、今回の T1543.002(Systemd Service) や Cron を悪用して自動再起動型の不正サービスを登録する手口を展開しました。
インシデントフォレンジックの際、「端末を再起動してもマルウェアが必ず自動復活する」という場合、Windows環境であれば以下のコマンドを叩いて、登録されている全サービスと、その実行ファイルのパス(Binary Path)に不審な場所(Temp や、正規の System32 ではない場所)が指定されていないか一括で精査するのが、この親テクニック(T1543)の仕込みを暴くための定石となります。
wmic service get name,displayname,pathname,startmode
この攻撃手法を利用する脅威アクターは登録されていません。