已確定 APT程序包管理器中的漏洞 (CVE-2019,3462), 什麼 允許攻擊者發起對已安裝軟件包的欺騙 攻擊者是控制存儲庫鏡像還是可以破壞用戶與存儲庫之間的傳輸流量(MITM攻擊)。
該問題已由安全研究員Max Justicz確定,以檢測APK軟件包管理器(Alpine)以及Packagist,NPM和RubyGems存儲庫中的漏洞而聞名。
問題 這是由於對HTTP重定向處理代碼中的字段進行了不正確的驗證。
問題是什麼?
這個漏洞 允許攻擊者將自己的內容替換為HTTP會話中傳輸的數據 (假設數字簽名足以匹配元數據和數據包大小,Debian和Ubuntu使用HTTP而非HTTPS來訪問存儲庫。)
識別出的漏洞使攻擊者可以控制 替換傳輸的數據包,之後APT會將其視為從官方鏡像收到並開始安裝過程。
通過將在安裝過程中啟動的腳本包含在惡意軟件包中,攻擊者可以在具有root特權的系統上實現其代碼的執行。
為了從存儲庫下載數據,APT通過實現特定的傳輸來啟動子進程,並使用簡單的文本協議(用空行將命令分開)來組織與此過程的交互。
如何發現問題?
問題的實質是HTTP傳輸處理程序從HTTP服務器收到標頭為“ Location:”的響應後,它將請求主進程確認重定向。
完全傳輸此標頭的內容。 由於所傳送的特殊字符缺乏整潔性,攻擊者可以在“位置:”字段中指定換行符
由於此值將通過主要過程通過通信通道進行解碼和傳輸,因此攻擊者可以模擬來自HTTP傳輸處理程序的不同響應,並替換虛擬201 URI塊。
例如,如果攻擊者在請求數據包時替換了響應,則此替換將導致將下一個數據塊傳輸到主進程。
將處理已下載文件的哈希值計算,並且主過程只需使用簽名包數據庫中的哈希值檢查此數據即可。
在元數據中,攻擊者可以指定數據庫中鏈接到實際已簽名程序包的測試哈希值的任何值,但實際上並不與傳輸文件的哈希值相對應。
主進程將接受被攻擊替換的響應代碼,在數據庫中查找哈希,並考慮加載了具有正確數字簽名的數據包,儘管實際上,將具有哈希值的字段的值替換為攻擊通道與使用攻擊的主要進程以及在替換後的元數據中指定的文件進行通信。
在傳輸過程中,可以通過將軟件包附加到Release.gpg文件中來下載惡意軟件包。
該文件在文件系統上具有可預測的位置,並且將包附加到其啟動不會影響從存儲庫中提取數字簽名。
在獲取數據時,apt禁用專門用於各種數據傳輸協議的工作進程。
然後,主進程通過stdin / stdout與這些工作程序進行通信,以告知他們要下載什麼以及使用類似於HTTP的協議將其放置在文件系統上的位置。
然後,主進程將提交其配置並請求資源,工作進程將做出響應。
當HTTP服務器使用重定向進行響應時,工作進程將返回103重定向而不是201 URI完成,並且主進程使用此響應來確定接下來要請求的資源。