云計(jì)算安全服務(wù)Wiz的研究團(tuán)隊(duì),發(fā)現(xiàn)了一個(gè)在Azure App服務(wù)中不安全的默認(rèn)行為,當(dāng)用戶使用本地端Git(Local Git)選項(xiàng)部署應(yīng)用程序時(shí),Azure App服務(wù)將會(huì)暴露以PHP、Python、Ruby或Node編寫的應(yīng)用程序源碼,這個(gè)被稱為NotLegit的漏洞,從2017年9月就已經(jīng)存在,研究團(tuán)隊(duì)提到,這個(gè)漏洞很可能已經(jīng)被開采利用了。
Azure App服務(wù)是一個(gè)云計(jì)算平臺(tái),能夠用來托管網(wǎng)站和網(wǎng)頁應(yīng)用程序,由于使用起來非常方便,因此受開發(fā)者歡迎,開發(fā)人員選擇受支持的程序語言和操作系統(tǒng)后,便可以利用FTP、SSH或從Git服務(wù)拉取程序代碼,來部署應(yīng)用程序或是構(gòu)件。經(jīng)部署后,互聯(lián)網(wǎng)用戶都可以使用*.azurewebsites.net域名訪問該程序。
而本地端Git是Azure所支持,將程序代碼和構(gòu)件部署到Azure App服務(wù)的一種方法,使用本地端Git,用戶可以在Azure App服務(wù)容器中,創(chuàng)建一個(gè)本地端Git存儲(chǔ)庫,并且直接將程序代碼推送到服務(wù)器中。
圖片來源_Wiz
在最佳實(shí)務(wù)中,當(dāng)開發(fā)者將Git存儲(chǔ)庫部署到網(wǎng)頁服務(wù)器和存儲(chǔ)桶中時(shí),要確保沒有上傳.git文件夾,因?yàn)?git文件夾包含源碼、開發(fā)人員電子郵件和其他敏感資料,而當(dāng)用戶使用本地端Git方式部署到Azure App服務(wù)時(shí),git存儲(chǔ)庫將位于/home/site/wwwroot,也就是可供任何人訪問的公開目錄。
研究團(tuán)隊(duì)提到,微軟會(huì)在公開目錄中的.git文件夾,添加一個(gè)web.config文件,來限制公開目錄中的.git文件夾被訪問,但是只有微軟的IIS網(wǎng)頁服務(wù)器會(huì)處理web.config文件,當(dāng)用戶C#或ASP.NET這些使用IIS部署的應(yīng)用程序,都會(huì)被妥善的保護(hù)。
但問題在于PHP、Ruby、Python或Node開發(fā)的應(yīng)用程序,由于這些程序語言部署在Apache、Nginx和Flask等不同的網(wǎng)頁服務(wù)器,這些服務(wù)器不處理web.config文件,因此.git文件夾里的資料便會(huì)暴露在外,惡意攻擊只要從應(yīng)用程序中截取/.git文件夾,就可以直接訪問程序代碼。
有趣的是,研究團(tuán)隊(duì)發(fā)現(xiàn)web.config文件有一個(gè)小錯(cuò)誤,配置標(biāo)簽沒有被正確關(guān)閉,因此其實(shí)IIS也無法正確解析該文件,但由于拼寫錯(cuò)誤,也阻擋了整個(gè)目錄被訪問,因此誤打誤撞,web.config文件還是發(fā)揮了阻擋訪問的功能。
圖片來源_Wiz
微軟在之后,又發(fā)現(xiàn)了使用其他Git部署工具,也可能造成程序代碼暴露的問題,當(dāng)任何Git部署之前,Azure App服務(wù)容器曾創(chuàng)建或修改文件,該服務(wù)會(huì)進(jìn)入本地部署狀態(tài),這將會(huì)強(qiáng)制未來Git部署都會(huì)存在于可公開訪問的目錄中。
具體來說,受NotLegit影響的用例,包括在2017年9月以來,使用Azure App服務(wù)中默認(rèn)在應(yīng)用程序,使用本地端Git部署的PHP、Node、Ruby和Python應(yīng)用程序,以及在2017年9月以來,在應(yīng)用程序容器中創(chuàng)建和修改文件后,使用任何Git來源部署到Azure App服務(wù)中的所有PHP、Node、Ruby和Python應(yīng)用程序。
這個(gè)漏洞可能已經(jīng)被廣泛地利用,研究團(tuán)隊(duì)為了要評(píng)估該漏洞的嚴(yán)重性,特別部署了一個(gè)易受攻擊的Azure App服務(wù)應(yīng)用程序,并將其連接到未被使用的域名,觀察是否有攻擊者試圖訪問.git文件,而就在部署4天后,有未知的人士對(duì).git文件夾進(jìn)行多次請(qǐng)求。目前微軟已經(jīng)修復(fù)該漏洞,并且在12月7日發(fā)送電子郵件通知易受攻擊的用戶。