您好,登錄后才能下訂單哦!
這篇文章主要介紹Jenkins插件漏洞的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
Jenkins是一個廣泛使用的開源自動化服務器,它允許DevOps開發人員高效、可靠地構建、測試和部署軟件。
為了充分利用Jenkins的模塊化架構,開發人員利用插件來擴展其核心功能。截至目前,Jenkins的插件索引中有1600多個社區貢獻的插件。其中一些插件存儲未加密的純文本憑據。在數據泄露的情況下,網絡犯罪分子可以在用戶不知情的情況下訪問這些信息。
我們將專門討論以下信息泄露漏洞以及受影響的相應插件:
在撰寫本文時,Port Allocator、testlink和caliper-ci插件中的漏洞尚未修復。當前版本的eggplant插件已棄用。
可以利用Jenkins插件漏洞獲取用戶憑據。當具有擴展讀取權限或訪問主文件系統的用戶憑據泄漏時,攻擊者也可訪問其他集成服務,尤其是當用戶對不同平臺或服務使用相同的密碼時。
插件配置通常以XML文件的形式存儲在$jenkins_home root中,該文件定義了每個插件結構和設置。通常插件的配置保存為工作配置文件的一部分,例如$jenkins_home/job s/new job/config.xml。如果憑證是插件配置的一部分,那么它們應該以加密的形式存儲,而對于Gogs, Port Allocator, Caliper CI, TestLink, and eggPlant插件則不是這樣。
憑證存儲在未加密的純文本中:
存儲憑據的正確方法是將其委托給第三方憑據提供程序,然后由配置文件中的CredentialSid引用該插件。
如果用戶能夠讀取配置文件,則只能查看CredentialSid引用,實際憑證存儲在引用中。
包含在默認建議插件列表中的憑據插件用于存儲加密的憑據。以下描述了憑據存儲的詳細信息。
此插件將加密的憑據存儲在$jenkins_home/credentials.xml中。
在上面的示例中,密碼存儲以base64為編碼。通過使用base64解碼器,我們可以觀察到某些不可打印的字符被編碼。
事實上,加密的密碼和加密元數據是使用base64編碼的。
用于解密的密鑰是在Jenkins中硬編碼的。Jenkins的不同安裝會導致不同的key。密鑰被加密存儲在$jenkins_home/secrets/hudson.util.secret文件中。hudson.util.secret文件是通過aes使用從主密鑰派生的密鑰加密的,這在每個jenkins安裝中也有所不同。
這意味著,保護$jenkins_home/secrets目錄對于防止泄露存儲的憑證至關重要。在master上執行作業或構建可能會影響Jenkins的整體安全性,例如安裝插件、創建新作業、讀取和刪除憑據以及其他私有數據。在master上運行的作業還可以授予較低訪問權限,并允許其使用shell命令打印數據。
以純文本形式存儲的憑證可能構成直接威脅。但是,管理員還應該記住,有權訪問$jenkins_home/secrets目錄的用戶也可以訪問存儲的憑證。$jenkins\u home/hudson.util.secret和$jenkins\u home/secrets/master.key是用于解密保存的密碼的文件,它們的暴露會使攻擊者對存儲的密碼進行解密。
像所有DevOps工具一樣,Jenkins應該考慮到安全性。在其默認設置中,Jenkins不執行安全檢查。因此,Jenkins建議用戶執行最佳實踐,包括對用戶進行身份驗證、強制訪問控制,而不是在大型系統的主節點上構建。
如果作業必須在主節點上運行,Jenkins建議使用作業限制插件,該插件可以基于用戶權限限制作業執行或節點配置。
以上是“Jenkins插件漏洞的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。