Google分析language垃圾資訊
最近一段時間,我在Google Analytics(以下簡稱GA)中檢視網站資料時,發現一個非常可疑的資訊:
這什麼鬼?
“language”這一項一般是 “zh-tw”, “zh-cn”, “en-us”, “es”, “fr”等,它是由使用者瀏覽器設定的。但使用者瀏覽器不可能把語言項設定為這些:
Secret.ɢoogle.com You are invited! Enter only with this ticket URL. Copy it. Vote for Trump! o-o-8-o-o.com search shell is much better than google! Vitaly rules google ☆:。゜゚・ヽ(^ᴗ^)ノ・゜゚。:☆ ¯_(ツ)/¯(ಠ益ಠ)(ಥ‿ಥ)(ʘ‿ʘ)ლ(ಠಠლ)( ͡° ͜ʖ ͡°)ヽ(゚Д゚)ノʕ•̫͡•ʔᶘ ᵒᴥᵒᶅ(=^ ^=)oO Congratulations to Trump and all americans
分析請求
很明顯,這是一種新的 spam(垃圾資訊),希望吸引目標人群(可能就是我們這樣的網路管理員)的注意力。
仔細地觀察這些請求,會發現幾個特點:
請求數有明顯的波峰,在幾天內會達到高峰,然後又降下去
New Sessions 的比例非常高,達到了86%以上
分析其它受攻擊的欄目
仔細檢視 GA 統計專案的這些請求,發現 referrer 一欄也比較可疑地出現了這些:
motherboard.vice.com addons.mozilla.org webmasters.stackexchange.com blackhatworld.com thenextweb.com abc.xyz lifehacĸer.com ...
這其中有一些非常正規的域名。比如abc.xyz
是Google的母公司alphabet的官網,thenextweb.com
也是一個開發者媒體。
這些網站本身沒有問題,但其實該網站上並沒有任何一個連結指向我的部落格,更談不上我的訪客“來自”(referral)該網站了。當我訪問回去,發現並沒有實際上的連結,只是廣告,倒也罷了,更可怕的是可能會有釣魚、病毒等。
綜上,這是一波二維攻擊(假的語言項和假的 referral 項),目的是吸引你的注意力。
分析攻擊怎麼產生的
總的來說,這種垃圾資訊有兩種攻擊方式。一種是真正會訪問你的網站的網路爬蟲;另一種是不訪問你的網站,而是將假冒的“點選”事件直接傳送到GA伺服器。事實上,第二種攻擊方式由於成本低,因而更加常見。
GA 的統計邏輯是,當使用者訪問你的網站,會在前端執行一段 JavaScript 程式碼,然後把使用者的一些訪問情況通過 HTTP 請求傳送給 GA 伺服器,告訴 GA 發生了一次“訪問”。而這個 HTTP 請求可以很容易地被偽造,所以垃圾資訊傳送者無需真的訪問你的站點,它直接傳送大量 HTTP 請求即可達到目的。
除了 HTTP 請求,GA 還支援更方便的Measurement Protocol ,開發者可以傳送一個原始資料(raw data)給GA,來一次性傳輸大量使用者行為。這個協議的初衷是讓開發者可以統計所有環境下的使用者行為,比如開發者可以將離線狀態下的使用者行為記錄下來,當線上時一次性傳送。或者當內網不支援外部訪問時,先記錄下使用者行為,隨後再定時一次性傳送到 GA。
初衷是好的,不幸的是,這個過程仍然是無需認證身份,所以更方便了垃圾資訊傳送者。垃圾資訊傳送者可以通過一次請求即傳送大量假資料,他只需要得到你的 UA-ID(UA-XXXXXXX-XX)即可。
在這個原始資料包中,一切皆可偽造。Hostname?沒問題!Referral?全改了!URL path?當然也可以改……
如何避免
對網站主來說,這種垃圾資訊有幾點危害:1、浪費時間,就像傳統垃圾郵件一樣。2、干擾 GA 狀態列,特別是如果網站流量不是很大(比如我)。3、傳播病毒。
所以,有沒有完美的解決方法呢?實際上,沒有。
要知道,資料一旦錄入到 GA,就沒有辦法刪掉了。能做的只有兩件事,一是阻止垃圾資訊進一步加入到 GA,二是在檢視中過濾掉已經新增進來的垃圾資訊,眼不見為淨。
第一步:使用過濾器阻止未來的垃圾資訊
在語言項中,一般字元數是5-6個,很少有超過10個的,所以我們可以認為語言項超過15個字元的就一定是垃圾資訊。
此外,有一些字元是不可能出現在合法的語言項中,但垃圾資訊會利用這些字元來組成URL,比如: “secret google com”, “secret,google,com”, “secret!google!com”,所以我們也一併排除空格、點號、逗號、驚歎號。
.{15,}|\s[^\s]*\s|\.|,|\!|\/
在admin中選擇Filter,然後新增一個如圖所示的過濾器即可。
設定好了之後,可以驗證一下是否會攔截掉我們想攔截的內容:
沒有問題,未來的語言項垃圾資訊會直接被攔截掉。
第二步:通過Segment淨化已有資料
過濾器從你開始設定時生效,而歷史資訊無法修改。不過 GA 提供了 custom segment 功能,在生成報告時,選擇性過濾掉一些資料。
Segment 就是資料片段,指的是在完整的資料中取出我們需要的片段進行分析。比如我們可以單獨取出24歲以下的使用者的行為,對比24歲以上的使用者行為有何不同。而這個功能正好可以讓我們把“語言”不規範的資料過濾掉。
如下圖,在All Users的旁邊有一個 + Add Segment 的按鈕,點選之後就可以配置我們的 segment。
一定要注意是選擇“does not match regex”,裡面填上之前的正則。
建立好了新的 segment 之後,就會看到過濾之後的全新報告。
下次再進入時,又會預設進入到 All Users 檢視,這時可以在 All Users 裡的 custom 裡找到我們的自定義 segment,勾選即可。
如果經常需要檢視這個 segment,推薦點選 shortcut 來新增快捷方式。
它會儲存當前的 segment 和排序等,下一次可以直接從 Short 專案進入到這個快捷目錄。
以上就是完整的過濾方法了,這樣應該可以過濾掉大部分語言spam的攻擊。GA提供的 filter 和 segment 的功能很強大,如果後續發現有新的垃圾資訊,可以繼續通過今天學習的方法來更新完善我們的過濾器。
公眾號推薦:
相關文章
- 3295. 舉報垃圾資訊
- Google工程師教你編寫垃圾回收器Go工程師
- 反垃圾郵件和資訊審計
- 垃圾收集分析的意義
- JAVA垃圾回收機制和Python垃圾回收對比與分析JavaPython
- google books api 獲取圖書資訊GoAPI
- Google下自己 看看多少資訊被洩露–資料資訊圖Go
- google谷歌廣告投放被拒登 提示有惡意垃圾軟體Go谷歌
- JVM之垃圾回收機制詳解分析JVM
- 10. 系統分析垃圾收集器
- Google排名的200個因素–資訊圖Go
- Google是如何蒐集網際網路資訊Go
- Denial of App - Google Bug 13416059 分析APPGo
- Google賽馬;及最大矩形分析Go
- 垃圾分類小遊戲需求獲取與分析遊戲
- 深入分析 Python 的垃圾回收機制Python
- 重要資訊!Google 給安卓開發者的三條指示!Go安卓
- Android N將提供省流量模式 可攔截垃圾資訊Android模式
- The Go Programming LanguageGo
- the java programming languageJava
- 全球Google Play市場分析報告Go
- 分析:Facebook為何比Google強大Go
- 《圖解 Google V8》事件迴圈和垃圾回收——學習筆記(三)圖解Go事件筆記
- google+在美國地區使用情況–資訊圖Go
- 資訊圖:Google每天賺1億美元的祕密Go
- Facebook和Google+的區別–資料資訊圖Go
- 使用google map v3新增經緯度資訊Go
- 新一代資料分析利器:Google Dremel原理分析KLGoREM
- Google DNS劫持背後的技術分析GoDNS
- Think With Google:YouTube視訊廣告性別分析Go
- Google Play 放置遊戲產品型別分析Go遊戲型別
- GOOGLE:移動網際網路案例分析Go
- Google music能打敗iTunes和Amazon——資料資訊圖Go
- 資訊集--資訊系統分析設計關鍵
- DBMS_STATS分析表與備份分析資訊
- google protocol buffer——protobuf的基本使用和模型分析GoProtocol模型
- Google收購安全分析軟體廠商ZynamicsGo
- 分散式資料庫Google Spanner原理分析KP分散式資料庫Go