83
Apple独自のプログラムはBig SurでファイアウォールとVPNを回避します

macOS Big Surでは、Appleはサードパーティ開発者による特定の種類のカーネル拡張機能の許可を停止しました。これは予想されていたことであり、AppleがCatalinaで警告を発し始めた点です。現時点では、これはすべてのカーネル拡張機能に適用されるわけではなく、Appleの新しい「システム拡張機能」形式で既に対応版が提供されているもののみに当てはまります。これは、以前はカーネル拡張機能として実行されていたドライバなどを構築するための、より安全で安定した技術です。

現時点では、これらはウイルス対策、各種ファイアウォール、入力デバイス、USBアクセサリのドライバを扱うカーネル拡張です。仮想ファイルシステムなど、あまり一般的ではない他の種類のカーネル拡張も引き続き動作します。将来的には、カーネル拡張は完全に削除される予定です。

これは開発者にとって大きな変化を意味しますが、一部の分野ではユーザーにとっても大きな変化を意味します。特に、Little Snitchなどのファイアウォール、VPNサービス、そしてTripmodeなどのネットワークリミッター(モバイルや4Gモデム接続時などに限られたデータ通信を無駄にしないよう、特定のプログラムからのトラフィックのみを許可する機能)のユーザーに当てはまります。

Apple独自のプロセスはフィルターをバイパスする

Little SnitchやTripmodeのようなプログラムは、AppleがNetwork Extension APIと呼ぶものを使用する必要があります。これは、対応するカーネル拡張機能に以前存在していた機能のほとんどにアクセスできるプログラミングインターフェースです。しかし、Appleが誰にも言及していないのは、これらのプログラムがもはやすべてのネットワーク接続を正確にフィルタリングできなくなったことを意味する例外システムが存在するということです。

リスト自体は、/System/Library/Frameworks/NetworkExtension.framework/Versions/A/Resources/Info.plist ファイルの「ContentFilterExclusionList」キーで確認できます。ここには、FaceTime、iMessage、iCloud、マップ、Siriなどに関連するプロセスが含まれています。

これをご自身で試してみたい方は、以下の手順に従ってください。Patrick WardleのLulu 2.0をインストールしてください(システム拡張機能のインストールと、プログラムによるインターネットトラフィックのフィルタリングの両方を承認する必要があります)。次に、設定でブロックモードを有効にしてください。これですべてのトラフィックが遮断され、ブラウザ、メールなど、様々なアプリで機能します。FaceTimeを開いて誰かに電話をかけてみてください。問題なく機能し、ブロックされることもありません。

Tripmodeの開発者であるDavid Dudok de Wit氏は、Mediumにこの発見とそれがユーザーに与える影響について投稿しています。特にTripmodeの場合、これはiCloudの同期や、画像や動画といった重い添付ファイルを含む新しいメッセージのダウンロードを止められなくなることを意味します。結果として、このプログラムは実質的に役に立たないものになってしまいました。なぜなら、本来の目的は、通信料の高い接続時に最も重要なもの以外をすべてブロックすることだからです。

Little Snitchの開発元であるObjective Developmentもこの発見について記事を執筆しており、Appleが修正するのは当然だと考えていると述べています。(2021年1月14日更新:AppleはmacOS Big Sur 11.2 beta 2でホワイトリストの例外を削除したようです。)

小さな密告者

VPNも

Big Surでは、VPNプログラムもカーネル拡張機能を使用できなくなりました。すでに複数の開発者が新しいシステムアドオン版に切り替えています。しかし、ファイアウォールと同様に、Appleの例外はVPN接続にも適用されます。つまり、FaceTimeやその他の多くの組み込みプロセスは、接続しているVPNトンネルを経由せず、パブリックIPアドレスからAppleのサーバーと通信を継続できるということです。

