百度瀏覽器的隱私安全問(wèn)題分析

2020-08-24    分類(lèi): 網(wǎng)站建設(shè)

主要發(fā)現(xiàn)

百度瀏覽器是微軟和安卓平臺(tái)上的一種網(wǎng)絡(luò)瀏覽器,個(gè)人用戶在向服務(wù)器傳輸數(shù)據(jù)時(shí)進(jìn)行加密,就算加密了也很容易被解密。瀏覽器更新時(shí)可能很輕易地被中間攻擊者利用,執(zhí)行任意代碼。

安卓版本的百度瀏覽器傳輸?shù)膫€(gè)人可識(shí)別數(shù)據(jù),包括用戶的GPS坐標(biāo)、搜索內(nèi)容和訪問(wèn)時(shí)的URL,這些內(nèi)容都是沒(méi)有進(jìn)行加密的。不僅如此,在傳輸用戶的IMEI和附近無(wú)線網(wǎng)絡(luò)列表時(shí)也只是使用了簡(jiǎn)單、易于破解的加密。

Windows版的百度瀏覽器在傳輸個(gè)人可識(shí)別數(shù)據(jù)點(diǎn)的時(shí)候也沒(méi)有進(jìn)行加密,或者是進(jìn)行了簡(jiǎn)單的加密。這些數(shù)據(jù)包括了用戶的搜索詞、硬盤(pán)序列號(hào)模型、MAC網(wǎng)絡(luò)地址、URL和訪問(wèn)歷史,還有CPU型號(hào)。

無(wú)論是Windows版還是安卓版的百度,都沒(méi)有使用代碼簽名來(lái)保護(hù)軟件更新,提高其安全性,也就是說(shuō),更新路徑上隨便一個(gè)惡意攻擊者都可以讓該應(yīng)用程序下載執(zhí)行任意代碼,這是一個(gè)重大的安全風(fēng)險(xiǎn)。

微軟版本的百度瀏覽器有一個(gè)功能:可以將一個(gè)請(qǐng)求轉(zhuǎn)向特定的網(wǎng)站,這就允許用戶可以訪問(wèn)一些在中國(guó)被墻的網(wǎng)站。

對(duì)百度的全球版本進(jìn)行分析之后發(fā)現(xiàn),數(shù)據(jù)泄露是因?yàn)榘俣裙蚕砹怂能浖_(kāi)發(fā)工具包(SDK),這影響了數(shù)百個(gè)由百度和谷歌應(yīng)用商店的第三方共同開(kāi)發(fā)的應(yīng)用程序,以及中國(guó)某個(gè)廣泛使用的應(yīng)用商店里的數(shù)千個(gè)應(yīng)用。

介紹

百度瀏覽器是由中國(guó)大的科技公司百度公司開(kāi)發(fā)的,向Windows和安卓平臺(tái)免費(fèi)提供。它提供的功能不僅僅是一般瀏覽器的功能,包括了視頻音頻下載工具和內(nèi)置的種子下載。

本篇報(bào)告針對(duì)百度瀏覽器在操作過(guò)程中是如何管理和傳輸用戶數(shù)據(jù)做出了詳細(xì)的分析。報(bào)告指出,Windows和安卓版本的百度瀏覽器都有著一定的安全隱患,都有可能泄露個(gè)人用戶數(shù)據(jù),包括用戶地理位置、硬件標(biāo)示符、附近的無(wú)線網(wǎng)絡(luò)、網(wǎng)頁(yè)瀏覽數(shù)據(jù)和搜索詞。這些數(shù)據(jù)的傳輸在兩種版本的瀏覽器中都沒(méi)有進(jìn)行加密或是進(jìn)行了簡(jiǎn)單的加密,這也就是說(shuō),任何攻擊者都可以通過(guò)手機(jī)路徑并進(jìn)行一定的解密手段來(lái)獲得此類(lèi)數(shù)據(jù)。此外,兩種版本的應(yīng)用都沒(méi)有使用數(shù)字簽名來(lái)保護(hù)其軟件更新,這就意味著惡意攻擊者可以讓瀏覽器下載并執(zhí)行任意代碼。

這份報(bào)告是我們之前工作的延續(xù),在此之前我們已經(jīng)審查了在亞洲流行的移動(dòng)應(yīng)用程序的安全和隱私狀況。我們之前的研究報(bào)告就發(fā)現(xiàn)UC瀏覽器有著類(lèi)似的問(wèn)題,這個(gè)瀏覽器是由中國(guó)電子商務(wù)巨頭阿里巴巴公司開(kāi)發(fā)的。那份報(bào)告記錄了UC瀏覽器對(duì)于用戶的敏感信息沒(méi)有進(jìn)行加密傳輸,這些信息包括了IMSI、IMEI、安卓ID、無(wú)線網(wǎng)絡(luò)MAC地址、地理定位數(shù)據(jù)和用戶的搜索查詢。UC瀏覽器的安全問(wèn)題是在 Edward Snowden 泄露出來(lái)的文件中確定的,該組織是五眼情報(bào)聯(lián)盟,包括了加拿大、美國(guó)、英國(guó)、澳大利亞和新西蘭的情報(bào)機(jī)構(gòu),他們就是利用這些漏洞來(lái)識(shí)別用戶的。

在過(guò)去的工作中,我們已經(jīng)分析了熱門(mén)的第三方軟件的自動(dòng)更新機(jī)制。我們發(fā)現(xiàn)攻擊者利用百度瀏覽器自動(dòng)更新機(jī)制來(lái)進(jìn)行遠(yuǎn)程代碼執(zhí)行的漏洞和那些第三方軟件的漏洞很是相似。

此外,我們也對(duì)TOM-Skype和新浪UC信息平臺(tái)的關(guān)鍵字審查進(jìn)行了調(diào)查,不僅如此,我們還對(duì)亞洲流行的手機(jī)聊天應(yīng)用程序進(jìn)行了比較分析,比如微信、LINE和Kakao Talk。

我們還發(fā)布了一份關(guān)于移動(dòng)通信隱私安全問(wèn)題的概述,標(biāo)題叫做《 The Many Identifiers in Our Pockets》。對(duì)于本篇報(bào)告中的一些技術(shù)問(wèn)題來(lái)說(shuō),那份概述中關(guān)于移動(dòng)技術(shù)標(biāo)示符的說(shuō)明是個(gè)很好的背景介紹。另外,我們還在 OpenEffect上發(fā)表了一篇關(guān)于健身追蹤器上隱私和安全問(wèn)題的分析。

負(fù)責(zé)任的披露和通知

我們?cè)?015年10月26日向百度通知了我們的發(fā)現(xiàn)和我們發(fā)表這份報(bào)告的意圖。我們表示不會(huì)按照國(guó)際對(duì)于披露漏洞的慣例在刊登前45天通知。百度最初表示會(huì)在2016年1月24日發(fā)布的更新中解決我們所確定的問(wèn)題。然而百度發(fā)現(xiàn)這些安全問(wèn)題已經(jīng)影響了其他的產(chǎn)品,所以他們要求我們推遲到2016年2月14日之后再發(fā)表。為了給百度足夠的時(shí)間來(lái)修復(fù)所有漏洞,我們同意了。

在這之后,百度表示他們會(huì)在2月14日發(fā)布Windows和安卓客戶端的更新版本。為了確定他們真的解決了問(wèn)題,我們對(duì)兩種更新版本進(jìn)行了分析。分析結(jié)果在報(bào)告結(jié)尾部分的“更新:對(duì)百度最新版本的分析”。

我們?cè)?月16日向百度的國(guó)際通信主任發(fā)送了一封關(guān)于百度瀏覽器安全隱私問(wèn)題的電子郵件,22日我們收到了回復(fù)。

在本報(bào)告的結(jié)尾附錄有我們和百度關(guān)于這些安全問(wèn)題交涉的所有信件。

百度瀏覽器:簡(jiǎn)單背景介紹

百度瀏覽器是由中國(guó)互聯(lián)網(wǎng)巨頭百度公司專(zhuān)為Windows和安卓系統(tǒng)研發(fā)的瀏覽器。首次發(fā)布是在2011年,主要基于谷歌Chromium,它擁有大量功能,包括集成的視頻音頻下載工具、內(nèi)置種子下載和鼠標(biāo)手勢(shì)支持。該瀏覽器是百度提供的許多服務(wù)之一,其他還有搜索引擎、大規(guī)模的廣告平臺(tái)和百度百科(類(lèi)似于維基百科)。根據(jù)“中國(guó)互聯(lián)網(wǎng)觀察”的調(diào)查,到2015年,百度瀏覽器的網(wǎng)民滲透率達(dá)到了29.2%。

作為中國(guó)占主導(dǎo)地位的高科技公司之一,加上沒(méi)有來(lái)自被屏蔽的谷歌搜索引擎的競(jìng)爭(zhēng)壓力,百度已經(jīng)成為了中國(guó)最常用的搜索引擎。在世界范圍網(wǎng)頁(yè)訪問(wèn)量排名的Alexa名單上,百度排名第四,在中國(guó)排名第一。公司2014年的收入是79.6億美金。

2014年7月,百度和互聯(lián)網(wǎng)流量管理公司CloudFlare建立了合作,該公司總部設(shè)在美國(guó)。二者達(dá)成合作,利用百度公司的數(shù)據(jù)中心和CloudFlare的流量管理服務(wù)來(lái)提供中國(guó)網(wǎng)站的訪問(wèn)速度。這項(xiàng)服務(wù)被稱(chēng)為百度云加速,主要針對(duì)希望加快在中國(guó)效率低下、審查嚴(yán)苛的網(wǎng)絡(luò)中運(yùn)行速度的企業(yè)。本報(bào)告的第二部分將介紹了百度瀏覽器的另一個(gè)功能,即對(duì)境外特定網(wǎng)站的流量進(jìn)行代理來(lái)提高性能。

技術(shù)分析

我們使用逆向工程技術(shù)分析了兩種版本的百度瀏覽器。為了分析程序行為,我們使用了機(jī)器碼、字節(jié)碼反匯編程序、反編譯器和調(diào)試器,包括了JD、JADX和IDA。我們還使用了 tcpdump和Wireshark來(lái)捕獲分析網(wǎng)絡(luò)流量。

分析分為三部分。第一部分介紹了兩種版本的中文版百度瀏覽器是如何向百度服務(wù)器發(fā)送未加密或是易破解個(gè)人信息的。第二部分描述了百度瀏覽器Windows中文版的一種特別功能,即對(duì)境外特定網(wǎng)站的流量進(jìn)行代理來(lái)提高性能。第三部分討論了中文版和全球版共有的漏洞,以及有多少漏洞是因?yàn)榘俣溶浖_(kāi)發(fā)工具包的使用,在其他百度或是第三方應(yīng)用中都可以找到該工具包。

“易破解”的加密

報(bào)告中,在談到百度瀏覽器使用的加密的時(shí)候我們會(huì)用到“易破解”這個(gè)短語(yǔ)。在這里,我們來(lái)討論一下我們所說(shuō)的這句話,以及如何正確執(zhí)行百度瀏覽器的加密術(shù)。

當(dāng)我們說(shuō)加密術(shù)是“易破解”的時(shí)候,并不是說(shuō)加密本身的算法是有缺陷或是不安全的(盡管有時(shí)候百度瀏覽器使用的算法的確是這樣)。相反的,我們的意思是該算法使用不當(dāng)。顧名思義,百度瀏覽器的分析師可以利用該算法編寫(xiě)一個(gè)解密工具。


加密數(shù)據(jù)有兩種基本方法:對(duì)稱(chēng)加密或是非對(duì)稱(chēng)加密。對(duì)稱(chēng)加密相比于非對(duì)稱(chēng)加密的優(yōu)點(diǎn)是加密速度快。缺點(diǎn)就是只要你知道使用的算法和某個(gè)鍵,你就能破解任意的密碼。利用簡(jiǎn)單的算法,做到這點(diǎn)易如反掌。當(dāng)加密術(shù)只使用了對(duì)稱(chēng)算法的時(shí)候,只要對(duì)程序稍加分析就可以寫(xiě)出一個(gè)破解工具來(lái)。


像RSA這樣的非對(duì)稱(chēng)算法是被開(kāi)發(fā)來(lái)解決這一問(wèn)題的。雖然這種算法明顯慢于對(duì)稱(chēng)算法,但優(yōu)勢(shì)就是用于解密的密鑰不同于加密密鑰。這兩個(gè)密鑰必須是數(shù)學(xué)相關(guān)的,通過(guò)算法設(shè)計(jì)生成一個(gè)密鑰對(duì),但是從加密密鑰到解密密鑰的派生過(guò)程要通過(guò)復(fù)雜的計(jì)算。這就意味著一個(gè)程序可以使用一個(gè)硬編碼的加密密鑰,但是解密密鑰只能保存在收件人那里。雖然數(shù)據(jù)接收方可以使用保密的解密密鑰,但數(shù)據(jù)仍有可能被竊取,只要解密密鑰存在于程序當(dāng)中,第三方就有可能寫(xiě)出破解工具。

為了改善性能劣勢(shì)的非對(duì)稱(chēng)加密,通常會(huì)使用結(jié)合了以下技術(shù)的對(duì)稱(chēng)加密。要想對(duì)數(shù)據(jù)進(jìn)行加密,會(huì)隨機(jī)生成一對(duì)對(duì)稱(chēng)密鑰來(lái)加密數(shù)據(jù)。然后會(huì)使用非對(duì)稱(chēng)密鑰來(lái)加密隨機(jī)生成的加密密鑰。之后被非對(duì)稱(chēng)加密的對(duì)稱(chēng)密鑰和被對(duì)稱(chēng)加密的數(shù)據(jù)會(huì)一起發(fā)送給收件人。收件人可以使用私人的解密密鑰來(lái)解密對(duì)稱(chēng)密鑰,然后再用它來(lái)解密數(shù)據(jù)。因?yàn)橹挥屑用苊荑€是被非對(duì)稱(chēng)加密的,其存儲(chǔ)空間遠(yuǎn)小于整個(gè)數(shù)據(jù),所以這項(xiàng)技術(shù)要遠(yuǎn)快于非對(duì)稱(chēng)加密所有數(shù)據(jù),因此是結(jié)合了兩種加密技術(shù)的優(yōu)點(diǎn)。這是網(wǎng)絡(luò)上使用的加密術(shù)的基本技術(shù),比如SSL。

