[Phishing] 域名釣魚攻擊

中國資安人員 Xudong Zheng 在幾日前回報一個「幾乎不可能被發現的」釣魚攻擊──IDN 欺騙(IDN homograph attacks)──,即便是在網路上極為細心的人亦有可能會被欺騙。

圖 1 域名釣魚攻擊示意


漏洞原理

這項涉及 Chrome 或 Firefox 等瀏覽器的安全漏洞關鍵在於利用域名代碼(Punycode)把基於國際碼(Unicode)申請的網域名稱轉為 ASCII ,令使用者難以察覺到網址的異樣。

原本全球的網域名稱都是基於 ASCII 所建立的,但在多國語言的網域名稱興起後,為了補足字元的不足而新增 Punycode 規則。根據維基百科的解釋,Punycode 是一種表示 Unicode 碼和 ASCII 碼的有限的字符集。例如:「münchen」(德國慕尼黑)會被編碼為「mnchen-3ya」。Punycode 的目的是在於國際化域名標籤(IDNA)的框架中,使這些多語言的域名可以編碼為 ASCII,而編碼語法的規定則在文檔 RFC3492 中。

由於某些國際碼的字元與 ASCII 字元極為相似,故即使申請不同的網域名稱,但 Punycode 轉換後仍可能會被混淆。舉例而言,Cyrillic 中的 "а" (U+0430) 與 Latin "a" (U+0041) 對瀏覽器是不同的,但在網址的顯示上仍是顯示 "a"。當然這是發展 Punycode 時就曾考慮的問題,各大瀏覽器的安全政策也早已將之納入。

但 Xudong Zheng 發現 Chrome 與 Firefox 在這項政策的部署上有所缺失,於是當他以 Punycode 格式申請「xn--80ak6aa92e.com」網域名稱時,在 Chrome 與 Firefox 上出現的是以Cyrillic字母呈現的「apple.com」,而在 Safari 上則依然出現最初的 Punycode 格式「xn--80ak6aa92e.com」。


受災瀏覽器
  • Chrome
  • Firefox
  • Opera
根據 Bleeping Computer 的測試發現上述三種瀏覽器存在該漏洞,而 IE、Microsoft Edge 與 Safari 則幸免於難。


修補手段

目前 Chrome 團隊預計在 4/25 所推出 Chrome 58 中修補該漏洞,而 Firefox 則尚未公布修補時間。但 Firefox 使用者仍可透過以下操作作為臨時手段:
  1. 在網址列輸入 about:config 並按下 Enter
  2. 在搜尋欄位中輸入 Punycode
  3. 瀏覽器將會顯示 network.IDN_show_punycode 的參數,以滑鼠左鍵雙擊或是按下右鍵選擇切換來將他的數值切換成 True
圖 2 Firefox 參數設置


資料來源

留言

張貼留言

這個網誌中的熱門文章