CPSC 875 John D. McGregor C15 – Variation in architecture.

Slides:



Advertisements
Similar presentations
EECE 310: Software Engineering Modular Decomposition, Abstraction and Specifications.
Advertisements

UML – Class Diagrams.
CPSC 875 John D. McGregor C15 – Variation in architecture.
1 Programming for Engineers in Python Autumn Lecture 5: Object Oriented Programming.
What is an object? Your dog, your desk, your television set, your bicycle. Real-world objects share two characteristics: They all have state and behavior;
OOP in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Unified Modeling (Part I) Overview of UML & Modeling
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
Abstract Data Types and Encapsulation Concepts
CSC230 Software Design (Engineering)
Architecture and Software Product Lines A software architecture represents a significant investment of time and effort, usually by senior talent. So it.
1 Ivano Malavolta, University of L’aquila, Computer Science Department Ivano Malavolta DUALLy: an Eclipse platform for architectural languages interoperability.
Computer Systems & Architecture Lesson Software Product Lines.
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
The Design Discipline.
MT311 Java Application Development and Programming Languages Li Tak Sing( 李德成 )
CPSC 872 John D. McGregor Session 16 Design operators.
An Introduction to Software Architecture
The Software Product Line Architectures
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
CPSC 875 John D. McGregor C9 - Tactics. Everything is a plugin.
CPSC 875 John D. McGregor C9 - Tactics. Tactics A tactic is a transformation Given that the pre-condition of the tactic is true The tactic defines changes.
Documenting Software Architectures 1.Uses and Audiences for Architecture Documentation Architecture documentation serves as a means of education Architecture.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Measuring Relative Attack Surfaces Michael Howard, Jon Pincus & Jeannette Wing Presented by Bert Bruce.
Environment Change Information Request Change Definition has subtype of Business Case based upon ConceptPopulation Gives context for Statistical Program.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
CSSE501 Object-Oriented Development. Chapter 4: Classes and Methods  Chapters 4 and 5 present two sides of OOP: Chapter 4 discusses the static, compile.
Roles and Coordination in powerJava M. Baldoni, G. Boella Dipartimento di Informatica, Università degli Studi di Torino (Italy) and L. van der Torre SEN3.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
CPSC 875 John D. McGregor C9 - Tactics. Tactics A tactic is a transformation Given that the pre-condition of the tactic is true The tactic defines changes.
CpSc 875 John D. McGregor C11 - Documentation. 2 sources Clements et al. – book that describes an approach called Views and Beyond IEEE 1471 adopted standard.
CPSC 875 John D. McGregor C15 – Variation in architecture.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
VHDL Discussion Subprograms IAY 0600 Digital Systems Design Alexander Sudnitson Tallinn University of Technology 1.
1 Chapter 11 © 1998 by Addison Wesley Longman, Inc The Concept of Abstraction - The concept of abstraction is fundamental in programming - Nearly.
1 CS Programming Languages Class 22 November 14, 2000.
(1) ICS 313: Programming Language Theory Chapter 11: Abstract Data Types (Data Abstraction)
1 Copyright © 1998 by Addison Wesley Longman, Inc. Chapter 10 Abstraction - The concept of abstraction is fundamental in programming - Nearly all programming.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Basic Concepts and Definitions
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
CpSc 875 John D. McGregor C 12 – Security/ATAM. Attack surface of a product face_Analysis_Cheat_Sheet
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
CpSc 875 John D. McGregor C11 - Documentation. Stock trading system trading-system-architecture- post/#prettyPhoto[slides]/7/
CPSC 875 John D. McGregor C8 - Tactics. Everything is a plugin.
Chapter 7: Modifiability
Systems Analysis and Design With UML 2
11.1 The Concept of Abstraction
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING (OOP) & CONCEPTS
John D. McGregor C8 - Tactics
Portability CPSC 315 – Programming Studio
VHDL Discussion Subprograms
An Introduction to Software Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
VHDL Discussion Subprograms
John D. McGregor Module 6 Session 1 More Design
John D. McGregor C15 – Variation in architecture
John D. McGregor C 12 – Security/ATAM
11.1 The Concept of Abstraction
Chapter 11 Abstraction - The concept of abstraction is fundamental in
Presentation transcript:

CPSC 875 John D. McGregor C15 – Variation in architecture

Managers, you’ve got to love them

