如何檢查 AUR 包中的惡意程式碼?
後來從 3 個 AUR 包中發現並刪除了惡意程式碼
acroread
,blaz
以及minergate
(例如:acroread PKGBUILD 詳細資訊)。它是在惡意使用者通過更改孤立 AUR 包的所有者並包含惡意curl
命令而發布的送出中發現的。該
curl
命令將下載主 bash 腳本x
,然後是第二個腳本u
(u.sh
),以創建 systemd 服務並使用函式收集一些系統數據(非敏感數據),但攻擊者可以修改腳本以按順序上傳。實際上,由於某些原因(需要一些知識,需要更多時間等),並非所有使用者都能夠在他們的系統上建構任何軟體包之前檢查 PKGBUILD。為了了解它是如何工作的,我在這個 pastbin 頁面上下載並上傳了 2 個 bash 腳本。
檢查 AUR 包中是否存在惡意程式碼的最簡單方法是什麼?
關鍵是對於沒有經驗的使用者來說檢查原始碼可能不是那麼容易。然而,從自然的對立面來看,Arch Linux 並不是最適合沒有經驗的使用者的 Linux 發行版。
Arch wiki(s)、AUR 助手和大多數線上論壇警告此類儲存庫/AUR 的危險,並且不能盲目信任它們。一些助手還警告您應該在安裝 PKGBUILD 之前閱讀它們。
作為建議,始終建議使用trizen或
aurman
(或類似的實用程序)而不是yaourt
(列為有問題/已停產),因為它們為使用者提供了檢查包/差異列表的機會。它還有助於在獲取或更新包時查看貢獻的歷史記錄。當你有官方二進制包作為替代時,臨時使用者不應該使用這些儲存庫作為他們主要的包來源。如果您必須使用 AUR,您可以搜尋 Arch 論壇和/或郵件列表以獲取問題報告。然而,雖然這是一個過於樂觀的觀點,但 Arch 社區似乎定期檢查包,就像這裡的情況一樣。
您也可以嘗試使用
maldetect
在下載的原始碼中搜尋已下載的原始碼以查找已知的惡意軟體簽名,但是使用自定義程式碼擷取某些內容的機率為零。maldetect
通常更適合在 PHP 程式碼中擷取惡意軟體。PS 在我上一份工作中,我使用了一小段時間
dhcpd
從原始碼編譯的軟體包,並且多年來一直使用從原始碼編譯的 FreeRadius 軟體包(因為 Debian 版本已過時)。在第一種情況下,我對 github 上的原始碼做了一些粗略的檢查,我下載了幾次。在第二種情況下,我積極關注了FreeRadius使用者論壇、github論壇和程式碼更新。我也有一個測試/隔離環境。(我什至設法送出了在我的測試環境中發現的重要錯誤報告)。
言歸正傳,如果您對原始碼安裝包進行任何認真的工作,它通常比發行版提供的官方編譯包涉及更多的工作。
PS2。通常,任何經驗豐富的 Unix 管理員都會告訴您直接執行直接來自的腳本/原始碼,
curl
而無需進行任何視覺檢查,從安全的角度來看,這是一個非常糟糕的主意。