拒絕羊毛黨:運營同學必看的防薅羊毛技術完全解讀
本文旨在對防范羊毛黨的技術做個科普,讓大家知道羊毛黨到底是怎么薅的,有哪些方法可以杜絕羊毛黨的薅羊毛行為。enjoy~
薅羊毛這三個字大家都非常熟悉了,而現在的薅羊毛主要發生在互聯網上,尤其集中在電商平臺、P2P網貸平臺等。
無利不起早,正式因為這些平臺有明顯的利益可圖,所以即使需要耗費很大的精力,也有很多人樂此不疲。大家可以搜到,網上有各種薅羊毛信息發布網站,還有許多有組織的薅羊毛群體,這背后是非常大的產業。
正因為羊毛黨之多,斗爭困難,很多網站和商家對此都很痛苦,同時又感覺很羊毛黨神秘,好像羊毛黨有什么深不可測的技術,無力抵抗。
所以本文的目的就是對防范羊毛黨的技術做個科普,讓大家知道羊毛黨到底是怎么薅的,有哪些方法可以杜絕羊毛黨的薅羊毛行為。
大家可以先預覽一下全文的脈絡:
目錄:
1. 羊毛黨的分類
1.1 刷單刷票類
1.2 任務類
1.3 黃牛黨
1.4 黑客類
1.5 漏洞研究類
2. 通過運營手段防范
2.1 用戶群體限制
2.2 客戶端版本限制
2.3 次數/上限限制
3. 通過技術手段防范
3.1 封禁 IP 或 IP 段
3.2 封禁用戶
3.3 增加驗證碼
3.4 系統限流
3.5 離線數據分析
3.6 綜合解決方案
4. 總結
5. Q & A
1. 羊毛黨的分類
根據具體薅的方法不同,可以把羊毛黨大致分為五類:
1.1 刷單刷票類
這類用戶主要靠刷單刷量獲取利益,比如淘寶刷單、刷評論等。刷票也算,代刷投票、閱讀數、粉絲數等等。
1.2 任務類
顧名思義,很多網站對特定任務會有獎勵,比如注冊、問卷、綁卡、實名認證等等。有些是消耗時間和注意力,有些干脆是拿自己或別人的信息賣錢。
1.3 黃牛黨
黃牛黨一般利用信息不對稱或者技術優勢、人脈優勢,可以更早、更快獲取信息,也可能是團隊合作,共享資源,往往會對某些稀缺資源進行壟斷,然后再高價轉手獲利。比如多火車汽車票,有現場排隊的黃牛,也有互聯網上的黃牛。
1.4 黑客類
如果論技術,這些人也未必稱得上黑客。但是特點還是利用技術手段找到平臺安全漏洞,獲取利益。如果無節制,直接把羊薅死也不一定。比如積分商城的商品、抽獎的現金、優惠券代金券等等。或者直接爆庫,轉賣用戶數據等。這一類基本都是違法行為,是要追究法律責任的。
1.5 漏洞研究類
這類用戶主要研究活動規則的漏洞,也可能加上一點技術手段。跟黑客的區別就是,系統可能沒有漏洞,只是沒有做好防薅的工作而已?;蛘呤腔顒右巹t設計不健全,使之有利可圖,比如信用卡養卡。當然,養卡這種還有深層次原因,平臺也需要這些活躍用戶,這種算是互賴型的薅羊毛。
如果再抽象一點,可以分成手動和自動兩大類。手動的薅羊毛,即人肉薅羊毛,靠各種群集合起來,有羊頭組織和派發任務,其他人只要抽出些碎片時間參與即可。自動的就是要建立一套程序,在特定活動時開啟,或者針對某些平臺長期運行。
本文主要討論如何防范自動化的薅羊毛,因為除了黑客之外,這種羊毛黨危害最大。而防范黑客的話題太大,也沒有什么固定的解決方案,討論也沒啥用。而對于人肉薅羊毛,做任務、刷單等,目前也沒有太好的辦法,畢竟都是真實的用戶,除非有明確的行為數據模型可以命中,否則只能當做正常用戶。這個后面會提到。
2. 通過運營手段防范
我們都知道羊毛黨的危害非常大,尤其對于運營活動來說,最常導致的問題就是運營成本失控、數據樣本失真、垃圾賬號混淆、公正性失信等等。其中運營成本失控,如果把握不好,拖垮公司都是有可能的。而數據統計的失真,也導致無法清晰判斷后續的運營策略。羊毛黨的蜂擁而至,也會降低真實用戶的積極性這忠誠度,榨干平臺。
要想防范羊毛黨,最主要的還是控制利益的誘惑,避免直接利益,比如紅包話費等。而對于優惠券之類,用戶需要購買才能使用的,誘惑就沒那么大了。除非是五折以上或者是大額現金券。此外,購物也需要填寫明確的收貨地址及其他個人信息,羊毛黨會相對謹慎一些。
因此,在制定營銷活動時,必須制定完備的業務規則,必須要有相應的活動門檻和限制,例如:
2.1 用戶群體限制
定義哪些類型的用戶能參與活動,指定清晰的分界線。對于特定的活動,可以適當提高參與門檻,比如 V2 以上會員可以參與,有過購買記錄的可以參與等等。這種主要針對特定群體會員做運營,對于被排除在外的用戶,體驗就沒那么好了。
2.2 客戶端版本限制
定義哪些 APP 或小程序版本能參與,比如:拉新活動要求必須使用最新版 APP 注冊才給獎勵。
2.3 次數/上限限制
明確定義賬戶級、設備級、實名信息級能參與活動的上限和參與活動的頻率等?;顒咏o用戶的預期要控制在合理的范圍,并且控制上限,才能有效防范羊毛黨。比如每個賬號的上限,每日活動預算的上限。活動規則中也要明確說明,如果發現有人通過刷單刷票等形式違規操作,平臺有權取消其參與資格或相應獎勵。這樣對于異步發放的獎品,也可以在發放之前檢查一下數據,篩掉可疑用戶。
最后,對于所有活動的數據,在開發之前就要明確提出需要監測哪些數據。不然活動都已經跑起來了,沒有預先埋點的東西肯定是拿不到的。作為運營對數據一定要極其敏感,如果有暴增的用戶量或者參與量,就要小心是不是有羊毛黨來襲,而不是光顧著樂。
3. 通過技術手段防范
我們可以先簡單看一下騰訊云的防刷接口對風險類型的定義:
通過技術手段薅羊毛,最常見的就是高頻刷接口,惡意注冊賬號,撞庫等。而這類羊毛黨,一般會大量養卡,或有很多虛擬的打碼平臺,可以提供手機號+驗證碼服務。有的可能還會擁有大量動態IP地址,海外服務器,以及批量的身份證等。還有專業的設備,稱作“貓池”、“卡池”。對于移動端的業務,許多這類公司還購入大量實體手機,再通過軟件批量控制,稱為“群控”,這個我在《微信里的賺錢路子》文章里提到過。對于這種羊毛黨和黑灰產,傳統的防護手段一般有三種:封IP,封用戶,增加驗證碼。下面分別進行講解。
3.1 封禁 IP 或 IP 段
針對異常 IP,我們可以通過技術手段直接封掉。目前大部分網站的接入層都是 Nginx,那么可以考慮使用 deny 配置封禁 IP 或 IP 段:
deny 1.2.3.4;deny 1.2.3.4/24;
如果運維層面不方便操作,也可以把請求放到應用層封禁,由 WEB 容器來解決。這里要注意,封禁 IP 或 IP 段是有風險的,許多公司對外的出口 IP 都是統一的,如果全公司很多人同時訪問某網站,就可能被誤傷。共享的 WIFI,某些移動基站也可能是有固定的出口 IP,所以最好輕易不要封禁 IP 或 IP 段。
3.2 封禁用戶
我們可以根據某些特定的規則,篩選識別出一批用戶,對其進行一些限制??梢圆捎煤诿麊螜C制,或者用戶風險分級、信用分級等等。然后再根據黑/白名單,或用戶等級限制特定的行為,比如完全拒絕服務、限制某些功能、限制大獎等等。
封禁用戶的標記有很多種,最基本的如果用戶有登錄態的話,就可以直接封賬號。如果沒有的話,可以通過設備指紋來標識設備,根據平臺的不同,設備指紋可以是 PC 端的瀏覽器指紋,移動端的 IMEI、MAC 地址、UUID 等,或者這些條件綜合起來計算出來的 machine key,使之無法造假,然后在關鍵請求時校驗 machine key 的合法性。
網絡環境也是個因素,WIFI 和 4G 的切換,或者網絡 IP 的變化,都可以是拒絕服務的理由。這種在銀行 APP 中最常見,如果切換了網絡,銀行 APP 一般會要求重新驗證身份才能繼續操作。然而,目前市面上已經出現了各種改機軟件和模擬器,能不斷修改設備信息,讓一般的設備指紋失去作用。
這種方式的風險就是,規則要慢慢養成,過程中必然有遺漏和誤殺,操作不當可能會引起大量投訴。所以這種方式最好是寬進嚴出,默認用戶都是好的,再慢慢收緊,識別出明確的惡意用戶。對于可疑但不確定的用戶,可以先標記等級,再針對這些等級單獨觀察后續行為后,對其進行等級的升降。然后針對不同等級限制行為。
關于羊毛用戶的識別標記,可以是基本數據是否健全,比如資料是否完整,是否有真實可信的昵稱,手機號等;行為數據,如鼠標點擊、鼠標移動、按鍵次數,每次打卡是否固定時間等等;更高級一點的,可以實施全路徑實時布控策略,從 APP 啟動、賬號注冊、登錄,到業務場景(如直播熱度/電商銷量排行等),再到設備風險(篡改、虛擬機、設備農場、積分墻等)設下層層關卡,全棧式防御欺詐行為。
3.3 增加驗證碼
驗證碼有很多種,往往加在重要操作流程中,比如注冊/登錄/綁卡/支付等環節,大家應該都體驗過五花八門的驗證碼。比如注冊用戶時的拼圖滑塊、Google 的 I’m not robot、手機驗證碼、圖片驗證碼等等。
第三方授權的功能也是一道天然屏障,比如微信授權、QQ登錄授權,這樣惡意用戶需要先經過第三方驗證一道,起碼在訪問頻率和賬號真實性上多了一道屏障。如果業務允許的話,還可以要求用戶進行實名認證,密保問題校驗等等。當然,步驟越多體驗就越差。
驗證碼的主要作用就是區分操作者到底是人還是機器。但是不同的驗證碼難度千差萬別,普通的手機驗證碼,有專門的打碼平臺可以提供 手機號+驗證碼 服務,而且都是程序對接,自動化執行。而對于一般的圖片驗證碼,也有很多公開的圖片驗證碼識別服務。因此才會導致各個平臺的驗證碼越做越復雜,到了人類都很難辨認的程度,體驗很差。
3.4 系統限流
限流只能一定程度上緩解,或者說讓風險可控。主要是防止惡意請求流量、惡意攻擊,或者防止流量超出系統的峰值,破壞系統。前面第 1 小點封禁 IP 也可以理解為限流的一種,在接入層直接拒絕,對于系統資源的損耗最小。而對于網絡流量,可以使用 Nginx 的 limit 模塊進行限制,防止過大的流量穿透到后端應用。
常用的限流算法有兩種:令牌桶算法,漏桶算法。令牌桶算法,是一個存放固定容量令牌的桶,單位時間內,拿到令牌的才能通過,多余的不派發令牌;漏桶算法則是單位時間內流出的數量固定,流入無所謂。那么無論對于網絡請求的數據量,還是用戶新增的數量,獎品發放的數量,都可以使用這兩種思路進行限制。這里是系統架構的知識,不再贅述。
3.5 離線數據分析
如果活動已經在進行,或者活動已經結束,但是總感覺不對勁,這時候就要采用離線數據分析的方法,仔細辨別是否有羊毛黨的存在。那么數據從哪里來呢?
前面提過,除了活動必須的數據之外,如果想更深入地分析用戶行為,那么在需求設計階段就要想好,希望記錄哪些行為,便于后續分析。如果系統沒有提供這些能力,顯然也沒有相關的數據可以分析了。
3.6 綜合解決方案
完整風控解決方案,不僅要考慮用戶體驗,同時又要兼顧效果,需要考慮很多方面。因此有很多大小公司都專門提供了這方面的解決方案。比如騰訊、阿里、網易等等,此外還有許多提供這種業務的公司,搜索“防薅羊毛”就會出現很多。這些解決方案的基本原理與上述技術無異,只是數據基數更大,再加上機器學習和大數據分析,可以更加準確識別出惡意用戶和黑產用戶。
以下內容(3.6.1 – 3.6.4)來自網易易盾《全鏈路風控解決方案深度解讀》中提到的風控服務,不代表本人觀點,僅供參考,文末參考文獻中有文章鏈接,感興趣的同學可以前往查看。
事前預防:通過數據采集收集用戶側信息、通過業務規則來限定參與活動的門檻、通過身份核驗來確認用戶身份等手段,防止風險事件的發生。
事中檢測處置:通過實時在線的手段來檢測風險,并做相應的風險處置,防止風險事件的發生。
事后分析回饋:基于長周期的離線數據分析,計算用戶側、設備側、IP側、業務側的各種風險特征,并作用于事前風控和事中風控。
3.6.1 事前預防
事前預防主要有三個層面的事項:數據采集、業務規則、身份核驗。
a)數據采集
在業務活動的各個階段,都需要埋點采集數據,主要有設備指紋、操作行為、網絡數據、業務數據、第三方數據等。采集的數據主要用于事中的風險監測和事后的離線分析。
b)業務規則
在制定營銷活動時,必須制定完備的業務規則,必須要有相應的活動門檻和限制,例如:
- 用戶群體限制:定義哪些類型的用戶能參與活動,指定清晰的分界線。比如:電商大促經常出現的神券,可以限制賬戶等級>3、年度內購物次數>2才能領取等等。
- APP版本限制:定義哪些APP版本能參與,比如:拉新活動要求必須使用最新版APP注冊才給獎勵。
- 參與次數限制:明確定義賬戶級、設備級、實名信息級能參與活動的上限和參與活動的頻率等。
c)身份核驗
身份核驗主要是為了確保是用戶自己來參與活動,主要手段包括:手機短信校驗;驗證碼校驗;密碼校驗;密保問題校驗;本機校驗:校驗手機號對應的SIM卡是否在當前設備中使用;實名認證,有三種:1)身份證OCR校驗;2)身份證OCR、人臉校驗;3)身份證OCR、活體檢測;個人信息。
3.6.2 事中檢測處置
事中檢測主要依賴人機識別、風控引擎、風險處置三個手段。
a)人機識別
人機識別主要區分是人,還是機器自動化的行為??蛻舳伺c后端的數據交互過程中,增加如下的數據保護手段,一旦發現數據有問題,則都是機器行為。數據合法性校驗;數據加解密;數據篡改檢測。
b)風控引擎
事中檢測的核心工具就是風控引擎,風控引擎主要的工作是識別風險,一般的風控引擎都需要如下幾個功能:
- 名單服務:建立黑、白、灰名單;
- 畫像服務:建立基于IP、手機號、賬戶等層級的畫像服務;
- 指標計算:一般包括高頻類統計、求和、計數、求平均值、求最大值、求最小值等等;
- 風控模型:基于采集到的數據,建立風控模型,比如:設備模型、行為模型、業務模型等;
- 規則引擎:最終的風控數據進入規則引擎,由規則引擎判斷是否存在風險。風控運營需基于業務建立各種風控規則,以識別風險。
c)風險處置
識別到風險之后,需要對風控進行處置,處置手段一般有:
- 二次校驗:比如,正常用戶無需二次校驗,有風險的用戶需再次校驗手機短信等;
- 攔截:拒絕當前業務操作;
- 降低獎勵:比如,正常用戶的獎勵金是1元,風險用戶獎勵金是0.01元;
- 拉黑:直接進黑名單;
- 名單監控:進灰名單監控;
- 風險審核:進入人工審核,比如:電商場景的訂單業務,一般嫌疑類風險訂單,都會安排人工審核。
3.6.3 事后分析回饋
事后主要是做離線分析,分析結果可作用于事中實時檢測和事前預防。對于T+N的業務(比如:拉新獎勵金提現),離線分析之后,若識別出風險,也可以做攔截(拒絕此次提現)。
離線分析主要有幾個方面:
- 離線指標:基于長周期、大數據的離線指標計算;
- 關聯分析:基于前后關聯業務、關聯數據做關聯分析,識別風險用戶、風險操作;
- 復雜網絡:基于用戶數據、設備數據、網絡數據、業務數據,建立復雜關系網絡,基于數據與數據之間的關系,來識別風險;
- 模型訓練:基于機器學習、深度學習技術來構建業務模型、設備模型、行為模型,或文本類模型(異常地址檢測、異常昵稱檢測)等;
- 名單庫:通過離線分析,積累、沉淀各種名單庫;
- 數據畫像:基于離線分析,對賬戶、IP、設備、手機號等構建數據畫像。
3.6.4 全鏈路布控
全鏈路風控解決方案另一個非常重要的過程是:全鏈路布控。若只是構建了全鏈路風控模型(工具),未做全鏈路部署,那也是大材小用。
全鏈路布控主要要做到:
多業務布防:在業務的各個環節都需布控防刷手段,一般的營銷活動都需先注冊、登錄,再參與營銷活動。所以,可以在注冊、登錄、營銷活動各個環境都布控風控檢測。
聯防聯控:前置業務為后置業務產出事前特征,避免后置業務風控檢測冷啟動;后置業務為前置業務提供事后特征,比如:準實時、中長周期的風險特征。
3.6.5 第三方解決方案的弊端
第三方解決方案的弊端就是對系統的侵入,需要我們在自己的系統里嵌入許多外部代碼。那么帶來的風險就是,系統數據全部開放給外部,用戶數據風險,業務經營數據風險,系統可用性風險等。一旦外部系統出現問題,可能導致我們自己的系統不可用,或者數據泄漏。如果不能接受這一點,或者無法信任第三方,或者公司政策不允許,那就無法使用這種服務。
4. 總結
最后,我綜合總結一下全文的梗概,如果前面都沒仔細看的話,那么只看這里就可以了。
(1)適用范圍
主要針對自動化薅羊毛的防御。
(2)業務邏輯設計
拉新活動要小心(拉新送、注冊送、關注送、新用戶立減、日常打卡、簽到、獲得積分、積分兌換、抽獎)。
(3)系統設計
接入層:Nginx,限制頻率,IP 黑名單(代理IP識別);
應用層:redis,漏桶,令牌桶算法;
接口層:訪問控制,防重入 token(token是用戶一次操作的唯一標識),模糊的響應迷惑惡意請求;
業務層:驗證碼,黑/白名單機制(大數據),設備指紋,行為數據,全鏈路布控;
界面層:提高破解門檻,防自動化(按鍵精靈等);
數據分析:分析歷史作弊數據,優化活動獎勵,采用堵不如疏的策略,與其強硬的一刀切,不如提升攻擊成本,減少獲利;機器學習,大數據反作弊平臺,GCN、Node2V、Louvain、GAN、GBS、LSTM等模型,我也看不懂了~
以上,就是防范羊毛黨相關技術的全部內容,建議收藏。最后,我們再回顧一下文章脈絡:
5. Q & A
問:要不要使用第三方風控服務?
答:這完全取決于你所在公司或業務的狀況,包括對數據風險的容忍度、系統對接的難度、費用問題、招標等等。具體情況具體分析了。
問:被拒絕的用戶的體驗是怎樣的?
答:這里可以適當柔性處理,如果不確定是否惡意用戶,可以做隱性的限制,再根據后續行為繼續觀察打標。對于惡意刷接口、刷票等,也可以返回具有迷惑性的錯誤提示,避免羊毛黨猜到系統判斷邏輯。比如我就遇到過刷票接口,使用技術手段嘗試,每次都返回投票成功,但實際并沒有,你也不知道為啥,因為沒有特定的錯誤碼和提示。別問我為什么知道。
問:限制自動化有具體的例子嗎?
答:微信 PC 客戶端就是個很好的例子。你可以用按鍵精靈或者 autoit 之類的軟件嘗試,會發現它的窗口是捕獲不到的,所以就很難編寫自動化腳本。不過,在安卓下面由于系統可以高度定制,所以這都不是問題了。
好了,如有大家還有其他任何疑問,歡迎隨時留言與我溝通。
參考文獻:
作者:姬小光,微信公眾號“姬小光(ID:hi-laser)”
本文由 @姬小光 原創發布于人人都是產品經理。未經許可,禁止轉載。
題圖來自Unsplash,基于CC0協議
暫時還看不懂,收藏一個~
全鏈路風控解決方案深度解讀,貌似鏈接看不到了
剛好再找張方面的資料,感謝感謝分享
你好,我是你的粉絲,一直都有在看你發表的文章,非常的喜歡,不知道方便留一下的VX嗎? ??
我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦我我你摸摸摸摸摸摸默默哦哦哦
抱歉,我以為會有刪除。想看看300字有多長
怎么還有錯別字…
現在銀聯云閃付和招行掌上生活這類大廠APP某些運營活動主要就是給羊毛黨用的,作者能否解釋一下,因為APP也需要他們來展示活動的活躍度
目的不一樣。羊毛黨并非全無作用,在風險可控的情況下,羊毛黨可以起到很好的活躍和傳播作用
學習了~
很專業
很有意思
??