弊社の調査によると、これは新しいシステム拡張機能を使用して独自のVPNプロトコルを実装するVPNプログラムにのみ適用されるようです。例えば、macOSに内蔵されているL2TP/IPsec(システム設定で手動で設定)経由で接続する場合、Mac App StoreのトラフィックはVPN経由で送信されます。また、サードパーティ製プログラムWindscribeを使用する場合も同様です。WindscribeはIKEv2やOpenVPNなど、様々なプロトコル経由で接続できます。これらのプロトコルはカーネル拡張機能を実行しませんが、通常通り動作します。

セキュリティとプライバシーの両方に悪影響

セキュリティの観点から、この変更は深刻です。Little SnitchやLuluのようなファイアウォールがコンピュータからのトラフィックを監視または遮断できない場合、マルウェアや不正プログラムの「侵入」を阻止するために、これらのプログラムに頼ることはできません。Objective SeeのPatrick Wardle氏は既に、悪意のあるプログラムがAppleの除外プロセスからトラフィックを傍受してコンピュータからデータを送信できる技術を発見しており、その詳細を以下のツイートで説明しています。

Big Sur では、Apple は多くのアプリを、サードパーティ製のファイアウォールの使用が必須となっているフレームワーク (LuLu、Little Snitch など) を経由しないよう決定しました。🧐 Q: マルウェアがこれを悪用して、このようなファイアウォールを回避する可能性はありますか? 🤔 A: どうやらそうらしいです。しかも、それは明白です 😬😱😭 pic.twitter.com/CCNcnGPFIB

— パトリック・ウォードル(@patrickwardle)2020年11月14日

ハッカーやマルウェア作成者の攻撃ベクトルは、「Little Snitchを回避する方法を見つけるにはどうすればいいか」から、「Appleの56の除外プロセスのうち、どれに悪用可能な脆弱性があるか」へと変化しています。つまり、リスクは少なくとも56倍も高まっているのです。

Appleはプライバシーの価値や、ユーザーを広告主などの覗き見から守るためにどれだけの努力をしているかについて、しばしば語っています。しかし、コンピュータから送信されるすべてのトラフィックを監視・ブロックできないことは、セキュリティやプライバシー保護の向上とは決して解釈できません。

Appleがコメントし、何らかの説明をしてくれるかどうかは、今後明らかになるでしょう。なぜなら、ファイアウォールやVPN接続を回避する合理的な理由が見当たらないからです。「すべてのトラフィックをVPN経由で送信する」とは、まさにその通りです。「すべてのトラフィック」とは、「信頼できるAppleのプロセスからのトラフィックを除くすべてのトラフィック」を意味するものではありません。

しかし、Appleが意図的にすべてのトラフィックをVPN経由で送信できないようにするとは到底考えられません。これは多くの企業がコンピュータの購入・使用の要件としており、Appleはそうした市場を失いたくないはずです。システムに組み込まれたVPN機能は依然として完全に機能しているように見えるため、例外リストが新しいVPNプログラムにも適用されるというのはAppleの誤りでしょう。

そうは言っても、すべてのシステムプロセスを含むすべてのトラフィックをファイアウォール経由でフィルタリングできないというのは、決して受け入れられません。

証明書チェックをめぐる暴動

上記の問題に加えて、Big Sur(Catalinaにも適用されます)において、先週発見されたもう一つの懸念事項が、Twitterや様々なMac関連サイトで広く議論されています。これは、システムが開発者証明書をチェックし、証明書が失効した開発者のプログラムを実行していないことを確認する方法に関するものです。

macOSには、trustdと呼ばれるバックグラウンドプロセスがあり、このプロセスがこれを処理し(安全なウェブサイトの証明書もチェックします)、多くのユーザーがBig Surへのアップデートを試みたときにAppleのサーバーocsp.apple.comがダウンし、Catalinaでもプログラムの起動が極端に遅くなったことを最初に報告しました。原因は、開発者によって暗号署名されたプログラムを起動する際に、Gatekeeperが証明書の有効性を確認するためです。関連記事:Macはアプリの認証のために暗号化されていない「コールホーム」を実行。

