Mac
 Computer >> コンピューター >  >> システム >> Mac

Macに潜む隠れたLaunchDaemonsとLaunchAgentsを見つけて削除する方法

Macユーザーにとって、隠れたログイン項目はさまざまなトラブルの原因となります。アプリがメニューバーには表示されるのにログイン項目には現れない、Safariが勝手にアドウェアサイトへリダイレクトされたりホームページを変更されたりする、見知らぬプロセスがバックグラウンドでシステムリソースを食いつぶす——こうした症状に心当たりはありませんか?

残念ながら、こうした予期しない問題の多くは、単にログイン項目からアプリを削除しただけでは解決できません。その理由は、通常のmacOSインターフェースからはアクセスできない「LaunchDaemons」と「LaunchAgents」と呼ばれる隠しプロセスが背後に存在しているからです。

この記事では、これらの隠れたLaunchDaemonsやLaunchAgentsを監視・対処して、Mac特有の問題をトラブルシューティングする方法を詳しく解説します。

macOSの起動プロセスを理解しよう

Macの電源ボタンを押すと、おなじみの一連の起動イベントが始まります。

  • 起動音が鳴る
  • Appleロゴとプログレスバーが表示される
  • 起動が完了するとログイン画面が現れる(自動ログインが有効ならデスクトップが直接表示される)

しかし、画面の裏側では何が起きているのでしょうか? 実は、macOSはlaunchdというプロセスを起動しています。launchdは、システムや個々のユーザーアカウントを含む、他のすべてのプロセスの起動・停止・管理を担う、macOSの中核となる存在です。このプロセスは高度に最適化されており、起動はほんの一瞬で完了します。

自分でも確認してみましょう。アクティビティモニタを開き、メニューから表示 > すべてのプロセスを選択します。リストの上部に、kernel_task(PID:0)とlaunchd(PID:1)という2つの主要プロセスが表示されるはずです。

これは、launchdがシステム起動時における最初の親プロセスであり、シャットダウン時には最後に終了するプロセスであることを示しています。

launchdの主な役割は、他のプロセスやジョブをスケジュールに従って、または必要に応じて起動することです。このジョブには2種類あります。それがLaunchDaemons(デーモン)LaunchAgents(エージェント)です。

LaunchDaemonsとLaunchAgentsとは?

LaunchDaemonsは通常root権限で動作します。つまり、ユーザーがログインしていなくても機能するということです。GUIを使って情報を表示することはできず、システム全体に影響を与えます。

例えば、locationdプロセスはMacの地理的位置情報を検出し、bluetoothdプロセスはBluetoothを管理しています。デーモンの設定ファイルは以下の場所に格納されています。

  • /System/Library/LaunchDaemons:macOSネイティブのプロセス用
  • /Library/LaunchDaemons:インストール済みサードパーティ製アプリ用

一方、LaunchAgentsはユーザーがログインしたタイミングで起動します。デーモンと異なり、ユーザーインターフェースにアクセスして情報を表示できます。例えば、カレンダーアプリはユーザーのカレンダーアカウントを監視し、予定の時刻になると通知してくれます。エージェントの設定ファイルは以下の場所にあります。

  • /Library/LaunchAgents:すべてのユーザーアカウント共通
  • ~/Library/LaunchAgents:特定のユーザーアカウント専用
  • /System/Library/LaunchAgents:macOS専用

ログイン前の段階では、launchdはLaunchDaemonsフォルダ内の.plistファイルに記述されたサービスやコンポーネントを実行します。ログイン後は、LaunchAgentsフォルダ内の.plistファイルで定義されたサービスやコンポーネントが実行されます。/System/Library配下のファイルはすべてmacOSの一部であり、System Integrity Protection(SIP)によって保護されています。

.plist環境設定ファイルは、一般的な逆ドメイン命名規則に従っています。会社名で始まり、アプリケーション識別子が続き、拡張子(.plist)で終わります。例えば、co.clario.Clario.plistはClarioアプリのヘルパーファイルです。

LaunchDaemonsとLaunchAgentsを検知する方法

Systemフォルダ内のものと違い、公開されているLaunchDaemonフォルダとLaunchAgentフォルダは、正規アプリだけでなく不正なアプリからもアクセス可能です。そこで活用したいのが、macOS標準の「フォルダアクション」機能による自動監視です。

