Security: Threat model¶
This platform is built for a hostile client environment. The goal is not “unhackable clients” (impossible), but server authority + validation + detection + containment.
Assets (what we protect)¶
- Competitive integrity
- match outcomes (wins/losses)
- damage/hit validation
-
ranked MMR and rewards
-
Economy integrity
- premium purchases and grants
-
inventories, cosmetics, currencies
-
Operational control
- publish/promote actions
- feature flags and configs
-
moderation actions (ban/mute)
-
Player safety
- moderation pipeline correctness
- abuse report handling
Attackers¶
- Basic exploiters
- remote spamming
-
changing local values / UI injection
-
Advanced exploiters
- automated aimbots
- movement manipulation
- replay/simulation abuse
-
coordinated match fixing / boosting
-
Insider / operator mistakes
- misconfigured rollouts
- accidental prod publish
- overly broad permissions
Trust boundaries¶
- Client → Server
- untrusted
-
may send arbitrary payloads at arbitrary rates
-
Server → Client
-
trusted direction, but data must be privacy-safe
-
Dashboard → Backend
-
privileged actions must be RBAC-gated + audited
-
Backend → Roblox Open Cloud
- must be least-privilege and environment-isolated
Primary exploit surfaces and mitigations¶
1) Remotes (RemoteEvents / RemoteFunctions)¶
Threats:
- calling remotes with malformed payloads
- calling remotes out of allowed state (cooldown bypass)
- spamming high-frequency remotes to lag/crash
Mitigations:
- Registry allowlist: only defined remotes exist
- Runtime schema validation on server
- Per-player and per-endpoint rate limiting
- Stable error codes, never throwing across boundary
- Violation events -> scoring -> enforcement policy
2) Client authority creep¶
Threats:
- trusting client position for hits
- trusting client cooldowns/ammo
- trusting client inventory
Mitigations:
- Server authoritative outcomes: damage, rewards, cooldowns, inventory mutations
- Server recalculates or validates critical values
- Client sends intent only
3) Movement + physics manipulation¶
Threats:
- speed/fly
- teleport/desync
- physics ownership exploitation
Mitigations:
- Server validates movement envelope (max speed/accel)
- Server authority for hit validation
- Ranked mode can enforce stricter ownership/validation
4) Economy duplication¶
Threats:
- retry duplication
- double-granting receipts
- race conditions across servers
Mitigations:
- Idempotency keys for all grants
- Conflict-safe persistence patterns
- Ledger-style recording for high-impact grants
5) Dashboard abuse / privilege escalation¶
Threats:
- stolen operator session
- excessive permissions
- un-audited admin actions
Mitigations:
- Roblox OAuth login + allowlist + RBAC
- Immutable audit logs for all privileged actions
- Approval workflows for high-risk actions (prod promote, economy changes)
Enforcement policy (default)¶
- Observe: log structured violations
- Score: aggregate suspicion score per player/session/match
- Contain:
- throttle specific remotes
- quarantine into unranked servers
- kick on clear malicious behavior
- Ban:
- manual ban with evidence preferred
- automated bans only with high-confidence signals and safe rollback
Security definition of done¶
- No inbound remote reaches gameplay logic without schema validation and rate limiting.
- All competitive outcomes are computed server-side.
- All privileged dashboard actions are RBAC-protected and audited.