This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org
Difference between revisions of "OWASP Game Security Framework Project"
From OWASP
(→News and Events) (Tag: Visual edit) |
(→Collaboration) (Tag: Visual edit) |
||
(15 intermediate revisions by 2 users not shown) | |||
Line 21: | Line 21: | ||
''Components include the following:'' | ''Components include the following:'' | ||
− | |||
* '''Attack Surfaces''': the various surface areas that can be attacked by attackers in order to cause harm to the gaming ecosystem. | * '''Attack Surfaces''': the various surface areas that can be attacked by attackers in order to cause harm to the gaming ecosystem. | ||
Line 37: | Line 36: | ||
''Example:'' | ''Example:'' | ||
− | + | : "The attacker attacked and edited the <code>LOCAL GAME CLIENT (Attack Surface)</code>, which had a <code>LACK OF CLIENT INTEGRITY CONTROLS (Vulnerability)</code>, which allowed her to <code>ARTIFICIALLY INCREASE HER ABILITIES (Attacker Goal)</code>, ultimately leading to an <code>UNHAPPY PLAYER BASE (Negative Outcome)</code> and <code>DECLINING GAME REVENUE (Negative Outcome)</code> , which could have been prevented by <code>DEFENSE.</code>” | |
− | : "The attacker attacked and edited the <code>LOCAL GAME CLIENT (Attack Surface)</code>, which had a <code>LACK OF CLIENT INTEGRITY CONTROLS (Vulnerability)</code>, which allowed her to <code>ARTIFICIALLY INCREASE HER ABILITIES (Attacker Goal)</code>, ultimately leading to an <code>UNHAPPY PLAYER BASE (Negative Outcome)</code> and <code>DECLINING GAME REVENUE (Negative Outcome)</code> | ||
Line 131: | Line 129: | ||
|- | |- | ||
| '''Local Game Client''' | | '''Local Game Client''' | ||
− | | | + | |The locally running game client that is accessible to the gamer because it's running on his/her machine. |
− | |||
|- | |- | ||
| '''Game Network Traffic''' | | '''Game Network Traffic''' | ||
− | | | + | |The network which game traffic traverses in order to reach the game's server or peers who are playing the game. |
− | |||
|- | |- | ||
| '''Game Server''' | | '''Game Server''' | ||
− | | | + | |The game server that is hosting the instance that gamers connect to in order to play the game. |
− | |||
|- | |- | ||
| '''Game Economy''' | | '''Game Economy''' | ||
− | | | + | |The economic system that exists within the game. |
− | + | |- | |
+ | |'''Game Mechanics''' | ||
+ | |The physics engine, logic, and other environmental components within the game. | ||
|- | |- | ||
|} | |} | ||
Line 251: | Line 248: | ||
|} | |} | ||
− | = | + | = Exploits = |
<div style="width:100%;height:160px;border:0,margin:0;overflow: hidden;">[[File:OWASP_Project_Header.jpg|link=]]</div> | <div style="width:100%;height:160px;border:0,margin:0;overflow: hidden;">[[File:OWASP_Project_Header.jpg|link=]]</div> | ||
Line 258: | Line 255: | ||
| valign="top" style="border-right: 1px dotted gray;padding-right:25px;" | | | valign="top" style="border-right: 1px dotted gray;padding-right:25px;" | | ||
− | == | + | == Exploits == |
− | + | This list refers to what a given attacker might use to take advantage of a given bug within the game. | |
{| class="wikitable" border="1" style="text-align: left" | {| class="wikitable" border="1" style="text-align: left" | ||
− | ! | + | ! Exploit |
! Description | ! Description | ||
|- | |- | ||
− | | ''' | + | | '''DDoS''' |
− | | | + | |Force a player to DC, or attack the game itself so that it cannot serve customers. |
− | |||
− | |||
|- | |- | ||
− | | ''' | + | | '''Client Modification''' |
− | | | + | |Modify the client in a way that gives advantage. |
− | |||
− | |||
− | |||
|- | |- | ||
− | | ''' | + | | '''Malicious Macros''' |
− | | | + | |Implementation of macros that perform unwanted actions. |
− | |||
− | |||
|- | |- | ||
− | | ''' | + | | '''Social Engineering''' |
− | | | + | |Getting a player, mod, or game staff member to perform an action that helps the attacker. |
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | | ''' | + | | '''Use Physics Bug''' |
− | | | + | |Interact with the world in a way that makes the physics engine do what the attacker wants. |
− | + | |- | |
− | + | |'''Malform Network Traffic''' | |
− | + | |Send modified network traffic that tricks or disrupts an opposing player or the game itself. | |
− | |||
|- | |- | ||
|} | |} | ||
Line 302: | Line 287: | ||
| valign="top" style="padding-left:25px;width:300px;border-right: 1px dotted gray;padding-right:25px;" | | | valign="top" style="padding-left:25px;width:300px;border-right: 1px dotted gray;padding-right:25px;" | | ||
− | == | + | == The Exploits Project == |
− | The | + | The Exploits provides information on what types of tools and techniques an attacker might use to accomplish his/her goal. |
== Sub-project Leader == | == Sub-project Leader == | ||
Line 326: | Line 311: | ||
|} | |} | ||
− | = | + | = Attacker Goals = |
<div style="width:100%;height:160px;border:0,margin:0;overflow: hidden;">[[File:OWASP_Project_Header.jpg|link=]]</div> | <div style="width:100%;height:160px;border:0,margin:0;overflow: hidden;">[[File:OWASP_Project_Header.jpg|link=]]</div> | ||
Line 333: | Line 318: | ||
| valign="top" style="border-right: 1px dotted gray;padding-right:25px;" | | | valign="top" style="border-right: 1px dotted gray;padding-right:25px;" | | ||
− | == | + | == Attacker Goals == |
− | + | This list refers to what a given attacker might be trying to accomplish within the game by performing a given attack. This could relate very closely (or not) with the technical impact or business impact cause by the behavior. | |
{| class="wikitable" border="1" style="text-align: left" | {| class="wikitable" border="1" style="text-align: left" | ||
− | ! | + | ! Attacker Goal |
! Description | ! Description | ||
|- | |- | ||
− | | ''' | + | | '''Avoid Damage''' |
− | | | + | |Allows the player to avoid being killed by other players or NPCs. |
− | |||
− | |||
|- | |- | ||
− | | ''' | + | | '''Gain Gear''' |
− | | | + | |Improve the amount or quality of gear the player has. |
− | |||
− | |||
− | |||
|- | |- | ||
− | | ''' | + | | '''Gain In-game Currency''' |
− | | | + | |Gain more currency than would normally be allowed. |
− | |||
− | |||
|- | |- | ||
− | | ''' | + | | '''Enhance Gear''' |
− | | | + | |Give weapons or other gear powers that they wouldn't normally have. |
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | | ''' | + | | '''Take Opponent Offline''' |
− | | | + | |Take a player out of the game so that the attacker's position is improved. |
− | + | |- | |
− | + | |'''Skip Content''' | |
− | + | |Allows player to skip content resuting in a faster completion or objective time | |
− | |||
|- | |- | ||
|} | |} | ||
Line 377: | Line 350: | ||
| valign="top" style="padding-left:25px;width:300px;border-right: 1px dotted gray;padding-right:25px;" | | | valign="top" style="padding-left:25px;width:300px;border-right: 1px dotted gray;padding-right:25px;" | | ||
− | == What is the | + | == What is the Attacker Goals Project == |
− | The | + | The Attacker Goals Project provides information on what types of outcomes attackers might try to achieve within or outside of the game they're attacking. |
− | == | + | == Sub-project Leader == |
* Daniel Miessler | * Daniel Miessler | ||
Line 401: | Line 374: | ||
|} | |} | ||
− | = | + | = Negative Outcomes = |
<div style="width:100%;height:160px;border:0,margin:0;overflow: hidden;">[[File:OWASP_Project_Header.jpg|link=]]</div> | <div style="width:100%;height:160px;border:0,margin:0;overflow: hidden;">[[File:OWASP_Project_Header.jpg|link=]]</div> | ||
Line 408: | Line 381: | ||
| valign="top" style="border-right: 1px dotted gray;padding-right:25px;" | | | valign="top" style="border-right: 1px dotted gray;padding-right:25px;" | | ||
− | == | + | == Negative Outcomes == |
− | The following is a list of | + | The following is a list of possible negative outcomes that can occur as the result of someone successfully attacking a given game. |
{| class="wikitable" border="1" style="text-align: left" | {| class="wikitable" border="1" style="text-align: left" | ||
− | ! | + | ! Outcomes |
! Description | ! Description | ||
|- | |- | ||
− | | ''' | + | | '''Currency Magnification''' |
− | | | + | |A player ends up with more currency than they were supposed to have. |
− | |||
− | |||
|- | |- | ||
− | | ''' | + | | '''Player Anger''' |
− | | | + | |Players become extremely agitated by one or more bugs. |
− | |||
− | |||
− | |||
|- | |- | ||
− | | '''Game | + | | '''Players Stop Playing the Game''' |
− | | | + | |Players become so frustrated with the bugs and exploits that they stop playing and/or paying for the game. |
− | |||
− | |||
|- | |- | ||
− | | ''' | + | | '''Invulnerable Positions''' |
− | | | + | |Locations on the map make bases or players unassailable and therefore invulnerable. |
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | | ''' | + | | '''Item Multiplication''' |
− | | | + | |Items are duplicated, multiplied, or otherwise increased in an unintended way. |
− | + | |- | |
− | + | |'''Unfair Ladder Victory''' | |
− | + | |A victory is scored in favor of a player or team when they should not have won. | |
− | + | |- | |
+ | |'''Unauthorized Admin Command Use''' | ||
+ | |Regular users are somehow able to execute administrative commands. | ||
|- | |- | ||
+ | |'''Lost Revenue''' | ||
+ | |The game company loses revenue due to bugs, hacks, and player anger. | ||
|} | |} | ||
Line 452: | Line 418: | ||
| valign="top" style="padding-left:25px;width:300px;border-right: 1px dotted gray;padding-right:25px;" | | | valign="top" style="padding-left:25px;width:300px;border-right: 1px dotted gray;padding-right:25px;" | | ||
− | == What is the | + | == What is the Negative Outcomes Project? == |
− | The | + | The Negative Outcomes Project provides information on what types of situations could manifest within the game if bugs or exploits are not successfully addressed. |
− | == Project | + | == Project Leader == |
* Daniel Miessler | * Daniel Miessler | ||
Line 483: | Line 449: | ||
| valign="top" style="border-right: 1px dotted gray;padding-right:25px;" | | | valign="top" style="border-right: 1px dotted gray;padding-right:25px;" | | ||
− | == | + | == Defenses == |
− | + | These are some of the common defenses that can be used to counter attacks against various components of a game. | |
− | + | {| class="wikitable" border="1" style="text-align: left" | |
− | + | ! Outcomes | |
− | + | ! Description | |
+ | |- | ||
+ | | '''Cryptographic Validation of Client''' | ||
+ | |Ensure that the client will not run if it has been modified. | ||
+ | |- | ||
+ | | '''Enterprise-level DDoS Protection''' | ||
+ | |Implement protection against low to mid-tier DDoS attacks against the core gaming infrastructure. | ||
+ | |- | ||
+ | | '''Basic Application Security Defenses''' | ||
+ | |Code-based protections against common application security flaws, such as SQLi, XSS, CSRF, LFI/RFI, etc. | ||
+ | |- | ||
+ | |'''Authentication Lockouts''' | ||
+ | |Lock out a user's account after a certain number of failed attempts. | ||
+ | |- | ||
+ | |'''Two-factor Authentication''' | ||
+ | |Require use of 2FA on a given player's account. | ||
+ | |- | ||
+ | |'''Better Code''' | ||
+ | |Any fixes that can be done in code that aren't covered by other defenses. Could include net code, physics engine, logic fixes, etc. | ||
+ | |- | ||
+ | |'''Server-side Validation''' | ||
+ | |Ensure that validations are performed on the server and not (only) the client. | ||
+ | |} | ||
{{Social Media Links}} | {{Social Media Links}} | ||
Line 598: | Line 586: | ||
| | | | ||
|} | |} | ||
− | '' | + | ''Working Data Collection Spreadsheet:'' |
+ | |||
+ | https://docs.google.com/spreadsheets/d/1Og08wyHsqtODBDkU_M2zHAvdxc63GSu-OmT8NjCc9Ak/edit#gid=0 | ||
: | : | ||
Line 607: | Line 597: | ||
= Community = | = Community = | ||
− | + | We are actively looking for people to help in the following areas: | |
− | + | * Improving the framework schema, e.g., vulns, attack surfaces, technical impacts, business impacts, defenses, etc. | |
− | + | * Adding content to any of the various sections | |
− | + | * Input from avid gamers on how useful this is to them | |
− | + | * Input from app security experts | |
− | + | * Input from security types working at gaming companies | |
− | + | * Input from game company business types | |
− | + | If you have interest in helping, reach out to us and we'll make you a contributor. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * | ||
− | * | ||
− | * | ||
− | * | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
= Testing Tools = | = Testing Tools = |
Latest revision as of 17:46, 23 March 2017