王 奇 王東升 趙翠平 張露晨
(1.江蘇科技大學計算機學院 鎮(zhèn)江 212000)(2.國家計算機網(wǎng)絡(luò)應急技術(shù)處理協(xié)調(diào)中心 北京 100029)
1 引言
伴隨互聯(lián)網(wǎng)的飛速發(fā)展,中國互聯(lián)網(wǎng)行業(yè)取得了重大的進步,但從中也萌發(fā)出各種非法獲利手段,各種互聯(lián)網(wǎng)詐騙方式層出不窮。一些不法分子通過網(wǎng)絡(luò)平臺使用非法手段詐騙獲取數(shù)額巨大的利益,對人們的財產(chǎn)安全產(chǎn)生巨大的隱患和影響。采用技術(shù)手段,快速精準地識別風險網(wǎng)站,對提高網(wǎng)絡(luò)安全環(huán)境和預防網(wǎng)絡(luò)詐騙具有重大意義和重要價值。
針對風險網(wǎng)站爆發(fā)式的增加,研究安全的學者們提出了各種不同的方法來應對風險網(wǎng)站的發(fā)現(xiàn)。依照是否檢測頁面內(nèi)容來分類可將其分為兩類,一類為基于黑白名單和先驗規(guī)則的識別方法[1],另一類是基于機器學習的識別方法[2]。
基于黑白名單的方法是基于對風險網(wǎng)站名單庫的采集,并對給定的一個網(wǎng)站,通過提取和分析主機信息、網(wǎng)址信息和域名信息等,與名單庫進行匹配完成。此類方法對檢測網(wǎng)頁所需要的計算資源比較少,但準確率低?;跈C器學習的方法不再僅僅只依賴于主機信息、網(wǎng)址信息和域名信息等比對,而是進一步通過提取一些網(wǎng)頁內(nèi)容如關(guān)鍵字等特征來識別風險網(wǎng)站[3]?;趦?nèi)容的方法可獲得網(wǎng)頁相關(guān)的多種特征,這些內(nèi)容特征都有利于提高識別精準度。但仍存在文本內(nèi)容特征難以提取所導致識別精準度不足問題。
針對以上問題,本文提出了一種充分利用網(wǎng)站開發(fā)特征的風險網(wǎng)站識別方法。鑒于詐騙網(wǎng)站往往是由同一個詐騙團伙批量發(fā)布、或者詐騙團伙借助于其他詐騙網(wǎng)站拷貝微調(diào)制作的特點,本文的主要思路是通過對URL、HTML、JavaScript、CSS 等可采集的前端代碼進行分析,發(fā)現(xiàn)詐騙網(wǎng)站復制或者抄襲的開發(fā)特征,進而實現(xiàn)高效且精準的識別。實驗表明,我們的識別方法可以取得相較于相關(guān)工作更好的精確率。
2 相關(guān)工作
2.1 基于黑白名單和啟發(fā)規(guī)則的方法
當前使用最廣的是基于黑白名單過濾的風險網(wǎng)站監(jiān)測比如Phishtank[4]、Fierce[5]的方法。黑名單是包含了風險網(wǎng)站的URL、IP地址或者關(guān)鍵字的信息列表。白名單則是包含了正規(guī)網(wǎng)站所包含的URL、IP或關(guān)鍵字的信息列表。用戶在訪問一個鏈接地址時,首先與白名單地址池進行地址匹配,若匹配通過則為正??稍L問網(wǎng)站,否則與黑名單地址池進行匹配,若發(fā)現(xiàn)鏈接存在于黑名單則斷開訪問。Prakash 等[6]依據(jù)黑名單的方法提出了一種改進的技術(shù)PhishNet?;诤诎酌麊蔚姆椒ㄊ褂梅奖?,但僅能通過已經(jīng)發(fā)現(xiàn)的風險鏈接匹配,不可正確識別新錄入的風險鏈接,因而引起誤判和漏報,并且隨著黑名單規(guī)模的擴大,其開銷會呈線性增長。
由于黑白名單的方法存在漏報的缺點,基于啟發(fā)規(guī)則的方法被提出,并應用于識別風險網(wǎng)站。這種方法是依靠于風險網(wǎng)站所具有的設(shè)計相似性以及實現(xiàn)的啟發(fā)規(guī)則,從而識別風險網(wǎng)站。不同于黑名單的方法,基于啟發(fā)規(guī)則的方法不需要事先知道風險網(wǎng)站的網(wǎng)址等信息,根據(jù)現(xiàn)定的規(guī)則來發(fā)現(xiàn)未被識別的網(wǎng)站。Neil Chou 等[7]開發(fā)了一套瀏覽器插件SpoofGuard,它是根據(jù)風險網(wǎng)站常見情況建立啟發(fā)規(guī)則的。Zhang Yue等[8]開發(fā)了針對IE 的工具條Cantina,通過網(wǎng)頁詞頻統(tǒng)計建立啟發(fā)規(guī)則發(fā)現(xiàn)風險網(wǎng)站?;趩l(fā)規(guī)則的往往需要假設(shè)風險網(wǎng)站的統(tǒng)計特征是唯一的,統(tǒng)計特征可作為規(guī)則對風險網(wǎng)站和無風險網(wǎng)站進行區(qū)分。但對于大規(guī)模網(wǎng)頁分類只基于簡單統(tǒng)計特征的啟發(fā)規(guī)則方法現(xiàn)今已不能滿足要求,一方面是存在誤報率增高的缺點,另一方面是更新規(guī)則困難的缺點。
2.2 基于機器學習的方法
對于啟發(fā)規(guī)則的方法所暴露的錯報率高的確定,研究人員提出了基于機器學習的方法?,F(xiàn)今基于機器學習的方法已經(jīng)成為發(fā)現(xiàn)風險網(wǎng)站的一個熱點,在涉詐檢測領(lǐng)域已經(jīng)有了廣泛的使用,它在一定程度上可以解決一些難以檢測的問題。已經(jīng)有部分研究[9~15]將其用于詐騙網(wǎng)站檢測。該方法將風險網(wǎng)站檢測當作一個二分類問題或聚類問題。風險URL 常常會包含一些隨機字符串,其長度相較于正常URL 會更長,并且多數(shù)會帶有特殊類字符,有的風險URL 也會有多個子域名?;赨RL的這些共性特征[16],利用機器學習模型進行訓練,可以有效地將URL 進行分類。但由于風險網(wǎng)站的多變性,基于單一特征的方法會出現(xiàn)誤判和不穩(wěn)定性,這使得風險網(wǎng)站的識別準確率大打折扣。
3 方法
本文提出了基于網(wǎng)站代碼開發(fā)多特征的詐騙網(wǎng)站識別方法。方法的主要動機在于,風險網(wǎng)站犯罪團伙往往會發(fā)布大批不同域名的同質(zhì)網(wǎng)站以擴大詐騙范圍,同時也會不定期地對某些網(wǎng)站進行升級更新,這導致詐騙網(wǎng)站在開發(fā)代碼上具有很強的識別特征,可以用于其識別和分類。
由于網(wǎng)站的內(nèi)容比較多,并且詐騙特征的隱藏性比較強,如果不進行基于專家經(jīng)驗的特征選擇,把所有信息通過深度神經(jīng)網(wǎng)絡(luò)進行分類,這很難實現(xiàn)好的效果。因此,在整體流程上,我們觀察了大量詐騙網(wǎng)站的典型開發(fā)特征,總結(jié)了特征處理方法,在其基礎(chǔ)上進行數(shù)據(jù)標注、特征處理和分類模型訓練。下面首先介紹采用的幾個代碼相關(guān)特征以及預處理方法,然后介紹在其基礎(chǔ)上的分類試驗結(jié)果。
3.1 URL開發(fā)特征
統(tǒng)一資源定位系統(tǒng)URL(Uniform Resource Locator)是因特爾網(wǎng)的萬維網(wǎng)服務(wù)程序上用于指定信息位置的表示方法。URL 通常由一串簡單的字符串構(gòu)成,通常被寫成如下形式:<方案>:<方案描述部分>,例如https://vez6spctbreievod.wildrhythmmusic.com。風險網(wǎng)站中的URL 會包含一串排列沒有規(guī)律的字符串,通常會比正常URL 的長度更長。所以,風險URL 與正常URL 在文本上會有一定的區(qū)別。URL 的特征有數(shù)字、符號、點、字符、路徑、ip信息等特征。過長的URL 有可能是風險網(wǎng)站,其中會有一串無規(guī)則無順序的隨機字符串,并且點的數(shù)量也表明了它的層數(shù)。
3.2 HTML特征
HTML 通常是網(wǎng)頁布局的基礎(chǔ),它涵蓋了大量的標簽和嵌套頁面的鏈接以及圖片和JS 和CSS 注入的鏈接地址。HTML 中的特征中可抽取關(guān)鍵標簽數(shù)量、頁面插入數(shù)量、URL 出現(xiàn)的數(shù)量以及HTML長度等一些潛在的特征標簽。
我們采用selenium 的webdriver 方法進行特征提取。首先,利用該方法進行網(wǎng)頁瀏覽器模擬,通過模擬瀏覽器并利用requests方法可以獲取網(wǎng)頁的html 代碼,在html 中包含了可用于嵌套的標簽數(shù)量,也包含了一些描述網(wǎng)站的內(nèi)容短句和一些鏈接,是網(wǎng)頁布局的基本代碼。
3.3 JavaScript特征
JavaScript 代碼是一種腳本語言具有基于對象、簡單、動態(tài)效果、跨平臺的特性,通過其運行可以改變網(wǎng)頁的DOM 的結(jié)構(gòu),可豐富交互模式和后臺通信。JS 通常作為網(wǎng)頁的一些腳本對頁面的一些動態(tài)效果起到調(diào)控的作用。對JS 的特征主要分析常調(diào)用的函數(shù)的使用數(shù)量(setInterval、setTimeout、eval、replace、join 等),及用src的腳本注入頁面次數(shù)等。
我們通過模仿瀏覽器使用etree.HTML 方法得到整個頁面源代碼,其中包含JS 文本鏈接,基于JS鏈接位置來實現(xiàn)JS 代碼的運作,達到網(wǎng)頁中的一些效果。根據(jù)