精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

當前位置:安全企業動態 → 正文

百度瀏覽器的隱私安全問題分析

責任編輯:editor005 作者:極客小默 |來源:企業網D1Net  2016-02-29 14:18:28 本文摘自:FreeBuf.COM

主要發現  

百度瀏覽器是微軟和安卓平臺上的一種網絡瀏覽器,個人用戶在向服務器傳輸數據時進行加密,就算加密了也很容易被解密。瀏覽器更新時可能很輕易地被中間攻擊者利用,執行任意代碼。

安卓版本的百度瀏覽器傳輸的個人可識別數據,包括用戶的GPS坐標、搜索內容和訪問時的URL,這些內容都是沒有進行加密的。不僅如此,在傳輸用戶的IMEI和附近無線網絡列表時也只是使用了簡單、易于破解的加密。

Windows版的百度瀏覽器在傳輸個人可識別數據點的時候也沒有進行加密,或者是進行了簡單的加密。這些數據包括了用戶的搜索詞、硬盤序列號模型、MAC網絡地址、URL和訪問歷史,還有CPU型號。

無論是Windows版還是安卓版的百度,都沒有使用代碼簽名來保護軟件更新,提高其安全性,也就是說,更新路徑上隨便一個惡意攻擊者都可以讓該應用程序下載執行任意代碼,這是一個重大的安全風險。

微軟版本的百度瀏覽器有一個功能:可以將一個請求轉向特定的網站,這就允許用戶可以訪問一些在中國被墻的網站。

對百度的全球版本進行分析之后發現,數據泄露是因為百度共享了它的軟件開發工具包(SDK),這影響了數百個由百度和谷歌應用商店的第三方共同開發的應用程序,以及中國某個廣泛使用的應用商店里的數千個應用。

介紹

百度瀏覽器是由中國最大的科技公司百度公司開發的,向Windows和安卓平臺免費提供。它提供的功能不僅僅是一般瀏覽器的功能,包括了視頻音頻下載工具和內置的種子下載。

本篇報告針對百度瀏覽器在操作過程中是如何管理和傳輸用戶數據做出了詳細的分析。報告指出,Windows和安卓版本的百度瀏覽器都有著一定的安全隱患,都有可能泄露個人用戶數據,包括用戶地理位置、硬件標示符、附近的無線網絡、網頁瀏覽數據和搜索詞。這些數據的傳輸在兩種版本的瀏覽器中都沒有進行加密或是進行了簡單的加密,這也就是說,任何攻擊者都可以通過手機路徑并進行一定的解密手段來獲得此類數據。此外,兩種版本的應用都沒有使用數字簽名來保護其軟件更新,這就意味著惡意攻擊者可以讓瀏覽器下載并執行任意代碼。

這份報告是我們之前工作的延續,在此之前我們已經審查了在亞洲流行的移動應用程序的安全和隱私狀況。我們之前的研究報告就發現UC瀏覽器有著類似的問題,這個瀏覽器是由中國電子商務巨頭阿里巴巴公司開發的。那份報告記錄了UC瀏覽器對于用戶的敏感信息沒有進行加密傳輸,這些信息包括了IMSI、IMEI、安卓ID、無線網絡MAC地址、地理定位數據和用戶的搜索查詢。UC瀏覽器的安全問題是在 Edward Snowden 泄露出來的文件中確定的,該組織是五眼情報聯盟,包括了加拿大、美國、英國、澳大利亞和新西蘭的情報機構,他們就是利用這些漏洞來識別用戶的。

在過去的工作中,我們已經分析了熱門的第三方軟件的自動更新機制。我們發現攻擊者利用百度瀏覽器自動更新機制來進行遠程代碼執行的漏洞和那些第三方軟件的漏洞很是相似。

此外,我們也對TOM-Skype和新浪UC信息平臺的關鍵字審查進行了調查,不僅如此,我們還對亞洲流行的手機聊天應用程序進行了比較分析,比如微信、LINE和Kakao Talk。

我們還發布了一份關于移動通信隱私安全問題的概述,標題叫做《 The Many Identifiers in Our Pockets》。對于本篇報告中的一些技術問題來說,那份概述中關于移動技術標示符的說明是個很好的背景介紹。另外,我們還在 OpenEffect上發表了一篇關于健身追蹤器上隱私和安全問題的分析。

負責任的披露和通知

我們在2015年10月26日向百度通知了我們的發現和我們發表這份報告的意圖。我們表示不會按照國際對于披露漏洞的慣例在刊登前45天通知。百度最初表示會在2016年1月24日發布的更新中解決我們所確定的問題。然而百度發現這些安全問題已經影響了其他的產品,所以他們要求我們推遲到2016年2月14日之后再發表。為了給百度足夠的時間來修復所有漏洞,我們同意了。

在這之后,百度表示他們會在2月14日發布Windows和安卓客戶端的更新版本。為了確定他們真的解決了問題,我們對兩種更新版本進行了分析。分析結果在報告結尾部分的“更新:對百度最新版本的分析”。

我們在2月16日向百度的國際通信主任發送了一封關于百度瀏覽器安全隱私問題的電子郵件,22日我們收到了回復。

在本報告的結尾附錄有我們和百度關于這些安全問題交涉的所有信件。

百度瀏覽器:簡單背景介紹

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

