如何判斷我使用的手機瀏覽器是否有安全隱患?
剛從黑莓換到了安卓,個人也算是重度依賴手機上網,瀏覽器這種東西基本是訪問網站的主要入口,看起來病毒和黑客應該很多都會在這方面下手。那麼……怎麼判斷我的手機瀏覽器是不是有隱患或者夠安全?謝謝。
瀏覽器安全其實是一個非常複雜的問題。 很大程度上是由瀏覽器自身的定位決定的, 試想一下,一個擁有幾乎所有系統訪問許可權的APP ( 拜device API所賜, 瀏覽器需要訪問諸如攝像頭,麥克風等很多敏感才能支持這組API), 居然需要從魚龍混雜的互聯網下載不知道誰寫的頁面+腳本然後本地執行,並且要保證執行的腳本不該看的不看,不該拿的不拿。
事實上,第一批瀏覽器, 比如 Internet Explorer, Opera, Firefox (Netscape), 在最初的設計的時候,都沒有能預見到互聯網會以如此爆發性的速度發展, 同時也受制於硬體條件的限制, 無一例外的採用單塊結構(monolithic architecture). 所謂的單塊結構,就是瀏覽器的每個模塊,都塞在一起,而沒有明確的隔離。 這種做法代碼執行高效,寫起來也很方便,不過現在看起來, 如果從安全的角度來講,則是很有問題的。
現代的瀏覽器, 比如谷歌的Chromium, 或者使用Chromium框架的瀏覽器, Opera 桌面(版本12以後) 和 Opera mobile 一類的, 都是採用的這種結構,基本上可以把很多潛在的安全風險扼殺在搖籃之中。
想了解詳情的同學可以參考 http://seclab.stanford.edu/websec/chromium/chromium-security-architecture.pdf
在這種比較乾淨的架構出來之前,各家瀏覽器基本上都是修修補補, 或者直接就是拿產品特性說事兒,比如Firefox說明自己比較安全的原因基本上是 : 我的獨立(沒有和操作系統集成), 也不像IE一樣往死里做(不支持Active X 插件一類的奇葩東西)參見
Security Announcement
而Opera 在Presto 時代, 則在內部的代碼規範裡面明確規定任何情況下不能是用棧上緩存,從而杜絕當年極其流行的棧上緩存溢出攻擊。
到了手機瀏覽器時代,硬體和操作系統本身的安全性都加強了。 硬體方面從x86轉到arm, 天生就對棧上緩存溢出免疫。 基於*nix 結構的iOS 和Android 自帶沙箱結構,於是瀏覽器本身也被沙箱裝了起來. 所以技術上來講,由於多了兩層壁壘,手機瀏覽器普遍要比桌面瀏覽器安全, 桌面瀏覽器上的那種首頁書籤搜索引擎各種被亂七八糟改的情況在手機瀏覽器上面基本看不到。 當然,國內大部分的手機瀏覽器還是單塊結構,單塊結構能有的問題一個也都沒有少。 Chrome/Opera mobile/ 歐朋X+ 這種基於Chromium 架構的瀏覽器安全性相對來講會好一些 .
所以選擇一個安全的手機瀏覽器其實沒有那麼複雜,國際一般比國內的在安全方面的意識要強一些。大牌一點的瀏覽器在遇到通用性安全漏洞時 (比如上次著名的heart bleed漏洞)反應時間比小的瀏覽器廠商會快一些。
瀏覽器和網站之間的數據傳輸
上面說談的其實講的都是瀏覽器如何面對網站上面的惡意代碼保證自己不被黑掉。瀏覽器還有一塊非常大的安全區域是在於數據傳輸. 比如大家都不希望自己的銀行密碼被除了網上銀行之外的其他人看到。
3.15晚會裡面的wifi釣魚演示其實就是展示數據傳輸中數據被第三方竊取的可能性,這個可能是陳老濕們最不願意看到的事情。瀏覽器的世界裡面對於數據傳輸有兩種主要的方式
其中 HTTP 與其說是不安全,不如說是令人髮指的不安全。因為 HTTP 不僅僅是明文傳輸,而且是用文本來傳輸的,就是說,傳輸的報文,直接人就可以讀得懂。
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
這個是在HTTP裡面發送給伺服器用戶名+密碼的報文( 來自於wikipedia ) . 基本就是明晃晃的告訴別人,你看, 我的密碼在這裡哦,然後拿base64編了一下碼,就發將在廣袤的互聯網上了。注意哦, 這個是編碼不是加密,沒有任何安全性可言的。
當然 BOSS 級別的 NSA 不在此列, 因為HTTPS 雖然理論上不能破解,但是NSA喪心病狂的在HTTPS用的硬體隨機發生器中植入了後門
詳情參見 Bullrun (decryption program)
有一些瀏覽器。 比如 Opera Mini 或者帶有 Opera turbo 技術的瀏覽器 提供端到端的私有加密。這一類的瀏覽器在安全性方面會有加分。
PS: 關於國內瀏覽器採集用戶隱私數據問題(IMEI, IMSI)等。
多說兩句這個, 作為國內App的從業人員,App(包括瀏覽器)採集IMEI, IMSI已經是一個非常普遍的現象,事實上,你其實很難找到不採集的APP, 想要知道一個APP是否採集IMEI, IMSI,只需要打開應用的許可權管理,看看有沒有這一項就可以了。
當然地理位置數據採集就更普遍了,瀏覽器採集這個其實很大程度上是為了支持HTML5 中的Geolocation 組件。Chrome 也會採集。
利益相關:Opera 軟體開發工程師。
首先,你的手機瀏覽器幾乎一定有安全隱患。因為迄今為止,手機瀏覽器的安全隱患一直被不斷地在被發現出來,且尚未有停止的趨勢。
其次,判斷你的手機瀏覽器是否有安全隱患,需要有一定天分的人經過多年訓練才能做到,你沒法判斷。頂一下羅志宇的回答,順便也發表一下自己的理解。
== 分割線 ==
瀏覽器的安全問題確實是一個複雜的問題,評價一個瀏覽器是否安全也要從多個角度來看。
瀏覽器為什麼會有安全漏洞
任何瀏覽器作為一個應用程序,除了複雜度更高之外,本質上與系統中運行的其他應用程序沒有區別。在 Windows 上,IE 可能是除了Office 組件之外最複雜的應用程序。相比其他應用程序,之所以瀏覽器的安全問題更多並且更受關注是因為兩個原因:
- 用戶使用更廣泛,頻率更高
- 輸入的不確定性,導致可攻擊表面(attaching surface)更大
第一點不需要解釋;第二點舉例來講,微軟在任何軟體的設計階段都要做 Threat Modeling (http://www.microsoft.com/en-us/sdl/adopt/threatmodeling.aspx), 就是將軟體的設計分解成模塊,然後列舉出所有的用戶輸入,數據輸入,數據存儲等等動作,針對每一種動作分析潛在的被不同種類攻擊的可能性;分析完成之後,設計人員要對每一個潛在給出一個解決方案,諸如在數據流兩端的模塊中都做數據加密以避免用戶隱私泄露等等。而對於IE 的 threat modeling 工作是沒有太大意義的,網站數據流通過HTTP stack 的隱患可以輕易的解決,但到達引擎的 parser 模塊後,因為網站內容的不確定性,就沒有簡單而統一的辦法可以事先預防安全隱患了。
Office 組件雖然比 IE 更複雜,但是因為其輸入格式的確定性,其安全漏洞數遠小於瀏覽器(Outlook 打開 HTML 信件時發生的安全問題本質上還是瀏覽器的安全問題)。
不同瀏覽器之間或者同一瀏覽器的不同版本之間,因為設計的區別,在脆弱性上也可能有明顯的差別;比如,IE 對 ActiveX的支持是導致其安全問題的一大原因,IE7 以後引入的對ActiveX 簽名校驗的機制也一定程度上使IE7 在 ActiveX 上相比 IE6 更安全;同樣的,IE9 引入的 ActiveX 過濾機制又使其比之前的 IE 版本更安全。
安全漏洞是如何被發現的
對於任何瀏覽器廠商來說,安全問題都是重中之重,任何一個瀏覽器的任何版本發布之前,廠商都會盡最大努力發現漏洞並修復;一旦瀏覽器發布到了用戶手上之後發現安全漏洞,其解決成本將是在開發階段解決的成百上千倍。因此,瀏覽器發布之前,測試團隊一定會對瀏覽器進行專項的安全測試。這其中包括但是不限於:
- 前面提到的 Threat Modeling (僅限微軟)
- 靜態/動態代碼掃描,發現不安全的編程pattern
- fuzzing 測試,模擬用戶的各種不確定輸入
- 已知安全問題的回歸測試
- 對發現的任何其他類型的 bug 進行安全評估
- 其他
除了產品開發和測試團隊之外,大公司往往還有專門的安全團隊;安全團隊會對產品進行持續的各種變態的安全測試。安全團隊的工程師因為長期戰鬥在安全工作的前線,因此都有靈敏的安全嗅覺,熟知各種最新的攻擊手段。其實,安全團隊的成員不僅僅在自己產品中尋找安全漏洞,他們也會測試競爭對手的產品並尋找安全問題;當然,發現競爭對手產品的問題後會按照行業慣例彙報給對方。
當然,大部分的安全漏洞都是來自於獨立黑客或者第三方的安全工作室。這些人有些純粹是出於愛好,但大部分是出於利益驅動,有些人甚至是以此為生。這些人大都擁有大公司安全團隊的專業技能,甚至是更勝一籌。他們全職對各種軟體進行分析,破解,尋找可能的漏洞。漏洞被發現以後,一般來講會首先流向相應的廠商(例如,IE的漏洞會通知微軟的安全團隊),然後流向市場,再然後,在約定時限到達之後,信息會公開給普通大眾。這裡面具體的細節我不是很清楚,但是據說這是一個相當成熟而且有利可圖的市場。
廠商如何對待安全漏洞
攻擊是最好的防守,與其等安全漏洞被爆出來再去修,不如從源頭上杜絕,所以各個瀏覽器廠商都在想進辦法改進自家瀏覽器架構與實現機制,Chromium 的沙箱機制,Opera 禁止使用棧上緩存等都是很好的例子。
拿 IE 來講,近期的一些改進也值得關注。最引人注目的莫過於 Microsoft Edge ( 在 Windows 10 上取代 IE 的新瀏覽器)完全拋棄 ActiveX (大快人心!)。
其他的諸如 isolated heap (Isolated Heap for Internet Explorer Helps Mitigate Exploit) 和 memory protector (Mitigating UAF Exploits with Delay Free for Internet Explorer) 都從內部機制上使得 UAF (Use-After-Free) 類的漏洞更難發生。
針對已經發生的安全漏洞, 前面講過,任何 security bug 對於廠商來說都是 P0, 優先順序高於任何其他 bug. 程序員一定是會在第一時間內修好(請注意,security bug 本身屬於高度機密,想像一下,在壞人知道這個漏洞之前,你已經知道了如何去做,因為你有這個bug 的重現步驟甚至是一個dump ... 高度機密,我不多說了:));然而修復何時能發布到用戶的手上則是另一個問題了。
這裡不得不講一下 IE 和其他瀏覽器的區別。IE 引擎幾乎可以說是操作系統的一部分,除了瀏覽器這個應用程序使用它之外,WWA 也用它作為渲染引擎,同時還有很多其他第一方和第三方的應用程序使用 IE 引擎提供的各種不同級別的介面;這也直接導致了 IE 引擎的更新直接受限於操作系統的更新周期(這也是為什麼之前 IE 的大版本更新永遠是跟著 Windows 的大版本更新),現在的情況一般來講是每個月的第二個周二補丁日的時候,IE 引擎的安全補丁會隨著發布,而且,一旦系統更新包含 IE 引擎更新的話,那麼幾乎必然需要重啟系統才生效。
反觀其他瀏覽器如 Chrome, 沒有任何系統組件對其有依賴性,Google 可以隨時發布新版本,瀏覽器重啟之後新版本馬上生效。
除了更新周期的問題外,IE 還有另外一個問題也影響其發布安全漏洞補丁的及時性,那就是版本的分化,IE 現在官方還需要支持的版本有 IE7, IE8, IE9, IE10, IE11; 雖然官方已經宣布 IE6 的支持已經終結,但是事實上,對於某些付費支持的企業用戶,IE6 on Windows Server 2003 仍然需要支持。這也就意味著,當一個安全漏洞報給微軟之後,微軟的工程師需要分別在IE6, IE7, IE8, IE9, IE10, IE11 上檢驗,重現後修復,然後再在更多的版本(有些IE 版本是跑在多個版本的 Windows 上的)上進行回歸測試。所以往往代碼的修改是簡單的,但是要完成全套的發布流程確實及其耗時耗力的。
其他瀏覽器如 Chrome, Firefox, 無論在任何操作系統上,永遠都是最新版本覆蓋老版本;新版本發布的幾天之內幾乎 99% 的用戶(另外1%的用戶可能沒開機或者沒聯網)就已經運行新的版本了;也意味著安全修復只需關注最新的版本就可以了,修好之後直接發布一個更新的版本就行了。
由此可見,IE 在發布安全補丁上處於一個很不利的位置。這不僅引起了用戶的抱怨,還曾經發生過下面的故事。Google 安全團隊給IE 彙報了一個安全漏洞,規定時限到達後,微軟還沒有完成發布(在接下來的周二發布),然後Google 自動將這個漏洞公開,導致了網上雙方支持者的罵戰,看下面鏈接的評論:
https://code.google.com/p/google-security-research/issues/detail?id=118
說到這裡,就不得不說一下 Microsoft Edge (Project Spartan), Windows 10 裡面的新瀏覽器,較老 IE 的區別之一是把 Microsoft Edge 作為 store app, 我想這麼做的一大驅動力就是縮短更新周期,store app 將不存在系統組件依賴性以及版本分化的問題。在更新周期上完全可以做到和其他瀏覽器同等水平。可以想像,安全問題上,至少補丁更新周期的差距將得到彌補。
說了這麼多,大都是背景知識。回到題主的問題,如何判斷我的瀏覽器是否有安全隱患,我的意見也是,大廠品牌瀏覽器的最新版本,那麼我們認為安全隱患是相對最低的。舊版本或者第三方的瀏覽器,相對來說存在安全隱患的機會要大很多。
很難有人完全客觀地給出每款瀏覽器的最新安全隱患分析,但是你可以到這個網站看看瀏覽器的安全記錄。雖然國人講究既往不咎,但是基本還是可以從這個產品過去的情況,看出他在安全上下了多少工夫。
CVE(公共漏洞和暴露)系統是一個由美國網路安全部門資助的網站,在這裡收錄了為公眾廣泛認同的信息安全漏洞或者已經暴露出來的弱點。這裡同樣收錄了主流的瀏覽器在過去數年內的已知漏洞記錄。
瀏覽器常見的漏洞種類不少,但是最嚴重的屬於「Code Execution」遠程代碼執行漏洞,這種漏洞一旦觸發這也就意味著你的電腦可以被惡意控制。那我們來看下主流瀏覽器在CVE上面的漏洞記錄。(後面附圖片)基本看來下,2007年到現在,漏洞出現總數最多的是排序依次是:Chrome(1000+)大於 IE(548) 大於 Safari (532)大於Opera(217)但是Code Execution 漏洞來看的話,IE(471)大於 Safari(323)大於Chrome(72)大於Opera(29) 所以從過往安全記錄來看,你的瀏覽器是否夠安全,應該也基本可以做出一個判斷了。附截圖及鏈接:http://www.cvedetails.com/product/9900/Microsoft-Internet-Explorer.html?vendor_id=26
http://www.cvedetails.com/product/2935/Apple-Safari.html?vendor_id=49http://www.cvedetails.com/product/15031/Google-Chrome.html?vendor_id=1224http://www.cvedetails.com/product/15008/Opera-Opera-Browser.html?vendor_id=1961
作為普通用戶,不要操心用什麼亂七八糟的指標,去選瀏覽器,你只要關心兩件事:
1、【靠譜的瀏覽器】
三大瀏覽器:Chrome、Opera、Firefox,三個裡面挑一個順手的都可以。如果是安卓手機平台的話,Chrome和Opera做手機端更佳,Firefox起步較晚
2、【從正規渠道安裝】
所為正規渠道就是:
1)Google Play Store,雖然國內訪問不了……
2)瀏覽器官方網站,比如Chrome(Chrome,國內還是訪問不了 = =),Opera歐朋(歐朋Opera手機瀏覽器官方網站,國內叫歐朋),Firefox(火狐瀏覽器)
3)靠譜的大應用市場,比如豌豆莢、應用寶。雖然這些應用市場上仍然會有一些惡意程序,但是對於下載瀏覽器這樣的常用應用,你可以輕易地通過瀏覽器的下載量來進行判斷。
除此之外,以下幾個良好的上網習慣,可以幫你免於低級錯誤
1、【重視瀏覽器的錯誤警告】
主流桌面瀏覽器都會幫你甄別一些明顯是惡意網站或者是釣魚網站的情況,如果瀏覽器給你發出如警報,那就要三思自己是如何進入到這個網站的!!!當然……有時候瀏覽http://12306.cn,瀏覽器也會警告你,要怪就怪鐵道部吧……
2、【隱私都要走HTTPS】
對於一些關乎個人隱私的網站,一般都會通過HTTPS加密連接。你也許聽過Http上網連接,Http協議就相當於一個信使,負責傳遞你和瀏覽網站之間的包裹;但是這個包裹在運送途中被其他路人惡意偷過來窺探你的隱私,所以對於一些對隱私要求較高的網站,我們會想把包裹整個加密起來。Https協議,就是做這麼一件事情,保護你的網路連接安全,不被偷窺。
那麼作為普通用戶,在瀏覽涉及到下面隱私的情況下,就要立即豎起12分警惕!
1)你的個人真實信息,比如姓名、電話、家庭住址
2)任何讓你輸入你的QQ、支付寶等網站密碼的
3)任何讓你輸入你的銀行卡信息的
對於這類涉及高度隱私信息的正規網站,一般都會走https連接。那怎麼確認你的瀏覽器正在使用https訪問當前網站呢?你可以從你的瀏覽器中明顯的發現這一點(前提是你瀏覽器師從正規渠道下載的!),比如我用Opera,會在地址欄出現一個鎖:
所以,如果你正在輸入高度機密信息,又沒有發現正在使用https連接,那麼三思再三思!
3、【懂的識別網站域名】
網址,網址包含域名,和路徑幾部分,比如 http://www.zhihu.com/people/xjiangxjxjxjx
其中 http://zhihu.com就是域名,後面的people/xjiangxjxjx 就是路徑
域名是網站的唯一標識,像車牌號一樣需要向主管機構申請的!作為普通用戶,一定要會讀域名!從後往前讀!
http://w.mail.qq.com
-&> 域名是 http://qq.com
http://www.qq.com/ -&> 域名還是qq.com
http://video.qq.com -&>
域名還是http://qq.com
http://www.qq.com.tengxun.com
-&> 域名是 tengxun.com
!!!! 並且tengxun.com不是騰訊公司的域名
記住,從後往前讀!不要以為這是常識!很多人QQ密碼被盜,就是看到人家發來一個一個類似於
http://www.qq.com.xxxadsf.com 這樣的網址,看到了網址中包含了qq.com就放鬆了警惕,從而導緻密碼被盜!所以,學會讀域名!並且告訴你身邊的父母朋友,學會讀域名!從後往前讀!
4、【主動原則】
就是面對任何一個東西,想想這東西是你自己主動找的,還是被被動推過來的?
- 上網唱著歌查著資料,突然莫名其妙彈出個網站,告訴你中了一台iPhone 6,趕緊填寫你的信息領獎哦!——》這是被動信息
- 接到一條簡訊(甚至是來自朋友),告訴你到某個網站上查看什麼性感照片 ——》這是被動信息
- 突然接到電話,聽到」您好,您的賬戶存在欺詐,請按0轉到110」 ——》這是被動信息
- 走在大街上,突然走過來一個人,說「朋友,手機要伐?很便宜的」 ——》這是被動信息
以上幾個例子,都是大家熟知的幾種欺詐、釣魚;和其他欺詐相比,都有一個共性,他們都是被動推過來的,不是你主動想找的。而回想一下,當你訪問你的隱私信息網站的時候,大部分情況應該是你主動需要訪問:比如你想買一個東西了,主動打開支付寶付款;你想登陸自己QQ空間了,打開瀏覽器輸入http://qq.com。
所以作為普通用戶,當你發現你即將輸入你的隱私信息,並且這次行為並不是由你主動發起的,那就要三思再三思!
當然,有時候很多釣魚信息,會引誘你自動上鉤,不是那麼好分清楚是主動被動。比如百度搜索預訂機票的時候,排在前幾位的一般都是競價排名的付費推廣。你以為是你主動搜索的,其實可能是惡意商家花錢讓自己的欺詐航班訂票網站的鏈接排在前幾位,不仔細看,你還真不知道自己被騙了!
5、最後,以上所說的所有防範方法,都假設你的手機是安全的。如果你安卓手機root了,或者蘋果手機越獄了,那麼安卓、iOS、以及Chrome、Opera、Firefox的設計者精心設計的為你隱私安全的各種保護措施,可能都被一個後門繞過去而失效了!所以作為普通用戶,root、越獄三思!
購買 Nexus 系列手機,不要 Root 不要 oem unlock,始終使用最新版的 Android,保持 Chrome 和 Android System Webview 最新。
我就說一條,千萬不要用國產瀏覽器
安全與便利,難以兼得啊
手機本身就是不安全的,那些果果的照片,最好不要放到手機了。雲上?想都不要想!
哈哈哈
從一個應用的功能和許可權的比例可以看出這個應用是否流氓。看看瀏覽器軟體讀取了哪些許可權,一個瀏覽器不要給它讀取聯繫人、讀取通話、讀取簡訊、定位、讀取IMEI碼手機號之類的功能,只留一個上網的許可權就夠了。華為小米魅族自帶管理許可權的功能,沒有自帶這個功能的手機也可以裝LBE查看並關閉沒必要的許可權。
個人充滿惡意的見解:國內的軟體都別用,什麼鬼QQ,UC,360,獵豹,百度。什麼鬼看片模式,內置小說閱讀器,雙核,四核極速引擎。什麼鬼泄露用戶隱私(最近的UC)。真的感覺挺累的,我TM就想用個瀏覽器,有這麼難嗎?算了還是chrome吧。
推薦閱讀:
※求推薦一個國內好用的第三方的瀏覽器?
※哪款瀏覽器的綜合性能最優?
※請問瀏覽器大神們,可否介紹下國內的瀏覽器發展歷史?最早的,最長命的,最悲催的,最流氓的,等等多多益善?