A Systems Perspective on Building Security Into Applications Dr. William J. Hery Polytechnic University

Slides:



Advertisements
Similar presentations
Configuration Management
Advertisements

Chapter 4 Quality Assurance in Context
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development.
CS 325: Software Engineering April 7, 2015 Software Configuration Management Task Scheduling & Prioritization Reporting Project Progress Configuration.
Lindy Hughes Fleet Fire Protection Program Engineer Southern Nuclear Operating Company June 4, 2013 Fire Protection.
Stepan Potiyenko ISS Sr.SW Developer.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 30 Slide 1 Security Engineering.
Unit Five – Transforming Organizations
Term Project Pick a system (discuss choice with me)  Want simple functionality, security issues, whole system (e. g., client and server side) Submit a.
Security Engineering II. Problem Sources 1.Requirements definitions, omissions, and mistakes 2.System design flaws 3.Hardware implementation flaws, such.
Fundamentals of Information Systems, Second Edition
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
Risk Management Vs Risk avoidance William Gillette.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 30 Slide 1 Security Engineering.
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
©Ian Sommerville 2006Critical Systems Slide 1 Critical Systems Engineering l Processes and techniques for developing critical systems.
Quality Management ISO 9001 For TM. What is Quality Quality is the degree to which product or service possesses a desired combination of attributes C:
CSCI 5801: Software Engineering
SEC835 Database and Web application security Information Security Architecture.
Storage Security and Management: Security Framework
Software Quality Chapter Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.
File: 1 The OECD Halden Reactor Project The OECD Halden Reactor Project (HRP) is an International Research Project between 19 countries in Europe, America.
CSCE 548 Secure Software Development Risk-Based Security Testing.
Network Security Policy Anna Nash MBA 737. Agenda Overview Goals Components Success Factors Common Barriers Importance Questions.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Chapter 2 The process Process, Methods, and Tools
Thirteenth Lecture Hour 8:30 – 9:20 am, Sunday, September 16 Software Management Disciplines Process Automation (from Part III, Chapter 12 of Royce’ book)
Instructor: Peter Clarke
Computer & Network Security
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
Security - Why Bother? Your projects in this class are not likely to be used for some critical infrastructure or real-world sensitive data. Why should.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
What security is about in general? Security is about protection of assets –D. Gollmann, Computer Security, Wiley Prevention –take measures that prevent.
Formal Methods in Software Engineering
Chapter 2 Securing Network Server and User Workstations.
Slides copyright 2010 by Paladin Group, LLC used with permission by UMBC Training Centers, LLC.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Chapter 8 Lecture 1 Software Testing. Program testing Testing is intended to show that a program does what it is intended to do and to discover program.
INTRUSION DETECTION SYSYTEM. CONTENT Basically this presentation contains, What is TripWire? How does TripWire work? Where is TripWire used? Tripwire.
Software Engineering for Capstone Courses Richard Anderson CSE 481b Winter 2007.
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Lecture Videos will no longer be posted. Assignment 3 is due Sunday, the 8 th, 7pm. Today: –System Design,
Smart Home Technologies
CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD.
Slide 1 Security Engineering. Slide 2 Objectives l To introduce issues that must be considered in the specification and design of secure software l To.
 Introduction  Tripwire For Servers  Tripwire Manager  Tripwire For Network Devices  Working Of Tripwire  Advantages  Conclusion.
By Ramesh Mannava.  Overview  Introduction  10 secure software engineering topics  Agile development with security development activities  Conclusion.
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.
The NIST Special Publications for Security Management By: Waylon Coulter.
Chapter 29: Program Security Dr. Wayne Summers Department of Computer Science Columbus State University
Slide #18-1 Introduction to Assurance CS461/ECE422 Fall 2008 Based on slides provided by Matt Bishop for use with Computer Security: Art and Science.
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.
Advanced Software Engineering Dr. Cheng
SE-1021 Software Engineering II
Configuration Management
CMSC 345 Defensive Programming Practices from Software Engineering 6th Edition by Ian Sommerville.
CSCE 548 Secure Software Development Risk-Based Security Testing
Critical Security Controls
Types for Programs and Proofs
Configuration Management
The Software Development Cycle
CS 325: Software Engineering
Security Engineering.
Software Quality Engineering
Workshop.
Chapter 29: Program Security
PLANNING A SECURE BASELINE INSTALLATION
The Software Development Cycle
Presentation transcript:

A Systems Perspective on Building Security Into Applications Dr. William J. Hery Polytechnic University

When Do You Build In Security? In developing the application requirements In the processes used for application design/development In the application design and code In application life cycle management

Understand and Prioritize the Requirements Confidentiality Integrity  Unauthorized changes, creation, deletion of information  Detecting loss of integrity  Preventing loss of integrity Availability Understanding of the detailed “requirements” and their relative importance is at the heart of building a good system and making tradeoffs: you cannot build perfect security into a usable system Discussion topics  Where do the requirements come from? (risk analysis, policy, legal…)  How does this fit in with rapid prototyping, agile programming, extreme programming etc.?

Use a Design/Development Process That Builds in Security Secure code has two aspects:  Implementing security specific functions ( crypto, access control, etc.) properly (doing the right things)  Having robust code that does not allow bugs anywhere to open up security holes (doing things right) Issues for development of robust code are essentially the same as those used for developing reliable, fault tolerant, and safety critical code: minimize bugs that impact critical elements and provide fail safe protections for failures in both the application and the “hardened environment” For robust code, look at processes used in flight control systems, nuclear reactor control software, and the POTS telephone system  When was the last time you picked up a land line phone and didn’t get a dial tone?  Controlling switched circuits is a multi-million line of code, highly distributed application on heterogeneous platforms. These processes may be overkill for your environment, but there are lessons to be learned and used as a basis for a documented process appropriate for your environment

Use a Design/Development Process That Builds in Security II Typical elements of robust development processes  Up front systems engineering and requirements analysis  Regular, rigorous design and code reviews by people not on the development team  Design and coding standards, best practices, etc. that are enforced at the reviews (e. g., bounds checking on all inputs, fail safe conditions in critical code segments, domain specific standards)  Source code control including integrity checking  Rigorous, repeatable testing procedures  Metrics  … Discussion Topics  You may be able to write bug free code, but can everyone else on your development team?  Management support for a process that will take more time and cost more money without adding functionality is critical  How does this fit in with rapid prototyping, agile programming, extreme programming etc.?

Current Research in Secure Programming at Polytechnic Use static analysis techniques to detect security problems on the application level  Detect problems in code  Detect problems in configuration of distributed components  Detect mismatches between code and configuration files  Track the flow of information through the program to identify potential information leaks Developing a comprehensive tool for examining Enterprise Java code and configuration files from the standpoint of security Prof. Gleb Naumovich,

ADV: Application Security Course at Polytechnic Emphasis on avoiding security bugs in  Code  Configuration of distributed components Hands-on experience in  Configuration and deployment of distributed applications  Avoidance of exploits of bugs and usability features  Application of security mechanisms and cryptography in practice A multi-phase group project  Start with a J2EE program with numerous security holes (provided by instructor)  Re-design and re-implement to remove security holes  Attempt to exploit bugs in other groups’ solutions Focus on Enterprise Java, but techniques are applicable in other environments. Prof. Gleb Naumovich,