作為中國占主導地位的高科技公司之一,加上沒有來自被屏蔽的谷歌搜索引擎的競爭壓力,百度已經成為了中國最常用的搜索引擎。在世界范圍網頁訪問量排名的Alexa名單上,百度排名第四,在中國排名第一。公司2014年的收入是79.6億美金。

2014年7月,百度和互聯網流量管理公司CloudFlare建立了合作,該公司總部設在美國。二者達成合作,利用百度公司的數據中心和CloudFlare的流量管理服務來提供中國網站的訪問速度。這項服務被稱為百度云加速,主要針對希望加快在中國效率低下、審查嚴苛的網絡中運行速度的企業。本報告的第二部分將介紹了百度瀏覽器的另一個功能,即對境外特定網站的流量進行代理來提高性能。

技術分析

我們使用逆向工程技術分析了兩種版本的百度瀏覽器。為了分析程序行為,我們使用了機器碼、字節碼反匯編程序、反編譯器和調試器,包括了JD、JADX和IDA。我們還使用了 tcpdump和Wireshark來捕獲分析網絡流量。

分析分為三部分。第一部分介紹了兩種版本的中文版百度瀏覽器是如何向百度服務器發送未加密或是易破解個人信息的。第二部分描述了百度瀏覽器Windows中文版的一種特別功能,即對境外特定網站的流量進行代理來提高性能。第三部分討論了中文版和全球版共有的漏洞,以及有多少漏洞是因為百度軟件開發工具包的使用,在其他百度或是第三方應用中都可以找到該工具包。

易破解的加密

報告中,在談到百度瀏覽器使用的加密的時候我們會用到“易破解”這個短語。在這里,我們來討論一下我們所說的這句話,以及如何正確執行百度瀏覽器的加密術。

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

Image

加密數據有兩種基本方法:對稱加密或是非對稱加密。對稱加密(如圖一所示)相比于非對稱加密的優點是加密速度快。缺點就是只要你知道使用的算法和某個鍵,你就能破解任意的密碼。利用簡單的算法,做到這點易如反掌。當加密術只使用了對稱算法的時候,只要對程序稍加分析就可以寫出一個破解工具來。

Image

像RSA這樣的非對稱算法(如圖二所示)就是被開發來解決這一問題的。雖然這種算法明顯慢于對稱算法,但優勢就是用于解密的密鑰不同于加密密鑰。這兩個密鑰必須是數學相關的,通過算法設計生成一個密鑰對,但是從加密密鑰到解密密鑰的派生過程要通過復雜的計算。這就意味著一個程序可以使用一個硬編碼的加密密鑰,但是解密密鑰只能保存在收件人那里。雖然數據接收方可以使用保密的解密密鑰,但數據仍有可能被竊取,只要解密密鑰存在于程序當中,第三方就有可能寫出破解工具。

為了改善性能劣勢的非對稱加密,通常會使用結合了以下技術的對稱加密。要想對數據進行加密,會隨機生成一對對稱密鑰來加密數據。然后會使用非對稱密鑰來加密隨機生成的加密密鑰。之后被非對稱加密的對稱密鑰和被對稱加密的數據會一起發送給收件人。收件人可以使用私人的解密密鑰來解密對稱密鑰,然后再用它來解密數據。因為只有加密密鑰是被非對稱加密的,其存儲空間遠小于整個數據,所以這項技術要遠快于非對稱加密所有數據,因此是結合了兩種加密技術的優點。這是網絡上使用的加密術的基本技術,比如SSL。

我們之所以說百度瀏覽器的加密是易破解的,是因為它使用的加密完全是硬編碼編寫的對稱密鑰。使用這種辦法加密的通信很容易被破解。我們建議百度或是任何希望通過互聯網安全發送敏感信息的人使用一個知名并且行之有效的協議來使用非對稱加密技術(比如SSL),也不要試圖自制加密協議。SSL是經得起考驗的協議,解決了許多非專業譯電員認為不可能解決的安全問題。

第一部分:個人信息的不安全傳送

安卓版本

我們分析了6.2.18.0版本的瀏覽器,這是從 http://mb.baidu.com/ 下載的。關于不安全的個人信息傳送,我們還是發現了一些隱私安全問題。表1總結了通過該應用收集加密或易加密傳送的個人數據。

t1.PNG

  關于安卓版本的收集傳輸個人數據功能,我們發現了以下幾個安全缺陷:

A.啟動時泄露敏感數據

在應用程序啟動時,我們觀察到百度瀏覽器向https://hmma.baidu.com/app.gif 發送的HTTP POST 請求。這個HTTP請求的正文是一個壓縮的JSON文件。該文件包含了電話和用戶的多種細節,有的是純文本,有的是加密的。

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

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

n:百度瀏覽器版本

w, h:屏幕像素

Gl:GPS位置和最近更新時間

有的字段是用硬編碼ASCII編碼鍵的AES+ECB進行加密的

h9YLQoINGWyOBYYk

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

Dd:IMEI編號

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

Wl2:范圍內所有無線網絡列表以及它們的MAC地址和信號強度。

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

B.鍵入地址欄時泄露敏感數據和地址欄內容

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

比如說,在地址欄中鍵入這樣的文本“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參數包括:

Wd:地址欄內容

Ua:屏幕分辨率、手機型號、安卓版本和百度版本

Cuid:安卓版本信息的md5哈希值和手機IMEI號倒序的字符串

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

qogjOuCRNkfil5p4SQ3LAmxGKZTdesvB6z_YPahMI9t80rJyHW1DEwFbc7nUVX2-

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

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

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

