web-dev-qa-db-ja.com

クリックパッケージと.debパッケージのセキュリティの違いは何ですか?

ランダム(厄介?)をインストールすると。debは危険な場合がありますアプリとdaemonにすべての特権が付与されるため.debには、ユーザーがインストールプロセスでパスワードを有効にするかどうかを適用するよう求めるいくつかの構成があります。

クリックパッケージにはパスワードは必要ありません(私がテストした限り)。

パッケージをクリックするとシステム/ユーザーデータに対して安全になりますか、それとも同じになりますか?なぜ?

答えられるのが素晴らしいいくつかの側面:

  • clickとdebは同じシステム(dpkg)に基づいていますか?
  • apparmorは、パスワードなどを使わずにアプリへのルートアクセスを提供できますか?
  • ユーザーは、インストール時にアプリのアクセス権を受け入れるように求められます(Androidのような例:このアプリは/ homeをスキャンしてネットワークにアクセスできます)または実行時に、権利が必要な場合(カムの使用権を求めるブラウザのような例)
  • この質問に近い:.apkとクリックはWordに同じ(ポリシーとユーザーストーリーについて)ですか?
  • 主に:アプリはクリックでネットワーク上のすべてのプライベートデータを明示的に通知せずに送信できますか、それとも少なくともユーザーによって検証される権利がありますか、それともサンドボックスでブロックされますか?
  • 確かに、クリックパッケージはそれほど強力ではありません(より多くのものを制限します)が、より安全ですか?
31
cm-t

注:私はUbuntuのセキュリティチームに所属し、Ubuntuのアプリケーション制限ストーリーの設計を支援しました。質問をわかりやすくするために書き直しました。

Q:「システムとユーザーデータに関して、クリックパッケージはより安全になりますか、それとも同じになりますか?」

A:一般に、システムおよびユーザーデータに関しては、クリックパッケージはdebsより安全です。

クリックパッケージには、debパッケージのようにインストール時にルートとして実行されるメンテナースクリプトは含まれません。クリックパッケージは単にアンパックされ、クリックで宣言された場合はシステムが提供するフックが使用されます。たとえば、クリックは、デスクトップフックを使用してデスクトップファイルを生成すること、またはAppArmorフックを使用してアプリのAppArmorプロファイルを生成することを宣言する場合があります。 debパッケージにはソフトウェアまたはシステムの広範なカスタマイズを可能にするように設計されたメンテナースクリプトの概念があるため、debパッケージは信頼できるソース(Ubuntuなどのディストリビューションの署名付きアーカイブなど)からのみインストールする必要があります。クリックパッケージは直接インストールされる可能性があり、パッケージのインストールによってシステムが損なわれることはほとんどありません。ただし、それはストーリーの一部にすぎません。信頼できないソースからクリックパッケージをインストールした場合、適切に制限されていることをマニフェストで宣言する保証はないため、インストール中は問題ありませんが、実行しない場合があります(つまり、ソフトウェアは制限なしに実行される可能性があるため、データを盗んだり、ユーザーとしてプログラムを実行したりできます)。

クリックの真の力は、強力なポリシーを備えたソフトウェアリポジトリと組み合わせて使用​​することです。たとえば、Ubuntu App Storeからインストールされたクリックパッケージのセキュリティは通常、信頼できるアーカイブからインストールされたdebのセキュリティよりも高くなっています。これは、Ubuntu App Storeでは、信頼モデルがアプリは信頼できないと見なされている*ため、ストア内のクリックパッケージに適切なセキュリティマニフェストがあり、非常に厳しい制限の下で実行されることを保証するポリシーとチェックが実施されているためです。これとは対照的に、Ubuntuアーカイブ内のパッケージをdebすること-信頼モデルでは、ソフトウェアとdebパッケージは信頼されていると見なされ、一般的にソフトウェアは監禁下で実行されません(ただし、AppArmorプロファイルがソフトウェアとともに出荷される場合は例外がたくさんあります)セキュリティバグから保護するため)。

  • 信頼できるパッケージは、Ubuntu App Storeからも配信できます。一般的ではありませんが、これらは通常Canonicalによって開発されており、監禁下で実行される場合とされない場合があります。

