技術(shù)宅
現(xiàn)在網(wǎng)上有很多的釣魚(yú)網(wǎng)站,不過(guò)大多是模仿網(wǎng)銀或者一些官網(wǎng)的頁(yè)面,然后再使用一些容易混淆的域名來(lái)讓我們中招。隨著這些釣魚(yú)網(wǎng)站伎倆不斷被曝光,現(xiàn)在大家?guī)缀醵伎梢暂p松進(jìn)行判別了。不過(guò)近日網(wǎng)上出現(xiàn)一種新型的釣魚(yú)網(wǎng)站,它使用了和被假冒網(wǎng)站幾乎一樣的域名,讓人真假難辨。讓我們來(lái)揭秘它偽裝的原理,并了解下對(duì)這類(lèi)釣魚(yú)網(wǎng)站應(yīng)該如何安全防范。
釣魚(yú)網(wǎng)站 這樣識(shí)別遠(yuǎn)遠(yuǎn)不夠
說(shuō)到釣魚(yú)網(wǎng)站,這類(lèi)網(wǎng)站慣用的伎倆是使用“李鬼域名+模仿頁(yè)面”的方式迷惑我們,比如之前很多釣魚(yú)網(wǎng)站使用www.ta0bao.com(使用0代替O)來(lái)假冒淘寶網(wǎng)站。這類(lèi)釣魚(yú)網(wǎng)站和正規(guī)網(wǎng)站相比,一是域名不同,我們只要認(rèn)真查看即可辨別,二是沒(méi)有使用https開(kāi)頭加密網(wǎng)址(圖1)。
因此對(duì)于釣魚(yú)網(wǎng)站的識(shí)別,我們主要是通過(guò)“查看域名”和“是否有加鎖標(biāo)記”來(lái)進(jìn)行甄別的。這種方法看似有效,但是近日出現(xiàn)的新型釣魚(yú)網(wǎng)站則讓上述判斷標(biāo)準(zhǔn)形同虛設(shè)。因?yàn)獒烎~(yú)者制作了一個(gè)幾乎和官方網(wǎng)站一樣的域名(域名極度相似且使用https加密),比如一位安全專(zhuān)家制作的“www.apple.com”假冒蘋(píng)果頁(yè)面,這個(gè)網(wǎng)站不僅域名和蘋(píng)果官網(wǎng)幾乎完全一樣,而且同樣使用https加密。這種釣魚(yú)網(wǎng)站是不是會(huì)讓很多人上當(dāng)(圖2)?
以假亂真 揭開(kāi)釣魚(yú)網(wǎng)站背后的秘密
如上所述,安全專(zhuān)家建立的蘋(píng)果釣魚(yú)網(wǎng)站從域名和加密鏈接上幾乎達(dá)到以假亂真的地步。那么這個(gè)釣魚(yú)網(wǎng)站是怎么做到的?
我們平時(shí)上網(wǎng)都是在瀏覽器直接輸入網(wǎng)站域名,比如訪問(wèn)百度就直接輸入www.baidu.com,然后這個(gè)域名是通過(guò)域名服務(wù)器解析到百度的IP地址。這里的域名服務(wù)器就類(lèi)似中轉(zhuǎn)站,它將人們不好記憶的IP地址和容易記憶的域名關(guān)聯(lián)起來(lái),從而讓人們上網(wǎng)更方便(圖3)。
不過(guò)大家應(yīng)該知道世界上官方語(yǔ)言有很多種,比如希臘語(yǔ)、法語(yǔ)、英語(yǔ)等,這樣一些國(guó)家的網(wǎng)址就會(huì)包含各自母語(yǔ)里的字母,而其中不少語(yǔ)言的字母看上去非常相似,比如a(西里爾文的a)、a(英文字母a)、α(俄文里的α阿爾法)這三個(gè)字母,看起來(lái)是不是非常相似?不過(guò)對(duì)于電腦來(lái)說(shuō),它們卻是完全不同的三個(gè)字母。如果使用西里爾文的人們?cè)O(shè)計(jì)一個(gè)類(lèi)似www.a.com的網(wǎng)址,那么它和英語(yǔ)國(guó)家的www.a.com網(wǎng)址看起來(lái)就沒(méi)有什么區(qū)別。這樣DNS域名服務(wù)器在解析這些“多胞胎”域名時(shí)就會(huì)顯得“很迷?!保?yàn)樗膊辉趺捶值们宄@些域名的實(shí)際區(qū)別。
所以為了讓不同語(yǔ)言的域名都可以快速解析,瀏覽器就引入了一種名為“Punycode”的編碼方式,它的主要功能就是將這些不同國(guó)家的語(yǔ)言母語(yǔ)“翻譯”成DNS服務(wù)器都能看懂的英文字符。比如在瀏覽器地址欄輸入“人民網(wǎng).中國(guó)”,DNS服務(wù)器會(huì)將其通過(guò)Punycode編碼轉(zhuǎn)換為類(lèi)似“xn--gmq282eogn.xn--fiqs8s/”這樣的英文網(wǎng)址頁(yè)面,我們?cè)赒Q瀏覽器地址欄輸入“人民網(wǎng).中國(guó)”顯示的即為轉(zhuǎn)換后的英文網(wǎng)址(圖4)。
DNS服務(wù)器通過(guò)“翻譯”各地官方語(yǔ)言,這樣可以讓世界人民都能夠直接輸入自己的母語(yǔ)域名來(lái)上網(wǎng)。不過(guò)這也帶來(lái)一個(gè)問(wèn)題。因?yàn)橐恍g覽器如Chrome、Firefox與Opera,由于存在Punycode編碼漏洞,導(dǎo)致我們?cè)谶@些瀏覽器輸入地方語(yǔ)言域名時(shí),在其地址欄不會(huì)直接顯示轉(zhuǎn)換后的英文網(wǎng)址,而仍然還是顯示地方語(yǔ)言,這樣一些釣魚(yú)網(wǎng)站就故意使用那些容易讓人混淆的字符作為釣魚(yú)域名。比如上例中的“www.арр?е.com”這個(gè)域名,實(shí)際上其中的“а、р、?、е”均不是蘋(píng)果單詞里對(duì)應(yīng)的“a、p、l、e”,大家可以將這兩組字母均復(fù)制到Excel中的一行,然后使用條件格式的“突出顯示單元格的規(guī)則→重復(fù)值”,可以看到這八個(gè)字母均不重復(fù)。這也意味著實(shí)際上“арр?е”和真正的蘋(píng)果“apple”是完全不同的兩個(gè)域名,只是看起來(lái)非常類(lèi)似,但我們根本無(wú)法通過(guò)肉眼進(jìn)行分別(圖5)。
這樣釣魚(yú)攻擊者通過(guò)制作一個(gè)和官網(wǎng)非常類(lèi)似的域名,然后再模仿官網(wǎng)的頁(yè)面,并且申請(qǐng)一個(gè)免費(fèi)加密證書(shū)頁(yè)面,這樣很多人就會(huì)毫無(wú)戒心地進(jìn)入釣魚(yú)網(wǎng)站,從而使自己的財(cái)產(chǎn)受到損失。
拒絕釣魚(yú) 我們要這樣做
可以看到日前瀏覽器曝出的Punycode編碼漏洞,能夠讓攻擊者制作出以假亂真的官網(wǎng),幸好目前影響的只是用戶(hù)較少的Chrome、Firefox與Opera用戶(hù)。那么作為用戶(hù)應(yīng)該怎樣進(jìn)行防范?
一方面,我們應(yīng)該隨時(shí)關(guān)注類(lèi)似安全漏洞的新聞,在發(fā)現(xiàn)瀏覽器有類(lèi)似的安全隱患時(shí)要及時(shí)升級(jí)瀏覽器或做出相應(yīng)的安全設(shè)置。比如Chrome用戶(hù)升級(jí)到新版后就可以防止這個(gè)漏洞,火狐用戶(hù)則可以在地址欄中輸入about:config,然后在搜索欄中輸入“Punycode”,接著在瀏覽器選中顯示參數(shù)”network.IDN_ show_“Punycode”的“值”,雙擊將其改為“true”即可(圖6)。
另一方面,對(duì)于常用的網(wǎng)銀等網(wǎng)址,建議在百度搜索后將顯示為官網(wǎng)的網(wǎng)址添加到收藏夾,以后通過(guò)收藏夾進(jìn)入,而不是點(diǎn)擊鏈接或者輸入網(wǎng)址進(jìn)入,這樣可以有效避免釣魚(yú)網(wǎng)站的攻擊。