C.手機包含了每個頁面視圖中的敏感數據

在瀏覽器瀏覽了某個頁面后,會有一個GET請求被發送到這個URL:http://t5.baidu.com/kw

這個 HTTP Referer 標題包含了訪問過網頁的完整URL,并且沒有加密。即便是通過HTTPS進行了常規加密,報告發現其實并沒有加密。其 etag GET 參數值是使用有ASCII編碼的五位字節密鑰的RC4進行加密的:HR2ER

進行加密時,標簽包含了許多其他的參數,比如說cuid(含有手機IMEI的倒序值)和許多時間信息(加載網頁所需時間和步驟,包括DNS查找、創建鏈接和加載DOM)。

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

當應用想要檢查更新時,就會發送一個HTTP請求給這個URL:

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

這項請求含有多項GEL參數,包括上一節提到的被加密的ua和cuid參數。服務器以一種未加密,但是被zlib壓縮的自定義二進制格式進行響應。如果有可用的更新,服務器會在響應中包含對更新的描述以及一個APK的URL。百度瀏覽器會顯示這個描述,并詢問用戶是否需要進行升級。如果用戶確認升級,APK文件會進行下載并自動打開,通過典型的安卓用戶安裝或升級應用的界面進行提示。(如圖三)

百度沒有用任何的數字簽名驗證APK文件,所以中間攻擊者就可以通過發送特別編寫的響應來實施有效攻擊。中間攻擊者可以發送任意URL給任意的APK文件,然后這個文件和相關描述還是會被呈現給用戶。如果APK文件擁有的數字簽名和當前安裝的應用不符,那么安卓系統不會允許這種文件來升級應用。所以不能用這種技術來用任意的APK文件替換百度瀏覽器。但是仍舊可以用一個不同的惡意APK文件(使用百度瀏覽器的名稱和標識)欺騙用戶安裝一個新的應用程序(如圖三所示)。

Image

  微軟版本

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

t2.PNG

  關于微軟版本的收集傳輸個人數據功能,我們發現了以下幾個安全缺陷:

A.輸入地址欄時泄露地址欄內容

和安卓版本類似,當用戶在地址欄輸入文本來搜索時,該文本會以HTTP GET請求的形式不加密地發送給這個URL:http://uil.cbs.baidu.com/sug/rich ,地址欄內容會存儲在wd參數值中。

B.以一種易破解的協定和百度服務器通信

我們還觀察到,在應用程序啟動和瀏覽時,百度瀏覽器會向 *.br.baidu.comdomain的各子域發送多個HTTP POST請求。這些POST請求的主體始終堅持以這種特定的形式:標題加上加密的有效負載。標題是沒加密的兩個字符串。第一個是瀏覽器的GUID,這是這些參數的哈希值:

1、硬盤序列號

2、硬盤型號

3、硬盤控制器版本

4、網絡MAC地址

5、BDM字符串

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

第二個字符串是瀏覽器的SupplyID,是HKEY_LOCAL_MACHINESOFTWAREBaiduBaiduBrowserSupplyID的檢索值。這可能是與瀏覽器版本相關的注冊表。

加密的有效負載,在解密時包含使用谷歌協議緩沖區(也稱為protobuf)的序列化數據。這種數據是用一種改編的TEA密碼進行加密的,我們稱為MTEA。百度用MTEA使用的密碼模式塊是CBC的一種非標準修改,叫做MCBC。(見圖四)

Image

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

C.手機里含有每個瀏覽界面信息,包括硬件序列號

我們解密了瀏覽器發出的protobuf請求,發現這樣的請求(我們稱作Page Report請求)會發送用戶瀏覽的每個界面,包括HTTP和HTTPS界面,還有界面和用戶的下列信息:

1、界面的完整URL

2、界面的HTTP狀態代碼

3、界面的HTML標題

4、瀏覽器存儲網絡跟蹤器的域名(名叫BAIDUID)以及跟蹤器的內容(百度使用這個名稱的網絡跟蹤器)

5、機器的CPU型號

6、機器的硬盤序列號

7、文件系統序列號

8、機器的網絡MAC地址

9、瀏覽器的GUID

D.對軟件更新的不安全審查

當瀏覽器要查找更新時,會發出一個protobuf請求,我們稱之為 Update Info 請求,這是為了獲得百度瀏覽器的最新版本。加密的響應會包含最新發布的版本號、升級的描述、升級到最新版本的URL和文件的md5哈希值。這個可執行文件沒有受到任何數字簽名的保護,只在加密的請求中有md5哈希值。通過加密并發送protobuf響應,任何的中間攻擊者都可以向任何的可執行文件和其md5哈希值中發送URL,這樣會導致瀏覽器下載執行任意代碼。

Image

  E.更新域列表中的網站會觸發代理

瀏覽器啟動時,它會發送一個我們稱之為代理信息請求的protobuf請求。在解密該請求時,包括了不同資源的版本號碼,這些資源和百度自動代理的境外網站有關,這在本文的第二部分有具體的解釋。如果服務器確定這些資源中有需要更新的部分,protobuf響應中會包含資源的最新版本或是最新版本的鏈接,一起的還有新版本的MD5哈希值和用于解密的密鑰。

第二部分:國外網站代理

