Title: OpenConflict: Preventing Real Time Map Hacks in Online Games
1OpenConflict Preventing Real Time Map Hacks in
Online Games
- Elie Bursztein, Mike Hamburg, Jocelyn Lagarenne,
Dan Boneh - (Stanford University)
- IEEE Symposium on Security and Privacy 2011
2OUTLINE
- Introduction and Related Work
- A Generic Tool for Map Hacking
- Game Hacking with Kartograph
- Preventing Passive Map Hack
- Case Study Starcraft II
- Defending against Map Hacking
- OpenConflict
- Discussion and Conclusion
3OUTLINE
- Introduction and Related Work
- A Generic Tool for Map Hacking
- Game Hacking with Kartograph
- Preventing Passive Map Hack
- Case Study Starcraft II
- Defending against Map Hacking
- OpenConflict
- Discussion and Conclusion
4Real-Time Strategy(RTS)
- Online gaming includes 64 of gamers
- RTS - 35.5
- First person shooter 10.1
- RTS games
- Player compete on a two-dimensional map divided
in to cells - Starcraft II normally 24000 36000 cells
5RTS Game
6Cheating in RTS games
- Abusing the resource system
- Find the location of resource value in memory
- Hacking the unit list
- Tampering with the map visibility
- Map hacking
- Hardest to perform
- Fully passive
- Note push approach v.s. pull approach
7Map Hacking
8Related Work
- Battle of Botcraft fighting bots in online games
with human observational proofs. - ACMCCS (Nov, 2009)
- Hacking world of warcraft An exercise in
advanced rootkit design. - Black Hat (2006)
- Visual reverse engineering of binary and data
files. - Visualization for Computer Security (2008)
9Contribution
- Presenting a generic attack tool
- Kartograph
- A generic defense against passive attacks in RTS
games - OpenConflict
- Analyzed 1000 Starcraft II games
10OUTLINE
- Introduction and Related Work
- A Generic Tool for Map Hacking
- Game Hacking with Kartograph
- Preventing Passive Map Hack
- Case Study Starcraft II
- Defending against Map Hacking
- OpenConflict
- Discussion and Conclusion
11Adversarial Game Instrumentation(AGI)
- Past approaches debugger/decompiler
- Memory attacks on virtually every game
12Map Data
13Map Hacking
- Based on memory changes
- The memory that contains unit positions only
changes when units move - Reducing Memory Space
- Finding the visibility map
- Understanding the visibility map
14Reducing Memory Space
- Step1
- Launch the game
- Read all memory pages of the processs main
module which are marked as - ReadWrite, Commit and Private
- Step2
- Move the camera, trigger actions
- Without discovering any new parts of the map!
- Eliminate all the memory blocks that changed
15Reducing Memory Space(cont.)
- Step3
- Scout an unknown area in game
- Keep only the memory blocks that changed
- Step4
- Same as Step2
16Finding the Visibility Map
- Use visualization techniques
- Create a nonlinear scouting pattern
- Heat map representation
- Difficulty
- Data types, Align
17Visualization
18Visualization(cont.)
19Understanding the Visibility Map
- How the structure works?
- Diff-map analysis
- Snapshot do something
20Diff-Map with Heat Map
21Unit Hacking and Network Analysis
- Unit Smaller and more complex structure
- Produce units and observe memory
- Network Analysis
- D Diff map
- F Fixed value
- C Counter value
- D Random value
D
F
C
R
22OUTLINE
- Introduction and Related Work
- A Generic Tool for Map Hacking
- Game Hacking with Kartograph
- Preventing Passive Map Hack
- Case Study Starcraft II
- Defending against Map Hacking
- OpenConflict
- Discussion and Conclusion
23Game Hacking with Kartograph
- Take lots of memory
- Twice games memory size
- Work on 64-bit windows only
- Test 15 games
- Data structures changed radically
24Map information
25Using the Game as a Map Hack
26OUTLINE
- Introduction and Related Work
- A Generic Tool for Map Hacking
- Game Hacking with Kartograph
- Preventing Passive Map Hack
- Case Study Starcraft II
- Defending against Map Hacking
- OpenConflict
- Discussion and Conclusion
27Preventing Passive Map Hacks
- Threat model passive eavesdropping adversaries
- Assume P2p architecture
- Pull approach
- Cryptographic protocols?
- Challenge imperceptible latency!
28Cast Study Starcraft II
- Wrote a crude game engine
- Analyzed 1000 Starcraft II replays(Top players)
- High number of actions per minute(APM)
- Map size 24320 36864 cells
- Playable size 15180 24640 cells
- Game duration
29Cast Study Starcraft II(cont.)
- Analyzed 1000 Starcraft II replays(Top players)
- Visibility
30OUTLINE
- Introduction and Related Work
- A Generic Tool for Map Hacking
- Game Hacking with Kartograph
- Preventing Passive Map Hack
- Case Study Starcraft II
- Defending against Map Hacking
- OpenConflict
- Discussion and Conclusion
31Our Approach
- Prevent the passive map hack
- Pull approach
- Each players machine only stores information
that the player is authorized to see - Use an oblivious intersection protocol
32Intersection Protocol
- Def
- M be the set of all cells on the map
- Each cell may contain units(including builds and
other objects) - Each unit has a visibility radius
- Union of all of Alices visibility regions gives
the set of cells that Alice can see - denote the set of map cells containing Bobs
unit - for some data domain D
33Intersection Protocol(cont.)
cell
cell
UA
B2
A1
B1
VA
UB1, also VAnUB
34Intersection Protocol(cont.)
- 1. Bob should learn nothing about VA
- 2. Alice should learn nothing about Ub other than
VAnUB - 3. Alice learns the value of fB on VAnUB but
nothing about UB\VA
35Oblivious Function
- G A group of prime order q
- Bob chooses a secret key k in 1,q-1
- ,
- Alice chooses a random integer r in 1,q-1
- Start
- Alice send H1(v)r
- Bob responds with H1(v)rk
- Alice computes H1(v)k H1(v)rkr-1
- Computational Diffie-Hellman assumption tells
that it is secure!
36Compute VAnUB
37Compute VAnUB (cont.)
- (Bob)
- For each u in UB a key ku H2(H1(u)k)
- Encrypt fB(u) using the key ku (authenticated
encryption, AE) - (Alice)
- Alice obtain H1(v)k for all v in Va
- Computes kv H2(H1(v)k) for all v in Va
- Test if one of the ciphertexts received from Bob
decrypts correctly with kv
38Hypergrids
cell
cell
UA
B2
A1
B1
VA
UB1, also VAnUB
38
39Hypergrids(cont.)
40Chaff and Multiplayer
- Basic protocol
- leaks to Bob the number cells in Alices
visibility set VA - Leaks to Alice the sum of the lengths of fB(u)
for u in Ub - The queries H1(v)r are independent of the player
being queried broadcast - Compute H1(v)k is the only per-opponent work
41OUTLINE
- Introduction and Related Work
- A Generic Tool for Map Hacking
- Game Hacking with Kartograph
- Preventing Passive Map Hack
- Case Study Starcraft II
- Defending against Map Hacking
- OpenConflict
- Discussion and Conclusion
42Basic protocol
- Core i5 660 dual-core hyperthreaded processor
running at 3.33 GHz - Standard NIST elliptic curves
- 200 visibility hypertiles and 150 units per
player - A single exponentiation a millisecond
- gt 750 milliseconds per play
- Unacceptable!
43Elliptic Curve
- Montgomery curve
- Because p is a Mersenne prime
- Very efficient implementation, 11-12us for
exponentiations on this curve
44Security
- Need to remain secure for an hour
- Best known algorithms take O( ) time to solve
discrete logarithms - p 261-1
- 12 sec
- p 289-1 (speed up OpenConflict by 33)
- 72 machine-days
- p 2127-1 (OpenConflict)
- 3,200 machine-years
45Measurements
- v visible grid hypertiles (about 30us)
- u units (about 15us)
46OUTLINE
- Introduction and Related Work
- A Generic Tool for Map Hacking
- Game Hacking with Kartograph
- Preventing Passive Map Hack
- Case Study Starcraft II
- Defending against Map Hacking
- OpenConflict
- Discussion and Conclusion
47Preventing Active Attacks
- Detecting active attacks after the game
- Every client logs network traffic/actions and
then sends to other players periodically - Upload to a central server to verify
- Random number generator?
- Commit a seed for a pseudorandom generator at the
beginning of the game - A central server to verify
48Conclusion
- Map hacking and a defense system for RTS games
- Kartograph and OpenConflict
- Security in online games is a fruitful area of
research!