まず、Spotlightで「AppleScript エディタ」を検索して起動します。「環境設定」を開き、「一般 > メニューバーにスクリプトメニューを表示」にチェックを入れます。

次に、メニューバーのスクリプトメニューアイコンをクリックし、「フォルダアクション > フォルダアクションを有効にする」を選択します。続いて同じメニューから「フォルダにスクリプトを添付」を選びます。

ダイアログボックスが表示されたら、「add - new item alert(新規項目アラート)」を選択します。

「OK」をクリックするとFinderウィンドウが開きます。ここでユーザーのLaunchDaemonフォルダ(前述の場所)を選択し、「選択」をクリックします。

同じ手順を、Mac上のすべてのLaunchAgentsフォルダに対しても繰り返します。

設定が完了したら、Finderで「移動 > フォルダへ移動」を選択するか、Shift + Command + Gを押してナビゲーションダイアログを開きます。「~/Library/LaunchAgents」と入力して「移動」をクリックしましょう。

LaunchAgentsフォルダを右クリックし、「サービス > フォルダアクション設定」を選択すると、新規項目アラートのスクリプトを各フォルダに紐付けられます。

ポップアップしたダイアログボックスでは、左列にフォルダの一覧、右列にスクリプトが表示されます。スクリプトが表示されていない場合は、プラス(+)ボタンをクリックして「new item alert.scpt」を追加してください。

これらの手順を完了すると、対象フォルダに新しい項目が追加されるたびにmacOSがアラートを表示してくれるようになります。これにより、バックグラウンドで密かにシステムに侵入しようとする不正なアプリを即座に発見できるのです。

専用アプリでフォルダを監視するのもおすすめ

フォルダアクション以外にも、これらのフォルダへの変更を通知してくれるサードパーティツールがあります。

EtreCheckはmacOS向けの診断ツールで、サードパーティ製LaunchDaemonsやLaunchAgentsの読み込み状況など、さまざまな情報を表示できます。EtreCheckを実行すると、Macに関する多様な情報を収集し、読みやすいレポート形式で提示してくれます。さらに、アドウェア、不審なデーモンやエージェント、未署名ファイルなどへの対処方法についても追加のヘルプオプションが用意されています。

EtreCheckを開いて「Scan」をクリックすると、スキャンが数分間実行されます。完了後、コンピュータの完全なサマリーが表示され、重大な問題と軽微な問題、ハードウェア仕様、ソフトウェア互換性の問題、LaunchDaemonsとLaunchAgentsの状態などを確認できます。

このアプリは最初の5件のレポートまで無料で、継続利用には17.99ドルのアプリ内課金が必要です。

Lingon Xも便利なツールです。アプリやスクリプト、コマンドをスケジュールに従って自動実行できるだけでなく、すべてのLaunchDaemonsおよびLaunchAgentsフォルダをバックグラウンドで監視し、変化があった際に通知を表示します。すべての項目をグラフィカルに確認し、必要に応じて調整することも可能です。

このツールは無料で試せますが、フルライセンスは14.99ドルです。

LaunchDaemonsとLaunchAgentsを削除する方法

公開されている/Library/LaunchAgents/Library/LaunchDaemonsフォルダは、正規アプリと不正アプリの両方にとって攻撃対象となり得ます。正規アプリがマーケティング目的で利用する一方、悪意あるアプリはデータ窃取やMacへの感染のために悪用する可能性があります。

アドウェアやマルウェアが成功するためには、すべてのユーザーセッションで持続的に存在する必要があります。そのため、マルウェアやアドウェアの作者は悪意あるコードを作成し、LaunchAgentまたはLaunchDaemonフォルダに配置します。Macが起動するたびに、launchdがその悪意あるコードを自動的に実行してしまうのです。幸い、セキュリティアプリでこれを防ぐことができます。

Macセキュリティアプリを活用する

無料のKnockKnockアプリは、「持続性(persistence)」という原理に基づいて動作します。持続的にインストールされたアプリとそのコンポーネントを、整理されたインターフェースで一覧表示してくれます。「Scan」ボタンをクリックすると、マルウェアが存在する可能性のある既知の場所をすべてスキャンします。