中國的網絡用戶面對的是世界上最嚴格的互聯網審查制度之一。在中國最有名的審查制度可能是”長城防火墻“,這是一種網頁過濾的綜合體系,阻止中國境內對禁止訪問內容的訪問。因為這種系統限制中國網絡用戶對境外網頁內容的訪問,很多用戶都在尋求方法來規避這種審查。其中一種方法就是使用國際代理,它會掩蓋和重定位網絡流向來逃避檢查。

除了中國審查制度規定對于信息的訪問限制,長城防火墻還會在跨境傳輸時表現出明顯的低效和慢速。代理服務器可以繞開這些網絡瓶頸來提高性能。

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

Image

除了可以提高性能,我們還發現這種代理可以允許訪問一些被禁止的網站,比如www.wordpress.com。

kv_auth 資源

該資源包含了不同代理服務器的信息。如果瀏覽器版本沒有更新,那么在代理請求的響應中會包含新版本。資源中含有代理域的md5哈希值,每個哈希值含有用戶名和密碼salt,這會用于計算獲得代理的用戶名和密碼,這會在之后進行解釋。

目前的列表含有13個條目;然而,因為只有哈希值,所以我們還不能用這個列表要求代理的完整目錄。

fg_pac 資源

該資源包含了測試代理網站的標準。同樣的,如果瀏覽器不是最新版本,在代理信息請求的響應中也會包含新版本的下載文件,以及該文件的md5哈希值和加密密鑰。目前提供的URL是http://dlsw.br.baidu.com/odin/201509/808996d05fb8fbb43ab4db44a5429058.e。

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

解密時,此文件是一個代理服務器自動配置或是PAC文件,里面是JAVA代碼,用來確定哪些是代理網站的,或是具體使用那個代理,以及是否用HTTP或是HTTPS與該代理服務器進行通信。

kv_report 資源

該資源用于確定是否訪問會向百度發送額外信息的代理網站。同樣的,最新的版本會包含在響應中。此資源還包含域的列表,如果查看的網頁和其中之一匹配,瀏覽器會另外發送一個加密的protobuf請求。我們在前面描述過網頁的請求,這些請求包括:

1、網頁的完整URL

2、網頁的HTTP引用字段

3、網站的IP地址

4、用來指向網頁的HTTP重定向列表

5、網頁DNS查詢時間、TCP連接時間、SSL連接時間以及完整的請求時間

6、是否使用了代理網站

分析

我們編寫了一個python腳本,該腳本會進行有身份驗證的代理并下載任意URL請求。首先,我們用它來測試百度是否會訪問 fg_pac文件之外的網站。我們發現兩個代理服務器都顯示出頁面錯誤,表明訪問受控制。我們用一個中國VPS對Alexa前100萬排行榜進行了測試,發現了46個沒有出現在fg_pac文件的額外域可以通過這兩個代理服務器訪問。

domain.PNG

第三部分:其他百度產品和第三方應用中的漏洞

為了確定百度瀏覽器中敏感信息的泄露是否會通過共享的代碼機制等方式感染到其他的百度產品,我們進行了初步調查。百度為微軟和安卓兩種版本的瀏覽器都開發了全球版,關于該版本的具體分析在下面。我們發現安卓版本瀏覽器中泄露敏感信息的這個漏洞作為分析軟件開發工具包(SDK)的一部分不僅存在于百度其他安卓產品中,還存在在大量的第三方應用中。

t5.PNG

結論

許多情況下,移動設備會在不向用戶提供任何通知的情況下生成、收集和傳輸種類繁多的個人標示符和用戶數據。關于這一主題,我們題為《The Many Identifiers in Our Pockets》的論述重點介紹了與收集傳輸標示符有關的風險。

本篇報告中提到的問題引起了人們對于百度瀏覽器用戶個人隱私安全的廣泛關注。大量的標示符和數據點都是使用易破解的加密術進行傳輸的。

如果個人數據不使用正確的加密手段傳輸,很有可能導致用戶數據遭到監視。其中可能包括用戶的ISP、無線網絡運行商等。更可怕的是,中間攻擊者解密你進行加密的通信,這種攔截會暴露你的地理位置等信息。如果用戶使用這種應用程序進行含有敏感信息的通信,那么這樣的信息泄露將會是致命的。

人們對于百度收集存儲用戶數據的方式也產生了一定的質疑。向百度這樣提供網絡服務的大公司,需要遵循中國法律來保護數據的。網絡公司通常是收集這些數據來進行更有效的日常服務的,那為什么百度瀏覽器會收集傳輸如此大量的敏感數據點?這還不得而知。

除了會泄露用戶敏感信息之外,兩種版本的瀏覽器都沒有使用代碼簽名,這允許攻擊者強制應用程序下載執行任意代碼。

與百度的交涉

我們在2016年2月16日像百度發送了信件,告知百度我們確定的額外安全漏洞,并且說明我們會公開他們的回復。

百度在2月22日做出了相關回應。

關鍵字:瀏覽器安全哈希值谷歌

本文摘自:FreeBuf.COM

x 百度瀏覽器的隱私安全問題分析 掃一掃
分享本文到朋友圈
當前位置:安全企業動態 → 正文

百度瀏覽器的隱私安全問題分析

責任編輯:editor005 作者:極客小默 |來源:企業網D1Net  2016-02-29 14:18:28 本文摘自:FreeBuf.COM

主要發現  

百度瀏覽器是微軟和安卓平臺上的一種網絡瀏覽器,個人用戶在向服務器傳輸數據時進行加密,就算加密了也很容易被解密。瀏覽器更新時可能很輕易地被中間攻擊者利用,執行任意代碼。

