注:私は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は強力なルートであり、定義されたセキュリティポリシーに基づいてシステムリソース(ファイル、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とclickはポリシーとユーザーエクスペリエンスに関して同様の言語になりますか?
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を使用して、あらゆる種類の楽しくて便利なアプリケーションを作成できます。