特定の質問に答えるには:

Q:クリックはdebと同じシステムに基づいていますか?

A:クリックの低レベルパッケージ形式はdebです。ただし、クリックパッケージは、従来のパッケージファイルとメンテナースクリプトではなく、宣言マニフェストとフックを使用するという点で、はるかに簡単です。

Q:AppArmorはユーザーの操作なしでアプリへの特権アクセスを提供できますか?

A: AppArmorはroot strongであり、定義されたセキュリティポリシーに基づいてシステムリソース(ファイル、DBus、ネットワークなど)へのアクセスを許可または拒否できます。クリックパッケージ自体は、AppArmorセキュリティマニフェストを出荷したり、「安全」なAppArmorセキュリティマニフェストを出荷したりする必要はありません。システムを安全にするのは、クリックと、クリックパッケージを配信するストアのポリシーの組み合わせです。 Ubuntu App Storeを介して配信されるクリックパッケージは、非常に制限され、舞台裏で特権アクションを許可しないAppArmorポリシーを使用します(たとえば、このポリシーで実行されているアプリは舞台裏のシステムでプログラムを実行できず、Facebookアカウントにアクセスします、gpgキーまたはsshキーを盗む、ネットワークを操作するなど)

Q:インストール時に、Androidのようにアプリにアクセス権を付与するように求められますか?(たとえば、「このアプリは/ homeをスキャンしてネットワークにアクセスできます」)

A:いいえ。クリックパッケージ自体は、低レベルツールを使用してプロンプトなしでインストールできます。 Ubuntuでは、クリックパッケージはUbuntu Appストア(上記を参照)を介してインストールする必要があります。クリック機能とUbuntuシステムを組み合わせたUbuntu Appストアポリシーのため、クリックスルーのコンテキストレスインストールプロンプトは不要です。 Ubuntuは、Ubuntu Appストアからインストールされたアプリが制限された制限の下で実行されるため(つまり、舞台裏で悪いことを行うことはできません)、アプリが追加のアクセスを必要とする場合、プロンプトを含む制御されたAPIを使用してこれを行うため、これを行うことができます。

特権APIの場合、ユーザーがアクセスを許可または拒否するコンテキストプロンプトを持つように、信頼できるヘルパーの概念があります((オプションの)取り消し可能なキャッシングにより、ユーザーは毎回確認されません)。たとえば、アプリが位置情報サービス(信頼できるヘルパー)にアクセスする必要がある場合、アプリが位置情報サービスを使用しようとするときにアクセスを許可するように求められます。情報に基づいた決定。ビデオとオーディオの録音でも同じことが起こります。多くの場合、セキュリティプロンプトはまったく必要なく、アプリとのユーザー主導の対話に基づいてアクセスを許可できます。たとえば、アプリが写真をアップロードする場合、写真を選択するダイアログが表示されます。舞台裏では、アプリは〜/ Picturesディレクトリへのアクセスを許可されていないため、コンテンツハブAPIを使用して、ユーザーがギャラリーファイルセレクターを起動して、アップロードする写真を選択します。その後、コンテンツハブはギャラリーから写真を取得し、アプリに提供します。この方法では、セキュリティダイアログはありません。ユーザーにとっては自然なやり取りしかありませんが、裏では、暗黙の信頼決定があります。

Q:この質問に関連する:.apkとクリックは、ポリシーとユーザーエクスペリエンスに関して同様の言語になりますか?

A:いいえ、上記の理由によるインストールのプロンプトはありません。 Ubuntu用に定義されているクリックパッケージのAndroid権限とセキュリティ権限にはいくつかの類似点がありますが、実装方法が異なります。

