Software Security Q: What does it mean to say that a program is secure? A: There is a sufficient amount of trust that the program maintains _____________,

Slides:



Advertisements
Similar presentations
Middleware technology and software quality issues Andrew McNab Grid Security Research Fellow University of Manchester.
Advertisements

Vulnerability Analysis. Formal verification Formally (mathematically) prove certain characteristics Proves the absence of flaws in a program or design.
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
Is There a Security Problem in Computing? Network Security / G. Steffen1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development.
VM: Chapter 5 Guiding Principles for Software Security.
Secure Design Principles  secure the weakest link  reduce the attack surface  practice defense in depth  minimize privilege  compartmentalize  fail.
Trusted Hardware: Can it be Trustworthy? Design Automation Conference 5 June 2007 Karl Levitt National Science Foundation Cynthia E. Irvine Naval Postgraduate.
INDEX  Ethical Hacking Terminology.  What is Ethical hacking?  Who are Ethical hacker?  How many types of hackers?  White Hats (Ethical hackers)
1 Steve Chenoweth Friday, 10/21/11 Week 7, Day 4 Right – Good or bad policy? – Asking the user what to do next! From malware.net/how-to-remove-protection-system-
1 Vulnerability Analysis CSSE 490 Computer Security Mark Ardis, Rose-Hulman Institute April 26, 2004.
Software Security Threats Threats have been an issue since computers began to be used widely by the general public.
CMSC 414 Computer and Network Security Lecture 24 Jonathan Katz.
Information Networking Security and Assurance Lab National Chung Cheng University 1 Top Vulnerabilities in Web Applications (I) Unvalidated Input:  Information.
1 Building with Assurance CSSE 490 Computer Security Mark Ardis, Rose-Hulman Institute May 10, 2004.
Achieving Trusted Systems by Providing Security and Reliability Ravishankar K. Iyer, Zbigniew Kalbarczyk, Jun Xu, Shuo Chen, Nithin Nakka and Karthik Pattabiraman.
Security Engineering II. Problem Sources 1.Requirements definitions, omissions, and mistakes 2.System design flaws 3.Hardware implementation flaws, such.
Computer Security and Penetration Testing
Assessing the Threat How much money is lost due to cyber crimes? –Estimates range from $100 million to $100s billions –Why the discrepancy? Companies don’t.
1 Security and Software Engineering Steven M. Bellovin AT&T Labs – Research
Software Security Course Course Outline Course Overview Introduction to Software Security Common Attacks and Vulnerabilities Overview of Security.
Introduction to Network Defense
Software Dependability CIS 376 Bruce R. Maxim UM-Dearborn.
CSCE 548 Secure Software Development Risk-Based Security Testing.
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
Business Computing 550 Lesson 6. 2 Security Threats on Web Sites Issues and vulnerabilities 1.Illegal Access and Use (Hacking the system or users exposing.
Adam L. Jacobs, CISSP Principal Program Manager, Oracle 15/16 November 2005 Why is Commercial Software So Vulnerable (and How Can We Fix It)?
CSCE 548 Code Review. CSCE Farkas2 Reading This lecture: – McGraw: Chapter 4 – Recommended: Best Practices for Peer Code Review,
Buffer Overflows Lesson 14. Example of poor programming/errors Buffer Overflows result of poor programming practice use of functions such as gets and.
OSI and TCP/IP Models And Some Vulnerabilities AfNOG th May 2011 – 10 th June 2011 Tanzania By Marcus K. G. Adomey.
Attacking Applications: SQL Injection & Buffer Overflows.
Engineering Secure Software. A Ubiquitous Concern  You can make a security mistake at every step of the development lifecycle  Requirements that allow.
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.
Chapter 1 Overview The NIST Computer Security Handbook defines the term Computer Security as:
CSCE 522 Secure Software Development Best Practices.
APPLICATION PENETRATION TESTING Author: Herbert H. Thompson Presentation by: Nancy Cohen.
12 Steps to Cloud Security A guide to securing your Cloud Deployment Vishnu Vettrivel Principal Engineering Lead,
CIS 450 – Network Security Chapter 14 – Specific Exploits for UNIX.
Lecture slides prepared for “Computer Security: Principles and Practice”, 3/e, by William Stallings and Lawrie Brown, Chapter 1 “Overview”. © 2016 Pearson.
CPSC 6126 Computer Security Information Assurance.
Lecture 13 Page 1 CS 236 Online Principles for Secure Software Following these doesn’t guarantee security But they touch on the most commonly seen security.
Csci5233 Computer Security & Integrity 1 Overview of Security & Java (based on GS: Ch. 1)
Database Security Cmpe 226 Fall 2015 By Akanksha Jain Jerry Mengyuan Zheng.
Security Architecture of qmail and Postfix Authors: Munawar Hafiz Ralph E. Johnson Prepared by Geoffrey Foote CSC 593 Secure Software Engineering Seminar.
14.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Protection.
Chapter 23: Vulnerability Analysis Dr. Wayne Summers Department of Computer Science Columbus State University
Slides by Kent Seamons and Tim van der Horst Last Updated: Nov 11, 2011.
CPT 123 Internet Skills Class Notes Internet Security Session B.
Writing Secure Programs. Program Security CSCE Farkas/Eastman - Fall Program Flaws Taxonomy of flaws: how (genesis) when (time) where (location)
Engineering Secure Software. A Ubiquitous Concern  You can make a security mistake at every step of the development lifecycle  Requirements that allow.
@Yuan Xue Worm Attack Yuan Xue Fall 2012.
Vulnerability / Cybersecurity Research Discussion Dwayne Melancon, CISA Chief Technology Officer and VP of Research & Development.
Lecture 14 Page 1 CS 236 Online Secure Programming CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
This section on vulnerability assessments includes the following topics:  Documentation review  Review of system logs, audit trails, and intrusion detection.
Buffer Overflows Incomplete Access Control
SE-1021 Software Engineering II
CMSC 345 Defensive Programming Practices from Software Engineering 6th Edition by Ian Sommerville.
CSCE 548 Secure Software Development Risk-Based Security Testing
Design for Security Pepper.
Software Security Testing
Chapter3 Security Strategies.
CS 465 Buffer Overflow Slides by Kent Seamons and Tim van der Horst
جلسه دوم مبانی امنیت (3) ارائه دهنده: حسین محمدحسن زاده 15 اسفند 1391
Software Security Lesson Introduction
Chapter 23: Vulnerability Analysis
AppExchange Security Certification
Intrusion Detection system
Presentation transcript:

Software Security Q: What does it mean to say that a program is secure? A: There is a sufficient amount of trust that the program maintains _____________, ____________ and _____________ A: There is a sufficient amount of trust that the program maintains _____________, ____________ and _____________ examples of software insecurity? Important Software Qualities (Software Engineering, Pfleeger) “Coding errors in commercial software account for 80% of systems penetration. This is clearly a national security issue.” 1 1 Air Force CIO John Gilligan, Information Week, March, 2002

Common Misconceptions  often the holes punched in firewalls are oversized Firewalls are sufficient  plenty of counter-evidence  what does “D” stand for? IDS will solve the problem  high false positive rates  some experts predict obsolence for IDS  this only protects the channel Just use SSL  what about replay attacks, public key cracks, etc.  typical flaws per 1000 LOC -- C: 3 Java: 1 New Programming languages are secure  many problems lie outside the control of a language

Penetrate and Patch  This approach corrects security flaws as they are discovered. Problems  Today’s state of the art  Tiger teams & penetration testing - Are the test cases sufficient? - Does a patch inject other defects? There is no technique that eliminates all security flaws. (1)functional requirements = security requirements = (2) Security depends upon dynamic external hardware/software. (3) Security exploits are a developing body of knowledge.

Typical Software Vulnerabilities Buffer Overflow - occurs whenever a data container overflows - most common source of security flaws char myArray[10]; for (i=0; i<=10; i++) myArray[i] = ‘Z’; char myArray[10]; for (i=0; i<=10; i++) myArray[i] = ‘Z’; Example Where does the overflow go?

Typical Software Vulnerabilities Incomplete Mediation - data not properly guarded against incorrect assignment - preconditions need to be enforced Example &sku=1001&qty=10&shipcost=5&total= exposure: user input, input file, packet, RPC parameters

Typical Software Vulnerabilities Race Conditions - multitasking can result in one process undesirably disturbing another - exposure: shared memory space shared file space shared network access

Design for Security  Secure the weakest link  Secure the weakest link  Practice defensive programming  Practice defensive programming  Fail securely  Fail securely  Follow the Principle of least privilege  Follow the Principle of least privilege  Modularize, encapsulate  Modularize, encapsulate  Make it simple  Make it simple  Remember privacy  Remember privacy  Attend to security at every step in the life cycle  Attend to security at every step in the life cycle

Implement for Security  Use languages with extensive error detection  Use runtime mechanisms that provide a “secure sandbox”  Don’t depend upon preconditions  Limit access to encapsulated data  Avoid language constructs with file vulnerabilities (package scope, inner classes, serializable, cloneable)  Avoid language constructs with file vulnerabilities (package scope, inner classes, serializable, cloneable)  Avoid signing your code  Don’t embed private information in code.