Macコード署名が改ざんされている場合、何が失敗する可能性がありますか?


11

Macアプリケーションのデジタル署名が破損した場合、どのような迷惑または実際の問題が発生する可能性がありますか?

Mac上のアプリケーションはデジタル署名できます。署名が何らかの理由で破損している場合、いくつかのアプリケーションがそれに気付くことがあります。しかし、これらが単に迷惑になるか、実際に物事を壊してしまうのか、私は詳細に知りません。

  • OS Xファイアウォールはアドホック署名を正しく設定できないため、「アプリケーション '[..]'が着信ネットワーク接続を受け入れるようにしますか?」という繰り返しのプロンプトが表示される場合があります。

  • ペアレンタルコントロールによって許可されたアプリケーションは、実行されなくなる可能性がありますか?

  • キーチェーンアクセスが壊れている可能性がありますか?

  • Appleソフトウェアのアップデートが失敗する可能性があると言う人もいます。trueの場合、これは実際にコード署名の署名に依存するのか、アプリケーション全体の一部の不一致ハッシュ、またはBOMファイルからの情報に起因するのだろうかと思います

以下の詳細な背景情報。


コード署名の詳細は、次を使用して表示できます。

codesign --display -vv /Applications/iTunes.app/

...次のようになります(ただし、変更について警告しません):

[..]
CDHash=86828a2d631dbfd417600c458b740cdcd12b13e7
Signature size=4064
Authority=Software Signing
Authority=Apple Code Signing Certification Authority
Authority=Apple Root CA
[..]

署名は次を使用して検証できます。

codesign --verify -vv /Applications/iTunes.app/

どちらが得られますか:

/Applications/iTunes.app/: valid on disk
/Applications/iTunes.app/: satisfies its Designated Requirement

...または(アプリケーションの./Contents/Resourcesフォルダーに追加のファイルを単に配置する場合でも):

/Applications/iTunes.app/: a sealed resource is missing or invalid

...または(上記のメッセージよりも悪い場合があります):

/Applications/iTunes.app/: code or signature modified

コード署名はOS 9以前に戻りますが、現在の実装 10.5 Leopardで導入されました。Ars Technicaの書き込み

コード署名は、暗号で検証可能なIDをコードのコレクションに結び付け、そのコードへの変更が検出されるようにします。関係者に関する保証は一切行われません。たとえば、Acme Inc.によって署名されたアプリケーションをダウンロードした場合、最後にWebサイトから何かをダウンロードしたときにAcme Inc.であると主張する同じエンティティからのものであることを除いて、何も証明できません。

この例は、実際に消費者の観点からテクノロジーの最も有用なアプリケーションを強調しています。Mac OS Xアプリケーションを今日(10.4 Tiger、AvBで)アップグレードすると、ユーザーはしばしば、このアプリケーションがキーチェーンにアクセスしてユーザー名とパスワードを取得できることを再確認するように求められます。これは優れたセキュリティ機能のように思えますが、実際に表示されるたびに「常に許可」をクリックするようにMacユーザーを訓練するだけです。そして実際、平均的なユーザーは何をし、逆アセンブラーを通して実行可能ファイルを実行し、コードが安全であることを手動で確認しますか?

一方、署名されたアプリケーションは、過去に信頼を表明したのと同じベンダーの同じアプリケーションの新しいバージョンであることを数学的に証明できます。その結果、安全性を検証する妥当な方法がない選択肢を確認するように求めるダイアログボックスが終了します。

10.5 Leopardのファイアウォールについて、Apple は次のように説明しています

このリストにアプリケーションを追加すると、Mac OS Xはアプリケーションにデジタル署名します(まだ署名されていない場合)。アプリケーションが後で変更された場合、アプリケーションへの着信ネットワーク接続を許可または拒否するように求められます。ほとんどのアプリケーションは自分自身を変更しません。これは、変更を通知する安全機能です。

[..]

(コード署名の目的で)システムが信頼する認証局によってデジタル署名されたリストにないすべてのアプリケーションは、着信接続を受信できます。LeopardのすべてのAppleアプリケーションはAppleによって署名されており、着信接続の受信が許可されています。デジタル署名されたアプリケーションを拒否する場合は、最初にリストに追加してから明示的に拒否する必要があります。

10.6 Snow Leopardでは、後者は「署名付きソフトウェアが着信接続を自動的に許可する。有効な認証局によって署名されたソフトウェアがネットワークからアクセスされるサービスを提供できるようにする」としてより明確になります。

Mac OS X 10.6 Firewall:署名されたソフトウェアが着信接続を受信することを自動的に許可する

(10.6では、10.5.1のオプション「すべての着信接続を許可する」、「必須サービスのみを許可する」、「特定のサービスとアプリケーションへのアクセスを設定する」が「着信接続をすべてブロックする」またはリストの選択肢に変更されました許可されたアプリケーションとオプションの「署名されたソフトウェアが着信接続を自動的に許可する」および「ステルスモードを有効にする」。10.5.1アップデート以前は、「必須サービスのみ許可する」は「着信接続をすべてブロックする」と呼ばれていました。)

