Overview Software Development Lifecycle Enterprise ... · ¥ Christopher Alexander —ÒTimeless...

Post on 26-Jan-2019

215 views 0 download

Transcript of Overview Software Development Lifecycle Enterprise ... · ¥ Christopher Alexander —ÒTimeless...

Security Design Patterns– Overview

–Software Development Lifecycle

–Enterprise Software DesignProcess and Artifacts

–Pattern Format

–Aspect Oriented Programming

Security Design Patterns– Focus of this presentation

– Architecture-centric (AOP)

– Enterprise Focus

– Technology Agnostic

– Collaboration between Security,Business, and Development

Development Lifecycle

• Software Development Lifecycle– Analysis: focuses on requirements gathering

and high level definitions

– Design: drills down on technical issues,distributions, and refines requirements

– Construction: building and testing thesystem

– Transition: "going live!"

SW Security Architect Role

• Provides Leadership

• Facilitate Collaboration betweendisparate stakeholders

• Focus on Design Process

Architect

Business

Security Dev Data Ops

Analysis Phase

• "A problem, properly stated, is a problem on its way tobeing solved," Buckminster Fuller

• Concerned with the “what” not the “how”

• What is the business value of security?

• Artifacts– Functional & non-functional requirements

• Security requirements are often “negative”

– Use Cases

Use Case

• A specific way to capture requirementsusing actors and actions to showstructure and relationships

• Defines both text document and diagramformats

• Use Cases drive the developmentprocess

Use Case

• Use Case Example: user transferringmoney on bank website system

Use Case

• Use Case Attributes– Goal/Context

– Boundaries

– Preconditions

– End Condition: Success/Fail

– Actor/Roles

– Actions

Mis-Use Cases

• Look at the system from an attacker pointof view

• Useful to glean security requirements

• Discussed in paper by Guttorm Sindreand Andreas Opdahl.– More information at:

www.ifi.uib.no/conf/refsq2001/papers/p25.pdf

Mis-Use Case Example

• Attacker View of Bank Website

Mis-Use Case Benefit

• Defending Against Login Subversion

Design Phase

• Goals of this phase include– System, object, component design

– Prototyping

• Design Artifacts– CRC Cards: Class, Responsibility,

Collaboration

– Class & Sequence Diagrams

– CommonServices:Logging/Security/Exception

Threat Modeling

• Elaborates on threats in MisUse caseanalysis

• Focus on distilling:– Threat impact level

– Threat likelihood

– Mitigation, management, and containment

Design Patterns

• Christopher Alexander– “Timeless Way of Building”& “Pattern

Language”

• Pattern definition– "Each pattern describes a problem which occurs

over and over again in our environment, and thendescribes the core of the solution to that problem, insuch a way that you can use this solution a milliontimes over, without ever doing it the same waytwice," Alexander

Design Patterns

• Gang of Four “Design Patterns”– Defined three pattern types

• Creational

• Structural

• Behavioral

• Basic Pattern Template– Problem, Context, Solution

Security Design Patterns

• Derived from Solutions to Mis-Use Casesand Threat models

• Encompass “prevention, detection, andresponse” (Schneier, “Secrets and Lies”)

• Context and pattern relationships equallyimportant as individual problems andsolutions

Input Validator Pattern

• Context: distributed applications aretypically built to be client independent.

• Problem: a minimum of assumptions andcontrol of client interface createspossibility of malicious input. Maliciousinput can be used to gain unauthorizedaccess to system processes andresources

Input Validator Pattern

• Solution: Do not trust input. Validateinput against acceptable value criteria.

Improving The Solution withAOP

• Aspect Oriented Programming Basics– AOP and OOP collaborate

– Ability to address cross cutting concerns(like security!) in a modular way

– Component Relationships

– Tool Support: AspectJ, HyperJ (IBM),AspectWerks, Nanning (see www.aosd.net)

– Not Just Java

AOP Concepts

• AspectJ Basics– Aspect

– Join Point• Location

– Pointcut• Context gathering/assembling

– Advice

– Introduction

Refactoring with AspectJ

• Login Use Case

Refactoring with AspectJ

• Additional Use Cases

Refactoring with AspectJ

• Classes with Getters

Refactoring with AspectJ

• AspectJ modularizes common behaviorbefore(): call(void Facade+.get*(..))

|| call(void Facade+.update*(..)){ InputValidator.validate();}

Exception Manager Pattern

• “If I wanted you to understand I would have explainedit better,” Johan Cruyff

• Context: differentiate between exceptionhandling and exception management

–Java exception handling paradigm

• Problem: exceptions can write sensitivedata, i.e. Database connection info, tologs or to user screen.

Exception Manager Pattern

• Solution: Use structured exception handling, wrapexceptions, and sanitize exception information fordisplay

Secure Logger Pattern

• Context:balance between performanceand analytical purposes

• Problem:– Distributed Systems

– Centralize vs. decentralize

– Time

– Management

Secure Logger Pattern

• Solution: remote logging host

Secure Logger Pattern

• Solution: deployment diagram

Secure Logger Pattern

• Logging in Java

Secure Logger Pattern

• SloggerAspect.javabefore(): call(void Facade+.get*(..))

|| call(void Facade+.update*(..)){ //assemble context init logger methods;}

after(): call(void Facade+.get*(..)) || call(void Facade+.update*(..)){ //final logger methods;}

Patterns

• Modular Behavior

Construction Phase

• Concerned with building, integrating, andtesting code

• Iterate

• Use unit tests like Junit (www.junit.org)and Nunit to validate your designassumptions

Build and Unit Test Process

• Separation of privileges– Developer Level

• Compile

• Unit test

– Integration Level• Build

• Configure

• Deploy

• Promote

Transition Phase

• "There's nothing like bringing in a herd," City Slickers

• Moving to operational mode

• Where security usually begins

• Operational plans, monitoring processes& Incident response

Questions?

• More information and free, monthlyarchitecture newsletter at:www.arctecgroup.net/articles.htm