Security Design Patterns – Overview –Software Development Lifecycle –Enterprise Software Design Process and Artifacts –Pattern Format –Aspect Oriented.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Towards Application Security Design | Process | Organization –Software Development Process –Security Design Process & Artifacts –Security Team composition.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Mastering Object-Oriented Analysis and Design with UML Module 4: Analysis and Design Overview.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
02/12/00 E-Business Architecture
Development Processes UML just is a modeling technique, yet for using it we need to know: »what do we model in an analysis model? »what do we model in.
The Architecture Design Process
Unified Software Practices v 5.0 Copyright  1998 Rational Software, all rights reserved 1 R Introduction to Rational Unified Process.
Introduction to z/OS Basics © 2006 IBM Corporation Chapter 8: Designing and developing applications for z/OS.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
© 2005 Prentice Hall2-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
PRESENTED BY SANGEETA MEHTA EECS810 UNIVERSITY OF KANSAS OCTOBER 2008 Design Patterns.
Object Oriented Analysis and Design Using the UML
Principles of Object Technology Module 1: Principles of Modeling.
RUP Requirements RUP Artifacts and Deliverables
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
UML - Development Process 1 Software Development Process Using UML (2)
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Rational Unified Process (Part 1) CS3300 Fall 2015.
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
ITEC224 Database Programming
SWE © Solomon Seifu CS425 Software Engineering Solomon Seifu Department of Computer Science Maharishi University of Management, Fairfield, IA.
ASG - Towards the Adaptive Semantic Services Enterprise Harald Meyer WWW Service Composition with Semantic Web Services
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 27. Review UML dynamic view – State Diagrams.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Information System Development Courses Figure: ISD Course Structure.
Chapter 7 Applying UML and Patterns Craig Larman
Systems Analysis and Design in a Changing World, 3rd Edition
Assessing the influence on processes when evolving the software architecture By Larsson S, Wall A, Wallin P Parul Patel.
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
Object Oriented Analysis and Design using the UML CIS 520 Advanced Object-Oriented Design.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
Object-Oriented Analysis and Design. Lesson 1: Introduction to Software Engineering.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
CS 772: Global Knowledge Networks V. “Juggy” Jagannathan CSEE, West Virginia University.
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Cryptography and Network Security Sixth Edition by William Stallings.
The principles of an object oriented software development process Week 04 1.
Introduction to Rational Unified Process
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
Aspect-Oriented Software Development (AOSD)
Process 4 Hours.
GRASP – Designing Objects with Responsibilities
Chapter 1: Introduction to Systems Analysis and Design
The Object-Oriented Thought Process Chapter 15
UML: Unified modeling language
Introduction to Software Engineering
Object Oriented Analysis and Design
Patterns.
Analysis models and design models
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
Chapter 1: Introduction to Systems Analysis and Design
Design Yaodong Bi.
Chapter 1: Introduction to Systems Analysis and Design
Software Development Process Using UML Recap
Logical Architecture & UML Package Diagrams
Presentation transcript:

Security Design Patterns – Overview –Software Development Lifecycle –Enterprise Software Design Process 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 the system –Transition: "going live!"

SW Security Architect Role Provides Leadership Facilitate Collaboration between disparate stakeholders Focus on Design Process Architect Busines s SecurityDevDataOps

Analysis Phase "A problem, properly stated, is a problem on its way to being 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 requirements using actors and actions to show structure and relationships Defines both text document and diagram formats Use Cases drive the development process

Use Case Use Case Example: user transferring money 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 point of view Useful to glean security requirements Discussed in paper by Guttorm Sindre and Andreas Opdahl. –More information at:

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 –Common Services:Logging/Security/Exception

Threat Modeling Elaborates on threats in MisUse case analysis 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 then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice," 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 Cases and Threat models Encompass “prevention, detection, and response” (Schneier, “Secrets and Lies”) Context and pattern relationships equally important as individual problems and solutions

Input Validator Pattern Context: distributed applications are typically built to be client independent. Problem: a minimum of assumptions and control of client interface creates possibility of malicious input. Malicious input can be used to gain unauthorized access to system processes and resources

Input Validator Pattern Solution: Do not trust input. Validate input against acceptable value criteria.

Improving The Solution with AOP 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 –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 behavior before(): call(void Facade+.get*(..)) || call(void Facade+.update*(..)) { InputValidator.validate(); }

Exception Manager Pattern “If I wanted you to understand I would have explained it better,” Johan Cruyff Context: differentiate between exception handling and exception management –Java exception handling paradigm Problem: exceptions can write sensitive data, i.e. Database connection info, to logs or to user screen.

Exception Manager Pattern Solution: Use structured exception handling, wrap exceptions, and sanitize exception information for display

Secure Logger Pattern Context:balance between performance and 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.java before(): 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, and testing code Iterate Use unit tests like Junit ( and Nunit to validate your design assumptionswww.junit.org

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, monthly architecture newsletter at: