web-dev-qa-db-ja.com

X上の別のプログラムで、仮想端末に入力しているときにrootパスワードを取得できますか?

クローズドソースアプリケーションを信頼していないため、通常、Linuxボックスにはオープンソースプログラムのみをインストールします。最近、大学のプロジェクトでDropboxを使用する必要がありました。 workという名前の別のLinuxアカウントを作成し、workとして) インストールなしのドロップボックス pythonスクリプト。スクリプトは、Dropboxの一部の機能のGUIを提供するシンボルもシステムトレイに作成しました。

先日、メンテナンスを行う必要があったため、仮想端末(KDEのコンソール)を開き、suのrootパスワードを入力しました。

Dropboxアプリケーションがルートパスワードを取得した可能性はありますか?

KDE 4.14.3でFedora 20を使用しています。

24
problemofficer

短い答え:はい。

「昔」では、他のXアプリケーションが特定の入力を取得することで、それを読み取るのを効果的に防ぐことができました。これは今日でも実行できますが、 XI2プロトコル仕様 は、これ以上実行できないことを示唆しているようです(2220行目のRawイベントの説明を参照)。したがって、Xだけでは、もはや安全ではありません-少なくとも通常の単純なセットアップではそうではありません。 私の答え から デーモンにパスワードの入力を求める方法(Xsession、keyloggersafe)? および そこで参照されているAskUbuntu Q&A の説明も参照してください。 =。言うまでもなく、実際にそれを行っている端末はありません。そのため、OpenSSHやGnuPGなどのアプリケーションにはキーボードをつかむ独自のUIヘルパーが付属しています(前述のように、最近はそれほど役に立ちません)。

あなたができることは、別のXサーバーでアプリケーションを実行することです。 XephyrXnest のようなネストされたXサーバー、または Xvnc のようなVNCベースのサーバー=。ウェイランドプロトコルは、盗聴からの保護も提供する必要があります。

上記とは別に、アプリケーションは、システムのパッチが適用されていないセキュリティホールを悪用して、昇格された特権を取得しようとした可能性もあります。または、suラッパーとSudoラッパーをシステムパスの前にパスに配置して、パスワードを傍受するなど、もっと簡単なことを行います(コメントをありがとう@Joshua)。

24
peterph