Steamセキュリティ要件に対する見解¶
概要¶
本ドキュメントは、Backcast(marimoベースのElectronゲーム)をSteamで配布する際の、Steamセキュリティ要件に対する我々の見解をまとめたものです。
Steamのセキュリティ要件¶
禁止事項(Steam Distribution Agreement より)¶
-
マルウェア・有害コードの禁止 - 予期しない、または有害な方法でユーザーのコンピュータを変更するアプリケーション - マルウェア、ウイルス、トロイの木馬を含むソフトウェア - Steam認証情報や金融データを不正に収集しようとするアプリ
-
ユーザーへの攻撃の禁止(Steam Online Conduct) - 他のユーザーのコンピュータを破壊・妨害すること - マルウェアのアップロードやリンク
-
開示義務 - カーネルレベルのアンチチートを使用する場合は開示が必須 - Live-Generated AI使用時はガードレールの開示が必要
我々の見解¶
1. Python実行環境の提供について¶
Backcastはmarimoノートブック環境を内蔵しており、ユーザーがPythonコードを実行できます。
Steamルールとの関係:
| 状況 | Steamルール違反か | 我々の見解 |
|---|---|---|
| ゲームがユーザーのシステムを破壊 | 違反 | 我々のコードではこれを行わない |
| ユーザー自身がPythonで自分のシステムを操作 | 違反ではない | ユーザーの自己責任だが保護策を講じる |
| 悪意あるコードを他プレイヤーに送信 | 違反 | マルチプレイ機能では送受信データを検証する |
2. 我々の責任範囲¶
我々が責任を負う領域: - ゲーム自体がマルウェア的動作をしないこと - 既知の危険な操作をデフォルトでブロックすること - ユーザーに対してPython実行のリスクを明示すること
ユーザーの自己責任となる領域: - サンドボックスを意図的に回避した場合の結果 - 自身で書いたコードによるシステムへの影響
3. リスク開示方針¶
Steamストアページおよびゲーム内で以下を明示します:
本ゲームにはPython実行環境が含まれています。
- 悪意あるコードを実行した場合、システムに影響を与える可能性があります
- 信頼できないコードの実行は避けてください
- 本ゲームはセキュリティ制限を実装していますが、完全ではありません
4. セキュリティ対策の方針¶
Steamの要件を満たしつつ、ユーザー保護のため以下の対策を実装予定:
-
Python-levelサンドボックス - 危険なモジュール(subprocess, os, socket等)のブロック - 危険なBuiltins(eval, exec, compile等)の制限 - ファイルシステムアクセスの制限
-
ネットワーク制限 - 許可されたサーバーのみへのアクセス(ホワイトリスト方式)
-
Electron側の保護 - contextIsolation有効化 - nodeIntegration無効化
結論¶
Steamのセキュリティ要件は主に「ゲーム開発者がユーザーに害を与えること」を禁止しています。我々のゲームは:
- ゲーム自体はマルウェア的動作を行わない ✓
- Python実行環境の存在とリスクを開示する ✓
- 可能な範囲でセキュリティ制限を実装する ✓
これにより、Steamの配布要件を満たすと判断します。