百度競價點擊(商盾)研究


今天寫個比較詳細的說明,也參考了大量這方面的資料進行的總結,算是給大家一個長見識,寫的不好的地方,希望大家多多指教!感謝吾愛朋友的支持!

移動廣告平台都有各自的檢測點擊欺詐的機制,通過各種維度(包括IP分析、用戶行為習慣分析、系統識別、設備識別、點擊激活時間間隔)對欺詐行為進行攔截,幫助廣告主過濾可疑流量,為廣告投放效果保駕護航。點擊欺詐的的方式多種多樣。而移動廣告平台識別點擊欺詐的方法也隨着作弊手段的變化而不斷發展,已經有幾類行之有效的成熟方法。各家網站聯盟都積累了大量的相關數據,但是因為數據涉及多個概念層次的維度,所以人工檢測基本不可行。應該來說各家移動廣告平台公司的作弊識別方法並不相同,而且各公司也不會把自己檢測點擊欺詐方法的具體細節公布出來。然而,主要的檢測點擊欺詐的方法無外乎有以下三類:基於規則的識別方法、基於異常值分析的方法和基於分類的方法,下面詳細介紹:

  

  1.基於規則的識別方法

 

一個對行業熟悉的移動廣告平台對各種作弊手段必然了如指掌,通常能夠根據經驗設定一些作弊防范規則,比如:同一IP的用戶單日點擊次數超過多少即可視為作弊;如果某個廣告位的點擊率突然大幅增加也可能存在作弊;制定防作弊規則的優點是方便,在一定程度上也能起到防范作弊的作用,然而這種方法顯得比較片面也不能與時俱進,必須要隨時間變化而不斷更改。這種基於規則的識別方法相對於其他識別方法來說執行起來要簡單很多,而其實這種方法從某種程度上來說也是一種簡化了的決策樹算法。

  

 2.基於異常值分析的方法

 

 異常值的定義是基於某種度量,其數值明顯偏離它(或它們)所屬樣本的其余觀測值,是樣本中的個別值。點擊欺詐行為即使行為再隱蔽,和普通網民的人工行為還是有相當不同的。在移動廣告平台上用來識別點擊欺詐的基於異常值分析的方法,根據不同理論的異常值檢測方法,可以分成以下幾種:

 

 

1基於統計學的異常值檢測

  

在統計學中,假設數據集服從正態分布,那些與均值之間的偏差達到或超過3倍標准差的數據對象就可稱之為異常值。根據這個定律,可以衍生出一套點擊欺詐檢測方案。我們對點擊率、IP分布、單位時間內的點擊次數等這些單個指標都進行分析,根據不同行業類型的廣告做了統計分析,如果某個廣告在一定時間段內的數據超出標准,即可懷疑點擊欺詐。

 

2基於距離和密度的異常值檢測                                                

 

 

  基於統計分布的方法有一個缺陷,它只能檢測單個變量,即每次檢測只能局限於單個指標,此時若采用基於距離和基於密度的方法,就可結合多指標進行分析。我們目前主要是針對點擊率、IP分布的方差、單位時間內的點擊次數等這些指標做基於距離和密度的異常值檢測。

 

 

3  基於分類的方法                                                

 

 

 

  基於分類的方法主要是根據數據挖掘分類算法對歷史數據進行模擬,通過構建分類器來對點擊行為進行預測。這種方法的需要事先對歷史點擊行為進行分類,即標注出欺詐的數據。與基於異常值分析的方法相比,分類方法是一種有監督的數據挖掘方法,其檢測精度更高。

 

 

 

 常用欺詐檢測技術簡介

 

 

  1分類算法                                                

 

 

 

分類是一種監督學習,這類學習類似於人類的學習方式,其從過去的經驗中獲取知識以用於提高解決問題的能力。通過有標注數據建立分類模型,來對未知類數據進行預測分類。分類應用到眾多領域:包括文本分類,入侵檢測,欺詐檢測等。在點擊欺詐檢測中本文應用到以下分類算法,下面做簡單介紹。

 

