dpkg
を使用してパッケージをインストールするとします。
Sudo dpkg -i package-name.deb
次に、パッケージバイナリを実行せずに削除します。
Sudo dpkg -r package-name
このプロセスで発生する可能性のある有害なものはありますか?たとえば、.deb
ファイルに悪意のある構成スクリプトはありますか?発生する可能性のある他の可能性のある脅威は何ですか?
はい、パッケージには “ 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アクセスをメンテナ(およびパッケージのメンテナンスとビルドに関与する他の人)に許可することと同等であることを本当に考慮する必要があります。誰を信頼しますか?
メンテナスクリプトを忘れたとしても、パッケージは毎分実行されるCronスクリプトをインストールし、パッケージのインストールとアンインストールの間にその分が刻々と変化する場合があります。
または、たとえば/bin/python
にプログラムをインストールし(実際の/usr/bin/python
よりも優先して使用されます)、バックグラウンドプロセスがPythonを起動しようとする場合があります。
または、/bin/dpkg
にプログラムをインストールして、削除しようとしたときに実際に実行しているだけの場合もあります。