Security Patterns

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Design patterns can be applied to achieve goals in the area of security. All of the classical design patterns have different instantiations to fulfill some information security goal: such as confidentiality, integrity, and availability. Additionally, one can create a new design pattern to specifically achieve some security goal.

Existing security pattern[edit]

The pattern community has provided a collection of security patterns, which were discussed in workshops at Pattern Languages of Programs (PLoP) conferences. They have been unified and published in a joint project.[1]

Munawar Hafiz and colleagues worked with Ward Cunningham and Microsoft Patterns and Practices group on a comprehensive catalog of all published security patterns. They have also explored how to classify the patterns in small groups[2] and how to organize them using a pattern language.[3] As of March 2013, their pattern catalog contains 97 security patterns. More details are available in the webpage maintained the Munawar Hafiz.[4]

Heyman and Yskout have also collected[5] and analyzed [6] a huge number of security patterns.

The Open Group provides a set of documented security pattern.

Available system patterns[edit]

These are patterns that are concerned with the availability of the assets. The assets are either services or resources offered to users.

  • Check pointed System pattern describes a design to use Replication (computer science) and recover when a component fails.
  • Standby pattern has the goal to provide a fall back component able to resume the service of the failing component.
  • Comparator-checked fault tolerant system pattern provides a way to monitor the failure free behavior of a component.
  • Replicated system pattern describes a design of redundant components and a mean of load balancing and redirection in between to decrease the chance of non availability of the service.
  • Error detection/correction pattern has the goal to deduce errors and possibly correct them to guarantee correct information exchange or storage.

Protected system patterns[edit]

This is a set of patterns concerned with the confidentiality and integrity of information by providing means to manage access and usage of the sensitive data.

The protected system pattern provides some reference monitor or enclave that owns the resources and therefor must be bypassed to get access. The monitor enforces as the single point a policy. The GoF refers to it as "Protection Proxy".

The policy pattern is an architecture to decouple the policy from the normal resource code. An authenticated user owns a security context (erg. a role) that is passed to the guard of resource. The guard checks inside the policy whether the context of this user and the rules match and provides or denies access to the resource.

The authenticator pattern is also known as the Pluggable Authentication Modules or Java Authentication and Authorization Service (JAAS).

  • Subject descriptor pattern
  • Secure Communication is similar to Single sign-on, RBAC
  • Security Context is a combination of the communication protection proxy, security context and subject descriptor pattern.
  • Security Association is an extension of the secure communication pattern.
  • Secure Proxy pattern can be used for defense in depth.

Security patterns for Java EE and XML Web Services [7][edit]

This is a set of security patterns evolved by a team of engineers from Sun Microsystems that contributes to building end-to-end security into Java EE enterprise applications, XML Web services, identity management systems, and service provisioning solutions.

  • Authentication Enforcer pattern can be used to manage and delegate authentication processes
  • Authorization Enforcer pattern can be used to manage and delegate authorization processes
  • Intercepting Validator pattern helps performing security validation for input data from clients
  • Secure Base Action pattern shows centralizing handling of security tasks in a base action class
  • Secure Logger pattern can be used to log sensitive data and ensuring tamper-proof storage
  • Secure Session Manager shows securely centralizing session information handling
  • Web Agent Interceptor pattern shows how to use an interceptor mechanism to provide security for Web applications
  • Obfuscated Transfer Object pattern shows how to protect data passed around in transfer objects and between application tiers
  • Audit Interceptor pattern shows to capture security related events to support logging and auditing
  • Message Inspector pattern shows verification and validation of XML message-level security mechanisms, such as XML Signature and XML Encryption in conjunction with a security token.
  • Message Interceptor Gateway pattern shows a single entry point solution for centralization of security enforcement for incoming and outgoing XML Web Service messages. It helps to apply transport-level and message-level security mechanisms required for securely communicating with a Web services endpoint.
  • Secure Message Router pattern facilitates secure XML communication with multiple partner endpoints that adopt message-level security. It acts as a security intermediary component that applies message-level security mechanisms to deliver messages to multiple recipients where the intended recipient would be able to access only the required portion of the message and remaining message fragments are made confidential.

External links[edit]

References[edit]

  1. ^ Markus Schumacher, Eduardo Fernandez-Buglioni, Duane Hybertson, Frank Buschmann, Peter Sommerlad. Security Patterns: Integrating Security and Systems Engineering, Wiley Series in Software Design Patterns, 2005.
  2. ^ Munawar Hafiz, Paul Adamczyk and Ralph Johnson. Organizing Security Patterns. In IEEE Software Special Issue on Software Patterns, Jul/Aug 2007
  3. ^ Munawar Hafiz, Paul Adamczyk and Ralph Johnson. Growing a Pattern Language (for Security). In Proceedings of the 27th Object-Oriented Programming, Systems, Languages and Applications, OOPSLA 2012, Oct 2012
  4. ^ Munawar Hafiz. Security Pattern Catalog. http://www.munawarhafiz.com/securitypatterncatalog/index.php
  5. ^ Yskout, K. et al., A system of security patterns. Technical report CW-469, Katholieke Universiteit Leuven, December 2006.
  6. ^ Heyman, T., et al., W. An analysis of the security patterns landscape. In SESS ’07: Proceedings of the Third International Workshop on Software Engineering for Secure Systems (Washington, DC, USA, 2007), IEEE Computer Society
  7. ^ Ramesh Nagappan, Christopher Steel. Core Security Patterns: Best Practices and Strategies for J2EE, Web Services and Identity Management, Prentice Hall, 2005.