微軟38 TB內部數據慘遭泄露!私人密鑰、3w+工作對話流出,背后原因震驚了
出大事了!
幾個月前,微軟的人工智能研究團隊在GitHub上發布大量開源訓練數據時,曾發生了大規模泄露。
高達38 TB的數據流出,包括員工電腦的的個人備份、私人密鑰和三萬多條內部的Teams消息。
原來,是微軟的AI研究團隊在發布開源訓練數據集時,不小心打開了「小金庫」的門。
而泄露之所以會發生,是因為一個SAS token配置錯誤了。
微軟的工作人員,都是使用Azure來共享文件的。但現在,它的便利性也成了一把雙刃劍——容易共享,卻也容易泄露。
就在昨天,微軟和Wiz同時發博,梳理了一下這件事的來龍去脈,因此廣大群眾們才了解到,原來三個月前發生過這么一場嚴重的泄漏事件。
Microsoft調查結果
在得知了捅出這么大一個簍子之后,微軟也馬上修復了這個問題,并對可能產生影響的文件進行了全面的排查,還發了一個官方博客對泄露事件進行了總結。
官方博客最主要的目的是安撫客戶,微軟一開頭就表示了「沒有客戶數據泄露,也沒有其他內部服務因為這個問題而處于危險之中。對于此問題,不需要客戶采取任何行動。」
但是如此大規模的數據泄漏,別說微軟的客戶了,就是路過的吃瓜群眾看了消息也不是很放心啊。
我們就來看看這次數據泄漏的前因后果。
最早發現泄漏的是一個云安全公司Wiz,他們在發現了這個問題之后,在將問題告知微軟的同時,把自己的發現和分析寫了一篇長文博客,為自己的業務能力打了一波廣告。
按照Wiz的說法,微軟的人工智能研究團隊在GitHub上發布大量開源訓練數據時,意外暴露了38 TB的額外私人數據,其中包括2名員工工作站的硬盤備份。
其中包括:機密文件、私鑰、密碼和超過 30,000 條內部 Microsoft Teams 消息。
但是因為發現這個漏洞的公司本來就是網絡安全公司,而且第一時間聯系了微軟,所以大概率這些數據沒有被真正泄露出去。
而數據意外暴露的過程,是源于Wiz的研究團隊在網上掃描意外暴露云托管數據時的發現。
Github上Microsoft的組織下找到了一個名為robust-models-transfer的Repo。瀏覽者可以通過Azure的存儲URL來下載模型:
但是,用戶通過這個URL能夠訪問的不僅僅是這個開源模型。它被配置為授予用戶訪問整個存儲帳戶的權限,從而公開了其他私人敏感數據。
掃描顯示,此帳戶包含38 TB的額外數據,包括兩個微軟員工的電腦硬盤備份。
圖:「robustnessws4285631339」存儲帳戶下泄漏出來的文件夾
圖:在文件備份中發現的一小部分敏感文件
兩名微軟員工的Teams聊天記錄
而且除了錯誤的訪問權限之外,這個SAS token還被錯誤地配置為「完全控制」權限。這意味著,其他用戶不僅可以查看存儲帳戶中的所有文件,還可以刪除和篡改這些文件。
因為Repo原本的目的是提供一個用于訓練代碼的AI模型。Repo會引導用戶從SAS鏈接下載格式為ckpt的模型數據文件。
它是使用Python的 pickle 格式化器格式化的,很容易引發任意代碼執行(ACE)攻擊。
攻擊者可以將惡意代碼注入到這個存儲帳戶中的所有AI模型中,每個信任這個微軟GitHub Repo的用戶都會受到威脅。
不過還好,因為這個賬戶是在Wiz研究團隊主動掃描時找到的,并并沒有公開給所有的訪問用戶。
微軟Azure使用了一種被稱為「SAS token」的機制。用戶通過這個機制來創建鏈接分享自己的存儲賬戶的訪問權限,而經過他們檢查,這個賬戶還是完全私有的。
微軟也表示,由于Wiz的研究發現,他們已經擴展了GitHub的一項特殊監控服務,會監視所有公開開源代碼的更改,以防止可能的代碼篡改和敏感文件泄露。
SAS token簡介
SAS(Shared Access Signature)即共享訪問簽名。
在Azure中,SAS token是一個經過認證的URL,它能夠授予對Azure存儲數據的訪問權限。
SAS的訪問權限可由用戶自定義。
訪問的內容可以是單個文件、容器或整個存儲帳戶,權限介于只讀和完全控制之間。
過期時間也可以自定義,并允許用戶創建無限期的訪問 token。
這種精細的操作劃分為用戶帶來了極大靈活性和機動性,但也可能會導致授權過多帶來的一系列風險。
這次微軟內部數據的泄露印證了這一點。
在權限最大的情況下,token可以永久開放對整個帳戶的所有權限,基本上與賬戶密鑰的訪問權限相同。
SAS token有3種類型:賬戶SAS、服務SAS和用戶授權SAS。
其中,最常用的是賬戶SAS token,微軟的Repo中使用的也是這種token。
生成賬戶SAS的過程很簡單,如下圖所示:
用戶配置token的范圍、權限和有效期,然后生成token。隨后在后臺中,瀏覽器會從Azure下載帳戶密鑰,并用密鑰簽署生成的token。
整個過程都將在瀏覽器上完成,與Azure云中的資源或事件無關。
因此,當用戶創建了一個具有高權限且無限期的token時,管理員根本無法得知這個token的地點以及流通范圍。
這使得想要吊銷token變得十分困難。
管理員需要輪換簽署token的帳戶密鑰,從而使所有由相同密鑰簽署的其他令牌也變得無效。
這個缺陷讓這項服務很容易成為尋找暴露數據的攻擊目標。
除了意外暴露的風險,該服務的缺陷還使其成為攻擊者在入侵賬戶中進行持久攻擊的有效工具。
微軟最近的一份報告表明,攻擊者正在利用該服務缺乏監控功能的特點,生成特權SAS token作為后門。
但由于token的發放在任何地方都沒有記錄,所以管理員無法對其采取相應的行動。
SAS安全建議
Wiz在回顧分析了微軟數據泄露的整個流程后,貼心地針對這次的始作俑者SAS,為用戶提出了一些提高SAS安全性的建議。
SAS管理
首先是管理方面,由于賬戶SAS token缺乏安全性和管理,因此應將其視為與賬戶密鑰本身,給予同樣的重視
要避免將賬戶 SAS用于外部共享,token創建的錯誤很容易被忽視并暴露敏感數據。
如果要進行外部共享,可考慮將服務 SAS與存儲訪問策略一起使用。
該功能可以將 SAS token與服務器端策略相連,從而能過以集中方式管理策略和撤銷策略。
如果需要以有時間期限的方式共享內容,可以考慮用戶授權SAS,它僅提供上限為7天的訪問權。
并且,它還能將 SAS token與 Azure Active Directory的身份管理連接起來,提供對令牌創建者及其用戶身份的控制和可見性。
此外,Wiz建議為外部共享創建專用的存儲帳戶,以確保過度授權的token其潛在影響僅限于外部數據。
為了禁用SAS token,企業必須分別禁用每個存儲賬戶的 SAS訪問權限。云安全策略管理(CSPM) 可以作為一項策略來進行跟蹤和執行。
另一種禁用SAS token創建的解決方案是阻止Azure中的“列出存儲帳戶密鑰”操作(因為沒有密鑰,無法創建新的SAS令牌),然后輪換當前的帳戶密鑰,以使現有的SAS令牌無效。
這種方法仍然允許創建用戶授權SAS,因為它依賴于用戶密鑰而不是賬戶密鑰。
SAS監管
其次是監管方面,如果要跟蹤活動SAS token的使用情況,需要為每個存儲賬戶啟用Storage Analytics日志。
生成的日志將包含SAS token訪問的詳細信息,包括簽名密鑰和分配的權限。
但需要注意的是,只有主動使用的token才會出現在日志中,并且啟用日志會產生額外費用,這對于活動頻繁的賬戶來說可能會很昂貴。
此外,Azure Metrics也可用于監控存儲賬戶中 SAS token的使用情況。
在默認情況下,Azure會記錄和匯總長達 93 天的存儲帳戶事件。利用Azure Metrics,用戶可以通過查找 SAS 驗證請求,找到使用 SAS token的存儲賬戶。
SAS秘密掃描
最后是使用秘密掃描工具來檢測工件和公開暴露資產(如移動應用程序、網站和 GitHub 存儲庫)中泄漏或過度授權的 SAS token,這在微軟的案例中可以看到。
對于Wiz的用戶,Wiz提供了秘密掃描功能來識別內部和外部資產中的SAS token,并探索其權限。此外,還可以使用Wiz CSPM跟蹤支持SAS的存儲賬戶。
Wiz介紹
幫助微軟發現這次數據泄漏,防止了可能出現的更嚴重的后果的Wiz,是一家位于美國紐約,創立于2020年的網絡云安全初創公司。
根據公司自己的介紹,他們的業務主要是幫助企業發現公共云基礎設施中的安全問題,為企業安全團隊設計云原生可視性解決方案,可分析整個云環境,提供跨云、容器和工作負載的安全風險 360° 視圖。
在8月底,他們剛剛完成了接近3億美元的D輪融資,估值接近100億美元,是云安全領域的一只巨型獨角獸。
客戶包括了各行各業對于云服務和安全有需求的公司。
4位創始人:Ami Luttwak、Assaf Rappaport、Yinon Costiva 和 Roy Reznik都來自以色列,他們相識于在以色列軍隊服役期間。
后來4人開發了一個名為Adallom的云訪問代理產品,2015年被微軟收購。4人因此加入了微軟。而他們開發的云安全產品被微軟整合了進自己的服務之中,為微軟創造了每年接近10億的云安全業務收入。
當他們發現自己做的業務和產品,在微軟Azure之外,也有非常好的市場前景時,他們4人決定離開,共同創立第二家企業——Wiz。
因為他們發現與本地網絡安全不同,安全團隊無法在「單一管理平臺」中查看所有云服務器,而Wiz正是瞄準了這個市場發力,提供了一個支持多個公有云服務的安全管理平臺。