朱 怡,寧振虎,周藝華
(北京工業大學信息學部,北京100124)
作為互聯網的基礎,域名系統(Domain Name System,DNS)的重要性不言而喻,但近年來DNS卻頻繁遭受惡意攻擊或因故障癱瘓,傳播惡意軟件、促進命令和控制服務器[1]通信、發送垃圾郵件、網絡釣魚網頁[2]等給網絡安全造成了極大沖擊。DNS 的安全性之所以難以保證主要原因有:首先,DNS的服務角色決定了DNS 具有穩定性和公開性,而且緩存的影響使得地址不會頻繁地更改,因此在DNS 服務器遭受攻擊時無法替換和隱藏IP 地址;其次,DNS 的集中性,在正常情況下,DNS服務器為多個網站或者用戶提供服務,攻擊服務器具有很大的影響范圍,大大提高了攻擊的效率;最后,DNS 的匿名性,DNS 服務使用用戶數據報協議(User Datagram Protocol,UDP),黑客可以很好地隱藏自己的蹤跡以免被追蹤。
在DNS 遭受的網絡攻擊中,仿冒域名因攻擊成本低、危害范圍廣、盈利手段多樣化等特點,已經成為威脅互聯網安全運行的重要問題之一[3]。仿冒域名是網絡蟑螂的一種形式,是一種域名搶注行為,指搶先注冊網絡使用者因輸入錯誤而訪問的域名,以期望用戶訪問仿冒域名而非目標網站域名。仿冒域名通常是與流行的知名域名非常相似的域名,大量的仿冒域名站點被攻擊者用來顯示廣告、將流量重定向到第三方頁面、部署釣魚網站或提供惡意軟件而從中獲利[4]。例如,攻擊者可以注冊facebo0k.com、microsolt.com 等域名,當網絡使用者不小心錯誤輸入或者被釣魚郵件視覺迷惑時,就會訪問這些網站,攻擊者由此牟取非法利益或實現非法目的[5]。
仿冒域名網絡攻擊如今已成為國內外安全社區和相關機構的重點防護對象,提前防范仿冒域名攻擊對于保障互聯網正常運行具有重要意義。基于此,本文全面了解DNS 所面臨的威脅,對仿冒域名行為進行重點研究,提出了一種基于視覺特征的仿冒域名輕量級檢測方法,在仿冒域名檢測和保護網絡終端免受仿冒域名侵害和攻擊上有顯著效果。
本章首先對仿冒域名進行概述,研究仿冒域名的構造特點;接著對當前主要的仿冒域名檢測技術進行分類研究,主要劃分為主動檢測和被動檢測,并針對這兩大類檢測技術的原理和不足之處作詳細分析;最后介紹本文主要工作。
仿冒域名屬于典型的搶注域名[6],仿冒域名的數目隨域名注冊數目的不斷增多而不斷上漲,在實際應用中,用戶經常會因為錯誤拼寫域名而被鏈接到仿冒域名網站[7]。此外,計算機硬件錯誤也會導致用戶訪問仿冒域名網站[8]。仿冒域名的構造方式極其簡單,非法者通常能通過選擇目標域名快速注冊大量的仿冒域名。
為了解仿冒域名的構造特點,從以下三方面進行研究:
1)編輯距離或手指距離。手指距離是通過結合鍵盤上字符的排列特征對編輯距離進行的一種改進,即利用鍵盤上相鄰位置的字符將一字符串轉換為另一字符串的最小插入、刪除、替換操作數)。Moore 等[9]從 Alexa[10]排名前 6 000 的域名中選取了3 264個域名作為目標域名,構造了編輯距離和手指距離小于3(1 和2)的191 738 個注冊域名作為候選仿冒域名集。實驗結果顯示,與目標域名的編輯距離為1 和手指距離為1 的候選仿冒域名集中,仿冒域名所占比例都高達90%以上,但在編輯距離為2 和手指距離為2 的候選仿冒域名集中,仿冒域名所占比例相對較低,分別低于60%和80%。
2)目標域名的Alexa 排名。早期非法注冊者主要針對Alexa排名靠前的域名來注冊對應仿冒域名。后來,隨著域名數目的增長,非法者在注冊仿冒域名時選擇的目標域名范圍也隨之不斷擴大。Szurdi 等[11]針對 Alexa 排名前 100 萬的域名,選取長度大于5 的域名作為目標域名,利用手指距離操作構造生成候選仿冒域名集,通過比較目標域名的Alexa排名情況,發現Alexa排名靠前的域名對應的仿冒域名數量更多。
3)目標域名長度。早期,Banerjee 等[12]研究認為目標域名長度是影響仿冒域名數量的一個重要因素,非法者通常會針對長度較短的目標域名注冊仿冒域名。隨后,Moore 等[9]針對不同長度的目標域名分別統計對應的仿冒域名的注冊情況,發現只有當目標域名長度小于5 時,對應的仿冒域名的注冊比重稍低,除此之外,域名長度對仿冒域名的注冊影響很小。此后,Agten等[13]再次指明,非法者在注冊仿冒域名時,不再過多關注對應目標域名的長度。
仿冒域名吸引了眾多研究者的關注,他們通過檢測仿冒域名和測量仿冒域名現象以分析背后的盈利策略。Moore等[9]通過手動檢查2 195個候選仿冒域名樣本,發現編輯距離為1或2的域名基本都是仿冒域名。Kintis等[14]對域名中的品牌名稱和其他關鍵詞進行了組合研究,結果表明,仿冒域名被廣泛用于執行各種類型的攻擊,包括網絡釣魚、社會工程攻擊、分支濫用、商標濫用和惡意軟件。為了探索哪些統一資源定位符(Uniform Resource Locator,URL)相對其他URL更易受到仿冒域名攻擊,Tahir等[15]使用不同的URL和DNS數據集定量測量了每個URL 的仿冒現象,交叉驗證了域名中存在的某些語義特征使其更容易受到仿冒域名攻擊。Agten等[13]對仿冒域名的相關信息進行了持續跟蹤,發現仿冒域名在用戶和搶注者之間具有流通性,搶注者可以通過變換網頁類型改變盈利策略。Spaulding等[16]量化了不同域名仿冒方式在欺騙用戶方面的有效性,發現用戶通常能夠識別在域名中添加或刪除字符的仿冒域名,欺騙用戶最有效的仿冒方式是字符的替換。
通過對已有的仿冒檢測技術進行研究,可將其相關檢測方法分為主動檢測和被動檢測兩類[17]。主動檢測方法[16,18-21]的基本工作原理為:首先確定一個受保護目標集合,然后按照一些構造策略得到所有可能的仿冒域名列表,針對這些構造的域名,收集Whois 注冊信息、DNS 解析信息、網頁信息,主動分析并發現識別可能已由搶注者注冊的仿冒域名。常見的構造策略有缺少點、缺少字符、字符換位、字符替換、字符重復、頂級域替換等[12,18],常見的字符拼寫錯誤原因如鍵盤上鄰近字符擊打錯誤[9]、視覺錯誤[22-23]、聽覺錯誤[24]、字符的比特位錯誤[25]等也會體現在構造策略里。被動檢測方法是在網絡環境下進行的,通過分析流量中仿冒域名的方式并發現與受保護集合中元素編輯距離不超過2的域名,將之判斷為仿冒域名。
顯然,主動檢測方法需要收集域名的相關信息進行判定,低級DNS 通信提供了有關DNS 請求和響應的足夠詳細信息,使對惡意域名進行更全面的搜索和分類成為可能[26-27],但這也限制了這些類型的檢測方法的應用場景,因為它們必須具有監視DNS 服務器流量的權限,例如在大型互聯網服務提供商(Internet Service Provider,ISP)或學校或公司的網絡中心中,此外,訪問DNS 服務器可能會導致隱私問題。主動仿冒域名檢測方法存在存儲和計算開銷較大、隱私權限等問題,不適于在線檢測。被動檢測方法為了克服主動檢測方法的這些不足,試圖僅利用域名本身的特點進行檢測,即其算法的輸入僅僅是域名。研究[28-31]表明,良性域名和惡意域名在長度、后綴分布和有意義字數比等方面存在差異,可以作為檢測的特征。被動仿冒域名檢測方法大都以計算域名對之間的編輯距離為基礎,但是對短域名的檢測易產生大量假陽性結果,即對于頂級域名相同且二級域名字符串長度為2 的域名來說,其編輯距離永遠不會超過2。以檢測京東的域名“jd.com”的仿冒域名為例,所有權威域長度為2 的.com 域名(如“qq.com”)與“jd.com”的編輯距離都不會超過2,按照基于編輯距離的方法就會將其判定為仿冒域名,由此帶來大量錯誤。Liu等[22]基于編輯距離算法提出了一種反向查找方法TypoPegging,可以快速準確地獲得給定域中最相似的熱門網站,但是沒有很好地處理域名視覺模仿的問題。
可見,已有的主動、被動仿冒檢測技術都存在一定的缺陷。基于此,本文設計了基于視覺特征的仿冒域名輕量級檢測方法,并在真實數據集上驗證了該方法的有效性,主要工作包括以下幾點:
1)采用僅基于域名字符串的輕量級檢測策略進行仿冒域名檢測,降低了計算和存儲開銷,適合應用在大規模DNS 應用環境下的場景檢測。
2)提出了域名視覺相似度的計算方法。一方面,結合域名視覺相似度構建仿冒域名檢測模型能解決傳統編輯距離在仿冒域名檢測上帶來的假陽性問題;另一方面,從視覺角度檢測仿冒域名可以很好地處理域名視覺模仿的情況。
3)在真實數據集上進行了大量實驗,驗證了檢測效果。
本章主要介紹域名的視覺特征測量方法,通過對傳統編輯距離算法的改進并結合域名的視覺相似度來構建仿冒域名檢測模型。
編輯距離是對兩個給定字符串間差異程度的量化測量,編輯距離越小,兩字符串越相似,當兩字符串相等時,編輯距離為0。測量的方式是看至少需要多少次的操作把一個字符串轉變成另一個字符串,其中,許可的變換操作包括:插入、刪除和替換。
對于兩個給定的字符串P 和Q,記其長度分別為m 和n,那么字符串 P 和 Q 之間的編輯距離記作 DP,Q(i,j),遞歸公式為:

