信息來源:FreeBuf
Cloudflare是一家位于美國的網絡安全服務商,為包括Uber(優(yōu)步),Fitbit,1password等在內的眾多公司提供網站安全管理,性能優(yōu)化等服務。近日,Google安全人員在研究中發(fā)現:某些情況下,Cloudflare的系統可能會將服務器內存中的數據(包括cookie,API密鑰和用戶密碼等)泄露到網頁中——這可謂是數據泄漏的大事。由于會讓人回憶起當年OpenSSL的“心臟滴血”事件,也有評論將這次事件稱作“云出血(cloudbleed)”。
這就意味著:當用戶訪問由Cloudflare提供支持的網站時,可能隨機獲取到他人網絡會話(session)中的敏感信息——好比你在一家餐廳里剛剛就座,服務員不僅給你遞上了菜單,還贈送了其他某個倒霉客人的錢包。沒錯,這位服務員就受雇于Cloudflare。
無意發(fā)現
這一問題是由Google Project Zero安全團隊(該團隊似乎長時間專注于漏洞發(fā)掘,我們曾前不久報道過他們公布了一個影響Windows GDI庫的漏洞)的漏洞獵人(bughunter,也就是國內的白帽子)Tavis Ormandy首先發(fā)現的。當時他在搞一個業(yè)余項目,無意間在Google搜索引擎的緩存頁面中發(fā)現了包含完整的https請求,cookie,API密鑰和密碼在內的大量數據。經過確認后他通知了Cloudflare,后者則迅速成立了團隊調查此事。
在一開始,Ormandy懷疑是Cloudflare一款叫做ScrapeShield的應用程序(該程序本是設計用來防御爬蟲大量復制網站信息)引發(fā)了數據泄露(點擊查看Ormandy發(fā)布的公告),并在推特上表示他發(fā)現了來自各大交友網站的私密信息,知名聊天服務網站的信息和在線密碼管理器的數據等。
后來隨著Cloudflare調查的深入,他們發(fā)現事情并沒有那么簡單——這種情況已經悄無聲息地持續(xù)幾個月了。
罪魁禍首
Cloudflare在上周四公布的一份報告(點擊查看)中給出了調查結果:該事件是由一個編程錯誤引起,主要體現在Email Obfuscation、Server-Side Excludes和Automatic HTTPS Rewrites這三個功能上。
原來,在此之前Cloudflare曾為其邊緣服務器開發(fā)一個新的HTML解析器。該解析器用Ragel(一種有限狀態(tài)機編譯器)編寫,后轉換成C語言源碼。這段代碼存在一個緩沖區(qū)溢出漏洞,可由網頁上不成對的HTML標簽觸發(fā),本是作為指針檢查機制來防止內存覆蓋的。(如下)
/* generated code. p = pointer, pe = end of buffer */
if( ++p == pe )
goto_test_eof;
某些情況下,p可能會大于pe,從而避開長度檢查,造成緩沖區(qū)數據溢出,最終引起了上文所述的信息泄露。Cloudflare工程主管John Graham-Cumming在調查報告中總結道:
“這個問題的根源在于,緩沖區(qū)末端檢查使用了相等運算符(==),導致指針可以跳過這一段。如果能使用>=而不是==,那么至少可以發(fā)現跳過緩沖區(qū)尾部的事件。”
另據補充,要致使數據泄露,最后的緩沖區(qū)必須以格式錯誤的腳本或img標簽結尾,長度不能超過4KB(否則Nginx會崩潰),并運行上述函數。
為時已晚?
通常此類泄露的信息會隱藏在網頁源碼中,并不引人注意。這次Ormandy在Google緩存頁面中發(fā)現了這個問題,意味著很可能在此之前一段相當長的時間里,已經有大量信息被分散泄露到各處,比如爬蟲程序,甚至不法分子的手里。
這里簡要回顧一下Cloudflare官方報告中給出的時間線:
去年9月22日,啟用Automatic HTTP Rewrites函數
今年1月30日,Server-SideExcludes移至新的解析器
今年2月13日,EmailObfuscation部分移至新解析器
今年2月18日,Google向Cloudflare通報了此情況
可以看出,早期的數據泄露事件可能在去年9月就開始了。官方認為,受到沖擊最大的時間段可能在今年2月13日開始的4天內,因為當時Automatic HTTP Rewrites還沒有開始廣泛使用,Server-Side Excludes也只針對惡意IP地址。
不過好在Cloudflare事發(fā)后的應對也很迅速。他們在接到通報的47分鐘內就禁用了Email Obfuscation。三個小時后,對Automatic HTTPS Rewrites采取了同樣的措施。不過對于Server-Side Excludes的終止卻稍顯棘手,Cloudflare表示他們已經專門發(fā)布了一個補丁針對此事。GitHub上已經發(fā)布了可能受此漏洞影響的網站名單,對于后續(xù)更大范圍的補救措施,相信Cloudflare正在落實中。目前尚未有確切的大規(guī)模數據以此種途徑被不法分子利用的報道,希望一切還不會為時太晚。