web-dev-qa-db-ja.com

Sudo dpkgを使用して未知のdebパッケージをインストールすることは有害ですか?

dpkgを使用してパッケージをインストールするとします。

Sudo dpkg -i package-name.deb

次に、パッケージバイナリを実行せずに削除します。

Sudo dpkg -r package-name

このプロセスで発生する可能性のある有害なものはありますか?たとえば、.debファイルに悪意のある構成スクリプトはありますか?発生する可能性のある他の可能性のある脅威は何ですか?

6
Ravexina

はい、パッケージには “ maintainer scripts” を含めることができます。これはインストールの前または後に実行されます。パッケージからコントロールアーカイブを抽出することで、スクリプトがある場合はそれを確認できます。

dpkg-deb --ctrl-tarfile package-name.deb > control.tar
tar tf control.tar

または、コントロールアーカイブのコンテンツを抽出することがわかっている場合:

dpkg-deb -e package-name.deb package-control

(抽出されたファイルをpackage-controlという名前のディレクトリに配置します)。

これらはrootとして実行され、パッケージの作成者がシステム上でやりたいことを何でも実行できます。

パッケージをインストールすることは、システムへのrootアクセスをメンテナ(およびパッケージのメンテナンスとビルドに関与する他の人)に許可することと同等であることを本当に考慮する必要があります。誰を信頼しますか?

23
Stephen Kitt

メンテナスクリプトを忘れたとしても、パッケージは毎分実行されるCronスクリプトをインストールし、パッケージのインストールとアンインストールの間にその分が刻々と変化する場合があります。

または、たとえば/bin/pythonにプログラムをインストールし(実際の/usr/bin/pythonよりも優先して使用されます)、バックグラウンドプロセスがPythonを起動しようとする場合があります。

または、/bin/dpkgにプログラムをインストールして、削除しようとしたときに実際に実行しているだけの場合もあります。

8
user253751