安卓版本的百度瀏覽器傳輸的個人可識別數據,包括用戶的GPS坐標、搜索內容和訪問時的URL,這些內容都是沒有進行加密的。不僅如此,在傳輸用戶的IMEI和附近無線網絡列表時也只是使用了簡單、易于破解的加密。

Windows版的百度瀏覽器在傳輸個人可識別數據點的時候也沒有進行加密,或者是進行了簡單的加密。這些數據包括了用戶的搜索詞、硬盤序列號模型、MAC網絡地址、URL和訪問歷史,還有CPU型號。

無論是Windows版還是安卓版的百度,都沒有使用代碼簽名來保護軟件更新,提高其安全性,也就是說,更新路徑上隨便一個惡意攻擊者都可以讓該應用程序下載執行任意代碼,這是一個重大的安全風險。

微軟版本的百度瀏覽器有一個功能:可以將一個請求轉向特定的網站,這就允許用戶可以訪問一些在中國被墻的網站。

對百度的全球版本進行分析之后發現,數據泄露是因為百度共享了它的軟件開發工具包(SDK),這影響了數百個由百度和谷歌應用商店的第三方共同開發的應用程序,以及中國某個廣泛使用的應用商店里的數千個應用。

介紹

百度瀏覽器是由中國最大的科技公司百度公司開發的,向Windows和安卓平臺免費提供。它提供的功能不僅僅是一般瀏覽器的功能,包括了視頻音頻下載工具和內置的種子下載。

本篇報告針對百度瀏覽器在操作過程中是如何管理和傳輸用戶數據做出了詳細的分析。報告指出,Windows和安卓版本的百度瀏覽器都有著一定的安全隱患,都有可能泄露個人用戶數據,包括用戶地理位置、硬件標示符、附近的無線網絡、網頁瀏覽數據和搜索詞。這些數據的傳輸在兩種版本的瀏覽器中都沒有進行加密或是進行了簡單的加密,這也就是說,任何攻擊者都可以通過手機路徑并進行一定的解密手段來獲得此類數據。此外,兩種版本的應用都沒有使用數字簽名來保護其軟件更新,這就意味著惡意攻擊者可以讓瀏覽器下載并執行任意代碼。

這份報告是我們之前工作的延續,在此之前我們已經審查了在亞洲流行的移動應用程序的安全和隱私狀況。我們之前的研究報告就發現UC瀏覽器有著類似的問題,這個瀏覽器是由中國電子商務巨頭阿里巴巴公司開發的。那份報告記錄了UC瀏覽器對于用戶的敏感信息沒有進行加密傳輸,這些信息包括了IMSI、IMEI、安卓ID、無線網絡MAC地址、地理定位數據和用戶的搜索查詢。UC瀏覽器的安全問題是在 Edward Snowden 泄露出來的文件中確定的,該組織是五眼情報聯盟,包括了加拿大、美國、英國、澳大利亞和新西蘭的情報機構,他們就是利用這些漏洞來識別用戶的。

在過去的工作中,我們已經分析了熱門的第三方軟件的自動更新機制。我們發現攻擊者利用百度瀏覽器自動更新機制來進行遠程代碼執行的漏洞和那些第三方軟件的漏洞很是相似。

此外,我們也對TOM-Skype和新浪UC信息平臺的關鍵字審查進行了調查,不僅如此,我們還對亞洲流行的手機聊天應用程序進行了比較分析,比如微信、LINE和Kakao Talk。

我們還發布了一份關于移動通信隱私安全問題的概述,標題叫做《 The Many Identifiers in Our Pockets》。對于本篇報告中的一些技術問題來說,那份概述中關于移動技術標示符的說明是個很好的背景介紹。另外,我們還在 OpenEffect上發表了一篇關于健身追蹤器上隱私和安全問題的分析。

負責任的披露和通知

我們在2015年10月26日向百度通知了我們的發現和我們發表這份報告的意圖。我們表示不會按照國際對于披露漏洞的慣例在刊登前45天通知。百度最初表示會在2016年1月24日發布的更新中解決我們所確定的問題。然而百度發現這些安全問題已經影響了其他的產品,所以他們要求我們推遲到2016年2月14日之后再發表。為了給百度足夠的時間來修復所有漏洞,我們同意了。

在這之后,百度表示他們會在2月14日發布Windows和安卓客戶端的更新版本。為了確定他們真的解決了問題,我們對兩種更新版本進行了分析。分析結果在報告結尾部分的“更新:對百度最新版本的分析”。

我們在2月16日向百度的國際通信主任發送了一封關于百度瀏覽器安全隱私問題的電子郵件,22日我們收到了回復。

在本報告的結尾附錄有我們和百度關于這些安全問題交涉的所有信件。

百度瀏覽器:簡單背景介紹

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

作為中國占主導地位的高科技公司之一,加上沒有來自被屏蔽的谷歌搜索引擎的競爭壓力,百度已經成為了中國最常用的搜索引擎。在世界范圍網頁訪問量排名的Alexa名單上,百度排名第四,在中國排名第一。公司2014年的收入是79.6億美金。