Q:具体的には、クリックすると、アプリが知らないうちにネットワーク経由ですべてのプライベートデータを送信できますか、またはこれを防ぐために何らかの方法で制限されますか?

A:信頼できないソースからクリックをインストールすると、はい、何でもできます。 Ubuntu App Storeからクリックをインストールすると、いいえ、アプリはすべてのデータをネットワーク経由で送信できません。アクセスできないためです。もちろん、アプリはあることを行い、別のことを行うように見える可能性があります。ユーザーが位置情報サービスへのアクセスを許可したり、アプリに写真へのアクセスを許可した場合、アプリはそのデータを悪用する可能性があります。 /レビューとApp Storeセキュリティポリシーが有効になります。このようなアプリが報告された場合、調査されます。必要に応じて、アプリがストアから削除され、アプリがインストールされているすべてのデバイスからアプリが削除され、開発者のApp Storeへのアクセスが取り消されます。

Q:クリックパッケージはdebsより安全であると言えますが、より制限されているために強力ではありませんか?

A:上記からわかるように、答えはそれほど単純ではありません。クリックだけで、何でもできるソフトウェアが出荷される場合があります。クリックパッケージの形式は意図的に汎用されており、さまざまな方法で使用でき、Ubuntuに固有のものではありません。 Ubuntuの場合、クリック、Ubuntu API、AppArmor、およびApp Storeポリシーの組み合わせは、開発者がユーザーに安全で使いやすい方法でアプリケーションを配信するための非常に強力な環境を提供します。アプリケーション自体のユーティリティは、基礎となるシステムによってアプリケーションに提供されるAPIに依存しています。 Ubuntuの最初の出荷携帯電話で提供されるAPIの初期セットにより、開発者は豊富なAPIとSDKを使用して、あらゆる種類の楽しく便利なアプリケーションを作成できます。これらのAPIは、開発者とユーザーのより良いサポートに向けて前進するにつれて、その幅と有用性が拡大します。

35
jdstrand

セキュリティおよびクリックパッケージに関する最も重要な質問のいくつかに答えようとします。

  • アプリは、明示的に通知せずに、ワンクリックでネットワーク上のすべての個人データを送信できますか?

    • クリックアプリは監禁下で実行されます。これが意味することは、アプリが悪いことをするのを防ぐことです。つまり、アプリは自分のプライベートディレクトリにしかアクセスできません。
  • アプリをインストールしてからルート権限を取得できますか?パスワードまたは特定のプロンプトなし?

    • ...
  • ユーザーはアプリの権利を受け入れるように求められますか? when?

    • クリックアプリは、ユーザーがアプリに使用を許可する機能にアクセスします(NB:現在/毎日のUbuntu Touchリリースではまだプロンプトが表示されません)
  • クリックとデバッグの両方で同じシステムに基づいていますか?

    • Debian(.deb)パッケージは完全に異なります。ただし、アプリがUbuntu SDKで作成されている場合は、Debianパッケージを使用する必要はなく、代わりにクリックパッケージを使用できます。これは、エンドユーザーにとってはるかに使いやすく安全です。
  • 上記と同様、比較:.apk(Android)とクリックは同じように動作しますか?

    • AndroidパッケージとUbuntu Clickパッケージは同様に機能します。各アプリケーションにはデータを保存するための独自のスペースがあり、他のアプリケーションのデータに直接アクセスすることは(理想的には)禁止されています。現在、Androidパッケージは、アクセス制限のないSDカードまたは内部ストレージからデータを読み取ることもできます。 Ubuntu Clickパッケージは、特定の機能に対する許可を要求する必要もあります。
  • それは本当です:クリックパッケージはそれほど強力ではありません(より多くのものを制限します)が、安全ですか?

    • ...

これらの理由から、クリックパッケージは非常に安全であり、それらを公開するためのレビュープロセスははるかに簡単です。

出典:

2
cm-t