左ペインには持続的アプリのカテゴリが名前と簡単な説明付きで表示され、任意のグループをクリックすると右ペインに該当項目が表示されます。例えば、左ペインの「Launch Items」をクリックすれば、すべてのLaunchAgentsとLaunchDaemonsを確認できます。

各行にはアプリの詳細情報が含まれており、署名の有無、ファイルのパス、VirusTotalによるウイルススキャン結果などが確認できます。

BlockBlockはObjective-Seeが提供するもう一つの無料セキュリティアプリで、持続的なインストール先を常時監視します。バックグラウンドで動作し、マルウェアがmacOSに持続的なコンポーネントを追加しようとすると、すぐにアラートを表示してくれます。

ただし、すべてのサードパーティ製.plistファイルが悪意あるものというわけではありません。出所はさまざまで、以下のようなケースが考えられます。

  • インストール済みアプリの構成要素
  • 使用しなくなった古いアプリの残骸
  • 以前のmacOSアップグレードで残ったファイル
  • 移行アシスタントの残骸
  • PUP(潜在望ましくないプログラム)、アドウェア、マルウェア

インストール済みアプリの構成要素は削除すべきではありません。しかし、古いアプリの残骸や過去のmacOSアップグレードの leftovers(不要ファイル)は、(そのアプリを使い続けたい場合を除き)削除しても安全です。

特別なアンインストール手順は必要ありません。.plistファイルをゴミ箱に入れてMacを再起動するだけです。念のため、デスクトップにコピーしておくのも良いでしょう。ただし、System LaunchAgentsSystem LaunchDaemonsフォルダからは絶対に項目を削除しないでください。これらはmacOSが正常に動作するために必須だからです。

アドウェアやPUPは厄介な相手として知られています。判断に迷ったら、無料版のMalwarebytesを実行してみましょう。より強力な保護が必要な場合は、Malwarebytes Premiumへのアップグレードも検討する価値があります。

Macの起動時脅威に常に注意を払おう

これらの手順を実践すれば、新たな脅威を事前に察知し、迅速に対処できるようになります。アドウェアやPUPは増加傾向にあり、新しいマルウェアの亜種が次々と登場しています。幸い、macOSにはユーザーを守るための手段が数多く備わっています。

ポイントは、これらのフォルダを継続的に監視し、定期的に診断チェックを実行することです。疑わしい場合は、怪しいプロセス名を必ず検索して調べましょう。そして何より、マルウェア感染につながる危険な行為を避けることができれば、そもそも心配する必要はなくなるはずです。

  1. Macで重複した写真を見つけて削除する方法【自動・手動の手順を解説】

    誰もが写真を撮るのが大好きです。しかし、写真ライブラリを増やしていくうちに、Mac上に同じ写真の複製がいつの間にか作成されていることがあります。こうした重複画像は、ストレージドライブの貴重な容量を静かに食い潰していきます。多くの場合、重複は元の写真を編集中に誤って破損させないよう、さまざまなアプリケーションによって作成されます。また、デバイス間で写真を転送・読み込みする際に、意図せず重複を作ってしまうケースもあります。システムに重複写真が発生する原因は他にも様々です。この記事では、Macで重複した写真を見つけて削除する方法を詳しく解説します。重複写真を削除する2つの方法重複写真の削除には、主に

  2. Macの重複ファイルを見つけて削除する完全ガイド【手動・専用ツール両対応】

    Macを長年使用していると、気づかないうちに重複ファイルが蓄積していることがあります。重複ファイルは、ドキュメント、音楽、動画、写真、音声ファイルなど、あらゆる形式で存在し、Macの貴重なストレージ容量を無駄に消費してしまいます。放置して整理・削除しないままだと、やがて重要なファイルを保存するスペースがなくなり、Macの動作も徐々に遅くなってしまいます。これは誰にとっても避けたい事態ですよね。そこで今回は、Macで重複ファイルを見つけて削除する方法を詳しく解説します。 具体的な手順に入る前に、まず重複ファイルがなぜ発生するのか、そしてそれがシステムにどのような影響を与えるのかを簡単に理解してお