2014年7月,百度和互聯網流量管理公司CloudFlare建立了合作,該公司總部設在美國。二者達成合作,利用百度公司的數據中心和CloudFlare的流量管理服務來提供中國網站的訪問速度。這項服務被稱為百度云加速,主要針對希望加快在中國效率低下、審查嚴苛的網絡中運行速度的企業。本報告的第二部分將介紹了百度瀏覽器的另一個功能,即對境外特定網站的流量進行代理來提高性能。

技術分析

我們使用逆向工程技術分析了兩種版本的百度瀏覽器。為了分析程序行為,我們使用了機器碼、字節碼反匯編程序、反編譯器和調試器,包括了JD、JADX和IDA。我們還使用了 tcpdump和Wireshark來捕獲分析網絡流量。

分析分為三部分。第一部分介紹了兩種版本的中文版百度瀏覽器是如何向百度服務器發送未加密或是易破解個人信息的。第二部分描述了百度瀏覽器Windows中文版的一種特別功能,即對境外特定網站的流量進行代理來提高性能。第三部分討論了中文版和全球版共有的漏洞,以及有多少漏洞是因為百度軟件開發工具包的使用,在其他百度或是第三方應用中都可以找到該工具包。

易破解的加密

報告中,在談到百度瀏覽器使用的加密的時候我們會用到“易破解”這個短語。在這里,我們來討論一下我們所說的這句話,以及如何正確執行百度瀏覽器的加密術。

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

Image

加密數據有兩種基本方法:對稱加密或是非對稱加密。對稱加密(如圖一所示)相比于非對稱加密的優點是加密速度快。缺點就是只要你知道使用的算法和某個鍵,你就能破解任意的密碼。利用簡單的算法,做到這點易如反掌。當加密術只使用了對稱算法的時候,只要對程序稍加分析就可以寫出一個破解工具來。

Image

像RSA這樣的非對稱算法(如圖二所示)就是被開發來解決這一問題的。雖然這種算法明顯慢于對稱算法,但優勢就是用于解密的密鑰不同于加密密鑰。這兩個密鑰必須是數學相關的,通過算法設計生成一個密鑰對,但是從加密密鑰到解密密鑰的派生過程要通過復雜的計算。這就意味著一個程序可以使用一個硬編碼的加密密鑰,但是解密密鑰只能保存在收件人那里。雖然數據接收方可以使用保密的解密密鑰,但數據仍有可能被竊取,只要解密密鑰存在于程序當中,第三方就有可能寫出破解工具。

為了改善性能劣勢的非對稱加密,通常會使用結合了以下技術的對稱加密。要想對數據進行加密,會隨機生成一對對稱密鑰來加密數據。然后會使用非對稱密鑰來加密隨機生成的加密密鑰。之后被非對稱加密的對稱密鑰和被對稱加密的數據會一起發送給收件人。收件人可以使用私人的解密密鑰來解密對稱密鑰,然后再用它來解密數據。因為只有加密密鑰是被非對稱加密的,其存儲空間遠小于整個數據,所以這項技術要遠快于非對稱加密所有數據,因此是結合了兩種加密技術的優點。這是網絡上使用的加密術的基本技術,比如SSL。

我們之所以說百度瀏覽器的加密是易破解的,是因為它使用的加密完全是硬編碼編寫的對稱密鑰。使用這種辦法加密的通信很容易被破解。我們建議百度或是任何希望通過互聯網安全發送敏感信息的人使用一個知名并且行之有效的協議來使用非對稱加密技術(比如SSL),也不要試圖自制加密協議。SSL是經得起考驗的協議,解決了許多非專業譯電員認為不可能解決的安全問題。

第一部分:個人信息的不安全傳送

安卓版本

我們分析了6.2.18.0版本的瀏覽器,這是從 http://mb.baidu.com/ 下載的。關于不安全的個人信息傳送,我們還是發現了一些隱私安全問題。表1總結了通過該應用收集加密或易加密傳送的個人數據。

t1.PNG

  關于安卓版本的收集傳輸個人數據功能,我們發現了以下幾個安全缺陷:

A.啟動時泄露敏感數據

在應用程序啟動時,我們觀察到百度瀏覽器向https://hmma.baidu.com/app.gif 發送的HTTP POST 請求。這個HTTP請求的正文是一個壓縮的JSON文件。該文件包含了電話和用戶的多種細節,有的是純文本,有的是加密的。

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

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

n:百度瀏覽器版本

w, h:屏幕像素

Gl:GPS位置和最近更新時間

有的字段是用硬編碼ASCII編碼鍵的AES+ECB進行加密的

h9YLQoINGWyOBYYk

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

Dd:IMEI編號

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

Wl2:范圍內所有無線網絡列表以及它們的MAC地址和信號強度。

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

B.鍵入地址欄時泄露敏感數據和地址欄內容

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

比如說,在地址欄中鍵入這樣的文本“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參數包括:

Wd:地址欄內容

Ua:屏幕分辨率、手機型號、安卓版本和百度版本

Cuid:安卓版本信息的md5哈希值和手機IMEI號倒序的字符串

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

qogjOuCRNkfil5p4SQ3LAmxGKZTdesvB6z_YPahMI9t80rJyHW1DEwFbc7nUVX2-

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

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

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

C.手機包含了每個頁面視圖中的敏感數據

在瀏覽器瀏覽了某個頁面后,會有一個GET請求被發送到這個URL:http://t5.baidu.com/kw

這個 HTTP Referer 標題包含了訪問過網頁的完整URL,并且沒有加密。即便是通過HTTPS進行了常規加密,報告發現其實并沒有加密。其 etag GET 參數值是使用有ASCII編碼的五位字節密鑰的RC4進行加密的:HR2ER

