Game theory is the the branch of mathematics concerned with the analysis of strategies for dealing with competitive situations where the outcome of a participant's choice of action depends on the actions of other participants. Game theory has been applied to contexts in war, business, and biology... and (IT-)security.
RSA FlipIt is a game where two players (attacker and defender) compete over a resource. FlipIt was developed by the RSA Labatories and Ron Rivest in 2012. The orginal paper is available here.
What made FlipIt special at that time was, that the players can move at any time and that the opponent's moves are hidden until a player makes their move.
That is very different from other games where players move one after the other and the result of any move is visible to the other player(s).
The benefit for each player is directly related to the time that player has control over the resource. The resource could be anything but the original idea of FlipIt was, that this is about e.g. a server, a cryptographic key management system etc.
To model real-life scenarios more closely, each move has a cost associated to it. The cost per move ensures, that the players cannot simply play multiple moves in rapid succession. If they would do that, all of their benefits are likely to be consumed by the costs of those moves.
FlipIt gives us a couple of lessons about the resources we defend (or attack... this knowledge isn't just for defenders):
- One should always assume complete compromise of the resource e.g. complete loss of control over a server, cryptographic key, Helms Deep, etc.
- Agressive play of one player can force the opponent out of the game. That is thanks to the costs of each move. If the defender's costs are lower than that of the attacker, the defender can play faster. The attacker will soon reach a point where it is no longer sensible to continue as there is no profit to be made any longer.
The defender should therefore "rig" the system so that the defender's move costs are lower and therefore the attackers move costs are higher.
- Visibility into the state of the resource is important. The more visibility a player has, the more efficiently the defender's moves can be performed. No move is wasted, no unneeded costs occur.
This online FlipIt game tries to visualize the game under various assumptions:
- The attacker can play according to various strategies: random, periodic, random-with-minium-moves
- The defender can use the same strategies or be controled by a human (assumption: that is you).
By adjusting one's strategy (when to move) and the various costs and the benefit, you can see for yourself that:
- Moving more often results in more time the resource is under control
- Having low move-costs does make a difference. This includes having the option to have a (relatively low) move costs for "Reveal" moves - this option allows a player to incur lower costs per move as just checking wether the resource is still under control by the player is cheaper than the costs of flipping the resource regardless of it's state.
- Periodic moves are a bad idea. Make your moves unpredictable. That could mean completely random or at least in a pattern that cannot be easily guessed. Moves could be based on memoryless exponential distribution for example.