Leopardファイアウォールは一歩前進して三歩後退

Leopardファイアウォールは一歩前進して三歩後退

ファイアウォールの強化は、AppleがLeopardのリリース前に宣伝した300以上の機能の一つでしたが、設計上の選択と機能変更の組み合わせにより、Tigerのファイアウォールに比べて効果が低下しています。2007年10月22日に「Leopardでセキュリティが強化される理由」を書いた時点では、この点については噂程度しか耳にしませんでした。アップグレードすべきではないほど懸念されるほどではありませんが、Appleはアップデートで早急に対処する必要があるでしょう。

ファイアウォールとは?セキュリティに詳しくない方のために説明すると、ファイアウォールとは、システムまたはネットワークへのトラフィックをルールに基づいてブロックするツールです(より詳しい説明は、クリス・ペッパーの「ファイアウォールとは何か、そしてなぜ気にする必要があるのか​​?」(1999年2月22日)をご覧ください)。ファイアウォールは1980年代後半から存在し、初期のインターネットワーム、特にモリスワームへの対策として、不要なトラフィックをブロックすることでシステムとネットワークを保護する手段として開発されました。ファイアウォールが登場する以前は、コンピュータをネットワーク(インターネットを含む)に接続すると、そのネットワーク上の他の誰かがリモートからそのシステムのオープン接続を調べ、
直接トラフィックを送信することができました。すべてのコンピュータには何らかの脆弱性があり、それらの脆弱性の一部はネットワーク経由でリモートから悪用可能であるため、攻撃者は簡単にネットワークを悪用し、システムを攻撃することができます。これらの攻撃の中には自己増殖型のものがあります。つまり、悪意のあるコードがシステムを乗っ取り、そのシステムを使って他のシステムを乗っ取るのです。これがワームとウイルスの違いです。ウイルスはユーザーとのやり取りを必要としますが、ワームはネットワークを伝わってシステムからシステムへと「這い進む」のです。2001年にコンピュータからコンピュータへと感染を広げ、商用インターネットの大部分をダウンさせたCode Redワームを覚えている方もいるかもしれません。

情報セキュリティ分野では、様々な種類のファイアウォールが使用されています。最も基本的なものはネットワークファイアウォールで、通常はルーターにインストールされるステートフル・パケット・インスペクション・ファイアウォールです。これは、よりスマートで、受信接続と送信接続を追跡できるネットワークファイアウォールを使用しているという意味です。インターネットプロトコルの仕組みは、リモートコンピュータに接続する際、ポートを介して接続することです。これらのポートは標準化されており、例えばFTPはポート21、HTTP(Web)はポート80、SSHはポート22です。リモートシステムは接続を返信する必要があるため、最初の接続を確立する際に、コンピュータはリモートコンピュータに返信トラフィック用の任意の高いポート番号を割り当てます。そうしないと、
一度に1つのWebサイトまたはFTPサーバーとしか通信できなくなります。ステートフル・パケット・インスペクション・ファイアウォールは、これらのすべての接続を追跡し、通常はブロックされているように見えるランダムなポートでも、セッションが開いている場合にのみシステムへのトラフィックを許可します。

Macに搭載されているような、もう1つの種類のファイアウォールは、ホストベースファイアウォールです。コンピュータは常に大規模なネットワークファイアウォールの背後にあるわけではないため、異なるネットワーク間を行き来する際に攻撃からコンピュータを守るために、コンピュータにファイアウォールを組み込むことは理にかなっています。ノートパソコンの普及により、こうしたネットワーク間を行き来する行為はますます一般的になっています。無線LANホットスポットやホテルなどのパブリックネットワークにノートパソコンを接続すると、ほぼ確実に何らかの人物または自動プログラムによってスキャンされます。