進行加密時,標簽包含了許多其他的參數,比如說cuid(含有手機IMEI的倒序值)和許多時間信息(加載網頁所需時間和步驟,包括DNS查找、創建鏈接和加載DOM)。

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

當應用想要檢查更新時,就會發送一個HTTP請求給這個URL:

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

這項請求含有多項GEL參數,包括上一節提到的被加密的ua和cuid參數。服務器以一種未加密,但是被zlib壓縮的自定義二進制格式進行響應。如果有可用的更新,服務器會在響應中包含對更新的描述以及一個APK的URL。百度瀏覽器會顯示這個描述,并詢問用戶是否需要進行升級。如果用戶確認升級,APK文件會進行下載并自動打開,通過典型的安卓用戶安裝或升級應用的界面進行提示。(如圖三)

百度沒有用任何的數字簽名驗證APK文件,所以中間攻擊者就可以通過發送特別編寫的響應來實施有效攻擊。中間攻擊者可以發送任意URL給任意的APK文件,然后這個文件和相關描述還是會被呈現給用戶。如果APK文件擁有的數字簽名和當前安裝的應用不符,那么安卓系統不會允許這種文件來升級應用。所以不能用這種技術來用任意的APK文件替換百度瀏覽器。但是仍舊可以用一個不同的惡意APK文件(使用百度瀏覽器的名稱和標識)欺騙用戶安裝一個新的應用程序(如圖三所示)。

Image

  微軟版本

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

t2.PNG

  關于微軟版本的收集傳輸個人數據功能,我們發現了以下幾個安全缺陷:

A.輸入地址欄時泄露地址欄內容

和安卓版本類似,當用戶在地址欄輸入文本來搜索時,該文本會以HTTP GET請求的形式不加密地發送給這個URL:http://uil.cbs.baidu.com/sug/rich ,地址欄內容會存儲在wd參數值中。

B.以一種易破解的協定和百度服務器通信

我們還觀察到,在應用程序啟動和瀏覽時,百度瀏覽器會向 *.br.baidu.comdomain的各子域發送多個HTTP POST請求。這些POST請求的主體始終堅持以這種特定的形式:標題加上加密的有效負載。標題是沒加密的兩個字符串。第一個是瀏覽器的GUID,這是這些參數的哈希值:

1、硬盤序列號

2、硬盤型號

3、硬盤控制器版本

4、網絡MAC地址

5、BDM字符串

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

第二個字符串是瀏覽器的SupplyID,是HKEY_LOCAL_MACHINESOFTWAREBaiduBaiduBrowserSupplyID的檢索值。這可能是與瀏覽器版本相關的注冊表。

加密的有效負載,在解密時包含使用谷歌協議緩沖區(也稱為protobuf)的序列化數據。這種數據是用一種改編的TEA密碼進行加密的,我們稱為MTEA。百度用MTEA使用的密碼模式塊是CBC的一種非標準修改,叫做MCBC。(見圖四)

Image

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

C.手機里含有每個瀏覽界面信息,包括硬件序列號

我們解密了瀏覽器發出的protobuf請求,發現這樣的請求(我們稱作Page Report請求)會發送用戶瀏覽的每個界面,包括HTTP和HTTPS界面,還有界面和用戶的下列信息:

1、界面的完整URL

2、界面的HTTP狀態代碼

3、界面的HTML標題

4、瀏覽器存儲網絡跟蹤器的域名(名叫BAIDUID)以及跟蹤器的內容(百度使用這個名稱的網絡跟蹤器)

5、機器的CPU型號

6、機器的硬盤序列號

7、文件系統序列號

8、機器的網絡MAC地址

9、瀏覽器的GUID

D.對軟件更新的不安全審查

當瀏覽器要查找更新時,會發出一個protobuf請求,我們稱之為 Update Info 請求,這是為了獲得百度瀏覽器的最新版本。加密的響應會包含最新發布的版本號、升級的描述、升級到最新版本的URL和文件的md5哈希值。這個可執行文件沒有受到任何數字簽名的保護,只在加密的請求中有md5哈希值。通過加密并發送protobuf響應,任何的中間攻擊者都可以向任何的可執行文件和其md5哈希值中發送URL,這樣會導致瀏覽器下載執行任意代碼。

Image

  E.更新域列表中的網站會觸發代理

瀏覽器啟動時,它會發送一個我們稱之為代理信息請求的protobuf請求。在解密該請求時,包括了不同資源的版本號碼,這些資源和百度自動代理的境外網站有關,這在本文的第二部分有具體的解釋。如果服務器確定這些資源中有需要更新的部分,protobuf響應中會包含資源的最新版本或是最新版本的鏈接,一起的還有新版本的MD5哈希值和用于解密的密鑰。

第二部分:國外網站代理

中國的網絡用戶面對的是世界上最嚴格的互聯網審查制度之一。在中國最有名的審查制度可能是”長城防火墻“,這是一種網頁過濾的綜合體系,阻止中國境內對禁止訪問內容的訪問。因為這種系統限制中國網絡用戶對境外網頁內容的訪問,很多用戶都在尋求方法來規避這種審查。其中一種方法就是使用國際代理,它會掩蓋和重定位網絡流向來逃避檢查。

