每日最新頭條.有趣資訊

阿里雲出現源代碼洩露 涉及萬科等40家企業200余項目

在阿里雲雲效平台上,只要登上账號,就能瀏覽到很多公司的“內部”代碼。

記者 | 付豔翠

編輯 |吳晉娜

““能造成多大損失,那就要看你的想象力了。”說完,張中南通過微信發來幾張用戶手持身份證的照片。照片中,隱約可以看到用戶的個人信息。這是張中南在阿里雲公共代碼託管平台上,瀏覽到的萬科集團的用戶“內部資料”。

張中南是一位網絡安全方面的愛好者,同時也是上海一家科技公司的後端工程師。

近日,他向鉛筆道爆料,半年前他發現,由於阿里雲代碼託管平台的項目權限設置存在歧義,導致開發者操作失誤,造成至少40家以上企業的200多個項目代碼洩露,其中涉及到萬科集團、咪咕音樂、51信用卡旗下51足跡、百度無人車合作夥伴ecarx等知名企業,問題至今未完全解決。

面對可能會引發的一系列難以想象的網絡安全災難,這位工作不到3年、年僅24歲的小夥子,有些不知所措。期間,他曾懷著忐忑的心情,一邊怕惹上官司,一邊又自己通過電郵、微信等方式聯繫了其中的十餘家公司。

他本寄希望於阿里雲平台能幫忙一次性解決掉這些公司的安全隱患,經過多次溝通,他卻發現依舊徒勞,讓他百思不得其解的是,“阿里雲只要向企業發個郵件、打個電話就能解決,有那麽難嗎?”

注:本文內容主要來自鉛筆道記者採訪和網絡公開信息,論據難免偏頗,不存在刻意誤導。

發現了“不得了”的秘密

近日,作為網絡安全方面的愛好者,上海一家科技公司的後端工程師張中南向鉛筆道吐露了半年以來的這段經歷。

去年8月下旬的一天,他在網上看到阿里雲在推廣雲效平台,還出了一本書叫《阿里巴巴Java開發手冊》。抱著學習的心態,他注冊了一個阿里雲平台账號。

“我是一個ruby工程師,java和php都是半吊子。在這裡,我就像打開了新世界的大門。”他意外地發現,在阿里雲效平台上,只要登上账號,能瀏覽到很多公司的“內部”代碼。

最初,張中南以為這些代碼是開源的。這個發現,讓他在最初感到非常欣喜。“這些項目大多數是用java和php寫的,看企業裡面真正的項目,要比自己看書摸索要真實一些。”

然而,張中南很快發現了“不對勁”的地方,這些代碼內容很多都是不該出現在開源項目中的。比如,項目的數據庫、账號、密碼等。為此,抱著測試一下的態度,張中南登錄了這些账號和密碼。

張中南震驚地發現,竟然真的能見到一些公司生產環境的具體數據。雖然離最初發現時已過去半年,但他如今描述時還是感到難以置信。“這其中的很多企業,竟把數據庫也拋在公網上,任憑誰,只要按照裡面記錄的账號密碼登錄,就能訪問。

一番研究過後,張中南猜測,之所以出現這種情況,可能是因為這些公司的程序員在給項目建庫時操作不當,將項目權限設置成“平台公開”。

張中南解釋,因為當時的阿里雲代碼託管業務還是全英文平台,可能很多企業在創建項目的時候會誤選擇“internal”,也就是“平台公開”。

他認為,“internal”的意思得因人而異。“如果是個人在使用代碼託管,那麽‘internal’的意義非常明確,就是使用這個平台的人都能訪問。但如果是企業在使用代碼託管,那麽‘internal’的意義是‘對企業內的用戶都公開’還是‘使用這個代碼託管平台的人都能訪問’呢?”

目前,阿里雲雲效平台建庫操作頁面為中文,默認權限為“私有”。

他開始擔心,“如果這些信息被人發現並利用,遲早有一天要出事

張中南用一些他發現在阿里雲平台上出現代碼洩露的企業舉例。比如,中國移動旗下咪咕音樂,泄漏後端代碼及配置數據,包括訪問高清曲庫接口的密鑰,訪問中央音樂平台總線接口的密鑰,支付密鑰等。黑客可以根據代碼邏輯和支付密鑰,偽造支付成功請求。

又如,由金正大集團發起並控股的,由世界銀行集團國際金融公司、華夏銀行共同參與的金豐公社,泄漏代碼為電商後端和CMS。其阿里雲oss訪問密鑰也泄漏,該密鑰可以訪問金豐公社生產環境的文件系統,包括用戶上傳的圖片和資源、內部系統的報表、伺服器日誌等。黑客如果用惡意app和網頁替換掉oss中的原有項目,用戶通過金豐公社升級app或訪問特定頁面時,便會被劫持。

