RPM 擴充檔案可以透過雙擊來運行,無論套件內有什麼,然後它會要求輸入 root 密碼才能將某些東西安裝到您的系統上,但如果我不提供它,會對我的檔案造成任何損害在主資料夾中?
我確信我從正確的 URL 下載了 RPM,但我擔心中間人攻擊,10MB 檔案與官方網站描述的 100MB 大小相差甚遠,所以也許下載會話因網路連線失敗而停止,或者可能是惡意軟體的大小?
答案1
原則上,任何透過雙擊運行的程序能損害您的主資料夾中的檔案(假設您在那裡有寫入權限,這是正常情況)。
透過點擊RPM 呼叫的程式不太可能是惡意軟體,因為它是隨發行版安裝一起提供的,但RPM 中的腳本和可執行檔可能包含惡意軟體,而且它們確實可以存取您的主目錄(或更準確地說,可以存取任何目錄)。
你的問題如果將要無法回答是否會造成任何傷害,因為這取決於包括包裝內容在內的多種因素。但也有可能,因此您應該使用來自可信任來源的 RPM。
(如果 RPM 包含惡意軟體,提供 root 密碼將使其造成更大的傷害)。
答案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
然後我們可以進一步檢查內容。
檢查簽名
您可以確認 RPM 是使用您已有的 GPG 金鑰進行簽署的。如果是這樣,那麼 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 已使用簽名進行簽名,並且檢查結果正常。
如果失敗,可能有多種原因,例如:
- 未簽名
- 簽名損壞
- 你缺少它的簽署金鑰
$ 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:將紅帽軟體套件管理器發揮到極限。
使用 RPM 驗證您的系統
若要進一步閱讀如何使用 RPM 檢查文件是否已被竄改,請查看 SANS 上這篇文章,標題為:入侵偵測常見問題:使用紅帽 RPM 驗證文件。
參考
答案3
簡而言之 - 如果你不當 RPM 安裝軟體要求時提供您的密碼 - RPM 檔案的內容將不會被解析且不能以任何方式損害您的系統。
如果您確實提供了密碼(並且您是管理員或提供了 root 密碼),則 RPM 可用於在您的系統上安裝惡意軟體,以管理員權限執行它並存取您系統上的任何檔案。
請務必確保從軟體製造商下載軟體並驗證 RPM 簽名。幸運的是,Linux 作業系統中的內建軟體管理器會自動為您執行此操作,因此在從糟糕的網路下載檔案之前,請先嘗試查看軟體管理器是否有您需要的內容。