1邏輯回歸算法

 

 

  邏輯回歸又稱邏輯回歸分析,常用於數據挖掘,經濟預測,疾病自動診斷等領域,它是一種廣義的線性回歸分析模型。回歸很容易被理解,就相當於y=fB),表明自變量X和因變量Y的關系。最常見的的問題如醫生為了判斷病人得了什么病,會進行望、聞、問、切,這個過程可以看成回歸,其中望聞問切相當於自變量X,是特征,判斷病人是否生病就相當於獲取因變量Y,即進行分類【241。一般邏輯回歸分為三個步驟:1、構造合適預測函數;2、構造損失函數 ;3、想辦法得到使損失函數最小並求得回歸參數。

 

 

  2朴素貝葉斯分類

 

 

朴素貝葉斯分類是一種十分經典的分類算法,是一種基於統計學的分類方法。它假定數據集中每個屬性值在給定類的影響獨立於其他屬性的值。

 

 

  3決策樹算法

決策樹算法是從有類標號的訓練元組中學習決策樹,決策樹是一種類似於流程圖的樹結構,其中每個內部結點(非樹葉結點)表示在一個屬性上的測試,每個分枝代表該測試的一個輸出,而每個樹葉結點(終端結點)存放一個類標號。決策樹算法在分類、預測等領域。

  4.C4.5算法 

C4.5是一種很經典的決策樹分類算法。C4.5由J.Ross Quinlan在ID3算法的基礎上提出的。建立決策樹一般有兩個步驟:生成決策樹和對決策樹剪枝。ID3算法用信息增益來選擇屬性,但這樣會使選擇結果偏向於多值屬性。

 5.離群點挖掘算法

離群點挖掘是找出其行為很不同預期對象的過程。這種對象稱為離群點或異常點。離群點挖掘被應用到很多領域,例如如故障診斷,入侵檢測,信用卡欺詐,垃圾圖像檢測,電子商務等領域

介紹完上面的算法,下面重點來了!! 

惡意點擊廣告特征分析

  為了增加點擊量,廣告發布商會雇佣大量人力物力或者編寫點擊程序去點擊其網站或APP發布的廣告,以獲取移動廣告平台高額廣告費分成,一般有兩種點擊欺詐手段。第一種,最簡單的,通過單一手機,模擬器或者程序產生大量點擊,這類由於ip地址固定,Agent,廣告來源url單一,比較容易檢測;第二種,為了躲開簡單的檢測,廣告發布商會使用一些手段偽裝他們的點擊行為,例如:改變IP地址、用不同的手機去點擊廣告、利用位置模擬器改變點擊廣告所產生位置信息等手段,針對這種點擊欺詐手段,以廣告發布商為研究對象,從多個維度分析,提取多個特征,量化其點擊行為,最后進行檢測。

在點擊欺詐檢測中,特征的選取是一個至關重要的過程,直接影響到檢測結果的准確率。移動廣告平台的服務器里存在着廣告的點擊日志和廣告發布商的信息數據,這些數據被用做原始數據集進行特征提取,一般會包括:點擊時間,IP地址,點擊廣告的id,點擊廣告的類型,點擊的廣告發布商的id,點擊廣告的urI,點擊設備型號,點擊位置信息等屬性。提取特征的過程實際上是在原始數據集的基礎上把每個發布商的廣告點擊的點擊行為和模式進行了數值化的量化,合適的特征應該是能夠代表和區分廣告點擊的趨勢,為了在原始數據集的屬性中提取合適的特征 。

 

  例如:點擊率,針對http 的特征,針對agent詐欺擊點在存測檢能上度程定一在征特些這,等征特的 也存在着兩點不足:1、這些特征的提取過程是從基本統計(最大值和平均值)和基於方差的角度提取的特征。隨着作弊手段的提升,只是從基本統計和方差的角度提取特征不能夠全面的體現作弊者的點擊欺詐行為;2、在與時間相關的特征中,單位時間的選取太單一,並不能全面的涵蓋點擊。針對這兩點不足,本文提取特征的過程加入了基於信息熵,基於偏度的特征和一些基於統計的特征,在提取時間相關特征時,選取四個單位時間,分別是每一分鍾,每五分鍾,每l小時,每六小時。

   綜上所述,本文從移動廣告平台的角度考慮,檢測存在點擊欺詐行為的廣告發布商(APP開發者或網站主),以廣告發布商為研究對象,本文從四個角度提取特征:基本統計特征,基於方差的特征,基於信息熵的特征,基於偏度的特征。下面對各個類別的特征進行介紹:

