web-dev-qa-db-ja.com

「SUIDGuard」パッチは実装しても安全ですか?

彼らが見ているものを本当に知っている誰かが、Stefan Esserによるパッチ ここで公開 が実際に安全にインストールできるかどうかをアドバイスできますか?

Appleはまだ公式パッチを公開していない(特に今はEsserの example myself を試してみたので))と非常に心配していますが、これはkernel extensionだから、私はそれを実装するためにただ急ぐだけでも同じように躊躇しています。

注:これに注意を向けてくれたEsserに感謝し、彼の修正が「悪意のある」ものである可能性を示唆していません(特に公開されているため)。私はそれがどのように機能するのか、そして何らかの副作用があるかどうかについて、情報に基づいた回答を求めています。

3
toxefa

最初に重要なことは、このセキュリティホールの意味についてthinkを行うことです。これはローカル特権エスカレーションです:if攻撃者は、「通常の」特権で、自分の選択したコードをマシンで実行することができますthenその攻撃者はこのホールを使用して、そのマシンでより拡張された特権を取得できます。

一般に、デスクトップシステムの場合、攻撃者がマシン上で独自のコードを実行できる場合、攻撃者はすでに勝利しています。デスクトップシステムでは、「通常のユーザー」としての独自のアクションはすべて、カーネルの観点から、ユーザーアカウントに関連付けられた特権を使用して、プロセス実行として行われます。攻撃者が自分のコードを実行できた場合、それはアプリケーションの1つを破壊するか、一見正直に見えるスクリーンセーバーなどを無意識のうちに実行させることになります。アカウントに添付された権限は、すべてのファイルのコンテンツを略奪し、偽の広告を表示し、ネットワーク接続を乗っ取り、一般的に人生全体を盗むのに十分です。また、マシンのroot権限を取得しても、攻撃の範囲は広がりますが、災害の範囲は実質的に拡大しません。

さらに、「通常のユーザー」として、あなたはすでににroot権限を取得する方法があり、それらを定期的に使用します-たとえば、 Flashプラグインの更新を承認します。アップデータシステムはパスワードを要求し、それを使用してroot権限を要求および取得します。あなたの名前でコードを実行できる攻撃者は、ポップアップを表示して特権を取得するために、Flashのアップデートを模倣する必要があります。その意味では、新しい脆弱性は無関係ですデスクトップシステムの場合。対応して、それを修正することで急いでいません。


特権エスカレーションホールは、共有サーバーではるかに意味があり、互いに敵対する可能性のある複数のユーザーが同じハードウェアを共有し、OSがユーザー間の仲裁を行い、ユーザーを互いに保護します。共有サーバーは古いモデルであり、 mainframes について話していたときのことです。現在40代の情報セキュリティ専門家は、1980年代または1990年代に学生時代にそのモデルに触れていたに違いありません。当時、コンピューターの学生は通常、いくつかの共有コンピュータールームで端末を使用し、Unixのようなオペレーティングシステムで1つまたはいくつかの中央サーバーにアクセスしていました。特権の昇格は、当時、非常に求められていたものです。

これは今日ではめったに適用されません。現在、2015年には、ハードウェアが共有されている場合、ユーザーにはシェルアカウントだけでなく仮想マシンが付与されます。 stillはサーバーが古い方法で共有されている場所ですが、それらは消滅する種です。 OS Xマシンがそのように使用されるサーバーであり、すべてを信頼できない(または互いに信頼できない)ユーザーの場合、はい、権限昇格の穴は大きな懸念事項です。ただし、そうではない可能性があります。


Esserのパッチをインストールして穴をすばやく修正したい場合、次の2つの点を考慮する必要があります。

  1. 基本的には、インターネットからダウンロードしたコードの一部である「カーネル特権」を使用してマシンに挿入します。これにはかなりの信頼が必要です。 "Stefan Esser"という名前のように見えるインターネットペルソナが十分信頼できるものであり、パッチが保存されている場所またはダウンロード中に他の誰もパッチを変更できないことを確認する必要があります。

    別のInternet personaによる「保証」は、素晴らしいアバターがあったとしても、どのようにして追加の信頼を生み出すのでしょうか?

    ただし、ソースコードを取得して監査し、自分でコンパイルすることはできます。ただし、それが可能だと思われる場合は、StackExchangeサイトからの支援は必要ありません。あなたはすでに十分に知っています。

  2. パッチはマシンの動作を変更し、概念的には「より良い」(または「安全」)にしますが、変更は常に変更であり、物事を壊す可能性があります。一部のアプリケーション開発者は、どこかで、一部のDYLD_ *環境変数がSUIDの実行を通じて存続し、実際に一部の機能に使用されていることに気付いていた可能性があります(これが必ずしもセキュリティに影響することに気付かず)。パッチは無害であるように見えますが(少なくともソースコードで確認したものから-信頼できますme?)、それが一部の動作に影響を与える可能性を排除できませんOSまたはアプリケーション。

2
Thomas Pornin