元の署名が何らかの理由で破損している(Apple)アプリケーションの場合、このアドホック署名は何らかの理由で永続化されず、configd、mDNSResponder、およびracoonに問題引き起こしたことが知られています。


Tentacleの答えはそれをすべて言っていると思います(そしてどんなに努力しても、署名を破ってもキーチェーンアクセスの警告はまだ表示されていません)。それでも、誰かが問題に遭遇したのだろうか。質問を読むのに長すぎないことを願って... ;
アルジャン

証明書タグの追加
偽物のキホーテ

ニース:誰か(上にそのタブ付き)再署名のSafari 4ベータ版キーホルダーと互換性を持たせるために:で、「petersconsult」のコメントを参照してくださいmacosxhints.com/article.php?story=20090925131057394
Arjan

回答:


1

コード署名がアプリケーションを「破壊」する例:

  • キーチェーンAccess.appは、パスワードが改ざんされていることを検出した場合、パスワードを表示できません。

出典:AppleメーリングリストJaharmiの非現実


もちろん、あなたがそれについて言及したので、これは私が私の最初のテストに使用すべきだったアプリケーションです!:-)
アルジャン

3

多くの人が使用するアイコンカスタマイズアプリであるCandybarは、少なくともFinderとDock(およびおそらく他のコアシステムアプリケーション)のデジタル署名を破り、リソースファイルを変更しますが、これまでのところ何もありませんこのため問題として報告されています。したがって、コアOSコンポーネントを使用したインザワイルドサンプリングでは、それほど多くはありません。

編集:Snow LeopardでDockのコード署名を確認した結果は次のとおりです。

⚛$ codesign --verify --verbose /System/Library/CoreServices/Dock.app/
/System/Library/CoreServices/Dock.app/: a sealed resource is missing or invalid
/System/Library/CoreServices/Dock.app/Contents/Resources/expose-window-selection-big.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/expose-window-selection-small.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/finder.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/frontline.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/indicator_large.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/indicator_medium.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/indicator_small.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/scurve-l.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/scurve-m.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/scurve-sm.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/scurve-xl.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/trashempty.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/trashfull.png: resource modified

あ、ちょっと調べてみます!一部の手動で変更されたアイコンは、他のアプリケーションのコード署名を壊しませんでした。メーカー自身が2008年に次のように書いています。アプリケーションアイコンを手動で変更することについては、歓迎します。警告として:Appleが将来のMac OS Xマイナーアップデートで組み込みのコード署名を有効にすると、アプリケーションは起動しなくなります。これは、Appleが彼らの計画を理解するまでその機能を無効にすることで安全に回避しようとしていることです。- macupdate.com/info.php/id/8948?rord=mod
Arjan

Snow Leopardでドックを手動で変更した後、結果を追加しました...
The Tentacle

ああ、バカ。これまでのところ、私がテストしたのはプログラムのアイコン(FinderのGet Infoで新しいアイコンを貼り付けること)だけであり、プログラム自体で使用されているアイコンはありません。OK、確かに壊れたコード署名。Candybar開発者のコ​​メントはまだ少し怖いですが、Appleは現在の(非)効果を突然変更すると多くの人を困らせます。
アルジャン

まあテストは...ネットワーク向けのアプリのリソースを変更し、署名を破壊するアプリケーションファイアウォールからの自動パススルーを停止したかどうかを確認することです
触手

(うーん、CandyBar開発者は2008年1月10日のコメントをMacUpdateから削除しました。Googleキャッシュにはまだ表示されていますが、OS X 6.1の新しいバージョンがあるので、問題は解決されたか、CandyBarは眠っている犬を寝かせようとしています。 。?その
Arjan

0

Snow Leopardでのコード署名のやや詳細な説明は、ars technicaのSnow Leopardレビューで提供されています。私が知る限り、コード署名を破っても実際には何も破られません。ただし、アプリが信頼されなくなるため、より多くのアクションを検証する必要があります。


実際には10.5 Leopardのレビューです。10.6のレビューからの良い引用:「そして、後で知った「Mac OS X」テクノロジーはiPhone向けに開発され、たまたまMac向けに発表されたばかりです(iPhoneはまだ秘密だったため)コアアニメーションやコード署名など。」- arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars
Arjan

0

先日(ディスクユーティリティから)ディスク権限を修復していたときに、次の警告が表示されました。

Warning: SUID file "System/.../ARDAgent" has been modified and will not be repaired.

それで、何かが起こるでしょう。それがどれほど重要かは分かりません。


で:「ディスクユーティリティのディスクのアクセス権を修復メッセージをあなたが安全に無視することができるということはMac OS X 10.5」Appleはこのを一覧表示し、特にとして、興味深いsupport.apple.com/kb/TS1448にアップルからのワードどのようにこれが変更されたと、なぜ」それはdoesnの問題ではありません... codesign --verify実際に壊れた署名を示していますか?
アルジャン

0

現在のコード署名の実装は非常に歯が抜けており、おそらくiPhone開発者の利益のために駆けつけられました。将来のある時点で必須になることを望み、その時までにもっと簡単で安価になることを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.