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

X11は危険ですか?

<ブロック引用>

現在のユーザーの下から起動されたアプリケーションは、キーボード、マウス、ディスプレイ (スクリーンショットの撮影など) にアクセスできますが、これは良くありません。

デスクトップ上のすべての X11 クライアントは、ウィンドウのコンテンツの取得、変更、ウィンドウのクローズ、他のクライアントへのキー イベントとマウス イベントの偽装、入力デバイスの取得など、相互に詳細にアクセスできます。

X11 プロトコルの設計は、クライアントはすべて信頼されており、互いに足を踏み入れることなく協力するという考えに基づいています (後者は、Firefox、Chrome、Java などの最新のアプリによって完全に壊れています)。

<ブロック引用>

しかし、キーロガーなどを含む可能性が低い公式リポジトリ (Debian など) からプログラムをインストールすると、危険性の問題は明らかに誇張されます。私は間違っていますか?

プログラムにはバグがあり、悪用される可能性があります。 X11 サーバーとライブラリが最新ではない可能性があります。たとえば、どの X11 クライアントでもクラッシュする可能性があります 現在のバージョンの Debian (Buster 10) の X サーバーは、無害な Xkb リクエストを介して。 (上流のソースでは修正されましたが、Debian ではまだ修正されていません)。クラッシュできる場合は、X11 サーバーの特権 (ハードウェアへのアクセスなど) でコードを実行できる可能性もあります。

Xwayland (および Debian の通常の Xorg Xserver) での緩い認証に関する問題については、この回答の最後のメモを参照してください。

<ブロック引用>

はい、別のサーバー (Xephyr など) でアプリケーションを開くことができますが、共有クリップボードがないため不便です。 tmp ファイルに基づいてクリップボードを作成するのも不便です。

追加の手順を実行しない限り、Xephyr に注意してください。 すべてのローカル ユーザーを許可 デフォルトで接続します。それについての議論については、これを参照してください。

複数の X11 サーバー間で共有クリップボードを作成することは興味深い問題であり、これと混合するのではなく、独自の Q&A に値します。


同じマシン上で同じユーザー アカウントで実行されているアプリケーションは、ptrace を使用できます。 互いのプロセス メモリを変更するためのシステム コールであるため、X11 はここで最も便利な攻撃面ではありません。

完全に信頼できないアプリケーションの場合は、最初に別のユーザー ID で実行する必要があります (Android がさまざまなベンダーのアプリケーションで行うように)。XSECURITY 拡張機能を使用して、X サーバーの「信頼されていない」アクセス トークンを生成できます。 、アプリケーションの X11 へのアクセスが制限されます:

  • 自分のウィンドウに向けられていない入力イベントへのアクセス不可
  • XTEST 拡張機能へのアクセス禁止
  • 透明な窓なし

X11 の入力イベントには Synthetic があります 入力イベントが入力デバイスから生成されたのか、別のプログラムから送信されたのかを示すフィールド。受信プログラムは、合成イベントをどう処理するかを決定します。たとえば、 xterm それらを無視するだけです。 XTEST 拡張により、非 Synthetic を生成できます テスト目的のソフトウェアからのイベント。これが、信頼されていないクライアントがその拡張機能の使用を許可されていない理由です。


Linux
  1. iconv UTF-8 への任意のエンコーディング

  2. 軽量 X11 の代替品はありますか?

  3. fsckはいつ危険ですか?

  1. 最小契約

  2. `time`に似たコマンドをログに記録しますか?

  3. コマンドを任意の端末にパイプする方法は?

  1. Linux – X11を使用しないLinux用のGUIはありますか?

  2. インスタント歌詞–Spotifyの任意の曲の歌詞を取得

  3. X11 ディスプレイ解像度を照会する方法は?