圖片來源: 

Jenkins

安全研究人員發現,100多隻Jenkins外掛程式存在安全漏洞,可能引發登入資料外洩或是跨網站攻擊等安全風險。

Jenkins是一種支援開發、部署和自動化軟體開發的開源工具,可以外掛擴充以便提供Active Directory驗證或執行靜態程式分析、將組譯好的軟體複製到CIFS 網路檔案系統等重覆性作業。和Wordpress一樣,Jenkins在第三方開發商的投入下,現有上百種外掛。但NCC Group安全顧問Viktor Gazdag手動測試100多款Jenkins外掛後發現二大類漏洞,包括驗證資料以明碼儲存以及缺少權限檢查的跨網站請求偽造(cross site request forgery,CSRF),後者可能導致資料竊取以及伺服器端的請求偽造(Server-Side Request Forgery,SSRF)攻擊。

其中又以第一類漏洞占最大宗。以明碼儲存的驗證資料包括使用者名稱、密碼、API金鑰或令牌,以及可用於Jenkins和外掛中的憑證。雖然Jenkins將密碼加密儲存成credentials.xml檔,但研究人員發現部份外掛開發商是儲存成外掛自己的.xml檔或是某項作業的config.xml檔,這些大部份都沒有加密。此外,部份用戶輸入驗證資料的Web form也洩露了密碼和令牌,也未使用正確的Jelly表格控制。但Jenkins的安全文件中並未提及這兩種檔案可能洩露資訊,更別提workspace資料匣也可能暫時儲存了敏感資訊。

研究人員就發現,某個MQ外掛將密碼明碼儲存在外掛的自有設定檔中,AWS Code Build外掛則把加密金鑰明碼儲存在config.xml 。Publish Over Dropbox Plugin則在外掛設定中,將令牌大喇喇顯示於Web form中。

其次為欠缺權限檢查的跨網站請求偽造(CSRF)漏洞。有些外掛讓使用者連接伺服器來測試驗證資料,這原本可根據使用者角色權限,強制執行POST呼叫,要求使用者提供CSRF令牌(Crumb)來確保伺服器安全性,但在本研究中卻發現部份外掛程式並未強制POST呼叫,使外掛程式可能遭遇CSRF攻擊。攻擊者可能利用CSRF惡意程式變更主機名稱,再誘騙管理員連上伺服器,利用被攻擊者接管的伺服器竊取登入資料。如研究人員就發現OpenStack Cloud Plugin有缺少權限檢查的CSRF漏洞問題。但這類漏洞還可能發展成伺服器端的請求偽造(SSRF)攻擊,藉由測試連線和攻擊者掌握的參數,進一步用來進行傳輸埠掃瞄、探查內部網路架構或暴力破解登入。

為避免用戶資訊透過外掛洩露,研究人員呼籲外掛程式開發人員必須強制執行POST呼叫,以Jenkins.getInstance().checkPermission(Jenkins.ADMINISTER)檢查權限,並以Jenkins的Secret及Web form的密碼欄位來儲存登入資訊。


Advertisement

更多 iThome相關內容