OCSPはオンライン証明書ステータスプロトコル(Online Certificate Status Protocol)の略です。これはインターネット標準であり、Appleが開発したものではありません。OCSPで送信されるメッセージは暗号化されていないと指摘されていますが、これはプロトコル自体が暗号化されている設計になっているためです。ポール・ジェフリー氏はこれをmacOSがどのプログラムを起動したかに関する情報を送信していると説明しましたが、ヤコポ・ジャノーネ氏をはじめとする専門家が詳しく調査した結果、OCSPは完全には真実ではないことがわかりました。第一に、OCSPは開発者証明書のシリアル番号(同じ開発者による異なるプログラムを区別できない)であり、第二に、プログラムの起動ごとに送信されるのではなく、時々送信されるという点です。

しかし、開発者の中にはプログラムを 1 つしか持っていない人もおり、そのプログラムに対する各証明書チェックにより、少なくともその時点では IP アドレスの誰かがその特定のプログラムを使用していたことが明らかになります。

しかし、Appleは既にこの批判に応え、サポートドキュメントで新しい証明書管理システムを開発すると発表しました。このシステムではすべてのトラフィックが暗号化されるため、インターネットオペレータなどがどの開発者のプログラムを使用しているかを把握できなくなります。また、このシステムはサーバーの問題への対応も改善され(プログラムの起動に半永遠とも言えるほどの時間がかかることがなくなります)、Appleとデータを共有したくないユーザーのために、この制御を完全にオフにするシステム設定も追加されます。

自分を守る方法

ネットワーク フィルタリングに関して Apple から明確な回答が得られるまで、Apple のアプリケーションを停止するために実行できる操作がいくつかあります。

最初の方法は、macOSのシステム整合性保護(SIP)の一部を無効にすることです。これにより、Little Snitch、Lilu、Tripmodeなどのカーネル拡張機能を含む古いバージョンを使用できるようになります。Appleはこれらの機能によるトラフィックのフィルタリングを阻止できません。これによりMacのセキュリティが全体的に低下するため、一般ユーザーには推奨しません。仕組みを理解し、リスクに対処できる専門家に任せましょう。

Twitterなどのコメントで指摘されているように、インターネットトラフィックをフィルタリングしたいデバイス上で動作するファイアウォールは、100%信頼できるとは言えません。コンピュータに侵入した高度なマルウェアは、常にコンピュータのソフトウェアを回避する方法を見つけます。そのため、2つ目の方法は、オープンソースのファイアウォールpfSenseを搭載した高度なルーターなど、外部ファイアウォールを使用することです。しかし、これは導入が簡単ではなく、Little SnitchやLuluほどユーザーフレンドリーではありません。

tinyapps.org の Miles Wolbe 氏は、Apple の例外リストを編集する 3 番目の方法について説明していますが、Apple が Big Sur に追加したすべての保護機能を考えると、これは最も簡単な方法ではありません。

Appleのトラフィックを遮断する必要はないが、VPNを経由させたい場合は、少し簡単です。ルーターに既にVPNクライアントが内蔵されている場合は、ネットワーク全体をVPNで保護するように設定できます。内蔵されていない場合は、別途入手することも可能です。また、現在お使いのルーターが、同じくVPNクライアントを内蔵しているDD-WRTやOpenWrtなどのオープンソースソフトウェアをサポートしているかどうかも確認してみてください。

Appleがこの問題を認識し、すべてのトラフィックをフィルタリングする機能を復活させてくれることを期待しています。少なくとも、これは多くの企業からの強い要請だと言われています。そして、一つ確かなことがあるとすれば、Appleは財布の紐を緩めていないということです。

Macのセキュリティに関するヒントをいくつかご紹介しますので、ぜひご活用ください。VPNの使用に関する詳しいアドバイスは、「Macに最適なVPN」をご覧ください。

この記事は元々Macworld Swedenに掲載されたものです。翻訳:カレン・ハスラム