除了中國審查制度規定對于信息的訪問限制,長城防火墻還會在跨境傳輸時表現出明顯的低效和慢速。代理服務器可以繞開這些網絡瓶頸來提高性能。

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

Image

除了可以提高性能,我們還發現這種代理可以允許訪問一些被禁止的網站,比如www.wordpress.com。

kv_auth 資源

該資源包含了不同代理服務器的信息。如果瀏覽器版本沒有更新,那么在代理請求的響應中會包含新版本。資源中含有代理域的md5哈希值,每個哈希值含有用戶名和密碼salt,這會用于計算獲得代理的用戶名和密碼,這會在之后進行解釋。

目前的列表含有13個條目;然而,因為只有哈希值,所以我們還不能用這個列表要求代理的完整目錄。

fg_pac 資源

該資源包含了測試代理網站的標準。同樣的,如果瀏覽器不是最新版本,在代理信息請求的響應中也會包含新版本的下載文件,以及該文件的md5哈希值和加密密鑰。目前提供的URL是http://dlsw.br.baidu.com/odin/201509/808996d05fb8fbb43ab4db44a5429058.e。

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

解密時,此文件是一個代理服務器自動配置或是PAC文件,里面是JAVA代碼,用來確定哪些是代理網站的,或是具體使用那個代理,以及是否用HTTP或是HTTPS與該代理服務器進行通信。

kv_report 資源

該資源用于確定是否訪問會向百度發送額外信息的代理網站。同樣的,最新的版本會包含在響應中。此資源還包含域的列表,如果查看的網頁和其中之一匹配,瀏覽器會另外發送一個加密的protobuf請求。我們在前面描述過網頁的請求,這些請求包括:

1、網頁的完整URL

2、網頁的HTTP引用字段

3、網站的IP地址

4、用來指向網頁的HTTP重定向列表

5、網頁DNS查詢時間、TCP連接時間、SSL連接時間以及完整的請求時間

6、是否使用了代理網站

分析

我們編寫了一個python腳本,該腳本會進行有身份驗證的代理并下載任意URL請求。首先,我們用它來測試百度是否會訪問 fg_pac文件之外的網站。我們發現兩個代理服務器都顯示出頁面錯誤,表明訪問受控制。我們用一個中國VPS對Alexa前100萬排行榜進行了測試,發現了46個沒有出現在fg_pac文件的額外域可以通過這兩個代理服務器訪問。

domain.PNG

第三部分:其他百度產品和第三方應用中的漏洞

為了確定百度瀏覽器中敏感信息的泄露是否會通過共享的代碼機制等方式感染到其他的百度產品,我們進行了初步調查。百度為微軟和安卓兩種版本的瀏覽器都開發了全球版,關于該版本的具體分析在下面。我們發現安卓版本瀏覽器中泄露敏感信息的這個漏洞作為分析軟件開發工具包(SDK)的一部分不僅存在于百度其他安卓產品中,還存在在大量的第三方應用中。

t5.PNG

結論

許多情況下,移動設備會在不向用戶提供任何通知的情況下生成、收集和傳輸種類繁多的個人標示符和用戶數據。關于這一主題,我們題為《The Many Identifiers in Our Pockets》的論述重點介紹了與收集傳輸標示符有關的風險。

本篇報告中提到的問題引起了人們對于百度瀏覽器用戶個人隱私安全的廣泛關注。大量的標示符和數據點都是使用易破解的加密術進行傳輸的。

如果個人數據不使用正確的加密手段傳輸,很有可能導致用戶數據遭到監視。其中可能包括用戶的ISP、無線網絡運行商等。更可怕的是,中間攻擊者解密你進行加密的通信,這種攔截會暴露你的地理位置等信息。如果用戶使用這種應用程序進行含有敏感信息的通信,那么這樣的信息泄露將會是致命的。

人們對于百度收集存儲用戶數據的方式也產生了一定的質疑。向百度這樣提供網絡服務的大公司,需要遵循中國法律來保護數據的。網絡公司通常是收集這些數據來進行更有效的日常服務的,那為什么百度瀏覽器會收集傳輸如此大量的敏感數據點?這還不得而知。

除了會泄露用戶敏感信息之外,兩種版本的瀏覽器都沒有使用代碼簽名,這允許攻擊者強制應用程序下載執行任意代碼。

與百度的交涉

我們在2016年2月16日像百度發送了信件,告知百度我們確定的額外安全漏洞,并且說明我們會公開他們的回復。

百度在2月22日做出了相關回應。

關鍵字:瀏覽器安全哈希值谷歌

本文摘自:FreeBuf.COM

電子周刊
回到頂部

關于我們聯系我們版權聲明隱私條款廣告服務友情鏈接投稿中心招賢納士

企業網版權所有 ©2010-2024 京ICP備09108050號-6 京公網安備 11010502049343號

^
  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 乌兰县| 烟台市| 隆德县| 遵义县| 灵丘县| 西乡县| 迁西县| 抚州市| 新宁县| 留坝县| 平顶山市| 腾冲县| 靖远县| 屯门区| 建瓯市| 息烽县| 深州市| 夏邑县| 浏阳市| 喀喇沁旗| 浏阳市| 恩平市| 马龙县| 仁布县| 吉木萨尔县| 明水县| 翁牛特旗| 凌源市| 周至县| 商水县| 涟水县| 图木舒克市| 桐城市| 拉萨市| 吉安市| 津市市| 遵义市| 墨脱县| 汤原县| 浮梁县| 宜丰县|