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
Jason Haddix (talk | contribs) (→Contributors) (Tag: Visual edit) |
(→Collaboration) (Tag: Visual edit) |
||
(23 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 77: | Line 75: | ||
* Martin Mendoza | * Martin Mendoza | ||
* Koray Algan | * Koray Algan | ||
+ | * Tom Simkovic | ||
+ | * Matt Espinoza | ||
+ | * Chad Lynch | ||
== Related Projects == | == Related Projects == | ||
Line 93: | Line 94: | ||
== News and Events == | == News and Events == | ||
− | * | + | * January, 2017: Doing a complete redesign of the project. |
+ | * March 2017: Presenting version 1.0 at HouSecCon 2017. | ||
==Classifications== | ==Classifications== | ||
Line 111: | Line 113: | ||
|} | |} | ||
− | = | + | = Attack Surfaces = |
<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 118: | Line 120: | ||
| valign="top" style="border-right: 1px dotted gray;padding-right:25px;" | | | valign="top" style="border-right: 1px dotted gray;padding-right:25px;" | | ||
− | == | + | == Attack Surfaces == |
The following is a list of the attack surfaces that can be found in video games of various types. | The following is a list of the attack surfaces that can be found in video games of various types. | ||
Line 127: | 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 152: | Line 153: | ||
This section provides an overview of the various places an attacker can target to harm a given game infrastructure. | This section provides an overview of the various places an attacker can target to harm a given game infrastructure. | ||
− | == | + | == Sub-project Leader == |
* Daniel Miessler | * Daniel Miessler | ||
Line 172: | Line 173: | ||
|} | |} | ||
− | = | + | = Vulnerabilities = |
<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 227: | Line 228: | ||
The Security Vulnerabilities Project provides information on what types of vulnerabilities exist within games, and which attack surfaces they fall under. | The Security Vulnerabilities Project provides information on what types of vulnerabilities exist within games, and which attack surfaces they fall under. | ||
− | == | + | == Sub-project Leader == |
* Jason Haddix | * Jason Haddix | ||
+ | |||
+ | == Related Projects == | ||
+ | |||
+ | * [[OWASP_Mobile_Security_Project|OWASP Mobile Security]] | ||
+ | * [[OWASP_Top_Ten_Project|OWASP Web Top 10]] | ||
+ | |||
+ | == Collaboration == | ||
+ | [https://game-security.slack.com The Slack Channel] | ||
+ | |||
+ | == Resources == | ||
+ | * [https://www.owasp.org/index.php/Top_IoT_Vulnerabilities Top 10 IoT Vulnerabilities from 2014] | ||
+ | |||
+ | == News and Events == | ||
+ | * Coming Soon | ||
+ | |||
+ | |} | ||
+ | |||
+ | = Exploits = | ||
+ | |||
+ | <div style="width:100%;height:160px;border:0,margin:0;overflow: hidden;">[[File:OWASP_Project_Header.jpg|link=]]</div> | ||
+ | |||
+ | {| style="padding: 0;margin:0;margin-top:10px;text-align:left;" |- | ||
+ | | 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" | ||
+ | ! Exploit | ||
+ | ! 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. | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | {{Social Media Links}} | ||
+ | |||
+ | | valign="top" style="padding-left:25px;width:300px;border-right: 1px dotted gray;padding-right:25px;" | | ||
+ | |||
+ | == The Exploits Project == | ||
+ | |||
+ | The Exploits provides information on what types of tools and techniques an attacker might use to accomplish his/her goal. | ||
+ | |||
+ | == Sub-project Leader == | ||
+ | |||
+ | * Daniel Miessler | ||
== Related Projects == | == Related Projects == | ||
Line 254: | 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 298: | 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 329: | 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 373: | 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 404: | 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 441: | Line 508: | ||
== Real-world Examples of Gaming Vulnerabilities== | == Real-world Examples of Gaming Vulnerabilities== | ||
− | ''Vulnerability | + | ''Vulnerability'' |
{| class="wikitable" | {| class="wikitable" | ||
+ | !ID | ||
! style="font-weight: bold;" | Vulnerabilty Name | ! style="font-weight: bold;" | Vulnerabilty Name | ||
! style="font-weight: bold;" | Description | ! style="font-weight: bold;" | Description | ||
! style="font-weight: bold;" | Surface Area | ! style="font-weight: bold;" | Surface Area | ||
− | ! style="font-weight: bold;" | | + | ! style="font-weight: bold;" | Goal |
− | ! style="font-weight: bold;" | | + | ! style="font-weight: bold;" | Techical Impact |
− | ! | + | !Business Impact |
! style="font-weight: bold;" | Defense | ! style="font-weight: bold;" | Defense | ||
! Ref | ! Ref | ||
+ | !Game | ||
! Genre | ! Genre | ||
|- | |- | ||
+ | |V1 | ||
| Local Resource Modification, Client-side Logic Flaw | | Local Resource Modification, Client-side Logic Flaw | ||
| In 2015 The Division experienced an exploit that allowed an attacker to switch weapons rapidly, applying weapon buffs in a stacking manner, with no cap. | | In 2015 The Division experienced an exploit that allowed an attacker to switch weapons rapidly, applying weapon buffs in a stacking manner, with no cap. | ||
| Game Client | | Game Client | ||
| Unfair Player Advantage | | Unfair Player Advantage | ||
− | | Player Anger, Lost Revenue | + | | Player Anger |
− | + | |Players leave, Lost Revenue | |
| Cryptographic Integrity Checks on Game Client | | Cryptographic Integrity Checks on Game Client | ||
| http://www.gamesradar.com/theres-a-division-damage-stacking-glitch-if-youve-got-fast-fingers/ | | http://www.gamesradar.com/theres-a-division-damage-stacking-glitch-if-youve-got-fast-fingers/ | ||
+ | | | ||
| 3PS/1PS/MMO | | 3PS/1PS/MMO | ||
|- | |- | ||
− | | colspan=" | + | |VN1 |
+ | | colspan="10" style="text-align: center;" | "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> due to cheating, which could have been prevented by <code>CRYPTOGRAPHIC INTEGRITY CHECKS ON GAME CLIENT</code>” | ||
|- | |- | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | | | ||
| | | | ||
| | | | ||
Line 471: | Line 580: | ||
| | | | ||
| | | | ||
+ | | | ||
| | | | ||
| | | | ||
− | | | + | | |
| | | | ||
|} | |} | ||
− | '' | + | ''Working Data Collection Spreadsheet:'' |
− | : | + | https://docs.google.com/spreadsheets/d/1Og08wyHsqtODBDkU_M2zHAvdxc63GSu-OmT8NjCc9Ak/edit#gid=0 |
+ | |||
+ | : | ||
{{Social Media Links}} | {{Social Media Links}} | ||
Line 485: | 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 = | ||
Line 581: | Line 635: | ||
| links_name1 = | | links_name1 = | ||
}} | }} | ||
− | |||
− | |||
Latest revision as of 17:46, 23 March 2017