其中:1 ≤ i ≤ m,1 ≤ j ≤ n。編輯距離算法偽代碼見算法1,其空間復雜度和時間復雜度均為O(m*n)。
算法1 編輯距離。
function Edit_Distance(string P,string Q)
m<-length(string P);n<-length(string Q)
創建一個距離矩陣G[x + 1,y + 1]
#初始化
for(i = 0;i ≤ m;i + +)
G[i,0]= i
for(i = 0;i ≤ n;i + +)
G[0,i]= i
#遞歸
for(i = 1;i ≤ m;i + +)
for(j = 1;j ≤ n;j + +)
if(P[i - 1]== Q[ j - 1])
G[i,j]= G[i - 1,j - 1]
else G[i,j]= min(G[i,j - 1],G[i - 1,j],G[i - 1,j - 1]) + 1
#輸出
return G[m,n]
傳統編輯距離算法中并沒有考慮域名字符的位置、字符相似度、操作類型(插入、刪除、替換)等因素,統一賦值為相同的權重(設置為1)。從機器的角度考慮,編輯距離能夠測量兩個字符串的相似度。但是,在面對域名時,人的視覺卻與機器的“視覺”不同,字符的位置、字符相似度、操作種類都可能影響該域名是否是仿冒域名的判斷。
鑒于此,提出了基于視覺特征的仿冒域名輕量級檢測方法,主要考慮字符的位置、字符相似度、操作種類對字符串相似度的影響,具體說明如下。
字符的位置:對于一個給定域名,分別改變其首字符和靠后位置的字符形成新域名,通常人們更容易察覺出改變首字符的那個域名的不同。 比如域名“nicrosoft. com”和“microsolt. com”與正常域名“microsoft. com”的編輯距離相同(編輯距離都為1),但是,對于“nicrosoft. com”和“microsolt.com”,人們更容易察覺出“nicrosoft.com”與“microsoft.com”的不同。這說明域名字符的位置對人視覺的影響不同,應對不同位置的字符賦予不同的權重。
字符相似度:字符不同,對人的影響也不同。比如域名“arnazon. com”(ARNAZON)與 正 常 域 名“amazon. com”(AMAZON)的編輯距離為2,“akazon.com”(AKAZON)與正常域 名“amazon. com”(AMAZON)的 編 輯 距 離 為 1。 即 使“arnazon. com”(ARNAZON)與 正 常 域 名“amazon. com”(AMAZON)的編輯距離更大,但是,卻更難察覺“arnazon.com”與“amazon.com”的不同。因此,應對不同的字符賦予不同的權重。
操作種類:操作種類不同,人的視覺反應也不同。比如,對于“日本之窗”的域名“jpwindow.com”,當刪除其第二和第五個字符時會變換為“jwidow.com”;當替換其第二和第五個字符為其他字符時會變換成“jqwimdow.com”。顯然,“jpwindow.com”和“jwidow.com”容易區分開,而“jqwimdow.com”和“jpwindow.com”卻相對困難;但事實上,“jwidow.com”和“jqwimdow.com”都與正常域名“jpwindow.com”有相同的編輯距離(編輯距離為2)。因此,應對不同的操作賦予不同的權重。
域名視覺特征的測量基于對編輯距離的完善,在編輯距離中加入了對字符位置、字符相似度、操作種類的考慮,將加權編輯距離定義為:

其中:1 ≤ i ≤ m,1 ≤ j ≤ n,? 表示空字符;Pi表示字符串P 的第 i 個字符,Qj表示字符串 Q 的第 j 個字符;sub 函數的計算公式如式(3)所示,其中,α 反映字符位置的影響,M 值反映字符相似度和操作種類的影響。

其中:c1、c2表示字符串中的某兩個字符;l1、l2表示此兩個字符在對應字符串中的位置。從式(3)可以發現,原編輯距離式(1)本質上是加權編輯距離的一種特殊情況,如式(4)所示:

本章主要介紹字符相似距離的測量方法,即計算M 值。對于字符“0”(零)和“o”(字母o),對應的M 值計算方法如圖1所示。
兩個字符的視覺相似距離計算過程描述如下:
1)將字符轉換為黑白二值圖片。
2)將字符二值圖片轉換為一維向量,轉換方式如圖1所示:

3)計算兩個向量直接的視覺距離,向量v1和v2的視覺距離為:

關于字符相似度,考慮以下幾方面:
1)單字符與單字符間的相似度。這涉及到“0~9”“a~z”“-”(連字符)“.”(點字符)共計38 個單字符,因為域名字符串中只允許使用此38 個字符,且不區分大小寫。此方面能排除相似單字符帶來的視覺干擾,例如“0”(數字零)與“o”(字母o)、“1”(數字1)與“l”(小寫字母 L)、“2”與“z”、“i”與“l”、“c”與“o”、“h”與“n”等。
2)兩個“窄”字符與一個“寬”字符間的相似度。“窄”字符有“1”“-”“.”、“i”“j”“l”等,除此之外,其余都是“寬”字符。此方面是考慮到了兩個“窄”字符與某個“寬”字符相似的情況,例如“ii”與“n”相似等。
3)兩個“寬”字符與一個“寬”字符間的相似度。此方面考慮到了某兩個“寬”字符與某個“寬”字符相似時帶來的視覺干擾現象,例如“nn”(兩個小寫的字母N)與“m”、“vv”(兩個小寫的字母V)與“w”、“rn”(小寫的R和N)與“m”相似等。
4)一個“窄”字符加上一個“寬”字符與其他“寬”字符間的相似度,例如“cl”(小寫的C和L)與“d”相似等。
5)兩個“寬”字符與兩個“寬”字符間的相似度,例如“nm”與“mn”、“hn”與“nh”相似等。

圖1 字符相似距離的計算過程示意圖Fig. 1 Schematic diagram of computation process of character similarity distance
綜上,綜合考慮字符位置、字符相似度和操作種類對仿冒域名檢測的判斷影響,基于視覺特征的編輯距離算法偽代碼見算法2。
算法2 基于視覺特征的編輯距離。
function Compound_Edit_Distance(string P,string Q)
刪除string P,string Q 對應位置相同的字符得到string P1,string Q1
m<-length(string P1);n<-length(string Q1)
構造4個list,list1保存單字符間的相似值M1,list2保存單字符與
雙字符的相似值M2,list3 保存雙字符與單字符的相似值M3,
list4保存雙字符與雙字符的相似值M4
構造兩個一維數組V0[n + 1],V1[n + 1]
for(i = 0;i ≤ n;i + +)
V0[i]= position_weighti
for(i = 0;i ≤ m;i + +)
V1[0]= i
for (j = 1;j ≤ n;j + +)
if(string P[i - 1]==string Q[ j - 1]):
V1[ j]= V0[ j - 1]
else if 當前比較的兩個字符in list1:
V1[ j]= min(V0[ j]+ position_weight,V1[ j - 1]+
position_weight,V0[ j - 1]+ position_weight*M1)
else if 當前比較的兩個字符in list2:
V1[ j]= min(V0[ j]+ position_weight,V1[ j - 1]+
position_weight,V0[ j - 1]+
position_weight*M1,V0[ j]+
position_weight*M2)
else if 當前比較的兩個字符in list3:
V1[ j]= min(V0[ j]+ position_weight,V1[ j - 1]+
position_weight,V0[ j - 1]+
position_weight*M1,V0[ j]+
position_weight*M3)
else if 當前比較的兩個字符in list4:
V1[ j]= min(V0[ j]+ position_weight,V1[ j - 1]+
position_weight,V0[ j - 1]+
position_weight*M1,V0[ j]+
position_weight*M4)
for(j = 0;j <= n;j + +)
V0[ j]= V1[ j]
#輸出
return V1[n]
本章利用所提出的策略構建了一個仿冒域名檢測的原型系統,并且在真實數據集上進行測試。實驗環境為Windows 10 主機,8 GB 內存,512 GB 固態硬盤(Solid State Disk,SSD),編程軟件為JetBrains PyCharm,編程語言為Python。所選用的實驗對比方案采用了目前最常用的基于編輯距離的判定方案。
所有實驗都在真實的數據集上進行,且對所有技術都給出了性能評價,評價的指標包括精確率、召回率和F1值。
精確率針對預測結果而言,它表示預測為正的樣本中有多少是真正的正樣本。“預測為正”有兩種可能,其一是把正類預測為正類,其二是把負類預測為正類,精確率即是第一種情況所占的比重。召回率針對原來的樣本集而言,它表示的是樣本中的正例有多少被預測正確了。預測時也有兩種可能,其一是把原來的正類預測為正類,其二是把原來的正類預測為負類,召回率即是第一種情況所占的比重。精確率和召回率取值在0~1,數值越接近1,評價結果就越高。但研究表明,精確率與召回率兩者基本存在一種“互補”的關系,即其中一個的值必隨另一個值的增高而降低。所以需要一個調和的度量標準,F1值即為精確率和召回率的調和平均值,它可以綜合這兩個指標,直接被用來評價被評估對象的整體水平。對分類器的精確率P(Precision)、召回率R(Recall)和F1值的定義如下:

其中:真正例TP(True Positive)表示樣本為正類,預測結果也為正類的個數,即分類器能夠正確地檢測出仿冒域名;真負例TN(True Negative)表示樣本為負類,預測結果也為負類的個數,即分類器能夠正確地檢測出正常域名;假正例FP(False Positive)表示樣本為負類,預測結果為正類的個數,即分類器不能正確地檢測出仿冒域名;假負例FN(False Negative)表示樣本為正類,預測結果為負類的個數,即分類器不能正確地檢測出正常域名。
實驗的數據來源于真實數據。其中目標域名來自Python編程爬取Alexa 排名靠前的域名,由于Alexa 根據域名三個月累積的訪問信息為排名依據,因此使用這些數據作為白名單比較合理。實驗數據集的規模為33 412,其中正樣本數為16 273,負樣本數為17 139。
正樣本數據構造:對于Alexa 排名前500 的域名,利用NCC Group 在 GitHub 上開源的 typofinder 工具[32]獲得其仿冒域名列表。該工具基于常見的仿冒域名構造策略對給定域名構建可能的候選仿冒域名列表,并主動獲取每個候選域名的相關信息來判定其是否為真實的仿冒域名,因而精確率相對較高。對這500個域名,限制域名長度不大于20,總計獲取了16 273個仿冒域名,構成了實驗數據的正樣本。
負樣本數據構造:基于爬取出的目標域名構造了17 139個仿冒域名,這17 139 個域名是除去了上述500 個域名后從Alexa 排名前50 000 的域名中隨機選擇的目標域名構造產生的,域名長度同樣限制為不超過20,為了更好地觀察在短域名上的檢測效果,限制域名對的編輯距離不超過3,排除了那500 個,所以這其中的任何一個域名都不會是另外一個網站的仿冒域名,由此構成了實驗數據的負樣本。
此外,typofinder工具的構造策略包含:
刪減字符:原始“abc”,構造:“ab”“ac”“bc”;
復制字符:原始“abc”,構造:“aabc”“abbc”“abcc”;
轉置字符(交換兩個字符的位置):原始“abc”,構造:“acb”“bac”;
按照鍵盤上該字符的附近位置的字符替換原字符:原始“abc”,構造:“abd”“abf”“abv”“abx”“afc”“agc”“ahc”“anc”“avc”“qbc”“sbc”“wbc”“xbc”“zbc”;
鍵入錯誤的序列:原始“aabcc”,構造:“aabdd”“aabff”“aabvv”“aabxx”“qqbcc”“ssbcc”“wwbcc”“xxbcc”“zzbcc”;
按照鍵盤上該字符的附近位置的字符插入字符:原始“abc”,構 造 :“abcd”“abcf”“abcv”“abcx”“abfc”“abgc”“abhc”“abnc”“abvc”“aqbc”。
對于判定一個域名是否為另一個域名的仿冒域名問題,將本文基于視覺特征的仿冒域名輕量級檢測方法與基于編輯距離的判定方法進行了對比。基于編輯距離的方法需要計算兩個域名間的編輯距離,如果編輯距離小于或等于設定的閾值θ,則認為前一個域名為后一個域名的仿冒域名,在實際應用中,編輯距離的閾值θ通常取1或2。一共做了10組對比實驗,同組對比實驗使用同樣的數據集,組與組之間使用不同的數據集,這10 組對比實驗的數據集都是基于4.2 節中提到的方法構造的正、負樣本分別為16 273、17 139,總規模為33 412的數據集。表2 為基于編輯距離的判定方法在θ取值分別為1、2 和3 時的實驗結果。對這10 次實驗結果取平均可以看到,在基于編輯距離的判定方法中,當閾值θ= 1 時,F1值最大,為 0.904 9,但是隨著閾值θ的增大,F1值會驟減;當θ= 2時,F1值降至0.844 5;當θ= 3時,F1值更是下降到0.521 2,所以用基于編輯距離的方法進行仿冒域名判定時,閾值θ設定為1,即當編輯距離小于1 時,就認為該域名為比對域名的仿冒域名。
此外,由表1 可以看到,基于編輯距離的方法在θ= 2 時精確率較低,這是由于存在這樣的實際情況:對于“jd.com”和“qq.com”這樣的域名對,此兩個域名之間的編輯距離為2,在閾值(θ= 2)范圍內,所以會被判定為仿冒域名,但事實上這兩個域名都屬于知名域名,并不存在仿冒現象。
在應用本文方法基于視覺特征的仿冒域名輕量級檢測方法進行實驗時,字符位置的權重α是這樣設計的:從域名的首字符開始,權重設定為α的等比遞減數值(α,α2,α3,…,αn),這樣比較符合域名首字符的影響較大的現實情況。不同α取值得到的實驗結果如圖2所示,可以看到當α= 0.95時的效果最好,所以設定字符位置的權重定為0.95 的等比遞減值(0.95,0.952,0.953,…,0.95n)。

