Linuxに独自のバイナリカーネルモジュールをサンドボックス化する概念はありますか?

Linuxに独自のバイナリカーネルモジュールをサンドボックス化する概念はありますか?

プロセス間のセキュリティ(同じ)と権限の低下を改善するために多くのことが行われましたが、独自のUIDLinuxuserlandカーネルコンポーネントを使用するのが一般的です(悲しいことに、GPLv2はプライベートソースのカーネルモジュールの問題を実際に解決していないようです)。

私の質問は、閉じたソースカーネルモジュール(既存または開発中)の「サンドボックス」の概念についてです。

私が見るには、合法的な編集証期間(WikiLeaks、Snowden以降)の間、人々は常に排他的なカーネルモジュールの潜在的なバックドアを防ぐ方法を探していたようです。そうですか?

ベストアンサー1

はい、独自のドライバー用のサンドボックスの概念があります。これをユーザー層ドライバと呼びます。

カーネルでコードを実行すると、すべてにアクセスできるため、サンドボックス処理はできません。 (Linuxシステムでは不可能です。システムは仮想マシンで実行でき、仮想マシンはサンドボックス操作を実行します。)

ユーザ空間ドライバは、特定の種類の周辺機器に使用できます。たとえば、一部のUSB周辺機器はユーザーモードで駆動できます。libusbそしてUSBFSファイルシステムは、次の方法でユーザー空間で実装できます。ヒューズ

周辺機器の悪意のあるドライバは、周辺機器へのアクセスを悪用してシステムの残りの部分にアクセスする可能性があります(たとえば、周辺機器を次のように構成します)。DMAしたがって、任意のメモリにアクセスする)ドライバをサンドボックス化することはあまり意味がありません。ドライバを信頼できない場合は使用しないでください。

一部のサンドボックスは、仮想マシン内でドライバを実行し、仮想マシンが特定の周辺機器にのみアクセスできるようにハイパーバイザーを構成することによって実行できます。これは、周辺機器自体が以下を介して実行できるメモリの特定の部分にのみアクセスできる場合にのみ役立ちます。アイオム(もちろんIOMMUはハイパーバイザーの制御を受けなければなりません)。すべてのシステムがこれらのサンドボックスをサポートしているわけではありません。では、周辺機器を信頼しない場合は、なぜコンピュータにインストールするのですか?

おすすめ記事