微信支付曝“0元購”漏洞,官方稱已修復,實際風險隱患巨大

7月3日,一位名為1024rosecode的疑似外國安全人員在Twitter上聯繫360Netlab及趨勢科技,並公開了一篇名為《微信支付SDK中的XXE漏洞 》(XXE in WeChat Pay Sdk ( WeChat leave a backdoor on merchant websites))的文章。

微信支付曝“0元購”漏洞,官方稱已修復,實際風險隱患巨大

在文章中,該安全人員稱:

在使用微信支付時,商家需要提供一個接收通知的網址,用來接受異步付款信息。不過,在此時的Java版SDK中,有一個XXE漏洞。此次曝光的漏洞一旦被利用,可根據需要竊取商家服務器的任何信息。一旦攻擊者獲得商家的關鍵安全密鑰(md5-key和merchant-Id等),甚至可以通過發送偽造信息來欺騙商家而無需付費購買任何東西。

漏洞詳情

為了證明這個漏洞的存在,他將該漏洞的使用方法公之於眾了。

攻擊者通過偽裝成“微信支付商戶平臺”,向驗證地址發送惡意請求,並直接代替“商戶平臺”與商戶進行通信,然後遵循微信支付SDK原有的規則進行“支付”。

這個漏洞不僅僅是影響到了支付本身,如果商戶的安全措施做的不好,攻擊者還可以調取該服務器上的文件,從而導致商戶的核心商業機密和用戶信息洩露。

微信支付曝“0元購”漏洞,官方稱已修復,實際風險隱患巨大

在1024rosecode的代碼中還以陌陌和vivo的微信支付接口為例,展示了實際漏洞的應用:通過微信接口的漏洞去讀取了商戶支付接口服務器上的文件。

微信支付曝“0元購”漏洞,官方稱已修復,實際風險隱患巨大

微信支付曝“0元購”漏洞,官方稱已修復,實際風險隱患巨大

影響範圍

到目前為止,微信支付被曝技術漏洞這一事件雖然沒有造成嚴重的後果,但此事使很多安全問題浮出水面。微信雖然在第一時間進行了及時的響應,並在微信商戶平臺對商戶進行關於如何避免相關的安全問題指引,在接受媒體採訪時也稱“微信已經修復了相關漏洞”。不過,這個漏洞所影響的實際的是微信支付數百萬的商戶,他們真的沒有風險了嗎?

微信支付方面更新了JavaSDK,可是由於商戶平臺並非需要每天登陸,導致平臺上的很多商戶可能並不知曉有此更新,甚至有些集成商戶由於集成商沒有任何通知,導致他們至今還不知道該如何是好。

微信支付曝“0元購”漏洞,官方稱已修復,實際風險隱患巨大

嘶吼小編聯繫了一位獲得過千萬融資的CEO,他曾經自己開發過一套在線銷售平臺來銷售自己的產品,是一位業內資深開發者。在嘶吼小編問起他是否聽說過這個漏洞時,他第一反應是沒有聽說。

從代碼層面,雖然看起來這個漏洞不是高危漏洞,但是由於其影響範圍非常大,第三方開發時如果直接複製了微信官這段方代碼,便會有這個驗證漏洞。而且,由於基於xml格式的消息都有這類隱患,即便是在服務本身,也有可能出現這種問題。

此外,一旦攻擊者獲取到了商家的關鍵安全密鑰(md5-key和merchant-Id等),商家要重置密鑰,會存在重置的停滯時間,如果業務線過長,或者每個渠道都有單獨的密鑰,這將是一個不小的工程。

隨著“互聯網+”概念的遍地開花,無數“微服務”業務如雨後春筍般出現,比較常見的例如線下吃飯點餐、便利店購物、快捷家政服務等等,倘若這個漏洞在這些方面被惡意利用,定將對這些在支付接口上使用了微信支付老版本JavaSDK的O2O平臺造成嚴重的影響,甚至會因此導致他們倒閉跑路。

反思

首先,為安撫民心,是否對漏洞的危害性有所保留?該漏洞的曝出,無疑給商戶和消費者帶來了恐慌。雖然有網絡支付安全專家表示,

該漏洞只存在於微信支付Java版本的SDK中,並且電商的安全防護及權限設置較高,完整攻擊行為還存在較大的侷限性。

但小編認為這顯然是要給民眾打一針強心劑。由於微信的龐大體系,所以此事牽涉的商戶非常廣泛,相信使用微信支付老版本JavaSDK的商戶不在少數,並且“實現完整的攻擊存在較大的侷限性”並不代表可以完全杜絕濫用的情況,相信大多數的商戶防禦措施並不強大,如果攻擊者有目的的針對某個使用老版本JavaSDK的商戶進行攻擊,加之商戶忽略了其防護,難免會給攻擊者留下可趁之機。如果攻擊者成功實現了完整的攻擊,那麼不僅僅會給商戶帶來滅頂之災,甚至還有可能威脅到消費者信息等數據內容洩漏。

其次,漏洞披露後的回應態度是否讓人信服?漏洞曝出不久後,騰訊回應稱已修復該漏洞。之後,騰訊又進一步回覆稱,

事實上,該漏洞為常見漏洞,只要在程序接收到XML數據進行解析之前,調用相關的函數關閉XML語言的上述特性即可有效防範和解決。目前已經啟動商戶的安全提示,提示商戶主動排查其自建系統是否存在該漏洞,並給出修復指引進行協助。

騰訊還表示,此次問題服務器端SDK的實際影響範圍不大,完全可控。

此事真的像騰訊回應的那麼簡單嗎?當小編看到“完全可控”這四個字時,不禁眉頭一緊。真的是完全可控嗎?相信做安全的都會知道,只要有開發,必定難以避免漏洞的出現。這是網絡科技進步必經之路,在網絡安全中,沒有“絕對安全”的說法。希望騰訊方面還會不斷的跟蹤此事,與隱患的商家聯繫,做好後續的防護工作,用實際的行動來真正的讓消費者及商戶感到安心。

最後,還有一點小插曲,爆出這個漏洞的安全人員在爆料時是完全使用英語的,但是同樣細心的安全研究員在研究爆料文章的過程中發現,這段代碼有很多的文字使用的是中文字符,有理由判定這人是國人。

微信支付曝“0元購”漏洞,官方稱已修復,實際風險隱患巨大

代碼中的中文頓號

微信支付曝“0元購”漏洞,官方稱已修復,實際風險隱患巨大

安全人員的吐槽

修復方案

首先,請所有使用微信支付商戶平臺SDK的開發者們從商戶平臺更新最新版的SDK,並根據《關於XML解析存在的安全問題指引》進行第一時間的維護。

其次,為了儘可能的避免損失,保障數據和資金安全,應及時更換密鑰,並檢查服務器是否有非正常文件讀取等特殊情況。

為了各位O2O商戶的血汗錢,在這裡,嘶吼的安全專家建議廣大微信支付商戶,尤其是自開發和使用第三方開發商的商戶,及時進行核查和修復,並進行及時的對賬和安全加固。


分享到:


相關文章: