GNU/Linux >> Linux の 問題 >  >> Linux

Linuxで相互に信頼されていないアプリのファイルはどのように保護されていますか?

UbuntuLinuxマシンを実行しています。 ChromeやFirefoxなどのさまざまなベンダーによって作成されたアプリケーションを実行すると、それらすべてが私のuidで実行されていることに気付きます。ただし、その場合、ファイルシステム上に作成するファイルも同じuidになります。では、Linuxで、相互に信頼されていない2つのアプリが、ファイルを相互に保護するにはどうすればよいでしょうか。

  • アプリAでACLポリシーを使用すると、アプリBが(ユーザー、グループ、その他)のユーザー部分を介してAのファイルを読み取ることができる場合があります
  • アプリはデータを相互に保護するために暗号化を使用する必要がありますか?

承認された回答:

文字通りの答えは、あなたのアカウントで実行されている信頼できないアプリケーションのようなものはないということです。信頼できないアプリケーションを実行する場合は、別のアカウントまたは仮想マシンで実行してください。

UnixやWindowsなどの一般的なデスクトップオペレーティングシステムと、AndroidやiOSなどの一般的なモバイルオペレーティングシステムには、異なるセキュリティモデルがあります。 Unixはマルチユーザーオペレーティングシステムであり、相互に信頼できないユーザーがいます。 アプリケーション 信頼できると見なされます。ユーザーのすべてのアプリケーションは、同じセキュリティコンテキストで実行されます。 サービス 一方、信頼性はやや劣ります。セキュリティの脆弱性が発生した場合の影響を軽減するために、通常は専用のアカウントで実行されます。

Unixセキュリティモデルがこのように機能する主な理由は2つあります。

  • 否定的な理由は歴史です。Unixが設計されたとき、アプリケーションは少数のプログラマーから提供され、ベンダーの評判に裏打ちされているか、ソースコードとして提供されていました。アプリケーションでバックドアが恐れられることはめったにありませんでした。さらに、ネットワークを介して通信するアプリケーションはほとんどないため、脆弱性をトリガーして悪用する機会は比較的少なかった。したがって、アプリケーションを相互に分離する強いインセンティブはありませんでした。
  • 肯定的な理由は機能性です。アプリケーションを分離すると、多くのことが不可能になります。各アプリケーションに独自のデータ領域がある場合、アプリケーション間でデータを共有することは困難です。一般的なUnixシステムでは、同じデータが複数のアプリケーションによって処理されることが非常に一般的です。 Unixには「アプリケーション」と「オペレーティングシステム」が明確に区別されていないため、これは特に当てはまります。 Webブラウザはアプリケーションです。ブラウザが独自のディレクトリに制限されているため、選択したディレクトリにファイルをダウンロードできないのは面倒です。ログイン時にメニューやアイコンを表示するプログラムも同じ基盤のアプリケーションです。定義上、すべてのファイルにアクセスする必要があるファイルマネージャーも同様です。あらゆる場所でスクリプトを実行するシェルやその他のインタープリターも同様です。ワードプロセッサからドキュメントを印刷する場合、これには、ドキュメントを印刷可能な形式に変換するアプリケーションと、データをプリンタに送信する別のアプリケーションが含まれる場合があります。

現在、40年前よりもはるかに多くのアプリケーション作成者がいますが、アプリケーションは通常、レピュテーションを示す信頼できるチャネルを介して配布されます。 (これは、WindowsよりもLinuxの方がはるかに当てはまります。これは、Windowsでウイルスがより一般的である理由の一部です。)アプリケーションにバックドアがあることが判明すると、Linuxソフトウェアリポジトリから即座にプルされます。

関連:Debian – Linuxをアンインストールして再インストールせずに(またはデータを失うことなく)ルートパーティションのサイズを変更しますか?

モバイルオペレーティングシステムは、さまざまな脅威を念頭に置いて設計されました。これらはシングルユーザーシステム用に設計されていますが、アプリケーションは完全に信頼できないソースからのものです。

アプリケーションの分離は、デスクトップのUnixシステムに浸透し始めています。一部のディストリビューションは、AppArmorやSELinuxなどのセキュリティフレームワークの下で特定のプログラムを実行し、アプリケーションが実行できることを制限します。これらのセキュリティ制限のコストは、たとえば、制限されたアプリケーションが特定のディレクトリ内のファイルを開くのを防ぐなど、望ましい使用を不可能にする場合があることです。

暗号化は完全に役に立たないでしょう。暗号化は、転送中のデータのみを保護します (ネットワーク経由)または安静時 (ディスクに保存されている)、ライブシステム上のデータを保護しません—サブシステムAがデータを復号化する場合、サブシステムBが復号化されたデータへのアクセスを防止するのを防ぐのはOS次第です。したがって、かどうかは関係ありません。データはAによって復号化されたか、暗号化されずに保存されました。オペレーティングシステムはデータを暗号化する可能性がありますが、それは記憶媒体が盗まれた場合に備えてデータを保護するためだけです。

信頼できないコードを実行する場合は、仮想マシンで実行するのが最善の方法です。アプリケーションが必要とするファイルのみに仮想マシンへのアクセスを許可します(たとえば、ホームディレクトリを共有しないでください)。


Linux
  1. Linuxでgocryptfsを使用してファイルを暗号化する方法

  2. LinuxにSpotifyアプリケーションをインストールする方法

  3. Linuxで複数のファイルを圧縮する方法

  1. Linuxのウィンドウ装飾をカスタマイズする方法

  2. Linuxでファイルの名前を変更する方法

  3. Linuxでアプリケーションの起動時間を改善する方法

  1. Linuxでファイルを見つける方法

  2. レガシーアプリケーションをコンテナ化する方法

  3. Ubuntu 22.04 JammyJellyfishLinuxでアプリケーションを自動起動する方法