0
本文作者: 史中 | 2017-01-09 13:52 | 專題:關(guān)于微信小程序,你想知道的一切 |
微信小程序和街邊大保健有不少共同點。
用完就走,
需要再來。
新面孔常有,
來去無痕跡。
總之,服務(wù)還是那些服務(wù),只不過更加輕量,自由。這些細微而堅定的進步,也許能讓你更加欲罷不能。
今天早晨,微信小程序正式刷爆了朋友圈。作為中國吃瓜群眾的老朋友,雷鋒網(wǎng)宅客頻道本著看熱鬧不怕事大的原則,決定探尋一個重要的問題:
黑客有沒有可能通過微信小程序的漏洞,偷偷地用你的微信給他發(fā)一個大紅包?
為了搞清這個問題,雷鋒網(wǎng)宅客頻道咨詢了幾位黑客大牛,整理回答如下:
小程序改變了業(yè)務(wù)前端實現(xiàn)的形式,但是基本的業(yè)務(wù)沒有變化。所以對于小程序服務(wù)商而言,有兩方面風險依然存在:
Web接口的漏洞。例如 xss、csrf、各類越權(quán)等等。這類是服務(wù)構(gòu)架本身的漏洞。
業(yè)務(wù)功能的邏輯漏洞。例如:訂單額任意修改,驗證碼回傳、找回密碼設(shè)計缺陷等等。這些也是后端服務(wù)本身的漏洞。
傳統(tǒng)的 App 客戶端,由于代碼比較復雜,體系比較大,經(jīng)常存在很多漏洞?,F(xiàn)在,由微信提供接口,服務(wù)商只需要調(diào)用微信的接口就可以實現(xiàn)服務(wù)功能。這使得以前針對 App 客戶端的攻擊行為失去了對象。
小程序跑在微信中,以前人們關(guān)心 App 客戶端手否存在漏洞,現(xiàn)在人們需要關(guān)心微信是否安全了。
【小程序和微信的關(guān)系,類似于 App 和系統(tǒng)的關(guān)系】
舉個栗子。
App 客戶端會直接調(diào)用系統(tǒng)服務(wù),所以漏洞很多跟系統(tǒng)版本相關(guān),比如 Android 的 webview 漏洞,uxss 漏洞等。
以 Android 為例,微信自己使用的是修改了 Chrome 內(nèi)核的 X5 內(nèi)核,修復了 webview 遠程代碼執(zhí)行漏洞,所以即使在低版本的 Android 系統(tǒng)上也不用考慮這個漏洞的影響。
沒錯。理論上說,小程序的漏洞應(yīng)該會受微信客戶端本身的影響,比如出現(xiàn)了一個x5內(nèi)核新的 uxss 漏洞,有可能就能造成這些應(yīng)用的敏感信息泄露。
微信小程序是一種插件。
插件框架的基本特點是:基礎(chǔ)程序(微信)提供服務(wù)給插件(小程序)。
在 Android 上,小程序使用 X5 內(nèi)核接口;
而在 iOS 上,小程序使用的是 JS Core 接口。
接下來我們以 iOS 為例進行解釋。
微信是通過將一些服務(wù)(比如:繪圖等)通過 JS 接口暴露給小程序。
我理解的安全模型是:小程序環(huán)境--->微信環(huán)境--->系統(tǒng)環(huán)境。
【小程序安全模型:小程序環(huán)境--->微信環(huán)境--->系統(tǒng)環(huán)境】
由于微信主程序會通過 JS 接口向小程序暴露規(guī)定的服務(wù)。如果小程序可以獲取到規(guī)定服務(wù)外的信息(比如:用戶的錢余額等)即是信息泄露。
總之,可以將微信理解成瀏覽器,將小程序理解成網(wǎng)頁。如果執(zhí)行小程序可以在微信中執(zhí)行任意代碼,就是傳統(tǒng)意義上的遠程代碼執(zhí)行。
例如:
理論上來說,如果可以突破小程序的執(zhí)行環(huán)境(JS),在微信主程序中獲得代碼執(zhí)行,就成功制造了代碼執(zhí)行的漏洞,如:執(zhí)行一個小程序,就可以往任意群中發(fā)紅包。
【通過拿到微信主程序代碼權(quán)限而攻擊紅包功能】
可能還存在一些其他類型的漏洞,實現(xiàn)跨站攻擊。例如從一個小程序訪問了其他小程序的數(shù)據(jù)。
【小程序之間的“跨站攻擊”】
當然 iOS 與 Android 實現(xiàn)可能還會有區(qū)別,攻擊面可能也有差別。
由于安全環(huán)境框架:小程序環(huán)境--->微信環(huán)境--->系統(tǒng)環(huán)境。所以理論上存在著這種可能:
結(jié)合系統(tǒng)漏洞,也許可以用一個惡意的小程序就實現(xiàn)了越獄,不需要用戶裝一個應(yīng)用。(當然,用小程序越獄,可能很少人會這樣做。)
【腦洞:通過小程序,一步步占領(lǐng)系統(tǒng)控制權(quán)】
以上所說的攻擊可能需要極強的攻擊能力。但是真實的場景下,可能很多攻擊都來自腳本小子。攻擊效果不一定會到如上所說的那么嚴重,估計大多數(shù)也就是獲取一些信息。
所有微信小程序一定會接受微信的審核。理論上惡意小程序是不會被上架的。
當然,蘋果也不會允許惡意程序上架,但是還有有人成功把 Pangu 9.3 的越獄程序成功上傳到 AppStore,雖然很快就下架了。這里的問題是,微信可能無法自動檢測出某些惡意程序,或者審核人員的專業(yè)背景可能沒有那么強。
基本的攻擊路徑是:攻擊了小程序后,然后通過小程序?qū)崿F(xiàn)方面的漏洞進而攻擊微信。所以按道理,微信應(yīng)該為小程序創(chuàng)建一個沙盒環(huán)境,不知道微信是否這樣做。
目前看來,沒這個必要。
根據(jù)以往的經(jīng)驗,騰訊在自身產(chǎn)品的安全性上,會投入巨大的精力。而對于皇冠級產(chǎn)品微信,相信騰訊更是不敢有絲毫疏漏。就在小程序退出的當天,TSRC(騰訊安全應(yīng)急響應(yīng)中心)也發(fā)布了英雄帖《微信小程序如約而至,安全需要你的守護》,宣布即日起到2017年1月20日,“重金”收集有關(guān)微信小程序的漏洞和威脅情報。
【來自 TSRC 的“英雄帖”】
雷鋒網(wǎng)宅客頻道聯(lián)系了 TSRC 的掌門人 Flyh4t,他表示暫時還沒有更多的消息可以透露。
隨著小程序的普及應(yīng)用,你可以腦補安全研究員和黑產(chǎn)們圍繞著小程序展開了新一波的賽跑。如果小程序果真存在致命漏洞的話,也希望安全研究員能夠領(lǐng)先黑產(chǎn)發(fā)現(xiàn)它們。
最后,祝你像享受大保健一樣享受小程序,注意安全第一。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。