Advanced Search

Content Type

Topics

Publication Date

Secure Design Patterns

Abstract

The cost of fixing system vulnerabilities and the risk associated with vulnerabilities after system deployment are high for both developers and end users. While there are a number of best practices available to address the issue of software security vulnerabilities, these practices are often difficult to reuse due to the implementation-specific nature of the best practices. In addition, greater understanding of the root causes of security flaws has led to a greater appreciation of the importance of taking security into account in all phases in the software development life cycle, not just in the implementation and deployment phases. This report describes a set of secure design patterns, which are descriptions or templates describing a general solution to a security problem that can be applied in many different situations. Rather than focus on the implementation of specific security mechanisms, the secure design patterns detailed in this report are meant to eliminate the accidental insertion of vulnerabilities into code or to mitigate the consequences of vulnerabilities. The patterns were derived by generalizing existing best security design practices and by extending existing design patterns with security-specific functionality. They are categorized according to their level of abstraction: architecture, design, or implementation.  

Six new secure design patterns were added to the report in an October 2009 update.

Cite This Report

Show Citation Formats

SEI

Dougherty, Chad; Sayre, Kirk; Seacord, Robert; Svoboda, David; & Togashi, Kazuya. Secure Design Patterns (CMU/SEI-2009-TR-010). Software Engineering Institute, Carnegie Mellon University, 2009. http://resources.sei.cmu.edu/library/asset-view.cfm?AssetID=9115

IEEE

Dougherty. Chad, Sayre. Kirk, Seacord. Robert, Svoboda. David, and Togashi. Kazuya, "Secure Design Patterns," Software Engineering Institute, Carnegie Mellon University, Pittsburgh, Pennsylvania, Technical Report CMU/SEI-2009-TR-010, 2009. http://resources.sei.cmu.edu/library/asset-view.cfm?AssetID=9115

APA

Dougherty, Chad., Sayre, Kirk., Seacord, Robert., Svoboda, David., & Togashi, Kazuya. (2009). Secure Design Patterns (CMU/SEI-2009-TR-010). Retrieved September 23, 2014, from the Software Engineering Institute, Carnegie Mellon University website: http://resources.sei.cmu.edu/library/asset-view.cfm?AssetID=9115

CHI

Chad Dougherty, Kirk Sayre, Robert Seacord, David Svoboda, & Kazuya Togashi. Secure Design Patterns (CMU/SEI-2009-TR-010). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2009. http://resources.sei.cmu.edu/library/asset-view.cfm?AssetID=9115

MLA

Dougherty, Chad., Sayre, Kirk., Seacord, Robert., Svoboda, David., & Togashi, Kazuya. 2009. Secure Design Patterns (Technical Report CMU/SEI-2009-TR-010). Pittsburgh: Software Engineering Institute, Carnegie Mellon University. http://resources.sei.cmu.edu/library/asset-view.cfm?AssetID=9115