Security Design Patterns



Similar documents
Secure By Design: Security in the Software Development Lifecycle

Basic Unified Process: A Process for Small and Agile Projects

IBM SECURITY QRADAR INCIDENT FORENSICS

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications

VAIL-Plant Asset Integrity Management System. Software Development Process

Enterprise Security Architecture for Cyber Security. M.M.Veeraragaloo 5 th September 2013

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

A PRACTICAL APPROACH TO INCLUDE SECURITY IN SOFTWARE DEVELOPMENT

Appendix 2-A. Application and System Development Requirements

Web Application Remediation. OWASP San Antonio. March 28 th, 2007

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Complete Web Application Security. Phase1-Building Web Application Security into Your Development Process

SOFTWARE SECURITY. Collaboration in a Secure Development Process Part 2. Gunnar Peterson. Overview. Tradeoff Analysis in the Design Phase

Secure Software Development

Big Data, Big Risk, Big Rewards. Hussein Syed

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Time Monitoring Tool Software Development Plan. Version <1.1>

Introduction to OpenUP (Open Unified Process)

Remote Pointcut - A Language Construct for Distributed AOP

Object-Oriented Systems Analysis and Design

THE OPEN UNIVERSITY OF TANZANIA

Keywords Aspect-Oriented Modeling, Rule-based graph transformations, Aspect, pointcuts, crosscutting concerns.

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

CS 6361, SPRING 2010 Advanced Requirements Engineering Web Based Meeting Scheduler- Project Plan

A complete software development process of a general report publication service implemented using Web Services

Generating Aspect Code from UML Models

CDC UNIFIED PROCESS PRACTICES GUIDE

ISSECO Syllabus Public Version v1.0

EXHIBIT L. Application Development Processes

MESSAGING SECURITY USING GLASSFISH AND OPEN MESSAGE QUEUE

Building Security into the Software Life Cycle

Scope of this presentation

Traventec. September Technology Feature. Roadmap for Adoption of Service Oriented Architecture

THREAT-DRIVEN ARCHITECTURAL DESIGN OF SECURE INFORMATION SYSTEMS

CS 3610: Software Engineering. Summer Software Requirements Specification Document. Project Title: Road Repair Tracking System

Chapter 7: Software Engineering

A Parametric Approach for Security Testing of Internet Applications

IBM QRadar Security Intelligence April 2013

RUP for Software Development Projects

Micro Focus 2012 Developer Conference April 17, Addressing today s challenges in application development

MASTER OF SOFTWARE ENGINEERING DEGREE TRACKS 1. WEB DEVELOPMENT/JAVA:

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Custom Software Development Approach

Course Registration Case Study

Oracle Technical Cloud Consulting Services Descriptions. July 23, 2015

Secure Software Programming and Vulnerability Analysis

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

HIT Workflow & Redesign Specialist: Curriculum Overview

SERVICE ORIENTED EVENT ASSESSMENT CLOSING THE GAP OF COMPLIANCE MANAGEMENT

Global Delivery Excellence Best Practices for Improving Software Process and Tools Adoption. Sunil Shah Technical Lead IBM Rational

Leveraging RUP, OpenUP, and the PMBOK. Arthur English, GreenLine Systems

PASTA Abstract. Process for Attack S imulation & Threat Assessment Abstract. VerSprite, LLC Copyright 2013

Validating Enterprise Systems: A Practical Guide

Strengthen security with intelligent identity and access management

Software Design Models, Tools & Processes *

Foundations of Model-Driven Software Engineering

IoT & SCADA Cyber Security Services

What is a life cycle model?

Controlling Risks Safety Lifecycle

enterprise IBM Rational Team Concert 2 Essentials

Netspective Software Development Process

Karunya University Dept. of Information Technology

Requirements Elaboration

Supporting Workflow Overview. CSC532 Fall06

Aspect-Oriented Programming

Phases, Activities, and Work Products. Object-Oriented Software Development. Project Management. Requirements Gathering

Developing the Corporate Security Architecture. Alex Woda July 22, 2009

Enterprise Service Specification

Session-1: Business Enterprise Applications- Overview

SpectorSoft 2014 Insider Threat Survey

Bridging the Gap Between Acceptance Criteria and Definition of Done

PHASE 5: DESIGN PHASE

Tutorial on Client-Server Architecture

Mitigating Service-Orientation Risks with RUP

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

New York University Computer Science Department Courant Institute of Mathematical Sciences

How To Improve A Test Process

Progress Report Aspect Oriented Programming meets Design Patterns. Academic Programme MSc in Advanced Computer Science. Guillermo Antonio Toro Bayona

! Resident of Kauai, Hawaii

ANALYSIS OF SOFTWARE THREATS AND SOFTWARE SECURITY. Department of Computer Science & IT University of Jammu, Jammu

Source Code Protection: Evaluating Source Code Security

Towards Security Risk-oriented Misuse Cases

Threat Modeling. 1. Some Common Definition (RFC 2828)

ITIL v3 Process Cheat Sheets

Monitoring Goals With Aspects

Cloud Database Storage Model by Using Key-as-a-Service (KaaS)

Software Development Methodologies

Beginning POJOs. From Novice to Professional. Brian Sam-Bodden

ALM2013VS_ACC: Application Lifecycle Management Using Visual Studio 2013

Improving software quality with an automated build process

Pragmatic Metrics for Building Security Dashboards

The introduction covers the recent changes is security threats and the effect those changes have on how we protect systems.

Introduction to SOA governance and service lifecycle management.

Aspect-oriented Refactoring of a J2EE Framework for Security and Validation Concerns

CONTROL SYSTEM VENDOR CYBER SECURITY TRENDS INTERIM REPORT

Software Development in the Large!

1 Descriptions of Function

Developing SOA solutions using IBM SOA Foundation

Transcription:

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 Security Dev Data Ops

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: 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 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 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 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; }

Modular Behavior Patterns

Construction Phase Concerned with building, integrating, and testing code Iterate Use unit tests like Junit (www.junit.org) and Nunit to validate your design assumptions

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: www.arctecgroup.net/articles.htm