我們之所以說(shuō)百度瀏覽器的加密是易破解的,是因?yàn)樗褂玫募用芡耆怯簿幋a編寫(xiě)的對(duì)稱(chēng)密鑰。使用這種辦法加密的通信很容易被破解。我們建議百度或是任何希望通過(guò)互聯(lián)網(wǎng)安全發(fā)送敏感信息的人使用一個(gè)知名并且行之有效的協(xié)議來(lái)使用非對(duì)稱(chēng)加密技術(shù)(比如SSL),也不要試圖自制加密協(xié)議。SSL是經(jīng)得起考驗(yàn)的協(xié)議,解決了許多非專(zhuān)業(yè)譯電員認(rèn)為不可能解決的安全問(wèn)題。

第一部分:個(gè)人信息的不安全傳送

安卓版本

我們分析了6.2.18.0版本的瀏覽器,這是從 http://mb.baidu.com/ 下載的。關(guān)于不安全的個(gè)人信息傳送,我們還是發(fā)現(xiàn)了一些隱私安全問(wèn)題。表1總結(jié)了通過(guò)該應(yīng)用收集加密或易加密傳送的個(gè)人數(shù)據(jù)。


關(guān)于安卓版本的收集傳輸個(gè)人數(shù)據(jù)功能,我們發(fā)現(xiàn)了以下幾個(gè)安全缺陷:

A.啟動(dòng)時(shí)泄露敏感數(shù)據(jù)

在應(yīng)用程序啟動(dòng)時(shí),我們觀察到百度瀏覽器向https://hmma.baidu.com/app.gif 發(fā)送的HTTP POST 請(qǐng)求。這個(gè)HTTP請(qǐng)求的正文是一個(gè)壓縮的JSON文件。該文件包含了電話和用戶的多種細(xì)節(jié),有的是純文本,有的是加密的。

JSON文件中未加密的字段有:

o:用戶操作系統(tǒng)(比如,安卓)

n:百度瀏覽器版本

w, h:屏幕像素

Gl:GPS位置和最近更新時(shí)間

有的字段是用硬編碼ASCII編碼鍵的AES+ECB進(jìn)行加密的

h9YLQoINGWyOBYYk

然后再用Base64編碼。這些字段有:

Dd:IMEI編號(hào)

Ii:包含手機(jī)IMEI編號(hào)倒序的字串符和安卓軟件版本信息的MD5哈希值

Wl2:范圍內(nèi)所有無(wú)線網(wǎng)絡(luò)列表以及它們的MAC地址和信號(hào)強(qiáng)度。

根據(jù)硬編碼鍵知識(shí),這些字段很容易被破解。用于解密這些字段的python腳本源代碼在這。

B.鍵入地址欄時(shí)泄露敏感數(shù)據(jù)和地址欄內(nèi)容

和其他瀏覽器一樣,用戶可以在百度瀏覽器地址欄中輸入文本來(lái)訪問(wèn)一個(gè)給定的URL或是執(zhí)行搜索。以這種方法在地址欄中輸入文本時(shí),該文本是不進(jìn)行加密的,只是作為一個(gè)有多個(gè)GET參數(shù)的HTTP請(qǐng)求訪問(wèn)下面的URL:http://uil.cbs.baidu.com/sug/rich

比如說(shuō),在地址欄中鍵入這樣的文本“some address bar contents”:http://uil.cbs.baidu.com/sug/rich?wd=some+address+bar+contents&ua=I4Ly8_OLL8_lPvC0tpwbqkrywN0sCFzKkhF6q9pvANIr5wj0_hHQNgCcvCgnhvId_OXNiyJuvNvrCUdsB&cuid=ga2Pfgal2u0ca28Yg8vkugu0-uYBiSiAlP2Nf_8ZS88Pa28g_a2q8_aq28_qa28qA&cfrom=1200a&from=1200a&crp=0&it=0&ctv=2&st=00000000&nw=3g&cen=ua_cuid

這些GET參數(shù)包括:

Wd:地址欄內(nèi)容

