During the boot process, macOS executes source /etc/rc.common, which is a shell script containing various utility functions. This file also defines routines for processing command-line arguments and for gathering system settings, and is thus recommended to include in the start of Startup Item Scripts (Citation: Startup Items). In macOS and OS X, this is now a deprecated technique in favor of launch agents and launch daemons, but is currently still used.
Adversaries can use the rc.common file as a way to hide code for persistence that will execute on each reboot as the root user (Citation: Methods of Mac Malware Persistence).
T1163は「Rc.common(rc.commonの改ざん)」として定義されていた、macOS環境特有の自動実行・永続化手法です。
macOSのレガシーな起動システム(BSD系OSの仕組み)で使われていた初期化スクリプトファイルである rc.common を書き換え、「Macが起動した直後」かつ「ログイン画面が表示される前」に、マルウェアを自動的にroot権限(最高権限)で実行させる手法です。
この手法で攻撃者は、「macOSのモダンなサービス管理システム(launchdなど)の監視の目を盗みつつ、システム起動時に最初から最高権限で動作するバックドア」を確立します。
ログイン不要のroot実行:
ユーザーがログインするより遥か前の、OSが起動(ブート)する初期段階で自動発動します。しかも、システムを司る最高権限(root)で実行されるため、セキュリティソフトのバイパスやシステム全体の制御が可能です。
検知の回避(レガシーの悪用):
近年のmacOSは launchd によるサービス管理(Launch Agent/Daemonなど)が主流です。攻撃者はあえて、OSの奥底に残されている古い互換性維持用のスクリプト(rc.common)にコードを仕込むことで、モダンなEDR製品や管理ツールの死角を突くことができます。
rc.common はシステム全体に影響する非常に重要なファイルであるため、この手法を実行するには、攻撃者は事前に管理者権限(sudo / root権限)を確保している必要があります。
マルウェアの配置:
攻撃者は永続化させたい不正なバイナリ(RATなど)を、システムフォルダ内(例: /usr/local/bin/ など)に静かに配置します。
スクリプトの改ざん:
管理者権限(sudo)を悪用して、macOSの起動スクリプトである以下のファイルを編集(または末尾に追記)します。
/etc/rc.common自動起動の発動:
次回、Macの電源が入れられてOSが起動する際、システム初期化処理(システムブートスクリプト)の一環として /etc/rc.common が強制的に読み込まれます。
コード実行:
スクリプト内の正規の初期化処理が終わった直後に、末尾に仕込まれたマルウェアのコマンドが実行され、ユーザーがログイン画面でパスワードを入力するよりも前に、バックドアがroot権限で裏で静かに動き始めます。
「重要な初期化ファイルの書き込み権限制限」と「ファイル整合性監視」が鍵です。
SIP(System Integrity Protection)の有効化:
Modern macOS(OS X El Capitan 10.11以降)では、「SIP(システム整合性保護:別名 Rootless)」と呼ばれる強力な保護機能が標準搭載されています。SIPが有効な環境では、たとえ最高権限を持つ root ユーザーであっても、/etc/rc.common を含むOSのシステム領域のファイルを変更・上書きすることができなくなります。自社のMac環境でSIPが確実に有効になっているかをMDM(モバイルデバイス管理)等で強制・確認します。
ファイル整合性監視(FIM):
/etc/rc.common への書き込みや変更を監視します。通常のOS運用において、このレガシーなファイルがアップデート以外で書き換わることは絶対にありません。
最小権限の原則:
一般ユーザーのアカウントに不要な sudo 権限(管理者権限)を与えないように徹底し、最初の侵入段階でスクリプトを書き換えられるリスクを抑えます。
現代のmacOSにおける位置づけ:
Appleは段階的に古い rc 形式の起動スクリプト(rc.common や rc.netboot など)を廃止、または実行されないようにOSの仕様を変更しています。そのため、最新のmacOS(macOS 11 Big Sur 〜 macOS 14 Sonomaなど)ではこのファイル自体が機能しない、あるいは存在しないケースがほとんどです。
レガシーシステムでの高いリスク:
しかし、工場ラインの制御用、古いデザイン業務の維持、検証用などで古いバージョンのmacOS(OS X時代など)をアップデートせずに使い続けている環境が社内に残っている場合、この T1162 / T1547.011 は今なお一発でシステムを完全支配される極めて致命的な永続化ポイントとなります。
CWE-15: External Control of System or Configuration Setting:
システムの初期化・起動設定(rc.common)を外部から不正に変更されてしまう不備。
CWE-732: Incorrect Permission Assignment for Critical Resource:
重要なシステムファイルに対するファイルパーミッション(アクセス権限)の管理不備。
インシデント調査や古いMacのセキュリティ監査を行う際、もし /etc/rc.common のタイムスタンプ(更新日時)がOSのインストール日時や通常のパッチ適用日時とズレて不自然に新しい場合は、すぐに cat /etc/rc.common でファイルの中身を確認してください。オリジナルのAppleのコピーライトや標準的な環境変数定義の「下」に、見慣れないシェルスクリプトやバイナリの実行コードが追加されている場合、それは過去に管理者権限を奪取されて仕込まれたバックドアの残骸、あるいは現在進行形の脅威です。
この攻撃手法を利用する脅威アクターは登録されていません。
この攻撃手法に関連する CVE は登録されていません。