Tiger ファイアウォール— Mac OS X 10.4 Tiger では、Apple は ipfw と呼ばれる優れたオープンソースのファイアウォールを採用していました。ipfw は Mac OS X の奥深くに常駐するソフトウェアで、ネットワークトラフィックがオペレーティングシステムの他の部分に到達する前にフィルタリングし、外出先でも自宅で享受しているのと同じ保護を提供します。Tiger の共有環境設定パネルのファイアウォールビューを開くと、それは ipfw のグラフィカルなフロントエンドに過ぎませんでした。Tiger では、独自の設定ファイルを書かなければ非常に細かい設定を調整することはできませんでしたが、利用可能なコントロールはかなり効果的でした。ファイアウォールを有効にすると、実行を許可するネットワークサービスを選択できます。例えば、ファイル共有を有効にした場合、
ファイアウォールビューにはファイル共有が有効になっていることが表示され、サービスビューで無効にする必要があることが示されます。ファイアウォールは、明示的に有効にしたポート以外をすべてブロックする「すべて拒否」モードで動作し、すべての UDP トラフィックをブロックし、フィルタリングされたポートへのリクエストを無視する (いわゆる「ステルスモード」) 高度なオプションも提供されていました。

このアプローチは完璧ではありませんでしたが、平均的なユーザーにとっては十分でした。アウトバウンドフィルタリングが欠けていました。アウトバウンドフィルタリングは、Mac上の承認されていないサービスが外部に接続できないようにシステムをロックダウンする便利な機能であり、攻撃者や通信量の多いアプリケーションを制限するのに役立つ優れた手法です。また、アプリケーションコントロールも欠けていました。これは、ほとんどのホストファイアウォールに搭載されている便利な機能で、どのポートを使用していても、承認されたアプリケーションのみが外部と通信できるようにします。

Leopard のファイアウォール— Leopard には ipfw が依然として含まれていますが、デフォルトのファイアウォールではなくなりました。Apple はこれをブラックボックス(セキュリティ研究者には知られていない、少々奇妙な動作をするファイアウォールプログラム)に置き換えました。私たちが知る限り、Apple はアプリケーション制御機能を追加するために、この新しいファイアウォールを独自に開発しました。このファイアウォールは現在、システム環境設定の「セキュリティ」パネルにあり、「すべての着信接続を許可」、「すべての着信接続をブロック」、「特定のサービスとアプリケーションへのアクセスを設定」という 3 つのオプションが用意されています。Apple はファイアウォールを全く新しい方向に進化させるという決定を下しました。これは必ずしも悪いことではありませんが、何が
フィルタリングされているのか把握するのが難しくなり、潜在的なセキュリティホールがいくつか残されているように思われます。

Leopardファイアウォールの最初の問題は、「アクセス設定」オプションが何をするのか分かりにくいことです。新しいアプリケーションレベルのファイアウォールが起動し、「共有」パネルに開いているサービスがすべて表示されますが、許可されているかブロックされているかは表示されません。また、開いているサービスやポートを自分で追加するオプションもなくなりました。代わりに、個々のアプリケーションを追加または削除することはできますが、ネットワークサービスは追加または削除できません。ステルスモードは引き続き詳細設定で利用できますが、ポートスキャンなどの攻撃を阻止するのに便利なUDPブロック機能はなくなりました。

さらに悪いことに、Leopardをインストールすると、アップグレードでファイアウォールが以前有効だったとしても、ファイアウォールが無効になります。Windowsについて何を言っても、ファイアウォールはデフォルトで有効になっています。さらに、ファイアウォールは実際にアプリケーションの動作を阻害する可能性があります。これについては後ほど詳しく説明します。

さらに調査を進めると、ファイアウォールとしては非常に奇妙な挙動がいくつか明らかになりました。Safari、Firefox、Cyber​​duckなど、一部のアプリケーションは初回使用時にネットワークへのアクセス許可を求めますが、ColloquyやTwitterrificのように無視されるものもあります。共有パネルでサービスを有効にしておきながら「すべてブロック」を選択した場合、ポートスキャンでは外部に対して開いているように見えますが、実際には接続できません。一部のサービスは、何をしても常に開いているように見えます。ファイル共有のために他のコンピュータに接続すると、TCPポート88(Kerberos認証用)が開き、ファイアウォールの設定やステルスモードの有効に関係なく、再起動するまで開いたままになります。Bonjour(mDNS)は
ステルスモードでは非表示になりますが、「すべてブロック」を選択しても利用可能です。最後に、ファイアウォールはブラックボックスです。何が開いているか、何が閉じているかを知る唯一の方法は、ネットワークツール(「マトリックス リローデッド」でTrinityが使用したのと同じNmapなど)を使って外部からスキャンすることだけでした。以前のバージョンの Mac OS X とは異なり、構成ファイルを見て設定を確認することはできません。