esrc=s&source=web&cd=5&ved=0CCsQFjAE& url=https%3A%2F%2Fitea3.org%2Fproject%2F workpackage%2Fdocument%2Fdownload%2F 1202%2F10039-SAFE-WP-3- SAFED331a.pdf&ei=4EL4VLLgFcecNuLkgdgK& usg=AFQjCNFzblXBlmaVXsbZqghq4OLsxTOnqA &bvm=bv ,d.eXY&cad=rja Read first 7 sections

Its not just structure Once the components and connectors are defined Populate with properties Include units where possible***** Include the properties that will support analyses

Defining New Properties Identify a construct of interest Find/develop a theory behind it Use a technique such as GQM to define specific metrics Map into architecture characteristics (losing some precision) Implement in AADL (or other ADL) Conduct sanity tests

Analyzing using Properties Write Resolute queries on the model The model checker traverses the model and evaluates predicates Result is true/false evaluation Computations done as side effects Can invoke Java or other programs

Attack surface of a product Manadhata, P. and Wing, J.: An Attack Surface Metric. IEEE Trans. Software Eng. 37, 371–386, archive.adm.cs.cmu.edu/anon/isr2011/CMU- ISR pdf face_Analysis_Cheat_Sheet face_Analysis_Cheat_Sheet

Attack Surface Metric Damage-Effort Ratio (DER) An attacker will choose the target that can cause the most damage for the least effort The access rights determine how hard it is to access the elements that will be compromised A B C D E F M2M2 M1M1

ChannelConnectors Connector Type ChannelT = { Property channelAccessRights : int; Property channelProtocol : int; } Larger protocol values indicate larger chunks of data that can be passed making it easier to move programs protocols access rights

Port Type EntryExitPointT = { Property entryExitPointPrivileges : int; Property entryExitPointAccessRights : int; } Level of privileges determines the damage that can be done Privileges Access rights

Component Type DataItemT = { Property dataItemType : int; Property dataItemAccessRights : int; } The less restrictive the data types are the easier it is for attackers to enter. Data types Access rights

Complete Attack Surface A transform is evaluated to determine its effect on the attack surface Would using a feature group reduce the port vulnerability? Would using a record to group data fields together make an attack easier/

Property set property set securityProperties is --access rights are scored based on the clearance required --no clearance required => secret clearance required => top secret clearance required => 5.0 Channel_Protocol : aadlreal applies to (connection); Channel_AccessRights: aadlreal applies to (connection); entryExitPointPrivileges: aadlreal applies to (port); entryExitPointAccessRights:aadlreal applies to (port); dataItemType:aadlreal applies to (data); dataItemAccessRights:aadlreal applies to (data);

--From SEI Tech Report CMU/SEI-2015-TR properties to support documenting and analyzing security -- Added property that supports access mode of data AccessProtection: list of record ( AccessMode: enumeration(r, w, rw, x); AccessGroup: enumeration (CC, ABS); ) applies to (all); end securityProperties;

Results of Claim functions

Ports features sensed_speed:in data port data_types::speed{securityProperties::entryExitPointPrivi leges=>5.0;securityProperties::entryExitPointAccessRights =>3.0;}; sensed_speed_limit:in data port data_types::speed{securityProperties::entryExitPointPrivi leges=>5.0;securityProperties::entryExitPointAccessRights =>3.0;};

DER C Security_Features(self : component) <= **"Calculating total attack surface " ** let featureSet : {feature} = features(self); let sumSurfaceC:real = sum({surfaceAreaC(t) for (t:featureSet)}); let sumAccessC:real = sum({surfaceAccessC(w) for (w:featureSet)}); Req5(sumSurfaceC/sumAccessC) Req5(total:real)<= **"DERC is " total**true surfaceAreaC(self:feature):real= property(self,securityProperties::entryExitPointPrivileges,0.0) surfaceAccessC(self:feature):real= property(self,securityProperties::entryExitPointAccessRights,0. 0)

Channel connections bus_radar: bus access this_bus radar_sensor.BA{securityProperties::Channel_Protocol=>9. 0;securityProperties::Channel_AccessRights=>9.0;}; bus_camera: bus access this_bus camera_sensor.BA{securityProperties::Channel_Protocol=>9.0;securityProperties::Channel_AccessRights=>9.0;};

