上網(wǎng)強跳廣告/頁面劫持:其實是DNS被“污染”……
自從進入網(wǎng)絡(luò)時代,大家的生活也愈加多姿多彩起來,但也多出了很多煩惱。例如,信息海洋中時不時出現(xiàn)的大群垃圾,以及深淵,就令人防不勝防。
這里說的正是上網(wǎng)過程中遇到莫名其妙的網(wǎng)頁跳轉(zhuǎn),好端端的一個網(wǎng)頁,突然就變成了滿屏的廣告;或者本來能正常訪問的頁面,突然就打不開了,但QQ之類的軟件卻可以正常登錄。這到底是什么原因造成的呢?其實出現(xiàn)了這些令人困擾的異常現(xiàn)象,意味著你可能是DNS劫持、投毒的受害者。
DNS到底是什么?
雖然我們經(jīng)常上網(wǎng),但并不是每個人都對開啟一個網(wǎng)頁背后的機制了如指掌。輕點鼠標,網(wǎng)頁即呈現(xiàn)在眼前,何其熟悉的操作,但這熟悉操作的背后,卻蘊藏著一套環(huán)環(huán)相扣的流程。
從用戶點擊鼠標、敲下回車,到網(wǎng)頁顯示,信息首先會通過瀏覽器發(fā)送,然后經(jīng)路由中轉(zhuǎn),接著DNS將域名解析成IP,找到服務(wù)器后服務(wù)器會發(fā)送內(nèi)容給用戶,接著再由路由轉(zhuǎn)發(fā)數(shù)據(jù),最后瀏覽器將內(nèi)容呈現(xiàn)給用戶。視實際情況,這個過程中還可能存在更多關(guān)卡,比如說防火墻、代理服務(wù)器等。
網(wǎng)頁瀏覽存在諸多環(huán)節(jié),被劫持的機會很多,其中DNS非常容易被做手腳
在這套流程中,無論瀏覽器、路由、DNS、服務(wù)器等任一環(huán)節(jié)中出了叛徒,都有可能導(dǎo)致網(wǎng)頁無法訪問。而被人篡改最多的,或許就是DNS了。
DNS全稱是域名系統(tǒng),它所起到的作用,在于把域名解析為IP地址。我們能訪問到某個網(wǎng)站,靠的是連接到該網(wǎng)站服務(wù)器的IP地址,DNS在這里面起到的作用就是把“www.baidu.com”解析成“123.125.114.144”這樣的IP地址,讓你能夠連接到這地址的服務(wù)器來訪問網(wǎng)站。
在上網(wǎng)的流程中,有太多的因素可以影響到DNS,例如你的PC的設(shè)置、路由器的設(shè)置、運營商的設(shè)置等等,DNS一旦出現(xiàn)了差錯,就會無法把域名解析成為正確的IP地址,我們自然也無法訪問到正確的頁面。因此,如果你發(fā)現(xiàn)開啟不了網(wǎng)頁,但QQ這樣直連IP的網(wǎng)絡(luò)軟件卻可以正常服務(wù),那DNS就是一個非常值得懷疑的原因。
DNS出錯會導(dǎo)致什么后果?
DNS這個環(huán)節(jié)可以被太多因素影響,所以不少利益相關(guān)者都會在這里面做手腳。例如,DNS劫持就是非常常見的廣告投放手段。
一般情況下,如果你不特別設(shè)置DNS服務(wù)器,那么DNS服務(wù)器就會由運營商來提供。按理來說,運營商提供的DNS服務(wù)器應(yīng)該用于正確地為你提供IP跳轉(zhuǎn),但偏偏很多運營商DNS服務(wù)器的人品都不堪入目。
你常常就能看到運營商會把你給跳轉(zhuǎn)到什么開通上網(wǎng)套餐之類的頁面,甚至?xí)霈F(xiàn)你輸入A購物網(wǎng)但卻被跳轉(zhuǎn)到競爭對手B的情況,這就是所謂的DNS劫持。
開個百度,整個網(wǎng)頁都被強制跳轉(zhuǎn)到XX娛樂城去了,這就是典型的DNS劫持
要對付運營商的DNS劫持,設(shè)置一個可靠的DNS服務(wù)器往往就可以解決問題。然而,很多朋友在設(shè)置了可靠的DNS服務(wù)器后,仍然不能解析到正確的IP地址,例如某個網(wǎng)站的IP地址明明是可以Ping通的,但就是無法訪問。這種情況,通常是DNS污染所導(dǎo)致的。
雖然DNS服務(wù)器能夠正常工作,但我們向DNS服務(wù)器發(fā)送域名解析請求的時候,是通過UDP連接發(fā)送的。UDP并不是什么可靠的連接,所以域名解析請求能夠在半路上就被人攔截,然后冒充DNS服務(wù)器給你發(fā)送錯誤的IP地址。IP地址是錯的,我們自然也不能正常地訪問網(wǎng)站,有可能會看到廣告、釣魚頁面,也有可能什么也看不到。
DNS默認使用UDP連接,而且未經(jīng)加密,很容易遭遇污染、投毒
無論是那種情況,DNS出錯就意味著你沒法正確地訪問網(wǎng)站。在整個上網(wǎng)的流程中,DNS這環(huán)節(jié)無疑是脆弱而且不受用戶控制的,如果一定要有人用DNS來害你沒法正常上網(wǎng),大多數(shù)人都對此無能為力。那么DNS頻頻出錯到底還有沒有救呢?
DNS出錯到底有沒有救?
前面也提到過,要對付運營商的DNS劫持,我們可以設(shè)置一個可靠的DNS服務(wù)器來進行域名解析。目前很多安全廠商或者互聯(lián)網(wǎng)企業(yè)乃至公益組織,都提供了DNS解析服務(wù)。
例如奇虎360、諾頓、Comodo、百度、阿里、Google等企業(yè),都有提供DNS解析服務(wù),你也可以選擇Open DNS這樣的老牌免費DNS服務(wù)。
這些DNS服務(wù),都可以在網(wǎng)上輕易搜到具體的IP地址,這里就不一一羅列了。當然,并不是說用了這些DNS服務(wù),就一定不會有DNS劫持,萬一這些企業(yè)人品也不行呢?至于誰靠譜,就得靠你來自個兒篩選了。
另外,DNS如果不是運營商所提供的話,速度表現(xiàn)并不一定理想。這里推薦一款名為“DNS jumper”的軟件,它能夠比較全面得測試DNS的連接速度,并設(shè)置DNS。
利用DNS jumper,很容易就能夠找到適合你網(wǎng)絡(luò)狀況的DNS。另外,如果運營商DNS劫持行為太過猖獗,也可以到工信部投訴運營商劫持網(wǎng)頁,這的確是非常行之有效的方法,有效到了某些運營商竟然直接屏蔽了工信部的投訴網(wǎng)頁的程度。那么該如何到工信部投訴運營商呢?
首先,遇到網(wǎng)頁劫持的情況,不要直接向工信部投訴。按照流程,先向運營商投訴,無效后投訴到工信部,才會被受理。工信部張貼出來的申訴條件中也包括“已經(jīng)向被申訴人投訴且對其處理結(jié)果不滿意或者其未在15日內(nèi)答復(fù)”這一條,所以先走一下流程也是有必要的,萬一向運營商投訴就解決問題了呢?
然而事情往往不會這么美好,運營商的回答通常很敷衍,對技術(shù)不熟悉的客服人員甚至不明白網(wǎng)頁劫持是什么意思。無效后,就可以向工信部投訴運營商了!
- 工信部投訴網(wǎng)址:<點此進入>
- 工信部投訴電話:010-12300
如無意外,投訴后問題就會得以解決。
但即使如此,如果有人在DNS請求的UDP連接過程中做手腳,那還是防不勝防。一些公司就會利用這個原理,控制不讓員工隨便訪問網(wǎng)絡(luò)。如果要規(guī)避這個過程,思路就是避免DNS用UDP這樣不靠譜的連接來查詢。你可以利用一些手段,設(shè)置DNS為TCP連接查詢,也可以通過加密來讓其他服務(wù)器中轉(zhuǎn)DNS請求。
當然,這些方法實現(xiàn)起來都需要折騰,并不符合一般用戶使用?;蛟S在待到將來IPV6全面鋪開時,DNS的安全性才會有進一步提升。
總結(jié)
總體而言,現(xiàn)在DNS的機制顯然在設(shè)計之初沒有充分考慮到安全性,導(dǎo)致別有用心者頻頻利用這一環(huán)節(jié)影響用戶的正常網(wǎng)絡(luò)訪問。DNS頻頻被劫持、投毒的現(xiàn)狀如何才能改變?從技術(shù)上來說很難,希望以后能夠有更完善的監(jiān)管手段,讓用戶有更好的上網(wǎng)體驗吧。