1基本統計的特征

點擊率:點擊率是廣告的點擊次數和展示次數的一個比值。一個APP或網站上廣告的點擊次數和展示次數都是能記錄到的,通常來說,如果不存在點擊欺詐,正 常的廣告點擊率不會太高,通過分析不同時間段的點擊率來提取多個特征。

分析不同時間段點擊次數的最大值和平均值:每個廣告發布商發布廣告被點擊的總次數是一定的,如果太高,就有存在點擊欺詐的嫌疑。通過分析每分鍾,每五分鍾,每小時,每六小時的點擊次數來提取多個特征。

單個IP的點擊最大值:統計所有IP地址點擊廣告發布商廣告的次數,找出最大值。如果這個最大值比較大,就有存在點擊欺詐的嫌疑。通過分析每分鍾,每五分鍾,每小時,每六小時的IP點擊最大值可以提取到4個特征。

點擊次數與獨立IP地址的個數的比值:這個比值越偏大,說明有些IP地址點擊的次數越多,就有點擊欺詐的嫌疑。

  同類Agent的點擊最大值:統計所有Agent點擊廣告的次數,找出最大值。如果這個最大值比較大,就有存在點擊欺詐的嫌疑。通過分析每分鍾,每五分鍾,每小時,每六小時的Agent點擊最大值可以提取到4個特征。

點擊次數與獨立Agent的個數的比值:這個比值越偏大,說明該發布商存在點擊欺詐的嫌疑。

分析相同Agent和IP地址的點擊次數的平均值和最大值:通過相同Agent和IP地址可以識別一個點擊者,如果它的點擊次數過高,就可能存在點擊欺詐。

除以上特征還可以提取這些特征:每個廣告發布商廣告被點擊的獨立IP個數、獨立Agent(移動設備型號)個數、Cid(廣告id)個數等,一共分析基於統計的特征30個。

惡意點擊檢測研究

  點擊欺詐檢測模型主要包括用戶身份識別模型、並行欺詐檢測模型兩個部分組成


    <ignore_js_op>

   (1)用戶身份識別模型:指框架中銜接客戶端與服務端的平台,該模型通過客戶端采集的瀏覽器指紋和EverCookie信息對用戶的身份進行追蹤,得到用戶的唯一性ID,同時采集客戶端其他用於點擊欺詐分析所需的數據:。
   
    關於什么是瀏覽器指紋技術,我之前有介紹,也可以訪問:https://blog.csdn.net/luo2424348224/article/details/107599328   這篇文章介紹

    關於什么是EverCookie:Evercookie是一種Javascript API,可在瀏覽器中生成非常持久的cookie。它的目標是即使刪除了標准Cookie,Flash Cookie(本地共享對象或LSO)和其他Cookie,也可以識別客戶端。開源地址:https://github.com/samyk/evercookie



   在用戶點擊廣告的過程中,部分惡意用戶會在點擊廣告過程中刻意隱藏或修改自己的身份信息,已達到偽裝自己的目的,主要對這些惡意用戶的點擊欺詐行為進行分析和檢測。一個基於瀏覽器指紋的用戶身份識別模型作為檢測的基礎,結合EverCookie投放技術,對用戶身份進行唯一性確定。識別模型主要包含數據采集、瀏覽器指紋識別、EverCookie投放以及最終身份確定四個部分


    <ignore_js_op>

     (1)瀏覽器特征:用戶在訪問網絡廣告時使用的瀏覽器配置信息,如插件信息、字體以及屏幕分辨率等一系列特征,不同的用戶由於自身的性格、習慣或喜好不同,其使用瀏覽器呈現不同的特征;
   
     (2)瀏覽器指紋識別:指根據用戶的瀏覽器特征提取的特征向量,在服務端依據瀏覽器指紋識別算法對其進行識別,如果匹配到該用戶信息,則獲取其身份,否則更新其瀏覽器指紋信息到服務器用戶身份庫中;

    (3)EverCookie投放:有別於傳統的Cookie技術,EverCookie會將服務端指派給用戶的身份信息依據不同的機制投放到客戶端的多個位置中去,並且能夠恢復和重用,保證惡意用戶不能輕易地偽造或者刪除對其進行的身份定義;


    (4)身份確定:指本文對用戶的身份進行的確認,由於用戶的身份由瀏覽器指紋和EverCookie同時決定,因此只有這兩個值同時發生變化時,用戶的身份才發生變化。


    整個模型的運行流程如下所述:當用戶點擊發生時,模型客戶端的JavaScript代碼會讀取該用戶的瀏覽器特征參數以及不同存放機制中EverCookie值,作為用戶身份識別算法的輸入參數;隨后進行的身份識別過程主要是根據瀏覽器特征參數計算得到的瀏覽器指紋值與EverCookie值相結合,在服務器端的用戶身份庫中進行匹配的過程;最終由匹配結果決定該用戶是否為新用戶。

 

  

