遊戲搬磚,一天五百。
打金工作室瘋狂撈錢的背後是對遊戲公平的挑戰,本文將介紹一套成熟的數據驅動的遊戲安全解決方案,向遊戲打金工作室說不!
01 打金工作室是個啥?
打金工作室一般是指通過多設備、多開器、雲平臺等實現大批量角色同時在線,利用按鍵腳本或群控軟件(如同步器)等第三方輔助重複刷取遊戲內遊戲幣資源獲利的團伙。打金工作室在mmo類遊戲或者含開放遊戲幣交易類玩法的遊戲中尤為常見,目前已經演變成了一個龐大的產業。例如,網易暴雪曾多次聯合警方打擊《魔獸世界》外掛工作室,單次涉案金額均上千萬。
可怕的是,打金工作室一直在不斷的進化發展,例如:
- 行為擬人化。外掛製作者漸漸在腳本、作弊軟件中添加隨機因素干擾,同時不降低其腳本牟利效率,行為上與正常玩家愈發相似。這要求對抗上需要另闢蹊徑,從更加細緻的角度進行分析和識別。
- 設備擬人化。原始的打金工作室群體所使用的黑產設備往往是簡陋或者是“不合理”的,比如一個設備 ID 上登錄幾十個上百個賬號,非常明顯。但是隨著黑產設備的進化,客戶端獲取到的設備信息愈發趨近於正常用戶的設備信息,依靠傳統硬件信息進行識別的方案逐漸失效。
- 打不死的小強。打金工作室打通了黑卡商、黑設備的鏈路,在賬號被封禁之後,可以在極短時間內再次起號,對遊戲造成危害,打之不絕。因此對抗也必須在非常有限的時間和遊戲行為中快速識別出黑產賬號,才能有效形成壓制。
通過上述程序,打金工作室嚴重破壞了遊戲生態,導致玩家流失,服務器消亡。遊戲方為了提高遊戲生命週期,只好不斷開新服,但同時打金工作室會不斷湧入新服,如此形成惡性循環,無法從根本上解決利益流失的問題。
02 傳統方案失靈,AI 下場對抗
基於與打金工作室對抗的海量數據,遊戲 AI 形成了一套成熟的、數據驅動的解決方案。這些方案能夠有效地填補傳統方案對業務數據利用率的不足,也可以避免遊戲額外接入 SDK,保證跨端的方案通用性。
檢測方案可以從不同維度進行劃分,按照作弊的生命週期和檢測方案介入的時間順序,將方案分為事前、事中、事後 3 種類型。
- 在事前例如賬號註冊階段,通過加固防破解、防調試等功能可以有效攔截作弊者獲取設備信息的行為。
- 在事中和事後環節,數據驅動的方案發揮作用。在上游數據處理中,採用 kafka 接收遊戲的消息,並寫入 HDFS/HBase 集群,下游會部署小時或日級別的離線數據 ETL 流程,完成數據寫入 hive/impala 數倉用於滿足離線的業務分析或完成特定用戶某時間範圍內的全量數據快速查詢需求。
在 MMO 遊戲中,作弊者在事中環節會進行自動採集/刷怪、自動完成任務/副本等工作,如下方案可以解決:
- 基於遊戲的日誌數據:構造了玩家在遊戲中的行為序列,並利用表徵學習和聚類算法識別高嫌疑的簇群,從而完成異常工作室群體的檢測。
- 基於角色的軌跡類數據:採用時序算法來挖掘具有明顯模式和規律性的異常數據。
部分前中期的方案缺乏足夠的數據累計,或數據中所包含的信息力度不足以支撐證據,事後方案能作為良好補充,這也使整體方案更加完整。例如 MMO 遊戲中的真金交易(RMT)問題,在事後能觀察到更完整的牟利鏈路。從作弊者的角度考慮,他們始終面臨被處罰的風險,為了規避風險會傾向於階段性的變現。事後的方案能夠有效地防止後續的遊戲損失,同時增加作弊者的賬號養成成本。
03 不同數據類型的防控方案
日誌/行為序列方案
通過行為序列處理邏輯,篩選遊戲原始日誌中的大量噪聲(例如主動/被動,玩家信息/玩家動作,系統環境,自動/手動等),從而對玩家的真實行為進行統一描述。
我推薦採用where-what-how-when 的思路來表達一個玩家的行為,例如在 MMO 遊戲上玩家的行為可以表達為(map_id, action_id, detail_id, ts)這樣的四元組序列。隨後序列數據會進行分段、採樣等數據增強處理並存儲,供下游服務訪問。
在處理序列數據上,Transformer 和 RNN 都是適合的工具,尤其是前者,它是基於自注意力機制的神經網絡架構,對於序列數據建模有著優異的效果,廣泛用於 NLP 等深度學習領域中,近期大火的 ChatGPT 等大規模語言模型,都是基於 Transformer 架構的。
採用 Transformer 的 Encoder 部分,對玩家的行為序列進行表徵建模,捕捉角色在遊戲中的事件信息、時間信息、順序和上下文信息。
訓練建模表徵的過程通常伴隨著業務經驗,可以極大地優化無監督和自監督訓練得到的表徵向量質量,採用基於 Transfromer 的模型融合玩家事件和時間信息。在玩家表徵的基礎上進行密度聚類和關聯性分析,得到疑似玩家群體,同時結合遊戲運營經驗對疑似玩家群體進行分級和篩選。
遊戲客戶對分級和篩選的標準各不相同,有的客戶對於群體畫像明顯的疑似玩家群體,足以支持心中的判斷標準,那麼群體畫像即可作為輸出依據;有的客戶認為群體畫像不夠,或者遊戲數據不支持更豐富的畫像生成,那就會提供群體本身「人力不可達」的特性。
方案在經過線上初步驗證並運行一段時間後,用戶的反饋會作為監督信息回傳給模型。這些正確和誤判樣例對於預訓練模型而言,能作顯式的樣本指導模型,更好地理解日誌的語義信息。對於下游分類任務而言,處罰樣例能作為標籤指導監督模型的訓練,以提高方案的準確性和泛化性。
軌跡檢測方案(鼠標、位置軌跡)
遊戲中含有豐富的軌跡類數據,如鼠標操作軌跡、角色在遊戲世界中的移動位置軌跡等。軌跡數據可以統一抽象成座標點和時間戳的關係,如下表所示。軌跡數據具備高度的時空特性,能夠反映玩家的潛在操作模式,打金工作室因為使用了自動作弊軟件工具來替代人為的操作,使得他們的軌跡數據與正常玩家的軌跡差異性很大。
基本假設是,正常的軌跡是雜亂無序的,而作弊玩家通過外掛軟件或模擬器等多開設備,使得角色間和角色內的軌跡呈現出明顯的模式。他們的目標是實現利益收集最大化,因此即使外掛增加了隨機性進行干擾,其總體的軌跡仍然能夠被發現與正常玩家存在不同。
軌跡數據非常適合可視化出來進行查看,因此具備較好的可解釋性和易於說明性,正常玩家和異常玩家的軌跡數據差異性表現得非常明顯。
一個具有玩家證據軌跡數據的通用框架可以檢測 MMORPG 中的使用自動外掛的作弊玩家。整體流程如上圖所示,該框架由 5 個模塊組成:
- Data Recording 數據記錄模塊,該模塊部署在玩家客戶端上,負責記錄玩家軌跡數據,併發送給服務端的日誌服務器;
- Data Collecting 數據收集模塊,該模塊部署在服務端上,接收客戶端發送來的軌跡數據,並進行排序、對齊等初步的處理;
- Preprocessing and Feature Engineering 預處理和特徵工程模塊,該模塊處理軌跡數據,生成特徵文件,作為模型的輸入;
- Labeling and Model Training 標記和模型訓練模塊,該模型離線部署,負責進行樣本標記和模型訓練,得到的模型文件進入下一步模塊進行處理;
- Periodic Prediction and Result Processing 定期預測和結果處理,該模塊部署在線上,對外掛玩家的軌跡進行預測,並將結果輸出到畫像平臺上進行展示;
為了避免昂貴的手動特徵工程,可以使用 AutoML 自動查找特徵來減少工作量,還設計了一種自動迭代機制,以確保線上效果不會隨時間衰減。
傳感器方案
傳感器數據本質上也是一種軌跡數據,其所適用的平臺一般都是移動端設備,且數據內容和含義相比於普通的軌跡數據更加豐富,例如在「xy 座標」和「時間戳」的基礎上,還增加了「觸摸類型」、「觸摸壓力」、「觸摸索引」。
- 觸摸類型:如 MOVE、DOWN、UP、CANCEL。
- 觸摸壓力:(可選),設備屏幕支持壓力計的情況下,根據實際採集到的壓力值大小進行記錄。
- 觸摸索引:用於區分多指操作,比如縮放操作需要兩根手指,那麼其中一根手指的索引為 0,另一根為 1。
在傳感器數據上可以開展多種多樣的檢測方案,比如模擬點擊。
基於傳感器數據的異常玩家可以識別分成 2 個大類:個體檢測和群體檢測。
- 個體檢測指對單條傳感器數據樣本進行檢測,優點在於檢測效率高,可實時對流數據進行檢測,同時模型可部署到端側減少數據傳輸和被屏蔽的情況。
- 群體檢測指對批量樣本進行檢測,優點是可以發現樣本間的關聯性,增強異常結果的證據性,因為群體檢測方案可以從橫向與縱向兩個角度進行,不僅檢測玩家歷史多條軌跡,也能檢測玩家間的相似異常軌跡。
在個體樣本檢測中,採用 LSTM 分別對軌跡事件和軌跡座標進行建模,最後使用一個全連接層融合多維度數據,輸出預測結果。在群體檢測中,軌跡數據已經入了數倉,從數倉中提取批量軌跡樣本,進行數據預處理後採用熵卷積和 Transformer 等模型提取軌跡特徵向量,將軌跡特徵向量存儲下來後進行最近鄰查詢,或 HDBSCAN 密度聚類,得到多個疑似簇並按照遊戲客戶的不同標準進行分級和排序,從排序結果中發現異常的關聯性樣本,再通過人工歸納外掛模式,可以輕易地發現新型外掛。
關係圖譜方案
打金工作室通過遊戲資產交易進行變現,那麼遊戲資產的交易鏈路是可察覺的。除了資源交易之外,打金工作室和正常玩家必定會在遊戲中與其他角色發生例如組隊、好友、共享硬件等交互行為,可以根據這些行為構建大規模社交圖譜,挖掘其中不符合正常玩家的行為模式。
打金工作室往往具有群體性,即一個小群體(工作室)內的角色通常會互相發生許多價值不對等的交易來轉移財產。這些異常交易參與者可以劃分為三個群體:“打金者(farmer)”、“彙集者(banker)”、“買家(buyer)”。打金者就像挖金礦的工人,數量龐大,在遊戲中是開外掛自動刷副本的角色;彙集者就像一個包工頭,收集打金者們打到的遊戲資源,再把其賣給買家;買家就是從彙集者處買金的消費者。而外掛的存在會貫穿整條產銷線,支撐著不計其數的、不知疲倦的、並且效率極高的機器人採集資源,這種行為顯然擾亂了市場秩序。
在構圖方式上對遊戲內的道具物品進行估值,將玩家間的交易圖統一轉換成價值轉移圖,每個玩家角色作為圖中的一個節點。圖嵌入(Network Embedding)、圖神經網絡(Graph Neural Networks)等技術受到了學術界廣泛的關注和深入的研究。這些方法通常將網絡中的節點投影到低維空間中的向量,從而完成非結構化數據到結構化數據的轉化。在此基礎上,形成了一個融合多種關係圖譜數據的半監督模型 MVAN(Multi-View Attention Network),來對玩家進行檢測和識別。
04 如何保障 AI 取證的合規性?
數據方案的檢測相比傳統的手段在證據問題上尤為特殊。傳統方案往往不需要對結果進行過多的解釋,例如是否修改內存,簽名是否改變等都是非此即彼、毋庸置疑的問題。
在數據方案中,開發者通常採用機器學習或深度學習的模型將業務轉化成一個概率問題。但由於處罰標籤的來源多樣化、中間過程包含大量的邏輯推導、數據上不可觀測等因素,這種做法僅僅是片面的學習了數據到結果的映射關係,沒有思考判定過程是否合理、是否與專家經驗一致以及數據本身是否能支撐起違規的結論。缺少這樣的“過程正義”會令整個方案落入證據問題的陷阱。
根據我以往的業務經歷,可以通過 2 種手段來解決上述問題。
首先是通過引入額外的流程來避免陷入證據的死結。對於部分存在豐富自由度的遊戲場景,與遊戲方聯合設計較為獨立的取證模塊作為最後一塊拼圖來填補方案的缺陷。這些取證模塊的運行過程具有強證據、高準確率、高成本等特性,例如以交互式的方式來驗證是否為真人、以採集更細粒度數據的方式來輔助結果判定等。
在擁有獨立取證模塊後,機器學習模型能更純粹的僅僅作為該流程的前置條件來提供概率意義,其優化的目標是提升取證模塊的成功率,降低不必要的成本損耗或對正常玩家遊戲體驗的干擾。
除了引入額外流程,還可以根據具體問題來針對性的設計模型來保證過程正義。
例如在 RMT 問題中,部分遊戲的潛規則不允許玩家之間的線下交易,尤其是以打金工作室為表象的線下交易。但因為遊戲外數據的不可觀測,對該現象的判定完全依賴遊戲運營的主觀經驗。這些經驗本質上是基於對遊戲深刻理解後對玩家行為的公平性裁決,那麼遊戲運營心中一定存在這樣一杆秤,能夠衡量兩個不同行為的嚴重程度。模型的設計就要求和這些公平性判斷做對齊。
相比於近期 AIGC 上的部分工作使用 RL 來引入人類的偏好,該方案將公平性解讀為特徵與結果之間符合偏序關係。在實際應用中,使用特徵擾動、diffusion 等數據增強的方式來構造對比學習的損失。
此外,還有解釋模型或構建可視化平臺等方式,可以幫助數據和過程的透明。
05 結語
如今的作弊手段更加高明,機器擬人效果也更加逼真,以數據驅動的檢測不再是簡單的 2 分類問題。所謂“道高一尺,魔高一丈”,我們不僅要精準識別工作室群體,也要提供多維度、可視化的證據和分析,運用大數據+AI 的治理方案,讓異常群體無處遁逃,讓遊戲重回公平!#反外掛##遊戲反作弊#
本文數據均來自網易智企旗下網易易盾對外發布的相關報告