私を完全に驚かせ、すぐに修正が必要な動作が1つあります。ファイアウォールでアプリケーションを制御するように設定している場合、コード署名がまだ行われていないアプリケーションは、ネットワークにアクセスするとLeopardによって署名されます。(コード署名とは、アプリケーションにデジタル署名を付与するプロセスです。これにより、アプリケーションのチェックサムが署名のチェックサムと一致しなくなるため、オペレーティングシステムはアプリケーションがマルウェアによって改変されたかどうかを判断できます。)Skypeのように(そして他のいくつかのアプリケーションも同様に)、アプリケーションが実行中に変更されると、
次に実行しようとしたときに署名が一致せず、アプリケーションが起動しなくなります。警告やエラーは表示されないため、一般ユーザーはシステムに深刻な問題があると考えるかもしれません。私自身、Glenn Fleishmanとのポッドキャストを録音していたときに、この現象を経験しました。Skypeが起動に失敗し、再インストールすると起動しました。次に起動しようとした時に再びSkypeが起動に失敗しましたが、再インストールで修復されました。コンソールを確認すると、奇妙なエラーが表示されていました。Googleで簡単に検索して答えを見つけました。

これらの動作はすべて、ファイアウォール全体の良し悪しの尺度において「悪い」とみなされます。Leopardはいくつかの慣例を破っています。まず、「すべてブロック」を選択した場合、たとえ他の場所で有効にしていたとしても、ネットワークサービスはすべて有効にすべきではありません。Appleは、この設定を「…以外をすべてブロック」に改名するか、特にBonjourを含むすべてのトラフィックをブロックするように動作を変更する必要があります。アプリケーション制御の動作もより一貫性を持たせる必要があります。設定画面に一部のアクティブなアプリケーションが表示され、他のアプリケーションが表示されない場合は混乱を招き、誤った認識につながる可能性があります。実際には、あらゆる種類のアプリケーションが許可なくネットワーク接続を受け入れているにもかかわらず、一部のアプリケーションだけを許可していると考えている可能性があります。さらに深刻なことに、
別のコンピュータに接続したからといって、Kerberosが開いているポートに留まるべきではありません。ファイアウォールが承認済みのアプリケーションを恣意的にブロックすることも容認できません。最後に、ファイアウォールルールはユーザーがアクセスできるようにする必要があります。これは、カスタマイズ設定を可能にするため、または上級ユーザーが期待される動作を理解できるようにするためです。

ファイアウォールに関して私が発見した技術的な詳細のいくつかを、Securosis.comのブログに載せました。

これらはすべてAppleが十分に解決できる問題であり、彼らが遅かれ早かれこれらの問題に対処しないなら驚きです。それまでは、アプリケーションが動作しなくなるのを防ぐために、ファイアウォールを「すべての着信接続をブロック」モードで有効にすることをお勧めします。ファイル共有やその他のリモートアクセスを有効にする必要がある場合は、「アクセス設定」方式を選択するか、ファイアウォールをオフにする必要があります。最後の選択肢は、ipfwを使用してファイアウォールルールを手動で設定するか、無料のWaterRoofなどのGUIツールを使用してLeopardファイアウォールを完全にスキップすることです。WaterRoofでは、「ルールセット」をクリックしてルールを選択し、「ツール」>「起動スクリプト」に進み、
再起動時にこれらのルールを実行する起動スクリプトをインストールします。

幸いなことに、Macを標的としたリモートからの攻撃は今のところ確認されていません。リスクを負う必要がある場合でも、ファイアウォールが動作していなくても今のところは問題ないでしょう。特に、ファイル共有にAFPではなくSMB(共有設定パネルのオプションボタンで選択可能)を使用すればなおさらです。これは理想的ではありませんが、Appleがファイアウォールを修正し、アプリケーションの動作を中断させることなくユーザーを保護できるようにするための時間的余裕を与えてくれるでしょう。

Idfte
Contributing writer at Idfte. Passionate about sharing knowledge and keeping readers informed.