41
「Flatpak」は「セキュリティを最優先」とするユニバーサル Linux パッケージング形式です

フラットパックアーキテクチャ

フラットパックアーキテクチャ

Canonicalは最近、「snaps」と呼ばれる独自のユニバーサルアプリフォーマットを発表しました。しかし、このフォーマットには様々な問題があるため、Red Hatの開発者が主導するコミュニティ設計のフォーマットである「flatpaks」が採用されました。「セキュリティ第一」のアプローチとアプリサイズが大幅に小さいことから、今後より普及する標準フォーマットとなる可能性があります。

Linuxアプリをユニバーサルにする

「snap」と「flatpak」のコアテクノロジーは、Linux界隈で「コンテナ」として知られているものにほぼ基づいていますが、開発者たちはこれらのフォーマットは「Dockerスタイル」のコンテナとは大きく異なると主張しています。これら2つのフォーマットは、アプリとその依存関係を1つのパッケージにまとめているため、ユーザーはLinuxプログラムでよくあるようにディストリビューションベンダーからではなく、開発者から直接アップデートを取得できます。その目的は、Linuxアプリをディストリビューション間でより汎用的にするだけでなく、より安全にすることです。

「Linuxアプリケーション開発者は、これまでユーザーと直接的な関係を築くことができませんでした。Flatpakは、この状況を変え、開発者がユーザーが何を得ているのかを正確に把握できるようにすることを目指しています。今回のリリースにより、その目標が現実のものとなります」と、flatpakプロジェクトのリード開発者であるAlexander Larsson氏は述べています。

「スナップ」の限界

Snapsは現在、Canonicalのサーバー、同社の物議を醸しているCLAライセンス、そして将来Ubuntu上でグラフィカルアプリケーションを表示するために利用される予定の独自のMirディスプレイサーバーに縛られています。ユニバーサルなフォーマットであるはずのSnapsにとって、これらはかなり重大な制限であり、Ubuntuシステムへの普及を阻む可能性があります。

Snapが他のLinuxディストリビューションに普及し始めたとしても、それらのディストリビューションがMirディスプレイサーバーをサポートしない限り、あるいはCanonicalがWaylandをサポートすることを決定しない限り、他のディストリビューションのSnapは、MirベースのSnapやWaylandベースのFlatpakと同じように強力なセキュリティの恩恵を受けることはできません。Waylandは、Ubuntu以外のディストリビューションの大多数で採用されている、競合するディスプレイサーバーソリューションです。

CanonicalがSnapでWaylandをサポートすることになった場合、競合する2つのディスプレイサーバー標準をサポートしなければならなくなります。これは非常に冗長であり、Canonicalが維持できない開発コストになる可能性があります。また、Linuxコミュニティに対して、同社がMirを維持するつもりがあるかどうかという矛盾したメッセージを送ることにもなります。

X11の不安

Linuxには、旧式のX11ディスプレイサーバーに起因するセキュリティ上の問題がよく知られています。これは、アプリ(および攻撃者)が安全でない方法で他のアプリとやり取りできるからです。CanonicalがSnapでWaylandをサポートしない場合、Ubuntu以外のシステムで使用されるすべてのSnapがこのX11セキュリティ上の問題に悩まされることになります。一方、FlatpakはWayland対応システムのみをサポートするため、この問題は発生しません。

Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。

flatpakの安定仕様が公開されてからまだ日が浅いものの、LibreOffice、GIMP、InkScape、MyPaint、Darktable、そして「多数のGNOME標準アプリケーション」など、多くの人気Linuxプロジェクトが既にサポートしています(flatpak形式の開発者によると)。GNOMEランタイムとKDEは、イン​​ストール場所を問わずflatpakをサポートし、一部のディストリビューションでは組み込みサポートも提供される予定です。

