在 Google Play 上保護您的遊戲與用戶

作者 / Dom Elliott, Google Play 產品經理

在打造出一款優秀的遊戲後,開發者們都希望能夠網羅四海玩家,併爲他們帶去流暢安心的預期體驗。不過,開發者們也同時面臨着喜憂參半的困境: 遊戲越受歡迎,就越容易引起攻擊者和濫用者的注意。人們會出於各種目的嘗試篡改您的遊戲或者濫用您的分發及獲利渠道: 其中一些可能相對無害,而另一些則可能會對您的玩家和業務產生負面影響。

因此,制定正確的反濫用策略並根據目標迅速採取行動非常重要。雖然目前還沒有方案能夠完美解決遊戲的安全問題,不過我們建議大家在規劃整體戰略時,不妨參考以下推薦的 Google Play 工具和服務,爲您的遊戲和玩家帶去更強大的安全防護。

完整性

對遊戲和玩家的攻擊通常來自不受信任的環境,例如修改後的 APK、模擬器、遭到入侵或者獲得 root 權限的設備。儘管這些環境本身可能並無害,但是通過檢測它們,您便可以依據自身的目標爲遊戲選擇最佳的應對方案。例如,阻止盜版者體驗付費遊戲;或者,如果是免費網絡遊戲,您可能會想把所有疑似使用模擬器的玩家全部轉移到同一個服務器上。

△ 該視頻所推薦的 Google Play 工具可幫助您有效保護遊戲的完整性

  • 騰訊視頻鏈接

    https://v.qq.com/x/page/n0947ubr1rs.html

  • Bilibili 視頻鏈接

    https://www.bilibili.com/video/BV1q5411t78h/

Google Play 提供了許多適用於網絡遊戲的 API,讓您能夠更加輕鬆地發現濫用問題並採取正確的應對措施。此外,Google Play 還新推出了一款自動完整性保護的開發者預覽版工具,以減少單機/網絡遊戲的二次打包問題。

在服務器端手動檢查完整性

Google Play 應用許可服務能夠確保玩家使用從 Google Play 安裝的未經修改的二進制文件。SafetyNet attestation 則可用於評估運行設備的狀態。

  • Google Play 應用許可服務

    https://developer.android.google.cn/google/play/licensing

  • SafetyNet attestation 

    https://developer.android.google.cn/training/safetynet/attestation.html 

開發者可將這些檢查集成到一項或多項關鍵操作 (如啓動、登錄、匹配、購買等) 上,以便能夠在由服務器驅動的網絡遊戲內順利運行這些檢查。如果在客戶端執行檢查卻不與關鍵操作進行綁定,將很容易被攻擊者移除。建議各位開發者按照下列步驟,將檢查逐步集成到遊戲中:

  • 生成 Nonce: 在您的服務器上生成一個 Nonce 以啓動檢查。Nonce 是您爲各項檢查附加的唯一隨機字符串,它可確保攻擊者難以在重放攻擊中複製一個正響應。請儘量使用特定於請求的信息 (如用戶 ID 的哈希值),以確保不會重複使用同一個 Nonce;

  • 請求響應: 請將生成的 Nonce 附加到遊戲檢查中,並調用應用許可和 SafetyNet API。您必須使用 API 密鑰才能集成 SafetyNet,且每天的默認請求配額爲 10,000 次。如果您的應用需要增加配額,請提出請求;

  • 接收響應: API 與 Google 服務器進行通信時,Google 服務器通過返回一個響應,告知您當前用戶是否從 Google Play 獲得應用許可,以及設備是否爲通過兼容性測試的 Android 實體設備。爲避免過度調用,SafetyNet 有時會出現響應超時的情況,因此,還請您針對該意外情況進行規劃並做好相應的準備;

  • 傳輸響應: 您的遊戲會將 Google 響應和 Nonce 一同發送回您的服務器上。請務必在服務器端執行驗證流程,使攻擊者更難從遊戲中移除檢查;

  • 評估響應: 您的服務器應確保所有內容有效,包括 Nonce、應用包名稱及哈希值、時間戳,然後再根據 Google 的響應對許可與設備進行評估。例如,若用戶擁有有效許可且設備可信,則允許用戶繼續遊戲。

想知道這些 API 在遊戲中的實戰表現嗎?請收看上方視頻,聆聽來自 Ravio 和 Supercell 的精彩案例分享。Ravio 利用上述 API 優化了《憤怒的小鳥 2》玩家排行榜;Supercell 則在《荒野亂鬥》beta 版發佈前大幅削減了非授權玩家的數量。

  • Ravio

    https://play.google.com/store/apps/dev?id=9133452689932095671&hl=en_GB

  • Supercell 

    https://play.google.com/store/apps/dev?id=6715068722362591614&hl=en_GB

  • 《憤怒的小鳥 2》

    https://play.google.com/store/apps/details?id=com.rovio.baba&hl=en_GB 

  • 《荒野亂鬥》

    https://play.google.com/store/apps/details?id=com.supercell.brawlstars&hl=en_GB 

