カジノがAPIリクエストのセキュリティを監視する方法
iGamingでAPIセキュリティが重要な理由
API-カジノ神経系:賭け、財布、キャッシュデスク、ゲームプロバイダー、KYC/KYT、テレメトリー。任意の穴=お金、PII、ライセンス、評判。通常の電子商取引とは異なり、カジノにはリアルタイムマネー、規制、攻撃者の高いモチベーション、複雑な統合マトリックスなどの機能があります。
建築原理(保護骨格)
1.ゼロトラスト&最小限の特権。私たちは、ネットワークや顧客を信頼していません。各コールがチェックされ、アクセスは必要最小限(RBAC/ABAC)です。
2.ドメインの分離。お金/PII/現金/ゲームゲートウェイ-異なる境界とネットワーク、異なるキーとポリシー。
3.単一のAPIゲートウェイ。ポイント:mTLS、 WAF/ボット管理、OAuth2/JWT、レート制限、脅威フィード、ロギング。
4.デフォルトの可視性。トレース、相関'traceId'、異常(SLO/SIEM)に関するアラート。
5.安全なデフォルト。短いTTLトークン。「wide」 CORSを禁止し、NetworkPolicyでデフォルトで拒否します。
認証と認証
サービス間呼び出し:mTLS+短命JWT (5-10分)と'aud/iss/kid'キー回転;オプションのHMACボディ署名。
Call Integrity-署名、時間、Idemotence
正規の提出要求のHMAC署名: パラメータの並べ替え、安定したJSONシリアル化(不要なスペースなし、同じキー順序)、ヘッダー:
X-Request-Timestamp: 2025-10-17T14:22:05Z
X-Request-Nonce: 8c1c…… fa
X-Request-Signature: v1=HMAC-SHA256: base64(……)
X-Idempotency-Key: c0a4-77f……
再生保護:有効なタイムウィンドウ(± 300秒)、キャッシュの'nonce'をチェックします。
Idempotency-Key for money/webhook:リクエストを繰り返すと、2つ目のデビット/クレジットが作成されません。
mTLSからウォレット/キャッシュデスク/プロバイダーへ:輸送暗号化+当事者の相互検証。
secure POSTの例:
POST/ウォレット/デビット
Content-Type: application/json
X-Request-Timestamp: 2025-10-17T14:22:05Z
X-Request-Nonce: 8c1c0cfa
X-Idempotency-Key: 9a7f-2b1c
X-Request-Signature: v1=HMAC-SHA256: Z2V……==
{
「playerId」: 「p_123」、 「amount':」 10。00」、「通貨」:」ユーロ」、「理由」:」賭け。place、" "roundId":" R-2025-10-17-PRAGM-12"
}
入力検証: 回路図と正規化
契約としてのJSON スキーマ/OpenAPI。任意の文字列-タイプ、範囲、ホワイトリスト(通貨/国のISOコード、列挙ステータス)の検証。
サイズ制限:本体と配列のサイズを制限し、「深い」ネストを禁止します。
署名/ログの前にJSONの正規化、特殊文字のスクリーニング、厳密な'Content-Type'。
一括割り当てロック-フィールドの明示的な許可リスト。
表面保護: WAFのボット、速度
WAF/bot管理:署名と行動検出(レート、地理、デバイス指紋)。
レート制限/クォータ:IP/token/client/method;お金と非金銭の別の制限。
DoS/乱用制御:サーキットブレーカ、タイムアウト、バックプレッシャー、「グレーリスト」。
CORS:ブラウザのクロスオリジンで不必要に'Access-Control-Allow-Origin'、ワイルドカードの禁止と'Authorization'をポイントします。
OWASP API Top-10→具体的な対策
BOLA/BFLA (Broken Object/Function Level Auth):リソース所有者によるABAC、 'playerId'によるフィルタ、「foreign」識別子の禁止。
注入/SSRF:パラメータ化されたリクエスト、サーバー呼び出しの外部URLの禁止、ホスト許容リスト。
過度のデータ露出:応答のシェーピング(フィールドマスク)、ページネーション、部品漏れのないエラー正規化。
Security Misconfiguration: TLS/cipher version unity、 CSP/Permissions-Policy/Referrer-Policyヘッダー。
APIの安全でない消費:タイムアウト、リトレイ、重複排除を伴うプロバイダAPI上のラッパー。
PIIとプライバシー
PIIトークン化と暗号化(プレイヤー属性、KYCドキュメント):KMS/HSM、フィールド-AES-GCM。
データの最小化:イベント/ログ内のエイリアス('playerId')のみ、ドキュメント/カード番号。
保持:TTLは、管轄の要件に応じてドメイン(ウォレット/ゲーム/キャッシュレジスター)で異なります。
ロールアクセス:データベースおよびサービスレベル(行レベルのセキュリティ/ポリシー)でのPII読み取りの差別化。
安全なwebhooksおよび箱のオフィス
2要素検証:プロバイダのwebhook+HMAC署名へのmTLS。
アンチリプレイ:'X-Idempotency-Key'、 'X-Timestamp'、タイムウィンドウ。
Allowlist IP/ASNプロバイダ、私たちと静的なegress-IP。
「毒性」ペイロード:サイズ制限、未使用フィールドの無視、厳格なスキーム。
監査およびテストエンドポイント:プロバイダサンドボックス+契約テスト。
秘密と鍵
ストレージ:KMS/HSM/Secrets-manager、暗号化なしでgit/environment変数では決して使用しない。
ローテーション:ヘッダー/メタデータの自動'kid'、侵害されたキーの取り消し。
アクセス:壊れ目ガラスのプロシージャ、秘密へのすべてのアクセスを記録します。
ログ、トレイル、アラート
相関:各レイヤーの'traceId/requestId/playerId/roundId' (ingress→API→wallet→provider→webhook)。
異常:サージ'401/403/429'、成長'VOID'、ジャンプ'bet。 reject'地域別、HMAC/mTLS障害。
攻撃信号:多くの'nonce'リプレイ、古い'timestamp' attempts、長いボディ、未知の'kid'。
ログストレージ:不変(WORM)、個別のアクセスゾーン、PIIマスキング。
テストプランと品質管理
静的/動的AppSec:各CIのSAST/DAST、シークレット署名、依存性-SCA。
Pentestsとed-tim:リプレイスクリプト、間違ったチャネル上の署名、レートリミットバイパス、BOLA、 SSRF。
契約テスト:OpenAPI/JSON-Schemaの場合、「negative case」。
カオス/レイテンシードリル:プロバイダ/キャッシュデスクのタイムアウト時の動作、idempotencyの正確性。
バグバウンティ:別個の境界とレポートのルールを持つプログラム。
便利なタイトルと設定
'Strict-Transport-Security: max-age=63072000;includeSubDomains;プレロード'
'Content-Security-Policy: default-src' none';frame-ancestors 'none' (APIドメイン用)
'Referrer-Policy: no-referrer'
'Permissions-Policy: geolocation=()、マイク=()、カメラ=()'
'X-Content-Type-Options: nosniff'
プライベートエンドポイントの'Cache-Control: no-store'
エラー応答-シングルフォーマット
json
{「error「:「INVALID_SIGNATURE」、 「code「:「SEC_401」、 「traceId「:」tr_5f1」、 「ts「:」2025-10-17T14: 22: 06Z」}
アンチパターン(セキュリティを破壊する)
長寿命のJWT/リフレッシュトークンをローテーションなしで、デバイスにバインディングします。
JSONの正規化なしに「現状のまま」署名→チェックの通過。
money/webhook→double write-offに'Idempotency-Key'がない。
Wildcard-CORSと'Authorization'を持つエンドポイントの'Access-Control-Allow-Origin'内。
PII/シークレットでログを記録し、「みんなのために」ログへの共有アクセス。
すべての統合のための単一のHMAC共有キー。
JSONのサイズ/深さ制限、タイムアウトおよびサーキットブレーカはありません。
内部部品(スタックトレース、SQL、ライブラリバージョン)を表示するエラー。
カジノAPIセキュリティチェックリスト
周辺と輸送
- サービス間およびプロバイダーチャンネル上のmTLS;TLS 1。どこでも3。
- WAF/ボット管理、レート制限、脅威フィードを備えたAPIゲートウェイ。
- CORS-アドレス指定のみ可能で、ワイルドカードはありません。
認証/承認
- クライアントのためのOAuth2/OpenID、 TTLとJWT ≤ 10分、キー回転('kid')。
- ドメイン別RBAC/ABAC;管理者-SSO+MFA+IP-allowlist。
整合性と再要求
- HMAC署名、'X-Request-Timestamp'、 'X-Request-Nonce'、およびタイムウィンドウ。
- お金、webhooks、チェックアウトの'X-Idempotency-Key';キャッシュにキーを格納します。
バリデーション
- OpenAPI/JSON-Schema、 JSON canonicalization、 size/depth limits。
- フィールドのマスキングとホワイトリスト;大量割当の禁止。
PIIとデータ
- PIIトークン化/暗号化(KMS/HSM)、最小化、個別の保持ポリシー。
- PII/テレメトリー/お金のための分割ストレージ。
インテグレーション
- Webhooks: mTLS+HMAC、 allowlist IP、アンチリプレイ、契約テスト。
- 現金/暗号:2つのプロバイダと異なるキー/ネットワーク、入出力のためのidempotency。
Observability
- 'traceId/playerId/roundId'でトレースすると、攻撃信号に警告します。
- 不変(WORM)、 PII/秘密を記録しません。
プロセス
- CIのSAST/DAST/SCA、 pentests/ed-tim定期的に、バグバウンティ。
- Runbooksインシデント:キーの取り消し、ロールバック、通信。
iGamingのAPIセキュリティは「put WAF」ではありません。"これらはシステムです:mTLS+signatures+idempotency、厳格な検証と正規化、境界と速度の保護、PII分離、安全なキャッシュレジスターのwebhook、観測可能性と定期的なチェック。エンジニアリング文化のこの部分を作ることによって、あなたは、製品の速度とリリースの安定性を維持しながら、お金、プレイヤーとライセンスを保護します。