警惕!PHP、Node、Ruby 和 Python 應用,漏洞還沒結束!

雲叔_又拍雲發表於2021-12-28

12 月 10 日凌晨,Apache 開源專案 Log4j2 的遠端程式碼執行漏洞細節被公開,作為當前全球使用最廣泛的 java 日誌框架之一。該漏洞影響著很多全球使用量前列的開源元件,如 Apache Struts2、Apache Solr、Apache Druid、Apache Flink 等。而且因為該漏洞利用方式簡單,一旦有攻擊者利用該漏洞,就可以在目標伺服器上執行任意程式碼,給被攻擊者造成極大危害。漏洞被公佈後,廠商馬上釋出了新版本 log4j-2.15.0-rc1 對漏洞進行修復,並在之後更新了 log4j-2.15.0-rc2 進一步對漏洞進行了修復。

然而禍不單行,儘管大家修復 Log4j2 可能已經有些手忙腳亂,但是忙碌之餘還是要分出精力來看看這個新的訊息:微軟 Azure 應用服務中存在一個名為“NotLegit”的漏洞,該漏洞影響所有通過“本地 Git”部署的 PHP、Node、Ruby 和 Python 應用。

漏洞詳情

Azure 是用於託管網站和 Web 應用的平臺,使用者只需要選擇支援的程式語言和作業系統,再使用 FTP、SSH 或通過從 Git 服務提取原始碼在 Azure 託管的伺服器上完成部署,就可以在 .azurewebsites.net 域中訪問應用。因為使用方便,所以頗受開發者歡迎。而本次漏洞就出現在部署這一步。

正常的情況下,當開發者將 Git 儲存庫部署到 Web 伺服器和儲存桶時,因為包含敏感資料,因此不會上傳 .git 資料夾。但是 Azure 設定,如果應用是通過本地 Git 部署到 Azure,那你的 Git 儲存庫就會變成所有人都可以訪問的公開目錄。當然為了保護敏感資料不暴露,微軟在限制公共訪問的 .git 資料夾中新增了“web.config”檔案,讓資料只能由微軟 LLS 網路伺服器處理。

漏洞就出現這裡,因為這個只對用 LLS 部署的 C# 或 ASP.NET 應用有效。因為 Web 伺服器無法處理“web.config”檔案,因此如果是部署在不同 Web 伺服器內的 PHP、Node、Ruby 和 Python 應用,那攻擊者只要從目標應用組獲取 /.git 目錄,就可以得到對應的原始碼。

漏洞應對

針對本漏洞,微軟進行了以下應對:

  • 更新了所有 PHP 映象,禁止將 .git 資料夾作為靜態內容提供,以作為深度防禦措施。
  • 更新了安全建議文件,增加了有關保護原始碼的部分,還更新了本地部署的文件。

微軟已經於 2021 年 12 月 7 日至 15 日之間通過郵件通知了被影響使用者,提供了緩解問題的具體指導。

如果您沒有收到郵件,您也不用第一時間著急,因為您可能沒有被漏洞影響到,不受漏洞影響的範圍如下:

  • 自 2017 年 9 月以來,在 Azure 應用服務中使用“本地 Git”部署的所有 PHP、Node、Ruby 和 Python 應用。
  • 從 2017 年 9 月起,在應用容器中建立或修改檔案後,使用 Git 原始碼部署在 Azure 應用服務中的所有 PHP、Node、Ruby 和 Python 應用。

而且微軟也備註說明,本次漏洞隻影響部署在基於 Linux 的 Azure 伺服器上的應用。如果您的應用是託管在 Windows Server 系統上的,也不會受到漏洞影響。

本次漏洞由雲安全供應商 Wiz 發現並提供,微軟為其提供了 7500 美元的賞金。

最後,如果您有收到微軟郵件通知,那還是要儘快根據郵件指導完成漏洞修復哦~

推薦閱讀

如何快速搞定生產環境 Ansible 專案佈局?

服務端渲染基礎

相關文章