在客戶端自動檢查完整性

這些 API 並不適用於所有類型的遊戲和用例。您的遊戲可能主要在離線環境下運行,就像許多付費遊戲和單人遊戲一樣。爲此,我們正在積極尋找資深合作伙伴,邀請他們加入 Google Play 自動完整性保護開發者預覽計劃,攜手爲僅具備輕量服務器集成或者完全無服務器的遊戲提供更好的支持。

  • Google Play 自動完整性保護

    http://g.co/play/integrityprotection 

對於加入該開發者預覽計劃的遊戲,當您將遊戲上傳至 Google Play Console 管理中心後,Google Play 將以您的身份爲代碼添加一項證書檢查以及反篡改保護。直至測試之前,您不必進行任何額外的開發工作,只需通過 Android App Bundle 發佈遊戲即可。這些保護措施的優勢在於,它們會隨着時間的推移自行優化與改進,並不需要開發者進行任何操作。此外,反篡改保護也可幫助網絡遊戲減少二次打包的問題。如果您希望爲自己的遊戲添加這些保護措施,歡迎您前往官網提交信息

  • Android App Bundle

    https://developer.android.google.cn/platform/technology/app-bundle

  • 前往官網提交信息

    http://g.co/play/integrityprotection 

公平性

對於提供應用內購買的遊戲來說,公平的 "遊戲內經濟體系" 不僅有助於確保最佳的整體玩家體驗,還能爲您帶來持續的業務增長。爲了在遊戲中取得不正當優勢或謀取經濟利益,不良行爲者可能會以某些方式操控交易或商品,這將會對其他玩家和您的業務造成不良影響。您可以在遊戲內集成由 Google Play Billing 提供的豐富工具,幫助 Google 檢測並打擊欺詐性交易和退款濫用行爲。

  • Google Play Billing

    https://developer.android.google.cn/distribute/play-billing 

驗證購買

在應用設計允許的範圍內,請您儘可能將敏感數據和邏輯移至後端服務器,其中包括應用內購驗證。客戶端中的數據和邏輯越多,就越容易遭到逆向工程攻擊。當您驗證購買時,請向遊戲服務器發送購買 ID,並確認該 ID 之前並未被使用過。每次向用戶提供所購商品的訪問權限之前,請務必先通過 Play Developer API 向 Google Play 驗證該購買交易的合法性。

此外,您還可以在啓動購買時將經過混淆處理的帳號和個人資料 ID 傳遞給 Google Play,從而確保購買交易歸因於同一個遊戲賬號或角色個人資料。當您驗證購買時,請向後臺端服務器發送這些 ID,以確保商品與發起購買交易的用戶正確匹配。

  • 購買交易歸因

    https://developer.android.google.cn/google/play/billing/developer-payload#attribute 

虛假購買

爲了提高 Google Play 檢測和阻止遊戲中欺詐性購買的能力,我們建議您在每個購買請求中加入一些有關購買者的非個人識別信息。具體來說,您可以使用這些方法將經過混淆處理的賬戶 ID 附加到用戶的每個購買請求中,如果您開發了多個遊戲,則可在所有遊戲內再添加一個可代表用戶的個人資料 ID。Google 的風險引擎會根據這些 ID 評估當前交易是否屬於欺詐性購買,並在二次銷售行爲發生前加以阻止。我們已經從頂尖開發者那裏獲得了許多積極的反饋: 在使用該 Google Play Billing 特性後,欺詐事件最高減少了 30%,退款損失最高降低了 50%。

  • 使用這些方法

    https://developer.android.google.cn/google/play/billing/security#fraud

退款商品的狀態

現在,遊戲可通過 Google Play 的一項測試特性提供更多有關應用內購買的信息。Play 會根據這些信息制定出更爲合理的退款決策。該特性可幫助我們簡化退款流程並減少濫用行爲的發生,例如更輕易地識別對已用商品多次申請退款的用戶。當用戶提交退款請求時,Google Play 會向您的遊戲傳遞該請求的相關信息,包括退款理由。您的遊戲隨後可分享用戶所購商品的狀態,例如商品是否已被使用,然後再建議是否批准此項請求。通過這些信息,Google Play 可以幫您做出恰當的退款決定。目前僅有部分合作伙伴參與了該特性的測試工作。如果您想獲取更多相關資訊或者希望我們今後能夠向更多開發者開放該特性,請諮詢您的合作伙伴經理。

無效購買

