OWASP Cornucopia
OWASP Cornucopia is a mechanism in the form of a card game to assist software development teams identify security requirements in Agile, conventional and formal development processes. It is language, platform and technology-agnostic.
Introduction
The idea behind Cornucopia is to help development teams, especially those using Agile methodologies, to identify application security requirements and develop security-based user stories. Although the idea had been waiting for enough time to progress it, the final motivation came when SAFECode published its Practical Security Stories and Security Tasks for Agile Development Environments in July 2012. Cornucopia was created and first used for developer training in August 2012.
To start using OWASP Cornucopia or find out more about the game please visit cornucopia.owasp.org
About
To find out more about what OWASP Cornucopia is all about, please read the about section on cornucopia.owasp.org
Licensing
OWASP Cornucopia is free to use. It is licensed under the Creative Commons Attribution-ShareAlike 3.0 license, so you can copy, distribute and transmit the work, and you can adapt it, and use it commercially, but all provided that you attribute the work and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar licence to this one.
© OWASP Foundation
Other Security Gamification
If you are interested in using gaming for security, also see Elevation of Privilege: The Threat Modeling Game, Security Cards from the University of Washington, the commercial card game Control-Alt-Hack (presentation), OWASP Snakes and Ladders, OWASP Cumulus, and web application security training tools incorporating gamification such as OWASP Hackademic Challenges Project, OWASP Security Shepherd and ITSEC Games.
Additionally, Adam Shostack maintains a list of tabletop security games and related resources at Tabletop Security Games + Cards.
Get the Cards
The primary source document is a Word document.
However, pre-printed card decks may be more useful, or there are links to the source design files for the cards themselves (see links underneath). You can also choose to play the OWASP Cornucopia Website App Edition and Mobile App Edition online at copi.owasp.org
Printed
OWASP no longer has a stock of printed decks.
OWASP does not endorse or recommend commercial products or services. However, Agile Stationary offer large print (v2.0) web app decks and large print (v1.0) mobile app decks. They also offer a croupier to help you distribute cards to team members. Also, dotNET lab sell a printed deck which complements their online reference.
Print your own
There are many ways to print copies of the card decks yourself:
- Download the free Adobe Illustrator files and get them professionally printed;
- Print the Word document onto business card blanks;
- Print the Word document onto normal card and cut the cards out individually using the guide; or
- Generate your own cards from the free source XML data file in the repository.
For instructions on printing your own decks, please go to cornucopia.owasp.org
Source files
Source code to generate the Word document, PDFs and InDesign files for printing are maintained in our Github repository
How to Play
Please visit cornucopia.owasp.org
Frequently Asked Questions
Can I copy or edit the game?
Yes of course. All OWASP materials are free to do with as you like provided you comply with the Creative Commons Attribution-ShareAlike 3.0 license. Perhaps if you create a new version, you might donate it to the OWASP Cornucopia Project?
How can I get involved?
Please send ideas or offers of help to the project’s List/Group.
How were the attackers’ names chosen?
EoP begins every description with words like “An attacker can…”. These have to be phrased as an attack but I was not keen on the anonymous terminology, wanting something more engaging, and therefore used personal names. These can be thought of as external or internal people or aliases for computer systems. But instead of just random names, I thought how they might reflect the OWASP community aspect. Therefore, apart from “Alice and Bob”, the original Ecommerce Website Edition used the given (first) names of current and recent OWASP employees and Board members (assigned in no order), and then randomly selected the remaining 50 or so names from the current list of paying individual OWASP members. No name was used more than once, and where people had provided two personal names, we dropped one part to try to ensure no-one can be easily identified. Names were not deliberately allocated to any particular attack, defence or requirement. The cultural and gender mix simply reflects theses sources of names, and is not meant to be world-representative. Some names have been changed over the years to include some more recent project volunteers.
Why aren’t there any images on the card faces?
There is quite a lot of text on the cards, and the cross-referencing takes up space too. But it would be great to have additional design elements included.
Are the attacks ranked by the number on the card?
Only approximately. The risk will be application and organisation dependent, due to varying security and compliance requirements, so your own severity rating may place the cards in some other order than the numbers on the cards.
How long does it take to play a round of cards using the full deck?
This depends upon the amount of discussion and how familiar the players are with application security concepts. But perhaps allow 1.5 to 2.0 hours for 4-6 people.
What sort of people should play the game?
Always try to have a mix of roles who can contribute alternative perspectives. But include someone who has a reasonable knowledge of application vulnerability terminology. Otherwise try to include a mix of architects, developers, testers and a relevant project manager or business owner.
Who should take notes and record scores?
It is better if that someone else, not playing the game, takes notes about the requirements identified and issues discussed. This could be used as training for a more junior developer, or performed by the project manager. Some organisations have made a recording to review afterwards when the requirements are written up more formally.
Should we always use the full deck of cards?
No. A smaller deck is quicker to play. Start your first game with only enough cards for two or three rounds. Always consider removing cards that are not appropriate at all of the target application or function being reviewed. For the first few times people play the game it is also usually better to remove the Aces and the two Jokers. It is also usual to play the game without any trumps suit until people are more familiar with the idea.
What should players do when they have an Ace card that says “invented a new X attack”?
The player can make up any attack they think is valid, but must match the suit of the card e.g. data validation and encoding). With players new to the game, it can be better to remove these to begin with.
I don’t understand what the attack means on each card - is there more detailed information?
Yes, the card browser on our website has more information on what each card means. The website was created to help players understand the attacks. See cornucopia.owasp.org.
Acknowledgements
Volunteers
Cornucopia is developed, maintained, updated and promoted by a worldwide team of volunteers. The contributors to date have been:
Please see cornucuopia.owasp.org for a full list.
And please let us know if we have missed anyone.
Road Map
v2.x
Below is a preliminary summary of our wishes, dreams and aspirations for Cornucopia. If you have suggestions, ideas, please feel free to discuss them on our email list or submit them to our list of issues in our repository. If you feel like and have the oportunity to help with any of the issues below, do not hesitate to get in touch.
Ordered alphabeticly and not according to priority.
- Build the requirement map on the card using OpenCRE for easier maintainence and collaboration. cornucopia #595
- Endpoint per card with more information available on copi. copi #6
- Ensure the converter can create print-ready proofs for print-on-demand jobs.
- Include QR codes on the Cornucopia cards. cornucopia #382
- Language review of the existing translations. cornucopia #596
- Migrate the wiki deck to github wiki. cornucopia #1
- Seek worldwide translators and incorporate additional translations for other languages.
Getting Involved
Involvement in the development and promotion of Cornucopia is actively encouraged! You do not have to be a security expert in order to contribute. Some of the ways you can help are listed below.
Localization
Are you fluent in another language? Can you help translate Cornucopia into that language? Note this is a very large task due to the number of documents involved, but the strings are now all available in textual data files.
Use and Promote the Cornucopia Card Decks
Please help raise awareness of Cornucopia by:
- Printing dcks of cards and giving them away
- Using Cornucopia with specifiers, architects, designers, developers, testers and others, in part to train them, but also to solicit feedback on their usability, practicality and appropriateness for their work
- Creating videos about how to play the game
- Developing a mobile app to play the game
Feedback
Please use the friendly project Google Group for feedback:
- What do like?
- What don’t you like?
- What cards don’t make sense?
- How could the guidance be improved?
- What other decks would you like to see?
Keep the Cards Updated
As the source referenced documents change, we have to update the decks. You may also find errors and omissions. In the first instance, please send a message to the project’s Google Group if you have identified errors & omissions, have some time to maintain the source documents, or can help in other ways.
Create a New Deck
The first deck, Cornucopia Ecommerce Website Edition, has been renamed Cornucopia Website App Edition and is currently available in six languages. There is also a mobile app specific deck called Cornucopia Mobile App Edition available in English only. Do you have an idea for your own application security requirements card deck?