Ua:屏幕分辨率、手機(jī)型號(hào)、安卓版本和百度版本

Cuid:安卓版本信息的md5哈希值和手機(jī)IMEI號(hào)倒序的字符串

Wd參數(shù)值的發(fā)送沒(méi)有加密;ua和cuid參數(shù)值的加密很不規(guī)范,使用的是很容易被破解的算法,如下所述。UTF8編碼的每個(gè)32字節(jié)都被解釋為一個(gè)小端字節(jié)序列整數(shù),然后循環(huán)移位字節(jié)到右三位,以及使用硬編碼0x2D382324的XOR。最后,生成的32位字段會(huì)和下面的自定義64個(gè)字符字母進(jìn)行base64編碼:

qogjOuCRNkfil5p4SQ3LAmxGKZTdesvB6z_YPahMI9t80rJyHW1DEwFbc7nUVX2-

典型的base64字母表是這樣的:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

利用這些算法和自定義字母表,就可以很容易地破解這些字段,解密這些字段的python腳本的源代碼在這里。這種算法由百度瀏覽器的本機(jī)代碼在libchiperencoder_v1_3_1_browser中執(zhí)行(chiper可能是拼寫(xiě)錯(cuò)誤,實(shí)為cipher)。

C.手機(jī)包含了每個(gè)頁(yè)面視圖中的敏感數(shù)據(jù)

在瀏覽器瀏覽了某個(gè)頁(yè)面后,會(huì)有一個(gè)GET請(qǐng)求被發(fā)送到這個(gè)URL:http://t5.baidu.com/kw

這個(gè) HTTP Referer 標(biāo)題包含了訪問(wèn)過(guò)網(wǎng)頁(yè)的完整URL,并且沒(méi)有加密。即便是通過(guò)HTTPS進(jìn)行了常規(guī)加密,報(bào)告發(fā)現(xiàn)其實(shí)并沒(méi)有加密。其 etag GET 參數(shù)值是使用有ASCII編碼的五位字節(jié)密鑰的RC4進(jìn)行加密的:HR2ER

進(jìn)行加密時(shí),標(biāo)簽包含了許多其他的參數(shù),比如說(shuō)cuid(含有手機(jī)IMEI的倒序值)和許多時(shí)間信息(加載網(wǎng)頁(yè)所需時(shí)間和步驟,包括DNS查找、創(chuàng)建鏈接和加載DOM)。

D.軟件更新的不安全檢查

當(dāng)應(yīng)用想要檢查更新時(shí),就會(huì)發(fā)送一個(gè)HTTP請(qǐng)求給這個(gè)URL:

http://uil.cbs.baidu.com/update

這項(xiàng)請(qǐng)求含有多項(xiàng)GEL參數(shù),包括上一節(jié)提到的被加密的ua和cuid參數(shù)。服務(wù)器以一種未加密,但是被zlib壓縮的自定義二進(jìn)制格式進(jìn)行響應(yīng)。如果有可用的更新,服務(wù)器會(huì)在響應(yīng)中包含對(duì)更新的描述以及一個(gè)APK的URL。百度瀏覽器會(huì)顯示這個(gè)描述,并詢問(wèn)用戶是否需要進(jìn)行升級(jí)。如果用戶確認(rèn)升級(jí),APK文件會(huì)進(jìn)行下載并自動(dòng)打開(kāi),通過(guò)典型的安卓用戶安裝或升級(jí)應(yīng)用的界面進(jìn)行提示。

百度沒(méi)有用任何的數(shù)字簽名驗(yàn)證APK文件,所以中間攻擊者就可以通過(guò)發(fā)送特別編寫(xiě)的響應(yīng)來(lái)實(shí)施有效攻擊。中間攻擊者可以發(fā)送任意URL給任意的APK文件,然后這個(gè)文件和相關(guān)描述還是會(huì)被呈現(xiàn)給用戶。如果APK文件擁有的數(shù)字簽名和當(dāng)前安裝的應(yīng)用不符,那么安卓系統(tǒng)不會(huì)允許這種文件來(lái)升級(jí)應(yīng)用。所以不能用這種技術(shù)來(lái)用任意的APK文件替換百度瀏覽器。但是仍舊可以用一個(gè)不同的惡意APK文件(使用百度瀏覽器的名稱(chēng)和標(biāo)識(shí))欺騙用戶安裝一個(gè)新的應(yīng)用程序。


微軟版本

我們分析了 7.6.100.2089 版本的微軟版百度瀏覽器,這是從 http://liulanqi.baidu.com/ 下載的。這種版本也還是有一些隱私安全漏洞。表2 總結(jié)了通過(guò)該應(yīng)用收集加密或易加密傳送的個(gè)人數(shù)據(jù)。