還有,基於微信的教育應用服務平台浙江小蟲科技,泄漏代碼為伺服器監控中間件,代碼中暴露出高權限生產環境數據庫账號,可以直接登錄查看線上數據。嘗試登錄閱覽,其中一個數據庫存儲了36萬條中小學生的姓名、手機號和學校。如果泄漏,後果不堪設想。

張中南通過電話聯繫了對方創始人,對方很快將代碼泄漏情況全部處理。事後,張中南表示:“想想還蠻開心的,今天保護了幾十萬個小孩子的隱私。”

此外,上海圖聚智能科技有限公司的客戶已經包括全國數百家醫院和商場,以及高德地圖等,它的代碼近乎全部洩露。張中南稱:“且不說其辛苦運營的數據如果被競爭對手全數獲取會怎樣,試想如果黑客把數據庫中合作醫院的地址改為某個‘不作為’的醫院,後果也不堪設想。

張中南介紹,雖然萬科集團洩露代碼不多,但生產環境oss密鑰泄漏了出來。該密鑰權限非常大,可以訪問整個萬科集團的線上oss,包括購房客戶上傳的身份證,各地銷售人員報表等。而這些信息,對黑客來說,無疑是一個寶庫。

感性戰勝理智

知道了“代碼秘密”的張中南,在接下來的幾天,開始陷入是否要通知這些企業的猶豫中。“之所以猶豫,是因為之前世紀佳緣網白帽子事件。”

世紀佳緣網白帽子事件發生在2015年12月,在2016年6月,被白帽子父親披露。

資料顯示,知名第三方漏洞平台——烏雲網的注冊白帽子袁煒,在檢測漏洞中發現了世紀佳緣的漏洞,並告訴了世紀佳緣該漏洞。幾天后,世紀佳緣確認並修複了該漏洞,同時致謝烏雲網和袁煒。

但在2016年1月,世紀佳緣報警稱有4000余條實名注冊信息被不法分子竊取。2016年3月8日,袁煒遭到警方刑事拘留,並於4月12日被批準逮捕。罪名是基於《刑法》285條第2款,入侵獲取網絡金融證券系統身份認證信息 10 條以上、一般系統 500 條以上,被認為情節嚴重。

雖然擔心自己會有和袁煒一樣的遭遇,但最終,張中南的感性戰勝了理智。

在代碼洩露的公司中,張中南打算挑一家互聯網兼職平台試試水。“之所以選擇這家公司,是因為他們有一位看起來很友善的年輕CEO。”

2018年9月4日,張中南給這家互聯網兼職平台的幾位研發人員發送了一封郵件,告知對方公司項目在阿里雲託管平台的代碼存在安全隱患,並將建議也一並發給對方。

張中南回憶,為了害怕有人已經離職,他特地給該公司多個一線研發發送了郵件。

張中南給互聯網兼職平台發送的郵件截圖(張中南提供)。

很快,張中南發現,洩露的項目就被“悄悄下掉”了,但他一直沒有收到回信,“甚至連聲感謝都沒有”。

遲遲沒有回復,也讓張中南產生了猶豫。“畢竟當時是鼓起很大勇氣才發郵件的,因為怕他們報警。

但消沉幾天后,張中南還是覺得應該去做些事情,繼續將這個發現告訴涉事公司。

這次,張中南找到了比郵件更好的方法:通過代碼提交的記錄,直接添加開發者的微信,再向他們告知。

前後忙活了十餘個公司,效果還不錯。但在聯繫這些公司人員時,大家其實一開始還是傾向於懷疑和不信任。”張中南感受到。

張中南聯繫洩露公司時的對話截圖(張中南提供)。

這也讓張中南開始期望與這些公司對話,引起公司上層重視。之後,張中南通過網站留言的方式,聯繫了代碼同樣洩露了的上海某科技公司。

“第二天,公司CTO就打來電話道謝。”說到這裡,張中南顯然很開心。因為他認為,這也證明他這麽做下去是值得的。

多次溝通,問題未解

在11月底,張中南在和其哥哥通電話時,說了他正在做的事情。但之後其哥哥了解了情況後,專程給張中南打電話勸他不要管了,因為這種做法法律風險很大。

在考慮了哥哥的意見後,張中南決定找阿里雲官方渠道,希望阿里雲能夠通過平台來解決這件事

11月26日晚,張中南將51信用卡在阿里雲code上託管的代碼項目51足跡app,因為權限配置不當而泄漏的情況告知了雲效客服。他並表明,希望阿里雲能發個站內信告知這部分公司。

11月26日,張中南與阿里雲客服對話截圖(張中南提供)。

當時阿里雲雲效方面表示,張中南反饋的51信用卡旗下51足跡app後台的代碼,倉庫級別設置為了“internal”,需要通知客戶改為“private”的問題,已經關聯任務。

本以為事情可以圓滿得到解決,因為張中南發現,在11月他與平台溝通之後,確實監測不到雲效平台上再出現代碼洩露項目的新公司了。然而,他發現,在11月之前監測過的代碼洩露企業,依舊處於“裸奔”狀態,這意味著阿里雲並沒有通知到代碼洩露的企業。

