這篇文章主要介紹Jenkins插件漏洞的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
成都創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),疊彩網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:疊彩等地區(qū)。疊彩做網(wǎng)站價(jià)格咨詢:18982081108
Jenkins是一個(gè)廣泛使用的開(kāi)源自動(dòng)化服務(wù)器,它允許DevOps開(kāi)發(fā)人員高效、可靠地構(gòu)建、測(cè)試和部署軟件。
為了充分利用Jenkins的模塊化架構(gòu),開(kāi)發(fā)人員利用插件來(lái)擴(kuò)展其核心功能。截至目前,Jenkins的插件索引中有1600多個(gè)社區(qū)貢獻(xiàn)的插件。其中一些插件存儲(chǔ)未加密的純文本憑據(jù)。在數(shù)據(jù)泄露的情況下,網(wǎng)絡(luò)犯罪分子可以在用戶不知情的情況下訪問(wèn)這些信息。
我們將專門討論以下信息泄露漏洞以及受影響的相應(yīng)插件:
在撰寫本文時(shí),Port Allocator、testlink和caliper-ci插件中的漏洞尚未修復(fù)。當(dāng)前版本的eggplant插件已棄用。
可以利用Jenkins插件漏洞獲取用戶憑據(jù)。當(dāng)具有擴(kuò)展讀取權(quán)限或訪問(wèn)主文件系統(tǒng)的用戶憑據(jù)泄漏時(shí),攻擊者也可訪問(wèn)其他集成服務(wù),尤其是當(dāng)用戶對(duì)不同平臺(tái)或服務(wù)使用相同的密碼時(shí)。
插件配置通常以XML文件的形式存儲(chǔ)在$jenkins_home root中,該文件定義了每個(gè)插件結(jié)構(gòu)和設(shè)置。通常插件的配置保存為工作配置文件的一部分,例如$jenkins_home/job s/new job/config.xml。如果憑證是插件配置的一部分,那么它們應(yīng)該以加密的形式存儲(chǔ),而對(duì)于Gogs, Port Allocator, Caliper CI, TestLink, and eggPlant插件則不是這樣。
憑證存儲(chǔ)在未加密的純文本中:
存儲(chǔ)憑據(jù)的正確方法是將其委托給第三方憑據(jù)提供程序,然后由配置文件中的CredentialSid引用該插件。
如果用戶能夠讀取配置文件,則只能查看CredentialSid引用,實(shí)際憑證存儲(chǔ)在引用中。
包含在默認(rèn)建議插件列表中的憑據(jù)插件用于存儲(chǔ)加密的憑據(jù)。以下描述了憑據(jù)存儲(chǔ)的詳細(xì)信息。
此插件將加密的憑據(jù)存儲(chǔ)在$jenkins_home/credentials.xml中。
在上面的示例中,密碼存儲(chǔ)以base64為編碼。通過(guò)使用base64解碼器,我們可以觀察到某些不可打印的字符被編碼。
事實(shí)上,加密的密碼和加密元數(shù)據(jù)是使用base64編碼的。
用于解密的密鑰是在Jenkins中硬編碼的。Jenkins的不同安裝會(huì)導(dǎo)致不同的key。密鑰被加密存儲(chǔ)在$jenkins_home/secrets/hudson.util.secret文件中。hudson.util.secret文件是通過(guò)aes使用從主密鑰派生的密鑰加密的,這在每個(gè)jenkins安裝中也有所不同。
這意味著,保護(hù)$jenkins_home/secrets目錄對(duì)于防止泄露存儲(chǔ)的憑證至關(guān)重要。在master上執(zhí)行作業(yè)或構(gòu)建可能會(huì)影響Jenkins的整體安全性,例如安裝插件、創(chuàng)建新作業(yè)、讀取和刪除憑據(jù)以及其他私有數(shù)據(jù)。在master上運(yùn)行的作業(yè)還可以授予較低訪問(wèn)權(quán)限,并允許其使用shell命令打印數(shù)據(jù)。
以純文本形式存儲(chǔ)的憑證可能構(gòu)成直接威脅。但是,管理員還應(yīng)該記住,有權(quán)訪問(wèn)$jenkins_home/secrets目錄的用戶也可以訪問(wèn)存儲(chǔ)的憑證。$jenkins\u home/hudson.util.secret和$jenkins\u home/secrets/master.key是用于解密保存的密碼的文件,它們的暴露會(huì)使攻擊者對(duì)存儲(chǔ)的密碼進(jìn)行解密。
像所有DevOps工具一樣,Jenkins應(yīng)該考慮到安全性。在其默認(rèn)設(shè)置中,Jenkins不執(zhí)行安全檢查。因此,Jenkins建議用戶執(zhí)行最佳實(shí)踐,包括對(duì)用戶進(jìn)行身份驗(yàn)證、強(qiáng)制訪問(wèn)控制,而不是在大型系統(tǒng)的主節(jié)點(diǎn)上構(gòu)建。
如果作業(yè)必須在主節(jié)點(diǎn)上運(yùn)行,Jenkins建議使用作業(yè)限制插件,該插件可以基于用戶權(quán)限限制作業(yè)執(zhí)行或節(jié)點(diǎn)配置。
以上是“Jenkins插件漏洞的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!