在 Google Play 上保護(hù)您的游戲與用戶

來源: 谷歌開發(fā)者
作者:Google Play
時(shí)間:2020-10-29
17014
在打造出一款優(yōu)秀的游戲后,開發(fā)者們都希望能夠網(wǎng)羅四海玩家,并為他們帶去流暢安心的預(yù)期體驗(yàn)。不過,開發(fā)者們也同時(shí)面臨著喜憂參半的困境:游戲越受歡迎,就越容易引起攻擊者和濫用者的注意。人們會(huì)出于各種目的嘗試篡改您的游戲或者濫用您的分發(fā)及獲利渠道:其中一些可能相對無害,而另一些則可能會(huì)對您的玩家和業(yè)務(wù)產(chǎn)生負(fù)面影響。

640.webp (1).jpg

在打造出一款優(yōu)秀的游戲后,開發(fā)者們都希望能夠網(wǎng)羅四海玩家,并為他們帶去流暢安心的預(yù)期體驗(yàn)。不過,開發(fā)者們也同時(shí)面臨著喜憂參半的困境:游戲越受歡迎,就越容易引起攻擊者和濫用者的注意。人們會(huì)出于各種目的嘗試篡改您的游戲或者濫用您的分發(fā)及獲利渠道:其中一些可能相對無害,而另一些則可能會(huì)對您的玩家和業(yè)務(wù)產(chǎn)生負(fù)面影響。

因此,制定正確的反濫用策略并根據(jù)目標(biāo)迅速采取行動(dòng)非常重要。雖然目前還沒有方案能夠完美解決游戲的安全問題,不過我們建議大家在規(guī)劃整體戰(zhàn)略時(shí),不妨參考以下推薦的Google Play工具和服務(wù),為您的游戲和玩家?guī)ジ鼜?qiáng)大的安全防護(hù)。

完整性

對游戲和玩家的攻擊通常來自不受信任的環(huán)境,例如修改后的APK、模擬器、遭到入侵或者獲得root權(quán)限的設(shè)備。盡管這些環(huán)境本身可能并無害,但是通過檢測它們,您便可以依據(jù)自身的目標(biāo)為游戲選擇最佳的應(yīng)對方案。例如,阻止盜版者體驗(yàn)付費(fèi)游戲;或者,如果是免費(fèi)網(wǎng)絡(luò)游戲,您可能會(huì)想把所有疑似使用模擬器的玩家全部轉(zhuǎn)移到同一個(gè)服務(wù)器上。

Google Play提供了許多適用于網(wǎng)絡(luò)游戲的API,讓您能夠更加輕松地發(fā)現(xiàn)濫用問題并采取正確的應(yīng)對措施。此外,Google Play還新推出了一款自動(dòng)完整性保護(hù)的開發(fā)者預(yù)覽版工具,以減少單機(jī)/網(wǎng)絡(luò)游戲的二次打包問題。

在服務(wù)器端手動(dòng)檢查完整性

Google Play應(yīng)用許可服務(wù)能夠確保玩家使用從Google Play安裝的未經(jīng)修改的二進(jìn)制文件。SafetyNet attestation則可用于評估運(yùn)行設(shè)備的狀態(tài)。

Google Play應(yīng)用許可服務(wù)

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

SafetyNet attestation

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

開發(fā)者可將這些檢查集成到一項(xiàng)或多項(xiàng)關(guān)鍵操作(如啟動(dòng)、登錄、匹配、購買等)上,以便能夠在由服務(wù)器驅(qū)動(dòng)的網(wǎng)絡(luò)游戲內(nèi)順利運(yùn)行這些檢查。如果在客戶端執(zhí)行檢查卻不與關(guān)鍵操作進(jìn)行綁定,將很容易被攻擊者移除。建議各位開發(fā)者按照下列步驟,將檢查逐步集成到游戲中:

生成Nonce:在您的服務(wù)器上生成一個(gè)Nonce以啟動(dòng)檢查。Nonce是您為各項(xiàng)檢查附加的唯一隨機(jī)字符串,它可確保攻擊者難以在重放攻擊中復(fù)制一個(gè)正響應(yīng)。請盡量使用特定于請求的信息(如用戶ID的哈希值),以確保不會(huì)重復(fù)使用同一個(gè)Nonce;

請求響應(yīng):請將生成的Nonce附加到游戲檢查中,并調(diào)用應(yīng)用許可和SafetyNet API。您必須使用API密鑰才能集成SafetyNet,且每天的默認(rèn)請求配額為10,000次。如果您的應(yīng)用需要增加配額,請?zhí)岢稣埱螅?/span>

接收響應(yīng):API與Google服務(wù)器進(jìn)行通信時(shí),Google服務(wù)器通過返回一個(gè)響應(yīng),告知您當(dāng)前用戶是否從Google Play獲得應(yīng)用許可,以及設(shè)備是否為通過兼容性測試的Android實(shí)體設(shè)備。為避免過度調(diào)用,SafetyNet有時(shí)會(huì)出現(xiàn)響應(yīng)超時(shí)的情況,因此,還請您針對該意外情況進(jìn)行規(guī)劃并做好相應(yīng)的準(zhǔn)備;

傳輸響應(yīng):您的游戲會(huì)將Google響應(yīng)和Nonce一同發(fā)送回您的服務(wù)器上。請務(wù)必在服務(wù)器端執(zhí)行驗(yàn)證流程,使攻擊者更難從游戲中移除檢查;

評估響應(yīng):您的服務(wù)器應(yīng)確保所有內(nèi)容有效,包括Nonce、應(yīng)用包名稱及哈希值、時(shí)間戳,然后再根據(jù)Google的響應(yīng)對許可與設(shè)備進(jìn)行評估。例如,若用戶擁有有效許可且設(shè)備可信,則允許用戶繼續(xù)游戲。

想知道這些API在游戲中的實(shí)戰(zhàn)表現(xiàn)嗎?請收看上方視頻,聆聽來自Ravio和Supercell的精彩案例分享。Ravio利用上述API優(yōu)化了《憤怒的小鳥2》玩家排行榜;Supercell則在《荒野亂斗》beta版發(fā)布前大幅削減了非授權(quán)玩家的數(shù)量。

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

在客戶端自動(dòng)檢查完整性

這些API并不適用于所有類型的游戲和用例。您的游戲可能主要在離線環(huán)境下運(yùn)行,就像許多付費(fèi)游戲和單人游戲一樣。為此,我們正在積極尋找資深合作伙伴,邀請他們加入Google Play自動(dòng)完整性保護(hù)開發(fā)者預(yù)覽計(jì)劃,攜手為僅具備輕量服務(wù)器集成或者完全無服務(wù)器的游戲提供更好的支持。

Google Play自動(dòng)完整性保護(hù)

http://g.co/play/integrityprotection

對于加入該開發(fā)者預(yù)覽計(jì)劃的游戲,當(dāng)您將游戲上傳至Google Play Console管理中心后,Google Play將以您的身份為代碼添加一項(xiàng)證書檢查以及反篡改保護(hù)。直至測試之前,您不必進(jìn)行任何額外的開發(fā)工作,只需通過Android App Bundle發(fā)布游戲即可。這些保護(hù)措施的優(yōu)勢在于,它們會(huì)隨著時(shí)間的推移自行優(yōu)化與改進(jìn),并不需要開發(fā)者進(jìn)行任何操作。此外,反篡改保護(hù)也可幫助網(wǎng)絡(luò)游戲減少二次打包的問題。如果您希望為自己的游戲添加這些保護(hù)措施,歡迎您前往官網(wǎng)提交信息。

Android App Bundle

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

前往官網(wǎng)提交信息

http://g.co/play/integrityprotection

公平性

