Version: 2021.1
言語: 日本語
Unity の Asset Bundle Browser ツール
アセットを使ったスクリプティング

アセットバンドルのダウンロードの整合性とセキュリティ

AssetBundle (アセットバンドル) は、ゲームのビルド時に配布することもできますが、リモートサーバーからダウンロードすることもできます。アセットバンドルをダウンロードする際には、アセットバンドルのデータが破損したり、悪意のある攻撃を避けるように注意する必要があります。アセットバンドルには実行可能なコードは含まれていませんが、シリアル化されたデータを変更すると、攻撃者がゲームコードやUnity ランタイムの脆弱性を悪用することが可能になります。

安全なプロトコルでのダウンロード

UnityWebRequestWWW は、インターネットからアセットバンドルをダウンロードしてキャッシュするために使用できます。これらのシステムを使用する際には、URL に HTTPS プロトコルを使用する必要があります。HTTP は安全ではなく、悪意のある中間者攻撃に対して脆弱です。

CRC チェックサム

32 ビットのチェックサムは、アセットバンドルのビルドプロセスで生成されます。アセットバンドルのローディング API を通じてこの CRC を提供すると、ロードシステムはロードする前にアセットバンドルのチェックサムを計算します。アセットバンドルの CRC が提供された CRC と一致しない場合、アセットバンドルはロードされません。CRC をチェックすることで、アセットバンドルのデータがビルド後に破損したり改ざんされたりしていないことを確認できます。

ユーザー生成コンテンツ

他のプレイヤーに配信するコンテンツ (User Generated Content、ユーザー生成コンテンツ) をユーザーがアップロードすることを許可している場合、不適切または悪意のあるコンテンツがないか、このデータを確認するのは開発者の責任です。ユーザーにアセットバンドルのバイナリファイルのビルドとアップロードを許可することは推奨しません。望ましいのは、ユーザーにソースアセットをアップロードしてもらい、開発者がユーザーのためにアセットバンドルのバイナリファイルを作成することです。これにより、悪意のあるコンテンツや不適切なコンテンツを手動および自動でフィルタリングすることが容易になります。また、Unity のバージョンが上がっても、必要に応じてアセットバンドルを再作成することができます。

Unity の Asset Bundle Browser ツール
アセットを使ったスクリプティング