圖2 字符位置權重α不同取值下的評價結果Fig. 2 Evaluation results under different values of character position weight α

表1 基于編輯距離判定方法的實驗結果Tab. 1 Experimental results of determination method based on edit distance
實驗過程中,不再手動設置閾值θ,而是將閾值θ設定在(0,2)的區間內,從0開始每次遞增0.01得到對應的F1值,讓程序輸出選擇最大的F1值,同樣進行10 次實驗,每次實驗所用的數據集都分別與上述基于編輯距離的判定方法的10 次實驗的數據集保持一致。本文基于視覺特征的仿冒域名輕量級檢測結果如表2所示。

表2 基于視覺特征的仿冒域名輕量級判定方法的實驗結果Tab. 2 Experimental results of lightweight detection method for typosquatting based on visual features
對于基于編輯距離的判定方法和本文方法在仿冒域名檢測上的效果可以通過F1值進行比對,分別對基于編輯距離判定方法在θ分別取1、2、3的10次結果和本文方法的10次結果的F1值取平均,可以得到圖3的檢測效果對比。

圖3 兩種仿冒域名檢測方法效果對比Fig. 3 Comparison of two detection methods for typosquatting
從圖3 可以得到,本文基于視覺特征的仿冒域名輕量級檢測方法相較基于編輯距離的判定方法在閾值θ= 1 和θ= 2時,F1值分別提高了5.98%和13.56%,由此可見,本文方法對于仿冒域名檢測有更高的檢測精確率和召回率,從字符的位置、字符相似度、操作種類三個方面改進傳統編輯距離算法能解決域名視覺模仿的情況,使得仿冒域名的檢測效果更好,準確度更高。
在相同的實驗環境下分別構造文獻[26-27,33]中的模型、基于傳統編輯距離算法的仿冒域名檢測模型和本文基于視覺特征的仿冒域名檢測模型,它們的性能比較結果如表4所示。