用戶身份識別算法分析

 瀏覽器指紋和EverCookie是兩種用戶身份識別技術,本算法設計的用戶身份識別過程依賴這兩種算法的結合使用:當瀏覽器指紋更新后,依據EverCookie存放信息對服務端的瀏覽器指紋庫進行恢復:同時,當EverCookie丟失后,依據瀏覽器指紋信息對EverCookie進行恢復。因此,可以說本算法中的瀏覽器指紋與EverCookie值是相互對應的,它們共同標示着用戶的身份信息,保證算法能夠准確地識別用戶的點擊情況。當一個用戶點擊廣告后,服務器會保留其身份信息,為其指派瀏覽器指紋值和EverCookie值,這兩個值相互對應,並且與用戶本地的特征相對應。當用戶的本地特征發生改變時,其瀏覽器指紋值或EverCookie值會隨之改變,算法通過其中未發生改變的值恢復另外一個值,以保證用戶身份的有效性。

當瀏覽器特征更新后,瀏覽器指紋會隨之更新,因此無法再匹配到服務端用戶信息,但依靠與其綁定的EverCookie值能夠將其原指紋恢復。同理,當EverCookie數據丟失后,可通過重新計算瀏覽器指紋,得到用戶身份信息。                         

  

 colorDepth參數:window.screen.colorDepth     通常為:16,24,32
PixelRatio參數:window.devicePixelRatio     通常為:1-3隨機數,可以浮點數
hardwareConcurrency參數:navigator.hardwareConcurrency  通常:1-16隨機整數
timezone參數:getTimezoneOffset()   通常是:-480
innerWidth參數:window.innerWidth
innerHeight參數:window.innerHeight
outerWidth參數:window.outerWidth
outerHeight參數:window.outerHeight
colorDepth參數:screen.colorDepth
pixelDepth參數:screen.pixelDepth
availWidth參數:screen.availWidth
availHeight參數:screen.availHeight
platform:參數:navigator.platform  通常為:Linux armv8l/Linux armv7l/iPhone/Linux aarch64/Win32/Linux x86/Linux x64 除了iPhone其他都可以隨機機型
plugins參數:navigator.plugins    可以隨機加字體名字,例如為:Arial,Arial Black,Arial Narrow,Arial Unicode MS,Book Antiqua,Bookman Old Style,Calibri,Cambria,Cambria Math,Century,Century Gothic,Century Schoolbook,Comic Sans MS,Consolas,Courier,Courier New,Georgia,Helvetica,Impact,LucIDA Bright,Lucida Calligraphy,Lucida Console,Lucida Fax,Lucida Handwriting,Lucida Sans,Lucida Sans Typewriter,Lucida Sans Unicode,Microsoft Sans Serif,Monotype Corsiva,MS Gothic,MS PGothic,MS Reference Sans Serif,MS Sans Serif,MS Serif,Palatino Linotype,Segoe Print,Segoe Script,Segoe UI,Segoe UI Light,Segoe UI Semibold,Segoe UI Symbol,Tahoma,Times,Times New Roman,Trebuchet MS,Verdana,Wingdings,Wingdings 2,Wingdings 3
appName瀏覽器名稱參數:navigator.appName  通常為:Netscape
appVersion瀏覽器版本參數:navigator.appVersion;  就是UA的前半部分
cookieEnabled返回用戶瀏覽器是否啟用了cookie參數:navigator.cookieEnabled
cpuClass 硬件cpu型號: navigator.cpuClass; //返回用戶計算機的cpu的型號,通常intel芯片返回"x86"(火狐沒有)
mimeTypes瀏覽器支持的所有MIME類型的數組參數:navigator.mimeTypes
userLanguage瀏覽器語言參數:navigator.userLanguage   // 用戶在自己的操作系統上設置的語言(火狐沒有)
systemLanguage;系統默認語言:navigator.systemLanguage //火狐沒有
enumerateDevices 獲取設備列表:navigator.mediaDevices  //大多數移動沒有,可以不劫持
webdriver系統驅動參數:navigator.webdriver 或者是:window.navigator.webdriver  //大多數移動沒有,可以不劫持
webglVendorAndRenderer參數:navigator.webdriver  //大多數移動沒有,可以不劫持