關(guān)于微軟版本的收集傳輸個(gè)人數(shù)據(jù)功能,我們發(fā)現(xiàn)了以下幾個(gè)安全缺陷:

A.輸入地址欄時(shí)泄露地址欄內(nèi)容

和安卓版本類(lèi)似,當(dāng)用戶在地址欄輸入文本來(lái)搜索時(shí),該文本會(huì)以HTTP GET請(qǐng)求的形式不加密地發(fā)送給這個(gè)URL:http://uil.cbs.baidu.com/sug/rich ,地址欄內(nèi)容會(huì)存儲(chǔ)在wd參數(shù)值中。

B.以一種易破解的協(xié)定和百度服務(wù)器通信

我們還觀察到,在應(yīng)用程序啟動(dòng)和瀏覽時(shí),百度瀏覽器會(huì)向 *.br.baidu.comdomain的各子域發(fā)送多個(gè)HTTP POST請(qǐng)求。這些POST請(qǐng)求的主體始終堅(jiān)持以這種特定的形式:標(biāo)題加上加密的有效負(fù)載。標(biāo)題是沒(méi)加密的兩個(gè)字符串。第一個(gè)是瀏覽器的GUID,這是這些參數(shù)的哈希值:

1、硬盤(pán)序列號(hào)

2、硬盤(pán)型號(hào)

3、硬盤(pán)控制器版本

4、網(wǎng)絡(luò)MAC地址

5、BDM字符串

再加上#字符,比如md5(“VBf952409b-973833b1#VBOXHARDDISK#1.0#080027f2c8cf#BDM”).

第二個(gè)字符串是瀏覽器的SupplyID,是HKEY_LOCAL_MACHINE\SOFTWARE\Baidu\BaiduBrowser\SupplyID的檢索值。這可能是與瀏覽器版本相關(guān)的注冊(cè)表。

加密的有效負(fù)載,在解密時(shí)包含使用谷歌協(xié)議緩沖區(qū)(也稱(chēng)為protobuf)的序列化數(shù)據(jù)。這種數(shù)據(jù)是用一種改編的TEA密碼進(jìn)行加密的,我們稱(chēng)為MTEA。百度用MTEA使用的密碼模式塊是CBC的一種非標(biāo)準(zhǔn)修改,叫做MCBC。(見(jiàn)圖四)


為了加密解密所有的protobuf信息,百度瀏覽器使用含有下列硬編碼ASCII密鑰的MTEA+MCBC:vb%,J^d@2B1l’Abn。使用的都是零字節(jié)初始化向量。用于解密這些請(qǐng)求的python腳本源代碼在這里。

C.手機(jī)里含有每個(gè)瀏覽界面信息,包括硬件序列號(hào)

我們解密了瀏覽器發(fā)出的protobuf請(qǐng)求,發(fā)現(xiàn)這樣的請(qǐng)求(我們稱(chēng)作Page Report請(qǐng)求)會(huì)發(fā)送用戶瀏覽的每個(gè)界面,包括HTTP和HTTPS界面,還有界面和用戶的下列信息:

1、界面的完整URL

2、界面的HTTP狀態(tài)代碼

3、界面的HTML標(biāo)題

4、瀏覽器存儲(chǔ)網(wǎng)絡(luò)跟蹤器的域名(名叫BAIDUID)以及跟蹤器的內(nèi)容(百度使用這個(gè)名稱(chēng)的網(wǎng)絡(luò)跟蹤器)

5、機(jī)器的CPU型號(hào)

6、機(jī)器的硬盤(pán)序列號(hào)

7、文件系統(tǒng)序列號(hào)

8、機(jī)器的網(wǎng)絡(luò)MAC地址

9、瀏覽器的GUID

D.對(duì)軟件更新的不安全審查

當(dāng)瀏覽器要查找更新時(shí),會(huì)發(fā)出一個(gè)protobuf請(qǐng)求,我們稱(chēng)之為 Update Info 請(qǐng)求,這是為了獲得百度瀏覽器的最新版本。加密的響應(yīng)會(huì)包含最新發(fā)布的版本號(hào)、升級(jí)的描述、升級(jí)到最新版本的URL和文件的md5哈希值。這個(gè)可執(zhí)行文件沒(méi)有受到任何數(shù)字簽名的保護(hù),只在加密的請(qǐng)求中有md5哈希值。通過(guò)加密并發(fā)送protobuf響應(yīng),任何的中間攻擊者都可以向任何的可執(zhí)行文件和其md5哈希值中發(fā)送URL,這樣會(huì)導(dǎo)致瀏覽器下載執(zhí)行任意代碼。


E.更新域列表中的網(wǎng)站會(huì)觸發(fā)代理

瀏覽器啟動(dòng)時(shí),它會(huì)發(fā)送一個(gè)我們稱(chēng)之為代理信息請(qǐng)求的protobuf請(qǐng)求。在解密該請(qǐng)求時(shí),包括了不同資源的版本號(hào)碼,這些資源和百度自動(dòng)代理的境外網(wǎng)站有關(guān),這在本文的第二部分有具體的解釋。如果服務(wù)器確定這些資源中有需要更新的部分,protobuf響應(yīng)中會(huì)包含資源的最新版本或是最新版本的鏈接,一起的還有新版本的MD5哈希值和用于解密的密鑰。

第二部分:國(guó)外網(wǎng)站代理

中國(guó)的網(wǎng)絡(luò)用戶面對(duì)的是世界上最嚴(yán)格的互聯(lián)網(wǎng)審查制度之一。在中國(guó)最有名的審查制度可能是”長(zhǎng)城防火墻“,這是一種網(wǎng)頁(yè)過(guò)濾的綜合體系,阻止中國(guó)境內(nèi)對(duì)禁止訪問(wèn)內(nèi)容的訪問(wèn)。因?yàn)檫@種系統(tǒng)限制中國(guó)網(wǎng)絡(luò)用戶對(duì)境外網(wǎng)頁(yè)內(nèi)容的訪問(wèn),很多用戶都在尋求方法來(lái)規(guī)避這種審查。其中一種方法就是使用國(guó)際代理,它會(huì)掩蓋和重定位網(wǎng)絡(luò)流向來(lái)逃避檢查。

除了中國(guó)審查制度規(guī)定對(duì)于信息的訪問(wèn)限制,長(zhǎng)城防火墻還會(huì)在跨境傳輸時(shí)表現(xiàn)出明顯的低效和慢速。代理服務(wù)器可以繞開(kāi)這些網(wǎng)絡(luò)瓶頸來(lái)提高性能。

我們對(duì)于百度瀏覽器Windows版的分析表明,該軟件有一個(gè)功能,可以自動(dòng)將請(qǐng)求代理到境外某些網(wǎng)站。百度在其網(wǎng)站中宣傳了這種服務(wù),并描述了潛在的性能改進(jìn)。(見(jiàn)下圖)


除了可以提高性能,我們還發(fā)現(xiàn)這種代理可以允許訪問(wèn)一些被禁止的網(wǎng)站,比如www.wordpress.com。

kv_auth 資源

該資源包含了不同代理服務(wù)器的信息。如果瀏覽器版本沒(méi)有更新,那么在代理請(qǐng)求的響應(yīng)中會(huì)包含新版本。資源中含有代理域的md5哈希值,每個(gè)哈希值含有用戶名和密碼salt,這會(huì)用于計(jì)算獲得代理的用戶名和密碼,這會(huì)在之后進(jìn)行解釋。

目前的列表含有13個(gè)條目;然而,因?yàn)橹挥泄V?,所以我們還不能用這個(gè)列表要求代理的完整目錄。

fg_pac 資源

該資源包含了測(cè)試代理網(wǎng)站的標(biāo)準(zhǔn)。同樣的,如果瀏覽器不是最新版本,在代理信息請(qǐng)求的響應(yīng)中也會(huì)包含新版本的下載文件,以及該文件的md5哈希值和加密密鑰。目前提供的URL是http://dlsw.br.baidu.com/odin/201509/808996d05fb8fbb43ab4db44a5429058.e。

我們有上述文件的解密版本,以及用來(lái)解密的腳本源代碼。值得注意的是,由于在URL的文件名是文件內(nèi)容的md5哈希值,對(duì)該文件的任何更新版本都不會(huì)是同一個(gè)URL,所以不能用上面的URL來(lái)跟蹤更新。

解密時(shí),此文件是一個(gè)代理服務(wù)器自動(dòng)配置或是PAC文件,里面是JAVA代碼,用來(lái)確定哪些是代理網(wǎng)站的,或是具體使用那個(gè)代理,以及是否用HTTP或是HTTPS與該代理服務(wù)器進(jìn)行通信。

kv_report 資源

該資源用于確定是否訪問(wèn)會(huì)向百度發(fā)送額外信息的代理網(wǎng)站。同樣的,最新的版本會(huì)包含在響應(yīng)中。此資源還包含域的列表,如果查看的網(wǎng)頁(yè)和其中之一匹配,瀏覽器會(huì)另外發(fā)送一個(gè)加密的protobuf請(qǐng)求。我們?cè)谇懊婷枋鲞^(guò)網(wǎng)頁(yè)的請(qǐng)求,這些請(qǐng)求包括:

1、網(wǎng)頁(yè)的完整URL

2、網(wǎng)頁(yè)的HTTP引用字段

3、網(wǎng)站的IP地址

4、用來(lái)指向網(wǎng)頁(yè)的HTTP重定向列表

5、網(wǎng)頁(yè)DNS查詢時(shí)間、TCP連接時(shí)間、SSL連接時(shí)間以及完整的請(qǐng)求時(shí)間

6、是否使用了代理網(wǎng)站

分析

我們編寫(xiě)了一個(gè)python腳本,該腳本會(huì)進(jìn)行有身份驗(yàn)證的代理并下載任意URL請(qǐng)求。首先,我們用它來(lái)測(cè)試百度是否會(huì)訪問(wèn) fg_pac文件之外的網(wǎng)站。我們發(fā)現(xiàn)兩個(gè)代理服務(wù)器都顯示出頁(yè)面錯(cuò)誤,表明訪問(wèn)受控制。我們用一個(gè)中國(guó)VPS對(duì)Alexa前100萬(wàn)排行榜進(jìn)行了測(cè)試,發(fā)現(xiàn)了46個(gè)沒(méi)有出現(xiàn)在fg_pac文件的額外域可以通過(guò)這兩個(gè)代理服務(wù)器訪問(wèn)。


第三部分:其他百度產(chǎn)品和第三方應(yīng)用中的漏洞

為了確定百度瀏覽器中敏感信息的泄露是否會(huì)通過(guò)共享的代碼機(jī)制等方式感染到其他的百度產(chǎn)品,我們進(jìn)行了初步調(diào)查。百度為微軟和安卓?jī)煞N版本的瀏覽器都開(kāi)發(fā)了全球版,關(guān)于該版本的具體分析在下面。我們發(fā)現(xiàn)安卓版本瀏覽器中泄露敏感信息的這個(gè)漏洞作為分析軟件開(kāi)發(fā)工具包(SDK)的一部分不僅存在于百度其他安卓產(chǎn)品中,還存在在大量的第三方應(yīng)用中。


結(jié)論

許多情況下,移動(dòng)設(shè)備會(huì)在不向用戶提供任何通知的情況下生成、收集和傳輸種類(lèi)繁多的個(gè)人標(biāo)示符和用戶數(shù)據(jù)。關(guān)于這一主題,我們題為《The Many Identifiers in Our Pockets》的論述重點(diǎn)介紹了與收集傳輸標(biāo)示符有關(guān)的風(fēng)險(xiǎn)。

本篇報(bào)告中提到的問(wèn)題引起了人們對(duì)于百度瀏覽器用戶個(gè)人隱私安全的廣泛關(guān)注。大量的標(biāo)示符和數(shù)據(jù)點(diǎn)都是使用易破解的加密術(shù)進(jìn)行傳輸?shù)摹?/p>

如果個(gè)人數(shù)據(jù)不使用正確的加密手段傳輸,很有可能導(dǎo)致用戶數(shù)據(jù)遭到監(jiān)視。其中可能包括用戶的ISP、無(wú)線網(wǎng)絡(luò)運(yùn)行商等。更可怕的是,中間攻擊者解密你進(jìn)行加密的通信,這種攔截會(huì)暴露你的地理位置等信息。如果用戶使用這種應(yīng)用程序進(jìn)行含有敏感信息的通信,那么這樣的信息泄露將會(huì)是致命的。

人們對(duì)于百度收集存儲(chǔ)用戶數(shù)據(jù)的方式也產(chǎn)生了一定的質(zhì)疑。向百度這樣提供網(wǎng)絡(luò)服務(wù)的大公司,需要遵循中國(guó)法律來(lái)保護(hù)數(shù)據(jù)的。網(wǎng)絡(luò)公司通常是收集這些數(shù)據(jù)來(lái)進(jìn)行更有效的日常服務(wù)的,那為什么百度瀏覽器會(huì)收集傳輸如此大量的敏感數(shù)據(jù)點(diǎn)?這還不得而知。

除了會(huì)泄露用戶敏感信息之外,兩種版本的瀏覽器都沒(méi)有使用代碼簽名,這允許攻擊者強(qiáng)制應(yīng)用程序下載執(zhí)行任意代碼。

與百度的交涉

我們?cè)?016年2月16日像百度發(fā)送了信件,告知百度我們確定的額外安全漏洞,并且說(shuō)明我們會(huì)公開(kāi)他們的回復(fù)。

百度在2月22日做出了相關(guān)回應(yīng)。

網(wǎng)站題目:百度瀏覽器的隱私安全問(wèn)題分析
鏈接分享:http://www.muchs.cn/news1/85551.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、網(wǎng)站營(yíng)銷(xiāo)外貿(mào)網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化