Mac の XProtect とは?CPU を使うのはなぜ?
XProtect は macOS に組み込まれたアンチウイルスです。Apple はシグネチャベースでマルウェアを検出して除去するものと説明していて、最近のどの Mac でも、アイコンもウィンドウもないまま動いています。アクティビティモニタに XProtect、xprotectd、名前に XProtectRemediator を含むプロセスが見えるのは正常で、CPU が短時間跳ねるのは、たいていアプリの確認や定期スキャンの最中です。動かしたままにしてください。
いつ何をするのか
Apple のマルウェア対策ガイドには3つの要素が書かれています。
| 要素 | 役割 |
|---|---|
| シグネチャ検出 | Apple が更新する YARA シグネチャでアプリを調べる |
| 修復エンジン | Apple からのアップデートを使って既知の感染を除去し、定期的に確認を続ける |
| 振る舞いエンジン | 動きから未知のマルウェアを検出し、そのデータがシグネチャの改善に使われる |
Apple によると、XProtect は、アプリを初めて起動したとき、アプリがファイルシステム上で変更されたとき、シグネチャが更新されたときに、既知の悪意あるコンテンツがないか調べます。macOS は既定で、システムアップデートとは別に、そのアップデートを毎日確認します。そのため、アプリをインストールまたはアップデートしたあと、シグネチャが更新されたあと、そしてアプリと関係なく時々、動作が見られるのは自然です。
マルウェアを見つけると、Apple によれば XProtect はそれをブロックしてゴミ箱へ移し、Finder で通知します。スキャンを自分で開始するウィンドウはありません。そういう設計ではないからです。
どこにあるか
Apple のガイドにはパスは載っていません。このページを確認した Mac では、各部分は次の場所にありました。
/Library/Apple/System/Library/CoreServices/XProtect.app
/usr/libexec/xprotectd
/var/protected/xprotect/XProtect.bundle
XProtect.app には、除去対象のマルウェアファミリーごとに XProtectRemediator… プログラムが1つずつ入っていて、XProtectRemediatorAdload のような名前です。アクティビティモニタに見たことのない名前が出るのはこのためです。/Library/Apple には restricted フラグが付いていて、sudo を使っても System Integrity Protection によって変更できません。
インストールされているバージョンと更新履歴は次のように確認します。
xprotect version
system_profiler SPInstallHistoryDataType | grep -A 4 XProtect
お使いの macOS に xprotect コマンドがなければ、2行目を使ってください。こちらははるか前からあります。
CPU を使っているとき
新しいアプリをインストールしたり開いたりした直後に跳ねるのは想定どおりです。電源につないで数分待ってください。
高いままなら、次の順に確認します。
- アクティビティモニタを開き、表示 › すべてのプロセス を選んで % CPU で並べ替えます。正確な名前と、一定なのか波があるのかを控えます。
- そのファイルが本当に Apple のものか確認します。プロセスを選んで i ボタンを押し、開いているファイルとポート を見ます。プログラムは上のパスのどれかにあるはずです。
- 作業を終えて再起動し、10分ほど様子を見ます。再起動すれば止まったスキャンは終わり、次回は macOS が自動で予定します。
- 保留中の macOS アップデートをインストールします。システム設定 › 一般 › ソフトウェアアップデート です。
- ほぼ毎日何時間も動き続けるなら、見たことを添えて Apple にフィードバックを送ります。始まった頃にインストールしたアプリも書き添えてください。ファイルが変わり続けるアプリは XProtect が調べるものを増やします。
XProtect が静かでも遅さが残るなら別の原因なので、一覧の読み方はMac の CPU 使用率が高いときを参照してください。
これだけで十分か
既知のマルウェアに対する本物の保護で、Gatekeeper や公証と並んで働きます。シグネチャのアップデートが届く経路なので、システム設定 › 一般 › ソフトウェアアップデート › 自動アップデート の セキュリティ対応とシステムファイルをインストール はオンにしておいてください。一方で、完全なセキュリティ製品ではありません。読めるスキャン履歴も、Web フィルタリングも、オンデマンドのスキャンボタンもありません。さらにサードパーティ製品が必要かは、あなたの使い方と勤務先の要件しだいです。削除する場合は、Mac でウイルス対策ソフトをアンインストールする方法に、それぞれが残すものがまとめてあります。
やってはいけないこと
- 削除や無効化を試さない。フォルダは保護されていて、回避するガイドは System Integrity Protection をオフにするよう求めますが、その代償は CPU の跳ねよりはるかに大きいです。
- 何度も強制終了しない。macOS が必要とするときに動くので、作業が先送りされるだけです。
- XProtect がウイルスを見つけたと表示し、電話番号やダウンロードを案内するポップアップを信じない。XProtect が通知するのは Finder で、何も要求しません。
- ブロックされたアプリを、名前に見覚えがあるからとゴミ箱から戻して使い続けない。開発元からもう一度ダウンロードしてください。
Mole でできること
Mole はアンチウイルスではありません。マルウェアのスキャンはせず、クリーン に XProtect の項目もありません。ステータス は、これらのプロセスが負荷の高い行に入っていれば表示し、1つのアプリバンドルから動くものは1行にまとめます。行の なぜ実行中? で実行ファイルが分かるので、ターミナルなしでパスを確認できます。XProtect ではない見慣れないバックグラウンドプロセスを追っているなら、アプリ の 起動 セグメントにサードパーティ製の起動項目が並びます。常駐するアドウェアがインストールされがちな場所です。
よくある質問
XProtect はウイルス?
違います。Apple のアンチウイルスで、macOS の一部です。プログラムは保護されたシステムの場所にあるので、ダウンロードフォルダなどそれ以外の場所からその名前のプロセスが動いていたら疑ってください。
XProtect をオフにできる?
システム設定からはできません。オンのままにしてください。回避する方法は System Integrity Protection を弱めるもので、それは XProtect よりはるかに多くのものを守っています。
XProtectRemediator が動いているのはなぜ?
既知の特定のマルウェアを定期的に探して除去する部分です。このプロセスが見えても、Mac が感染しているとは限りません。日常的に動き、ほとんどはすぐに終わります。
XProtect のバージョンを確認するには?
ターミナルで xprotect version を実行するか、更新履歴なら system_profiler SPInstallHistoryDataType | grep -A 4 XProtect を実行します。
XProtect があればアンチウイルスは要らない?
多くの人にとっては、Gatekeeper や公証とともに既知のマルウェアをよくカバーします。スキャンレポートもオンデマンドのスキャンもないので、職場のルールやそれらの必要があるなら、別の製品を足す理由になります。