藉助 voided purchases API,您可以隨時向 Google Play 請求用戶已退款的應用內購買列表。您可以根據這些信息更新用戶賬戶中的商品,移除已退款的商品或對用戶體驗作出其它更改。這不僅有助於遊戲內商品的保值,還能有效防止濫用行爲的發生。超過 80% 的頂尖開發者已經在自己的遊戲中集成了 voided purchases API,其中部分開發者向我們反饋表示,該 API 爲他們減少了 80% 的退款損失。以下爲 voided purchases API 的一些使用技巧,希望能對您有所幫助:

  • 請定期調用 voided purchases API,用於更新用戶所購項目列表;

  • 從用戶賬戶移除已退款的商品;

  • 告知用戶商品已被移除;

  • 在收回商品失敗時,請及時採取應對措施。若多次失敗,請考慮升級響應措施,例如禁止用戶繼續購買;

  • 如果用戶已經花掉了遊戲內貨幣,可以考慮將其餘額設置爲負數;

  • 對於遊戲內貨幣餘額爲負數的賬戶,可考慮限制遊戲內功能或服務。

  • voided purchases API

    https://developer.android.google.cn/android-publisher/voided-purchases 

安全

安全是 Android 開發中十分重要的話題,而且牽涉範圍廣泛,因此本文僅作簡要探討。一旦攻擊者在您的遊戲中發現漏洞並加以利用,便會給您帶來嚴重的後果,例如對玩家造成安全威脅,引發負面社會輿情,在某些情況下您甚至還需要面臨監管機構的罰款懲治。我們建議您在開發過程中,遵循安全性實踐指南並依照安全清單對遊戲進行評估。與此同時,請您務必謹慎處理數據、權限及網絡流量方面的問題。

  • 安全性實踐指南

    https://developer.android.google.cn/topic/security/best-practices 

  • 安全清單

    https://developer.android.google.cn/docs/quality-guidelines/core-app-quality#sc 

第三方庫和 SDK

開發者經常會在遊戲代碼中使用大量的第三方庫和 SDK,它們也帶來了嚴重的安全隱患。有些第三方庫自身含有惡意代碼,但是在大部分情況下,庫或 SDK 內的安全漏洞纔是最大的風險所在。開發者應對遊戲內所有內容 (包括第三方庫和 SDK) 負責,所以,由第三方程序導致的安全問題自然也在您責任範圍內。部分 SDK 會在開發人員不知情的情況下引發安全問題,爲此 Google Play 已經下架了數款包含問題 SDK 的遊戲。我們建議您在管理第三方庫和 SDK 時,遵循以下實踐指南:

  • 對 SDK 可訪問的數據和設備信息進行分析,並確保 SDK 在訪問數據前已獲得用戶同意;

  • 確保 SDK 支持最低級別的 targetSdkVersion;

  • 確保 SDK 無法收集不可重置的設備標識符;

  • 在遊戲卸載後,從外部儲存移除所有 SDK 特定文件;

  • 僅通過 HTTPS 協議向服務器傳遞信息。

請前往應用成功學院,瞭解更多有關 SDK 使用方法的實踐指南

  • 有關 SDK 使用方法的實踐指南

    https://playacademy.exceedlms.com/student/activity/18797-build-and-distribute-privacy-friendly-apps 

Google Play 安全獎勵計劃

擁有大批玩家的遊戲開發者不妨申請加入 Google Play 安全獎勵計劃。該漏洞賞金計劃提供了一定數額的獎金,用於激勵安全研究人員發現並負責任地披露漏洞。您可對這些漏洞進行修復,以便爲玩家長期提供安全可靠的遊戲環境。

  • Google Play 安全獎勵計劃

    https://www.google.com/about/appsecurity/play-rewards/ 

小結

不良行爲者是任何產業都無法避免的問題,移動遊戲行業自然也不例外。不論是小風險隱患,例如玩家只想在遊戲中搶佔不公平的優勢,還是嚴重的安全威脅,如不法人士爲謀私利惡意操控遊戲和玩家,Google Play 都將提供更多工具與服務,幫助開發者採取正確的應對措施並制定全方位反濫用策略,以求最大程度降低玩家和遊戲業務的風險。歡迎各位開發者向我們分享您的反饋與建議,協助我們進一步優化產品或彌補不足之處。

關於完整性保護您有什麼看法呢?請留言分享您的見解與心得。

出海同學會

您的遊戲/應用有出海市場嗎?您瞭解如何使用 Google 提供的資源助力應用出海嗎?點擊下方進入 "出海同學會" 播客節目,收聽出海大咖們帶來的精彩分享與深度探討!


推薦閱讀



 點擊屏末  | 即刻通過 Google Play 開啓成功出海之旅


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章