GateKeeperは何でもインストールでき、チェックは行われません


9

ゲートキーパーの設定が「AppStoreのみ」の場合でも、カスタムWebサイトからアプリケーションをダウンロードして実行できます。これは私のアプリケーションです-署名もされていません。

その理由は何でしょうか?私はすべての3つのMacでこの動作を再現できます。


2
アプリをどのようにダウンロードして拡張していますか?
Gordon Davisson 2013年

smb:// serverファイルの場所を介して。デスクトップにコピーします。他のマシンでは、これにより安全メカニズムが適切にトリガーされます。私のマシンでは、「AppStoreのみ」を使用している場合でも、同じファイルを取得し、同じ方法を使用できます。インストールと実行に制限はありません。神秘。
JasonGenX 2013年

2
同じファイルをhttp経由でダウンロードするとどうなりますか?
stuffe

回答:


7

これは、管理者ユーザーが常にFinderでアプリを右クリックしてGatekeeperをオーバーライドしてアプリケーションを開くことができる、設計によるステータス機能です。

管理ユーザーはゲートキーパーの設定を変更したり、完全に無効にしたりすることもできるので、管理者ユーザーが非準拠(署名なし)を許可することを確実にするために1回限りのホワイトリストダイアログを表示しても、(少なくとも私の目には)害はありません。または非Mac App Store)実行するアプリケーション。

AppleのGatekeeperトレーニングダイアログ-support.apple.com/kb/HT5290から

管理者以外のユーザーがGatekeeperをバイパスする方法を見つけた場合、ポリシー違反のアプリの実行を許可するために行われた実装エラーにパッチを適用すると、Appleにセキュリティの脆弱性を報告し、穴を見つけたと認められると思います。

Appleは、アプリケーションを明示的にホワイトリストに登録する方法について、この機能について詳しく説明しています。

ゲートキーパーはマルウェア保護ではなく、ブラックリストでもありません。これは、適切に署名されたアプリケーションの最初の起動やMac Appストアの領収書の検証を許可する一連のポリシーです。管理ユーザーが明示的に起動し、非準拠ソフトウェアの実行を承認した場合、Gatekeeperの欠陥を明らかにするのではなく、教育またはポリシーの問題が発生します。

詳細に、私はAppleのヘルプの関連セクションを要約して(ほとんどはコピーして)、Appをホワイトリストに登録し、Gatekeeperが妨げられずにプロンプ​​トなしで実行できるようにしました。

身元不明の開発者からアプリを開いてGatekeeperから除外する方法

インターネットからダウンロードしたアプリが最新バージョンであり、信頼できる提供元からのものであると確信している場合は、以下の手順に従って、身元不明の開発者からアプリを開くことができます。

重要:開発者IDの署名を取得中の開発者がAppleでスクリーニングした一部のアプリでは、ダブルクリックすると「開く」オプションが表示されます。

注:ほとんどの場合、Macのすべてのユーザーアカウントに対して次の手順を1回実行するだけで済みます。

  • Finderで、アプリのアイコンをControlキーを押しながらクリックまたは右クリックします。
  • 表示されるコンテキストメニューの上部から[開く]を選択します。
  • ダイアログボックスで[開く]をクリックします。プロンプトが表示されたら、管理者の名前とパスワードを入力します。

注:複数のゲートキーパーダイアログボックスを表示するアプリがある場合、ゲートキーパーの[常に]オプションを一時的に使用できます。ゲートキーパー機能を元に戻すには、以前にあったゲートキーパーオプションを必ず復元してください。

この機能を認識していないユーザーに管理者のユーザー名とパスワードを渡さないことで、アプリケーションをホワイトリストに登録できるユーザーを簡単に制御できます。また、ターミナルまたはプロファイルマネージャーからゲートキーパーを管理したり、JAMFのCasperなどの他の管理設定ソフトウェアを管理したりできます。また、ホワイトリストに登録されているソフトウェアについてマシンを監査して、許可されたアプリのリストを定期的にリセットし、ポリシーや習慣を変更したい場合に誰がこの機能を実行しているかを特定することもできます。


この1回限りのダイアログをリセットする設定はありますか?これはアプリケーションごとですか?アプリはどのように識別されますか?名前?道?「MyApp.app」を一度開くことを選択した場合、GateKeeperの設定に関係なく、「MyApp.app」の次のダウンロードとインストールはすべて成功しますか?
JasonGenX 2013年

各ユーザーは、に格納されます別のルールを持っているの/ var /デシベル/ SystemPolicy -あなたはそれを拭いてやり直すために渡さビット重いだろう、しかし、あなたが特定のルールを削除することができますのでspctlのでspctl --assess -v /Applications/Whatever.app、それが許可または拒否されます場合は、あなたを示すであろうし、spctl --remove /Applications/Whatever.appリセットします特定のアプリケーションの「ダイアログ」とステータス。ツールを使用してシステム上のすべてのアプリを収集し、短いスクリプトで必要に応じて使用状況を監査して修正できるようにしています。
bmike

ただし、Gordonの回答によると、これは設定されている隔離ビットにも依存しているため、GateKeeperにホワイトリストエントリがない(または削除されている)ため、隔離ビットをリセットするか、アプリを削除して「ゲートキーパー」ダイアログボックスと保護を開きます。
bmike

10

SMB経由でファイルをダウンロードしても隔離トリガーされません。また、アプリが隔離されていないため、ゲートキーパーポリシーはチェックされません。他のコンピュータで隔離されている理由がわかりません...

任意の時点で隔離を確認するには、ls -ld@コマンドを使用してcom.apple.quarantine属性を探します。

$ ls -ld@ /Applications/TextWrangler.app
drwxrwxr-x@ 3 gordon  staff  102 Apr 30  2012 /Applications/TextWrangler.app
    com.apple.FinderInfo     32 
    com.apple.quarantine     57 

その検疫属性がアプリに添付されている場合、ゲートキーパーポリシーがチェックされます。そうでなければ、それはしません。興味深い質問は、他のコンピューターで隔離された理由であり、このコマンドを使用して、配布時にさまざまな時点でアプリケーションをチェックすると、属性がアタッチされるタイミング(したがってアタッチされる理由)を把握できます。

編集:Appleのナレッジベース記事#HT5290の「詳細についてはここをクリックしてください」セクションにこれに関するメモがあります

重要:開発者ID署名は、インターネットからダウンロードしたアプリに適用されます。ファイルサーバー、外付けドライブ、光ディスクなど、他のソースからのアプリは、最初にインターネットからダウンロードされたものでない限り、免除されます。


ゲートキーパーは隔離とは異なりますが、一緒に使用すると、署名されていない、またはMac App Storeからではない新しいソフトウェアが誤って実行されるのを防ぎます。詳細については、私の回答を参照してください。
bmike

1
@bmike:実際、ゲートキーパーは検疫システムの拡張です。アプリをダウンロードして実行xattr -d com.apple.quarantineすると、ゲートキーパーポリシーに違反していてもアプリを開くことができます。
Gordon Davisson 2013年

ゲートキーパーのポリシーに違反するアプリは既に開いています。(潜在的には管理ダイアログと)ポリシーアプリからホワイトリストを取得するチャンスを得ます。管理者以外のユーザーが1つのコマンドを発行すると、Mac App Storeのみまたは署名済みのアプリのみがあるかどうかのチェックがバイパスされるということですか?
bmike

1
@bmike:はい、管理者以外のアカウントから署名のないアプリのダウンロード、検疫、実行をテストしたところ、GatekeeperがMac App Store専用モードに設定されていても問題なく動作しました。しかし、私がこれを重大なセキュリティホールだとは考えません。悪意のあるユーザーがユーザーにこのようなコマンドを実行するように話すことができる場合、彼らは何にでも話すことができ、ユーザーはとにかく運命づけられています(そして、彼らは管理者ではないため、彼らが損害を与えることができるすべては自分のアカウントです)。
Gordon Davisson 2013年

1
この。隔離はゲートキーパーとは異なりますが、ゲートキーパーは隔離からのメタデータに依存します。これは、ダウンロードされたファイルに拡張属性メタデータとして添付されます。賞金を授与できたら、ここで授与します。
ダニエル

4

この非表示の設定を有効にすると、ゲートキーパーも無効になります。

defaults write com.apple.LaunchServices LSQuarantine -bool false

またはOS Xでは、システム環境設定の設定に関係なく、すべてのアプリケーションを開くことができます。


おっと、これは完全に見逃して、別の回答として同じものを投稿しました。今削除しています…
TJ Luoma 2013年

2

ゲートキーパーは、ダブルクリックによってアプリが実行されるのを防ぎますが、コンテキストメニューから[開く ]を選択することで、いつでもアプリを上書きできます。

ダウンロードした署名のないアプリをダブルクリックして実行できる場合、これはGatekeeperの問題です。ファイルは、com.apple.quarantineと呼ばれる拡張属性に隔離ステータスを保存します。ダウンロードされたファイルから何らかの理由でこの属性がクリアされた場合、Gatekeeperはダウンロードされたファイルをコンピューター上の他のファイルと何の違いもないものとして扱います。したがって、Xcodeがインストールされている場合は、プログラムをダウンロードしてからターミナルで使用することをお勧めします。xattr -l filename

メニューから[開く]コマンドを使用して実行する場合、これは設計された動作です。メニューからプログラムを実行すると、Gatekeeperの設定に関係なく、プログラムをダブルクリックして実行できるようになります。

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