對于提供應(yīng)用內(nèi)購買的游戲來說,公平的"游戲內(nèi)經(jīng)濟(jì)體系"不僅有助于確保最佳的整體玩家體驗(yàn),還能為您帶來持續(xù)的業(yè)務(wù)增長。為了在游戲中取得不正當(dāng)優(yōu)勢或謀取經(jīng)濟(jì)利益,不良行為者可能會(huì)以某些方式操控交易或商品,這將會(huì)對其他玩家和您的業(yè)務(wù)造成不良影響。您可以在游戲內(nèi)集成由Google Play Billing提供的豐富工具,幫助Google檢測并打擊欺詐性交易和退款濫用行為。

Google Play Billing

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

驗(yàn)證購買

在應(yīng)用設(shè)計(jì)允許的范圍內(nèi),請您盡可能將敏感數(shù)據(jù)和邏輯移至后端服務(wù)器,其中包括應(yīng)用內(nèi)購驗(yàn)證??蛻舳酥械臄?shù)據(jù)和邏輯越多,就越容易遭到逆向工程攻擊。當(dāng)您驗(yàn)證購買時(shí),請向游戲服務(wù)器發(fā)送購買ID,并確認(rèn)該ID之前并未被使用過。每次向用戶提供所購商品的訪問權(quán)限之前,請務(wù)必先通過Play Developer API向Google Play驗(yàn)證該購買交易的合法性。

此外,您還可以在啟動(dòng)購買時(shí)將經(jīng)過混淆處理的帳號(hào)和個(gè)人資料ID傳遞給Google Play,從而確保購買交易歸因于同一個(gè)游戲賬號(hào)或角色個(gè)人資料。當(dāng)您驗(yàn)證購買時(shí),請向后臺(tái)端服務(wù)器發(fā)送這些ID,以確保商品與發(fā)起購買交易的用戶正確匹配。

購買交易歸因

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

虛假購買

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

使用這些方法

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

退款商品的狀態(tài)

現(xiàn)在,游戲可通過Google Play的一項(xiàng)測試特性提供更多有關(guān)應(yīng)用內(nèi)購買的信息。Play會(huì)根據(jù)這些信息制定出更為合理的退款決策。該特性可幫助我們簡化退款流程并減少濫用行為的發(fā)生,例如更輕易地識(shí)別對已用商品多次申請退款的用戶。當(dāng)用戶提交退款請求時(shí),Google Play會(huì)向您的游戲傳遞該請求的相關(guān)信息,包括退款理由。您的游戲隨后可分享用戶所購商品的狀態(tài),例如商品是否已被使用,然后再建議是否批準(zhǔn)此項(xiàng)請求。通過這些信息,Google Play可以幫您做出恰當(dāng)?shù)耐丝顩Q定。目前僅有部分合作伙伴參與了該特性的測試工作。如果您想獲取更多相關(guān)資訊或者希望我們今后能夠向更多開發(fā)者開放該特性,請咨詢您的合作伙伴經(jīng)理。

無效購買

借助voided purchases API,您可以隨時(shí)向Google Play請求用戶已退款的應(yīng)用內(nèi)購買列表。您可以根據(jù)這些信息更新用戶賬戶中的商品,移除已退款的商品或?qū)τ脩趔w驗(yàn)作出其它更改。這不僅有助于游戲內(nèi)商品的保值,還能有效防止濫用行為的發(fā)生。超過80%的頂尖開發(fā)者已經(jīng)在自己的游戲中集成了voided purchases API,其中部分開發(fā)者向我們反饋表示,該API為他們減少了80%的退款損失。以下為voided purchases API的一些使用技巧,希望能對您有所幫助:

請定期調(diào)用voided purchases API,用于更新用戶所購項(xiàng)目列表;

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

告知用戶商品已被移除;

在收回商品失敗時(shí),請及時(shí)采取應(yīng)對措施。若多次失敗,請考慮升級響應(yīng)措施,例如禁止用戶繼續(xù)購買;

如果用戶已經(jīng)花掉了游戲內(nèi)貨幣,可以考慮將其余額設(shè)置為負(fù)數(shù);

