RPM は確認なしでホーム フォルダー内のファイルを制御できますか?

RPM は確認なしでホーム フォルダー内のファイルを制御できますか?

RPM 拡張ファイルは、パッケージ内に何が入っているかに関係なく、ダブルクリックで実行できます。その後、システムに何かをインストールするためにルート パスワードの入力を求められますが、入力しないと、ホーム フォルダー内のファイルに何らかの害が及ぶでしょうか?

正しい URL から RPM をダウンロードしたことは確かですが、中間者攻撃が心配です。10 MB のファイルは、公式 Web サイトで説明されている 100 MB のサイズからは程遠いので、インターネット接続の失敗によってダウンロード セッションが停止したか、マルウェアのサイズが原因でしょうか。

答え1

原則としてダブルクリックで実行するプログラムできるホーム フォルダー内のファイルに損害を与えます (通常は、そこに書き込み権限があることを前提とします)。

RPM をクリックして呼び出されるプログラムは、ディストリビューションのインストールに付属しているため、マルウェアである可能性は低くなりますが、RPM 内のスクリプトと実行可能ファイルにはマルウェアが含まれている可能性があり、それらはホーム ディレクトリ (より正確には、RPM をクリックしたユーザー アカウントで開かれるすべてのファイル) にアクセスできます。

あなたの質問は意思害を及ぼすかどうかは、パッケージの内容などいくつかの要因に依存するため、答えることはできません。ただし、害を及ぼす可能性もあるため、信頼できるソースからの RPM を使用する必要があります。

(RPM にマルウェアが含まれている場合、ルート パスワードを与えるとさらに大きな被害が発生する可能性があります)。

答え2

RPM 関連のファイルに疑わしい点がある場合は、インストールする前に必ず最初にダウンロードして検査してください。

$ rpm -qpl /home/saml/rtmpdump-2.4-0.1.20110811gitc58cfb3e.fc14.x86_64.rpm
/usr/bin/rtmpdump
/usr/sbin/rtmpgw
/usr/sbin/rtmpsrv
/usr/sbin/rtmpsuck
/usr/share/doc/rtmpdump-2.4
/usr/share/doc/rtmpdump-2.4/COPYING
/usr/share/doc/rtmpdump-2.4/README
/usr/share/man/man1/rtmpdump.1.gz
/usr/share/man/man8/rtmpgw.8.gz

これらのファイルは、さらに検査するために一時ディレクトリに抽出できます。

$ rpm2cpio /home/saml/rtmpdump-2.4-0.1.20110811gitc58cfb3e.fc14.x86_64.rpm | \
  cpio -idmv
./usr/bin/rtmpdump
./usr/sbin/rtmpgw
./usr/sbin/rtmpsrv
./usr/sbin/rtmpsuck
./usr/share/doc/rtmpdump-2.4
./usr/share/doc/rtmpdump-2.4/COPYING
./usr/share/doc/rtmpdump-2.4/README
./usr/share/man/man1/rtmpdump.1.gz
./usr/share/man/man8/rtmpgw.8.gz
296 blocks

その後、内容をさらに詳しく検査することができます。

署名の確認

すでに持っている GPG キーを使用して RPM が署名されていることを確認できます。署名されている場合、RPM は完全に正常であり、信頼できる可能性があります。

$ rpm -K /home/saml/rtmpdump-2.4-0.1.20110811gitc58cfb3e.fc14.x86_64.rpm
/home/saml/rtmpdump-2.4-0.1.20110811gitc58cfb3e.fc14.x86_64.rpm: sha1 md5 OK

最後に「sha1 md5 OK」と表示されていることに注意してください。これは、RPM が署名付きで署名されており、問題がないことを意味します。

失敗する場合は、次のようなさまざまな理由が考えられます。

  1. 署名なし
  2. 署名が壊れています
  3. 署名キーがありません
例えば:
$ rpm -K rpm-2.3-1.i386-bogus.rpm
rpm-2.3-1.i386-bogus.rpm: size PGP MD5 NOT OK

この方法で RPM を使用する方法の詳細については、次のタイトルの Maxium RPM チュートリアルで詳しく説明されています。最大 RPM: Red Hat パッケージ マネージャーを限界まで活用する

RPM を使用してシステムを検証する

RPM を使用してファイルが改ざんされていないかどうかを確認する方法の詳細については、SANS の次の記事を参照してください。侵入検知に関する FAQ: Red Hat の RPM を使用したファイルの検証

参考文献

答え3

つまり、もしあなたがしないRPMインストールソフトウェアからパスワードを求められた場合は、パスワードを入力してください。RPMファイルの内容は解析されず、できないシステムに何らかの損害を与えることはありません。

パスワードを入力した場合(管理者であるか、ルート パスワードを入力した場合)、RPM を使用してシステムに悪意のあるソフトウェアをインストールし、管理者権限で実行して、システム上の任意のファイルにアクセスできるようになります。

必ずソフトウェア製造元からソフトウェアをダウンロードし、RPM 署名を確認してください。幸い、Linux オペレーティング システムに組み込まれているソフトウェア マネージャーはこれを自動的に実行します。そのため、インターネットからファイルをダウンロードする前に、ソフトウェア マネージャーに必要なものが含まれているかどうかを必ず最初に確認してください。

関連情報