Security by Design Thomas Zalonis Seth Gainey Neil C. Lee Thomas Zalonis Seth Gainey Neil.

Slides:



Advertisements
Similar presentations
1 Introduction to Software Engineering Rajkumar Buyya Grid Computing and Distributed Systems Lab Dept. of Computer Science and Software Engineering University.
Advertisements

Autonomic Systems Justin Moles, Winter 2006 Enabling autonomic behavior in systems software with hot swapping Paper by: J. Appavoo, et al. Presentation.
Object-Oriented Software Development CS 3331 Fall 2009.
Unit 2. Software Lifecycle
The design process IACT 403 IACT 931 CSCI 324 Human Computer Interface Lecturer:Gene Awyzio Room:3.117 Phone:
Chapter 4 Quality Assurance in Context
ISNE101 Dr. Ken Cosh. Recap  We’ve been talking about Software…  Application vs System Software  Programming Languages  Vs Natural Languages  Syntax,
© Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Chapter 6 SYSTEMS DEVELOPMENT Phases, Tools, and Techniques
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Software Engineering for Safety : A Roadmap Presentation by: Manu D Vij CS 599 Software Engineering for Embedded Systems.
CS351 - Software Engineering (AY2005)1 What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects.
April 13, 2004CS WPI1 CS 562 Advanced SW Engineering General Dynamics, Needham Tuesdays, 3 – 7 pm Instructor: Diane Kramer.
Integrating ITIL with the Software Development Process Dhiraj Gupta IT Manager Mark Stehlik IT Director.
Data Structures and Programming.  John Edgar2.
Computer System Lifecycle Chapter 1. Introduction Computer System users, administrators, and designers are all interested in performance evaluation. Whether.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Software Testing. Introduction Testing is often left to the end of the project which is generally not a good idea. Testing should be conducted throughout.
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 9 Introduction to Design.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
An Introduction to Software Architecture
CSCE 548 Secure Software Development Test 1 Review.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Feasibility Study.
Modeling Dynamic Role- based Access Constraints using UML Khaled Alghathbar George Mason University, USA and King Saud University, Riyadh, Saudi Arabia.
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
Custom Reporting in Blackboard Learn. What happens between clicking run and getting the report? Connect to a data source Where is the information?
MCS 270 Spring 2014 Object-Oriented Software Development.
Software Engineering Management Lecture 1 The Software Process.
HCI in Software Process Material from Authors of Human Computer Interaction Alan Dix, et al.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Intent Specification Intent Specification is used in SpecTRM
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
1 SWE Introduction to Software Engineering Lecture 4.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
1 Introduction to Software Engineering Lecture 1.
Formal Methods in Software Engineering
Aspect-Oriented Requirements Engineering David Schaefer, Joao Araujo, Isabel Brito, Awais Rashid, Claudia Mesquita.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
Teaching Systems Analysis and Design in a Practical Way: A Collaborative Effort Between Computer Science and Business School by Ken Surendran-CS Chellappa.
Capturing and Reusing Functional and Non-functional Requirements Knowledge: A Goal-Object Pattern Approach Lawrence Chung and Sam Supakkul The University.
CSE 303 – Software Design and Architecture
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 6: Using Design Patterns.
Oktalia Juwita, S.Kom., M.MT. SYSTEMS DEVELOPMENT Dasar-dasar Sistem Informasi – IKU1102.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
CSCE 240 – Intro to Software Engineering Lecture 2.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
By Ramesh Mannava.  Overview  Introduction  10 secure software engineering topics  Agile development with security development activities  Conclusion.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Software Engineering Management
Constructing Deploying and Maintaining Enterprise Systems
Chapter 18 Maintaining Information Systems
Coordination Contracts, Evolution and Tools
Introduction To software engineering
Cybersecurity ATD Scenario conclusion
CS310 Software Engineering Lecturer Dr.Doaa Sami
Integration Testing.
Presentation transcript:

Security by Design Thomas Zalonis Seth Gainey Neil C. Lee Thomas Zalonis Seth Gainey Neil C. Lee

Introduction : 1) As more and more aspects of the world become interconnected the range of possible security issues increases. 2) Increases in security issues leads to extra software functionality required to defend against them, which means added complexity and cost. 3) Trade offs between client requested functionality and security issues are made in order to reduce costs. 4) Our goal is to show that, in the long run, an integration of security with all phases of the development process would be more beneficial than treating security as a separate issue. Introduction : 1) As more and more aspects of the world become interconnected the range of possible security issues increases. 2) Increases in security issues leads to extra software functionality required to defend against them, which means added complexity and cost. 3) Trade offs between client requested functionality and security issues are made in order to reduce costs. 4) Our goal is to show that, in the long run, an integration of security with all phases of the development process would be more beneficial than treating security as a separate issue.

Overview: 1) Background information: (e.g. What are security requirements? What is their current place in software development?) 2) A more specific explanation of our goal. 3) Present the justifications behind our argument by discussing the benefits of an integrated model. 4) Propose various ways that an integrated model may be achieved through the use of various tools, design strategies and improvements in education. 5) Conclusions and discussions. Overview: 1) Background information: (e.g. What are security requirements? What is their current place in software development?) 2) A more specific explanation of our goal. 3) Present the justifications behind our argument by discussing the benefits of an integrated model. 4) Propose various ways that an integrated model may be achieved through the use of various tools, design strategies and improvements in education. 5) Conclusions and discussions.

Background : 1) Security Requirements: “...non-functional constraints on the functional requirements of a system.” (Charles B. Haley et al.) 2) Current state of security requirements: An 'Ad hoc' process, where security issues are typically left out of the early development phases. (e.g. Requirements engineering, design and implementation) Background : 1) Security Requirements: “...non-functional constraints on the functional requirements of a system.” (Charles B. Haley et al.) 2) Current state of security requirements: An 'Ad hoc' process, where security issues are typically left out of the early development phases. (e.g. Requirements engineering, design and implementation)

Argument: 1) Security should play an equal role in the requirements engineering process. 2) The merger of security requirements into requirements engineering would then cause security issues to propagate throughout the later development phases. (i.e. Design and implementation) 3) Added cost and complexity issues would be reduced in the long run by accounting for security early on instead of trying to add it later when design and implementation has already finished. Argument: 1) Security should play an equal role in the requirements engineering process. 2) The merger of security requirements into requirements engineering would then cause security issues to propagate throughout the later development phases. (i.e. Design and implementation) 3) Added cost and complexity issues would be reduced in the long run by accounting for security early on instead of trying to add it later when design and implementation has already finished.

Justification: Increased reliance on technology It’s a jungle out there Consequences of poor security Justification: Increased reliance on technology It’s a jungle out there Consequences of poor security

Ethical Considerations: Privacy vs. Control The Anatomy of a Worm Case Study: Code Red Old Rules and New Technology Ethical Considerations: Privacy vs. Control The Anatomy of a Worm Case Study: Code Red Old Rules and New Technology

Mismanaging Risk The Myth of Absolute Security The Balance of Information Security Security and Finance — The Cost of Avoidance Security is not a feature Mismanaging Risk The Myth of Absolute Security The Balance of Information Security Security and Finance — The Cost of Avoidance Security is not a feature

Design Strategies and Techniques Model Driven Security (MDS) Aspect-Oriented Programming Software Architecture Model (SAM) Design Strategies and Techniques Model Driven Security (MDS) Aspect-Oriented Programming Software Architecture Model (SAM)

Tools Eclipse-based tools Jifclipse SSVChecker UML-based tools UML with Mandatory Access Control UMLsec extension WriteOn Tools Eclipse-based tools Jifclipse SSVChecker UML-based tools UML with Mandatory Access Control UMLsec extension WriteOn

Education Integrate system-level issues into all programming courses. Apply patterns at every stage of software development. Use Honeynets as a teaching and research tool. Education Integrate system-level issues into all programming courses. Apply patterns at every stage of software development. Use Honeynets as a teaching and research tool.

Conclusion Ignoring security concerns until the maintenance phase leads to greater risks and costly “fixes”. There are tools and resources available to facilitate secure software design. Security should be integrated into all phases of software development. Conclusion Ignoring security concerns until the maintenance phase leads to greater risks and costly “fixes”. There are tools and resources available to facilitate secure software design. Security should be integrated into all phases of software development.