DER M Security_Connections(self : component) <= **"Calculating total attack surface " ** let connectionSet : {connection} = connections(self); let sumSurfaceM:real = sum({surfaceAreaM(u) for (u:connectionSet)}); let sumAccessM:real = sum({surfaceAccessM(v) for (v:connectionSet)}); Req6(sumSurfaceM/sumAccessM) Req6(total:real)<= **"DERM is " total**true surfaceAreaM(self:connection):real= property(self,securityProperties::Channel_Protocol,0.0) surfaceAccessM(self:connection):real= property(self,securityProperties::Channel_AccessRights,0.0)

Data item:data simple{securityProperties::dataItemType=>7.0; securityProperties::dataItemAccessRights=>5.0;};

DER I Security_Data(self : component) <= **"Calculating total attack surface " ** let dataSet : {component} = subcomponents(self); let sumSurfaceI:real = sum({surfaceAreaI(u) for (u:dataSet)}); let sumAccessI:real = sum({surfaceAccessI(v) for (v:dataSet)}); Req7(sumSurfaceI/(sumAccessI)) Req7(total:real)<=**"DERI is " total**true surfaceAreaI(self:data):real= property(self,securityProperties::dataItemType,0.0) surfaceAccessI(self:data):real= property(self,securityProperties::dataItemAccessRights,0.0)

Sanitize Data at Entry/Exit Points this transformation requires the architect to insert a component between an entry/exit point and the environment Ports that previously served as entry/exit points should be moved to the sanitizer have their privileges reduced by an order of magnitude to reflect the sanitizing function

Favor Restricted Channels Limiting the type of data transmitted over a channel can reduce the attack surface of the system by lessening the advantage gained by exploiting that channel The protocol value should be lowered to reflect the more restrictive nature of the new protocol

Move Data Items to the Interior Moving data items to the interior of a system shifts untrusted data items away from the system’s perimeter Data items that cannot be moved to the interior of the system should be evaluated to determine if they are necessary and be eliminated if they are not

Attack surface properties in AADL property set securityProperties is Channel_Protocol : aadlinteger applies to (connection); Channel_AccessRights: aadlinteger applies to (connection); entryExitPointPrivileges: aadlinteger applies to (port); entryExitPointAccessRights:aadlinteger applies to (port); dataItemType:aadlinteger applies to (data); dataItemAccessRights:aadlinteger applies to (data); end securityProperties;

Goal The goal of variability in a software product line is to maximize return on investment (ROI) for building and maintaining products over a specified period of time or number of products.

Different kinds of product variation Differentiation Evolution There is also data variation

Management of variation

Software Product Line Multiple products, each a bit different from the others The differences are encapsulated in variation points A variation point is not a single location in the code Corresponds to a subset of the requirements

Variation mechanisms An instance of the architecture resolves certain variations Mechanisms – One system definition extends another – A system definition is included or excluded – Subprograms have parameters

Binding time The reason that some variation is not resolved is because the binding time for the variation is after architecture instantiation time The binding time is partially determined by the architect To do this – Who will do the binding? – When do they touch the system? – For example, a marketing person decides a feature is included – can only happen at requirements time

Eliminating variability Some apparent variability can be reduced to commonality – A standard interface can be placed between the commonality and the apparent variability with the result that we don’t care what is on the other side of the interface. The BlueTooth interface for example.

USB state machine from standard spec We do worry about conformance of the architecture to abstract specifications such as standards.

Vehicle variations Powertrain – Transmissions – Engines Infotainment – Radios – Information package – GPS/navigation – Entertainment package

But what about variations in quality attribute levels? One product needs to be airworthy certified but others do not One needs real-time performance another does not One must be secure another one does not

Define scope of pattern and attachments A pattern may have disconnected parts So a variation point may not be all in one physical location in the architecture description For example, an Eclipse plug-in has menu items, editors, perspectives, etc.

What to do? Would you – Make everything meet the toughest standard? – Re-implement all the assets? Tactic: reduce and isolate – encapsulate the section that differs among products; refactor when possible to reduce the area; hide behind interfaces

Use cross cutting techniques Aspects as we have already discussed cut across the system decomposition Other language idioms such as “mix-ins” also cross cut Look for a technique where fragments are maintained separately

Multi-threaded design/programming nking-multi-threaded-design-priniciples nking-multi-threaded-design-priniciples nking-multi-threaded-design-principles-part-2 nking-multi-threaded-design-principles-part-2