表3 各方法的性能比較Tab. 3 Performance comparison of various algorithms
由表4 可以看出,文獻[26-27,33]中提出的檢測方法的內存開銷較大,這是因為這些算法均需要收集域名的相關特征信息如Whois 注冊信息、DNS 解析信息、網頁信息、流量等進行檢測判斷。與文獻[26-27,33]中的方法相比,基于編輯距離的方法和本文方法內存開銷較小,這是因為其算法輸入僅是域名字符串,不需要利用DNS 解析信息等額外特征信息,能大幅減小存儲開銷,本文算法的“輕量級”也正是體現在此,算法僅利用域名的字符串進行判斷。此外,相比原編輯距離算法(算法1),本文方法(算法2)在空間復雜度和時間效率上進行了優化,通過對算法結構的調整,將二維數組改為兩個一維數組,其空間復雜度由O(m*n)減小到了O(min(m,n));通過刪除字符串中相對應位置相同的字符后進行計算,使得計算量減小,所占內存減少,提高了計算效率,時間復雜度降為O(m1*n1)(m1≤m,n1≤n)。由表3 也可看出,本文方法在內存開銷、計算時間和F1這幾個指標上都優于原編輯距離算法。綜合考慮算法內存開銷、計算時間和F1值等可知,本文提出的基于視覺特征的仿冒域名檢測方法性能更優。
本文針對仿冒域名的檢測問題,提出了一種輕量級的基于域名字符串的檢測方法,通過綜合考慮域名字符位置、字符相似度、操作種類對域名視覺的影響,提高了仿冒域名的檢測效率。實驗結果表明本文方法具有良好的檢測效果,對于防范仿冒域名攻擊具有重要意義。