對于游戲內(nèi)貨幣余額為負(fù)數(shù)的賬戶,可考慮限制游戲內(nèi)功能或服務(wù)。

voided purchases API

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

安全

安全是Android開發(fā)中十分重要的話題,而且牽涉范圍廣泛,因此本文僅作簡要探討。一旦攻擊者在您的游戲中發(fā)現(xiàn)漏洞并加以利用,便會(huì)給您帶來嚴(yán)重的后果,例如對玩家造成安全威脅,引發(fā)負(fù)面社會(huì)輿情,在某些情況下您甚至還需要面臨監(jiān)管機(jī)構(gòu)的罰款懲治。我們建議您在開發(fā)過程中,遵循安全性實(shí)踐指南并依照安全清單對游戲進(jìn)行評估。與此同時(shí),請您務(wù)必謹(jǐn)慎處理數(shù)據(jù)、權(quán)限及網(wǎng)絡(luò)流量方面的問題。

安全性實(shí)踐指南

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

安全清單

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

第三方庫和SDK

開發(fā)者經(jīng)常會(huì)在游戲代碼中使用大量的第三方庫和SDK,它們也帶來了嚴(yán)重的安全隱患。有些第三方庫自身含有惡意代碼,但是在大部分情況下,庫或SDK內(nèi)的安全漏洞才是最大的風(fēng)險(xiǎn)所在。開發(fā)者應(yīng)對游戲內(nèi)所有內(nèi)容(包括第三方庫和SDK)負(fù)責(zé),所以,由第三方程序?qū)е碌陌踩珕栴}自然也在您責(zé)任范圍內(nèi)。部分SDK會(huì)在開發(fā)人員不知情的情況下引發(fā)安全問題,為此Google Play已經(jīng)下架了數(shù)款包含問題SDK的游戲。我們建議您在管理第三方庫和SDK時(shí),遵循以下實(shí)踐指南:

對SDK可訪問的數(shù)據(jù)和設(shè)備信息進(jìn)行分析,并確保SDK在訪問數(shù)據(jù)前已獲得用戶同意;

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

確保SDK無法收集不可重置的設(shè)備標(biāo)識(shí)符;

在游戲卸載后,從外部儲(chǔ)存移除所有SDK特定文件;

僅通過HTTPS協(xié)議向服務(wù)器傳遞信息。

請前往應(yīng)用成功學(xué)院,了解更多有關(guān)SDK使用方法的實(shí)踐指南。

有關(guān)SDK使用方法的實(shí)踐指南

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

Google Play安全獎(jiǎng)勵(lì)計(jì)劃

擁有大批玩家的游戲開發(fā)者不妨申請加入Google Play安全獎(jiǎng)勵(lì)計(jì)劃。該漏洞賞金計(jì)劃提供了一定數(shù)額的獎(jiǎng)金,用于激勵(lì)安全研究人員發(fā)現(xiàn)并負(fù)責(zé)任地披露漏洞。您可對這些漏洞進(jìn)行修復(fù),以便為玩家長期提供安全可靠的游戲環(huán)境。

Google Play安全獎(jiǎng)勵(lì)計(jì)劃

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

小結(jié)

不良行為者是任何產(chǎn)業(yè)都無法避免的問題,移動(dòng)游戲行業(yè)自然也不例外。不論是小風(fēng)險(xiǎn)隱患,例如玩家只想在游戲中搶占不公平的優(yōu)勢,還是嚴(yán)重的安全威脅,如不法人士為謀私利惡意操控游戲和玩家,Google Play都將提供更多工具與服務(wù),幫助開發(fā)者采取正確的應(yīng)對措施并制定全方位反濫用策略,以求最大程度降低玩家和游戲業(yè)務(wù)的風(fēng)險(xiǎn)。歡迎各位開發(fā)者向我們分享您的反饋與建議,協(xié)助我們進(jìn)一步優(yōu)化產(chǎn)品或彌補(bǔ)不足之處。

640 (1).png

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于谷歌開發(fā)者,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對觀點(diǎn)贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號(hào)登錄/注冊
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家