canvas參數修改代碼:通過js代碼:

  

 其中:
iphone 5系列是:320x568    pixelRatio:2
iphone 6,7,8系列:375x667  pixelRatio:2
iphone plus系列是:414x736 pixelRatio:3
iphone x分辨率是:375x812  pixelRatio:3
ipad 分辨率是:768x1024  pixelRatio:3
ipad pro:1024x1366 pixelRatio:3
以上隨機就行,百度對蘋果系列監控不嚴格

根據個人的經驗,百度商盾機制有以下幾種

1.Headless Chrome 特性檢測,商盾指出爬蟲點擊競價為無效點擊
Headless Chrome由於其自身就是一個chrome瀏覽器,因此支持各種新的css渲染特性和js運行時語法。基於這樣的手段,爬蟲作為進攻的一方可以繞過幾乎所有服務端校驗邏輯,但是這些爬蟲在客戶端的js運行時中依然存在着一些破綻。

2.初級檢測,例如百度統計,基於瀏覽器的 UserAgent 字段描述的瀏覽器品牌、版本型號信息,對js運行時、DOM和BOM的各個原生對象的屬性及方法進行檢驗,觀察其特征是否符合該版本的瀏覽器所應具備的特征(瀏覽器指紋檢查)

3.對Headers的User-Agent進行檢測(根據User-Agent 來鑒別你的http header中的各個字段是否符合該瀏覽器的特征)

4.設備指紋

5. cookie檢測,將設備指紋,服務端下發認證 set進cookie,對cookie的訪問頻率 限制cookie可以有效解決用戶標識問題(訪客識別碼就是以這個計算出的,百度統計的訪客識別碼)

6.IP檢測通過IP風險庫判斷是惡意IP進行黑名單

7.JS-Injection,這個方法也是目前業界廣泛使用的,在第一次訪問請求時,返回注入的js,js執行一些計算邏輯,並將其放入cookie,再次發起請求驗證,驗證成功后,server向client發放一個token放在cookie里,以后的所有請求都需要攜帶該cookie標識已認證為非bot身份

8.軌跡模型,對用戶瀏覽網頁過程中產生的軌跡 進行機器學習判斷是人還是機器,軌跡+CNN算法判斷

9.ZoombieCookie,僵屍cookie是指那些刪不掉的,刪掉會自動重建的cookie。僵屍cookie是依賴於其他的本地存儲方法,例如flash的share object,html5的local storages等,當用戶刪除cookie后,自動從其他本地存儲里讀取出cookie的備份,並重新種植。
zoombie cookie + 設備指紋 = 唯一用戶
使用ZoombieCookie 持久化存儲Cookie 增加用戶偽造難度,解決設備指紋無法完全標識用戶問題

10.用戶畫像,通過用戶注冊信息,結合用戶的歷史行為數據,對用戶進行畫像。從而分析用戶的異常行為,百度常用這個。

11.Canvas 的指紋
Canvas是HTML5中動態繪圖的標簽。基於Canvas繪制特定內容的圖片,使用canvas.toDataURL()方法返回該圖片內容的base64編碼字符串。對於PNG文件格式,以塊(chunk)划分,最后一塊是一段32位的CRC校驗,提取這段CRC校驗碼便可以用於用戶的唯一標識。

  瀏覽器環境參考我自己做的:http://www.sdfymj.com/ua.php

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM