trustdが実際に何であるか
trustdは、macOSに組み込まれた証明書信頼評価デーモンです。これはAppleによって出荷され、コード署名されたシステムプロセスであり、その役割は、Macが接続するサーバーが提示するデジタル証明書を信頼すべきかどうかを判断することです。
Mac上の何かがHTTPSまたはTLS接続を行うたびに、サーバーは証明書チェーンを提示します:自身の証明書、通常は1つ以上の中間証明書、そして最終的にシステムがすでに信頼しているべきルート証明書です。誰かがそのチェーンを確認しなければなりません。その誰かがtrustdです。trustdは、その証明書が有効に署名されているか、有効期限が切れていないか、取り消されていないか、チェーンがMacが本当に信頼するルートで終わっているかを評価します。
この作業はアプリごとに行われるわけではありません。各ブラウザ、メールクライアント、アップデータ、Electronアプリが独自の証明書ロジックを実装し、微妙に間違えるのを避けるために、macOSは信頼評価を1つのシステムサービスに集中させています。だからtrustdは忙しそうに見えるのです:それは基本的にすべてのネットワーク対応プロセスの代わりに動いています。Safariでページを読み込む、メールを確認する、ファイルを同期する、バックグラウンドでアップデートを行う、これらすべてが同じ秒内に信頼評価をトリガーすることがあります。
通常、trustdはシステムレベルのプロセスとして動作しているのが見えますが、時にはユーザーごとのインスタンスと並行して動作していることもあります。どちらも正常です。これはあなたがインストールしたものではなく、意味のある方法で削除できるものではありません。
なぜ頻繁にAppleサーバーに接続するのか
これが人々を驚かせる部分なので、素直に説明する価値があります。証明書が正当に署名されているかどうかをオフラインで確認することは、数学だけを使って行えます。証明書が今も有効かどうかを確認することはできません。
証明書は取り消されることがあります。サーバーの秘密鍵が盗まれたり、証明書認証局が誤って何かを発行したり、企業がドメインの管理を失ったりします。これらの場合でも、証明書は暗号的に正しく構成されており、有効期限内にありますが、もはや信頼すべきではありません。あなたのMacがそれを知る唯一の方法は、他の場所で公開されているデータを参照することであり、それにはネットワークリクエストが必要です。
そのため、trustdは証明書の取り消しと有効性情報を得るためにAppleのインフラに問い合わせます。これはOCSPスタイルの状態確認の一種であり、Apple自身の検証サービスや証明書の透明性に関するデータも含まれ、発行されたが本来発行されるべきでなかった証明書を検出します。trustdがAppleのドメインに繰り返し接続しているのを見たら、それはこれらの接続です。それはセキュリティのための照会であり、あなたに関する報告ではありません。
Appleはこのデータもキャッシュしているため、パターンがバースト的になり、閲覧の頻度に完全に比例しないことがあります。再起動後、長いアイドル期間後、または最近訪れていないサイトを訪れるときに接続のクラスターが見られ、その間は比較的少なくなります。同じ信頼と検証の仕組みは、署名済みやノータライズされたソフトウェアの他のmacOSのチェックもサポートしていますが、それらの仕組みの詳細はAppleのドキュメントに委ねられています。
trustdはマルウェアですか、そして自分で確認する方法
いいえ。trustdはAppleの一部であり、macOSのセキュリティに関する公式のシステムデーモンです。健全なMacにはこれがないバージョンはありません。
とはいえ、記事の内容を鵜呑みにするのはマルウェアが頼る考え方そのものであり、自分のマシンで確認するのは合理的です。確認すべき点は二つあり、特別なツールは必要ありません。
一つ目は場所です。Appleのシステムデーモンは保護されたシステムパス内にあります。trustdの実行ファイルは、現代のmacOSでは読み取り専用の署名済みシステムボリュームのusr/libexecフォルダにあります。これはマルウェアが書き込みできない場所です。Activity Monitorでプロセスを選択し、インスペクタを開いてパスを確認してください。homeフォルダ、ダウンロードフォルダ、または見慣れないアプリバンドルから動いているtrustdは本物ではありません。システムボリュームから動いている場合、それが正真正銘のtrustdです。
二つ目は署名です。macOSは実行中のバイナリに誰が署名したかを教えてくれます。AppleのデーモンはAppleによってシステムの権限とともに署名されています。正しいパスとAppleの署名があれば、それはOSの一部です。プロセス名も注意深く読むと良いでしょう。偽物は似た名前を選びがちです。
もう一つの安心材料は、trustdの高いCPU使用率や一定のネットワーク活動は、侵害の証拠ではないということです。多くのTLS接続が評価されているだけで、普通のMacではそれが普通の状態です。
trustdをブロックすべきですか?いいえ、その必要はありません。
技術的にはtrustdをファイアウォールでブロックすることは可能です。しない方がいいです。macOSのバックグラウンドプロセスの中で、静かにさせることに誘惑されやすいものの中で、これだけはブロックするとあなたのMacの安全性が低下し、プライバシーが向上しない少数の一つです。
証明書の検証は基本的なセキュリティコントロールです。これは、あなたのMacが失効した証明書や信頼できないチェーンを静かに受け入れるのを防ぐ仕組みです。これを弱めると、あなたがサーバーと信頼している暗号化された接続が実際にはそのサーバーと接続していない可能性が高まります。
実際の影響はすぐに現れます:HTTPS接続が完全に失敗したり、検証の照会を待つ間にシステムがハングしたり、関係のないアプリで曖昧な証明書エラーが出たり、サインインフローが動かなくなったりします。trustdはほぼすべての基盤に位置しているため、症状は原因に直接つながらないことが多いです。壊れたと感じるMacになることもありますが、明らかな警告は出ません。
正直なプライバシーのニュアンスはこれです:失効と有効性の確認は、検証を行うサービスに対して、その証明書がある時点で検証されたことを伝えます。これはこの仕組みの本質的な性質であり、隠されたものではありません。Appleはこのトラフィックの取り扱いについて情報を公開しており、そのドキュメントが詳細の正しい情報源です。また、macOS上の証明書と認証に関する検証は、数年前にAppleのサービス問題でアプリの起動遅延が顕著になった際に注目を集め、その後Appleはこれらの検証の仕組みを変更しました。ポイントは、この仕組みが悪意のあるものではなく、負荷が高いために問題が顕在化しやすいということです。
だから、あなたのマシンを理解したいならtrustdを監視してください。ブロックしないでください。
本当の問題:セキュリティトラフィックは追跡トラフィックのように見える
trustdが生成する不安は、trustd自体とはほとんど関係ありません。生の接続ログはほとんど読めない状態です。あなたが開始していないプロセスが、認識できないドメインに頻繁にアクセスしているのを、説明できない頻度で記録しているのです。そして、その説明は証明書の検証、クラッシュレポート、アップデートの確認、分析SDKに等しく当てはまります。
だから、多くの人はすべてを無視します。そうすると、実際の追跡は見逃されますし、直感でブロックしてしまうと、マシンが謎のHTTPS失敗に見舞われることになります。どちらも共通しているのは、どのプロセスが通信しているのか、どこへ、そしてその宛先がインフラか追跡者かを示すコンテキストが欠如している点です。
このコンテキストを提供するのがNetMuteです。リアルタイムでアプリごと、プロセスごとのトラフィックを表示し、trustdに起因する通信かどうかを判別できます。ドメインレベルのログは、どのドメインに接続したか、いつ、どれだけのデータを送受信したかを記録し、「何かがAppleに通信している」状態を確認可能な記録に変えます。Tracker Shieldは、1,100以上の追跡ドメインのカテゴリ化されたリストを保持しており、通常のシステムトラフィックと区別できるようにしています。そして、通信すべきでないものを見つけた場合、アプリごとのファイアウォールはワンクリックでブロックし、一時的なルールも自動的に期限切れになるため、ブロックが正常に動作しているか事前にテストできます。
このワークフローはシンプルです。trustdを見て、Appleの検証インフラに接続していることを確認し、追跡リストに載っていなければ放置します。その後、実際に疑問のあったアプリに同じビューを向けてください。システムデーモンであることは稀です。