今年1月31日,不甘心就這麽算了的張中南再次聯繫了阿里雲雲效平台,並提供了幾個大廠如咪咕音樂、百度無人車合作夥伴ecarx、51信用卡旗下的51足跡的洩露情況,希望事情得到處理。

這次,阿里雲客服表示:“作為公有雲的代碼託管,我們無權掃描用戶的代碼,這一點公有和私有一樣,倉庫的開放性是用戶自主的權利。”也就是說,阿里雲作為代碼服務平台,無權掃描用戶代碼。而代碼不管是平台公開,還是私有,都是用戶的權利。

阿里雲稱,感謝張中南的反饋,會將其反饋到的信息給到其發現的幾個倉庫的維護者。但同時也建議張中南可以直接通過commit的郵箱與維護者進行提示。

1月31日,張中南與阿里雲客服對話截圖(張中南提供)。

這一次,張中南同樣不知道阿里雲是否通知了項目方。“雖然不知道阿里雲是否聯繫了這些企業,但上述企業的代碼洩露情況依然存在,可見它們並沒有接到通知。”

在他看來,阿里雲這樣的知名雲服務提供商,應該有告知代碼洩露公司的義務。

在張中南提供的洩露代碼公司的表格裡,有28家公司、共235個項目的代碼存在洩露風險。這裡還不包括張中南此前自己聯繫過的10余家公司。

張中南表示,名單中還漏掉了很多企業,因為他寫的爬蟲代碼不是很好。解析過程中,一些頁面解析錯誤就漏掉了。

在此之前,用戶數據洩露事件頻繁發生,Facebook、Uber、華住、順豐、萬豪、陌陌等企業深陷其中。

2018年9月,華住旗下酒店漢庭、桔子、全季等開房數據洩露事件,就是華住程序員將數據庫的用戶名、密碼,上傳至公共代碼託管平台導致的。據悉,洩露的房客信息包括名字、郵寄地址、郵箱地址、電話號碼、護照號碼、出生日期、性別、到達和離店信息等,已經構成一種完整意義上的個人大數據。

“現在阿里雲面對的是幾十家企業,幾百個項目的代碼洩露。而阿里雲只要發個郵件、打個電話就能避免,打個電話那麽難嗎?”對於這個問題,張中南百思不得其解。他認為,阿里雲這種不作為行為,會讓這件事情有可能變得十分嚴重。

阿里雲:權限始終默認“私有”

針對網友反應的問題,阿里雲雲效平台表示:“針對部分用戶不那麽熟悉此類平台,我們也會展開一些科普與使用規則提醒,確保大家對自己分享的代碼有清晰的認知。”

為此,鉛筆道採訪了此前張中南聯繫過的一家公司,該公司研發人員李傑(化名)表示:“阿里雲所說的向用戶科普和使用規則,基本能夠滿足用戶正常使用。但因人而異,因為我就沒有過多的關注。”

李傑繼續稱,阿里雲後來將頁面從英文變更為中文,就可以看出它們做了很多優化。“大家都是開發者,對於面向開發者的平台來說,也無須苛求太多。”

當時之所以建站出錯,李傑回憶,是因為在建站的時候,雲效還是全英文平台,他記得當時權限控制默認確實是“internal”,“主要是程序員個人建庫的時候疏忽了。”

針對李傑所說的雲效平台此前默認操作是“平台公開”一事,阿里雲雲效平台表示:雲效平台和github一樣,從一開始就是默認的“私有”,但客戶可以手動更改,相關的選項也都符合行業的通用規則,且完全由客戶自己設置。

對此,李傑稱,這件事情發生在去年8月份,記憶有些模糊了。在當時,他一共建了3個項目,他在事後特別確認了一遍,當時的3個項目權限全部是平台“公開”的。“我建項目的時候,肯定不會把所有項目,專門都從‘私有’改成‘公開’。”

針對雲效平台是否默認“私有”一事,張中南則回憶,印象中他開始注意到限制操作設置時已經是默認為“私有”,而更早之前注冊並建庫的項目開發者操作時是否默認為“公開”,他也不得而知。

然而,他認為,即使阿里雲雲效平台為開發者提供的是免費服務,且從一開始就把限制操作設置為“私有”,在這次洩露事件中也有責任。他認為,一方面,阿里雲未能及時優化和解釋有歧義的英文權限描述;另一方面,即使雲效平台是免費服務平台,也有通知其用戶預防風險的義務。

“事實上,阿里雲被動發現問題後,沒有重視問題,也沒有提出解決措施。”張中南表示,他之所以選擇公開此事,只是想要引起企業對代碼安全的關注,同時希望阿里雲改善服務流程。

校對 | 林夕

獲得更多的PTT最新消息
按讚加入粉絲團