「これまで、あらゆるLinuxユーザーが利用できるLibreOfficeを構築するには、優れた前方互換性を確保するために古いLinuxバージョンでバイナリをビルドする必要があり、その結果、いくつかの大きな妥協を強いられてきました。Flatpakにより、(Linux ISVである)私たちは、最新の依存関係と多くのシステムで実行可能なプラットフォームを備えた、より優れたLibreOfficeを配布できるようになります。その実現を大変楽しみにしています」と、The Document Foundationのディレクター、マイケル・ミークス氏は述べています。

セキュリティサンドボックス

Snapsを含む他の「ユニバーサルパッケージングフォーマット」とは異なり、Flatpakではセキュリティが最優先事項となっています。Flatpak内のアプリはシステムから分離されており、アクセスは限られた数のライブラリとシステムインターフェースのみに制限されています。

Flatpakは、ほとんどのLinuxディストリビューションに既に存在するLinuxサンドボックス技術を使用するため、これらの依存関係をアプリにバンドルする必要はありません。コンテナが最近普及するまで、これらのサンドボックス技術は、Chromeなどの一部の例外を除き、大多数のLinuxアプリケーションで有効に活用されていませんでした。

Snapsは、Mir対応のUbuntuシステムでも同様のセキュリティ上のメリットを実現できる可能性があります。しかし、Canonicalは現在、SnapsをX11上で構築することを推奨しているため、実際には、Mirの登場後も、ほとんどのSnapsは安全でないX11ディスプレイサーバーを長期間使い続ける可能性が高いでしょう。

フラットパックの唯一の「大きな」欠点

flatpakの欠点の一つは、特定のLinuxディストリビューションで動作させるために、GNOMEまたはKDEランタイム、そして場合によっては他のいくつかのコンポーネントが必要になることです。つまり、flatpakはsnapsほど「ユニバーサル」(つまり、デフォルトで多くのLinuxプラットフォームで動作する)ではありません。

しかし、実際には、ほとんどのディストリビューションが既にこれらのランタイムと必要なコンポーネントを使用しており、将来的には他のディストリビューションもflatpakをデフォルトでサポートするようになる可能性があることを考えると、これはそれほど大きなデメリットにはならないかもしれません。最悪のシナリオでは、ユーザーはこれらの追加コンポーネントを一度インストールするだけで、すべてのflatpakが動作するようになります。

これは設計上の決定だったようです。特定の主要コンポーネントを共有することで、flatpaks のファイル サイズは、すべてのパッケージに必要な依存関係をすべて含めた場合 (「snap」戦略) よりも大幅に小さくなるためです。

すべての依存関係を1つのパッケージにまとめてしまうと、例えばJava仮想マシンを必要とするすべてのパッケージにJava仮想マシンを含めてしまうといった事態に陥る可能性があります。また、20個の異なるパッケージがあり、それぞれに異なるバージョンのJavaが含まれている場合、セキュリティとアップデートの面で悪夢のような事態を招く可能性があります。

攻撃者は、最も古いJavaバージョンのパッケージを悪用するだけで済みます。そのため、一見するとflatpakはsnapsよりも「汎用性が低い」ように見えますが(実際にはそうではない可能性が高いですが)、flatpak戦略の方がより合理的な妥協策のように思えます。

Linuxディストリビューションをモバイルプラットフォームと同等に安全にする

Flatpakは、コンテナベースではない従来のパッケージ形式よりもはるかに汎用性が高く、ファイルサイズも小さく、コンテナの業界標準をサポートし、セキュリティを念頭に置いて根本から設計されているように思われます。そのため、FlatpakがLinuxアプリの「唯一の」ユニバーサルスタンダードになれば、プラットフォームのセキュリティが大幅に向上し、通常は高度にサンドボックス化されたモバイルプラットフォームでしか見られないレベルのセキュリティを実現できる可能性があります。

ルシアン・アルマスはTom's Hardwareの寄稿ライターです。  @lucian_armasuでフォローできます 

ルシアン・アルマスは、Tom's Hardware USの寄稿ライターです。ソフトウェア関連のニュースやプライバシーとセキュリティに関する問題を取り上げています。