CPSC 6126 Computer Security Information Assurance.

Slides:



Advertisements
Similar presentations
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
Advertisements

K. Salah1 Buffer Overflow The crown jewel of attacks.
CPSC 6126 Computer Security Information Assurance.
Chapter 3 (Part 1) Network Security
A Taxonomy of Computer Program Security Flaws C. E. Landwehr, A. R. Bull, J. P. McDermott and W.S. Choi -- Presented by: Feng Hui Luo ACM Computing Surveys,
CS 5950/6030 Network Security Class 13 (F, 9/30/05) Leszek Lilien Department of Computer Science Western Michigan University Based on Security in Computing.
Week 5 - Wednesday.  What did we talk about last time?  Attacks on hash functions.
Stack-Based Buffer Overflows Attacker – Can take over a system remotely across a network. local malicious users – To elevate their privileges and gain.
Silberschatz, Galvin and Gagne  Operating System Concepts The Security Problem A system is secure iff its resources are used and accessed as.
1 Vulnerability Analysis CSSE 490 Computer Security Mark Ardis, Rose-Hulman Institute April 26, 2004.
________________ CS3235, Nov 2002 Viruses Adapted from Pfleeger[Chap 5]. A virus is a program [fragment] that can pass on malicious code [usually itself]
CMSC 414 Computer and Network Security Lecture 24 Jonathan Katz.
Software and Security Buffer Overflow 1.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 30 Slide 1 Security Engineering.
Information Networking Security and Assurance Lab National Chung Cheng University 1 Top Vulnerabilities in Web Applications (I) Unvalidated Input:  Information.
Building Secure Software Chapter 9 Race Conditions.
Chap 3: Program Security.  Programming errors with security implications: buffer overflows, incomplete access control  Malicious code: viruses, worms,
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 30 Slide 1 Security Engineering.
Chapter 13 & 14 Software Testing Strategies and Techniques
2-1 Last time What is our goal in this course? What is security? What is privacy? Who are the adversaries? Assets, vulnerabilities, threats, attacks and.
Lecture 12 Overview.
Fall 2008CS 334: Computer SecuritySlide #1 Program Security Buffer Overflows Incomplete Access Control.
Lecture 0 Appendix on Implementation Threats Material from Warren Page & Chpt 11, Information Security by Mark Stamp.
Computer Security and Penetration Testing
Understand stack Buffer overflow attack and defense Controls against program threats.
CSCE 522 Lecture 12 Program Security Malicious Code.
Operating system Security By Murtaza K. Madraswala.
Program Security Week-2. Programming Fault: When a human makes a mistake, called an error, in performing some software activity, the error may lead to.
Lecture 14 Program Security CS 450/650 Fundamentals of Integrated Computer Security Slides are modified from Wayne Summers and Ian Goldberg.
Buffer Overflow Defenses. ©2002, Jedidiah R. Crandall, Susan L. Gerhart, Jan G. Hogle. Buffer Overflow Defenses Author:
APPLICATION PENETRATION TESTING Author: Herbert H. Thompson Presentation by: Nancy Cohen.
CSCE 548 Secure Software Development Taxonomy of Coding Errors.
Security Attacks CS 795. Buffer Overflow Problem Buffer overflows can be triggered by inputs that are designed to execute code, or alter the way the program.
CIS 450 – Network Security Chapter 14 – Specific Exploits for UNIX.
Chapter-4 Software Security Why Software?  Why is software as important to security as crypto, access control and protocols?  Virtually all of information.
CSCE 548 Integer Overflows Format String Problem.
A Tool for Pro-active Defense Against the Buffer Overrun Attack D. Bruschi, E. Rosti, R. Banfi Presented By: Warshavsky Alex.
Vulnerability Analysis
Chapter 23: Vulnerability Analysis Dr. Wayne Summers Department of Computer Science Columbus State University
Group 9. Exploiting Software The exploitation of software is one of the main ways that a users computer can be broken into. It involves exploiting the.
Slides by Kent Seamons and Tim van der Horst Last Updated: Nov 11, 2011.
Writing Secure Programs. Program Security CSCE Farkas/Eastman - Fall Program Flaws Taxonomy of flaws: how (genesis) when (time) where (location)
VM: Chapter 7 Buffer Overflows. csci5233 computer security & integrity (VM: Ch. 7) 2 Outline Impact of buffer overflows What is a buffer overflow? Types.
CIW Lesson 8 Part B. Malicious Software application that installs hidden services on systems term for software whose specific intent is to harm computer.
Chapter 29: Program Security Dr. Wayne Summers Department of Computer Science Columbus State University
Vulnerability Analysis Dr. X. Computer system Design Implementation Maintenance Operation.
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 _____________,
CHAPTER 3 PROGRAM SECURITY.
Vulnerability Analysis
Buffer Overflow Defenses
Buffer Overflows Incomplete Access Control
Security of Digital Signatures
CMSC 345 Defensive Programming Practices from Software Engineering 6th Edition by Ian Sommerville.
Chapter 7: Identifying Advanced Attacks
Security Testing Methods
Chap 20. Vulnerability Analysis
Software Security Testing
Operating system Security
A Security Review Process for Existing Software Applications
Security Engineering.
CSE565: Computer Security Lecture 27 Program Security
Text Book: Security in Computing
CS 465 Buffer Overflow Slides by Kent Seamons and Tim van der Horst
Program Security Jagdish S. Gangolly School of Business
جلسه دوم مبانی امنیت (3) ارائه دهنده: حسین محمدحسن زاده 15 اسفند 1391
Chapter 23: Vulnerability Analysis
VA/PT.
Security.
Intrusion Detection system
Chapter 29: Program Security
Presentation transcript:

CPSC 6126 Computer Security Information Assurance

Chapter 3 – Program Security  Programming errors with security implications-buffer overflows, incomplete access control  Malicious code-viruses, worms, Trojan horses  Program development controls against malicious code and vulnerabilities- software engineering principles and practices  Controls to protect against program flaws in execution-operating system support and administrative controls

Program Security  How do we keep programs free from flaws?  How do we protect computing resources against programs that contain flaws?  Presented with a finished product, for example, a commercial software package, how can you tell how secure it is or how to use it in its most secure way?

SECURE PROGRAMS  Security implies some degree of trust that the program enforces expected confidentiality, integrity, and availability.  How can we look at software component and assess its security?

Fixing Faults  Software that has many faults early on is likely to have many others still waiting to be found.  Early computer security work used “penetrate and patch” method where analysts searched for and repaired faults (tiger team)  Often patch efforts made system less secure:

Fixing Faults  Pressure to repair encourages a narrow focus on the fault and not its context.  Fixing the fault often introduces side effects.  Fault not fixed properly cause it will cause performance problems.

Unexpected Behavior  Compare program requirements with behavior to identify program security flaws  Flaw is either a fault or failure  Vulnerability is a class of flaws (e.g. buffer overflows)  Need to determine how to prevent harm caused by possible flaws  Program security flaws can derive from any kind of software fault. Inadvertent human flawsInadvertent human flaws Malicious, intentionally induced flawsMalicious, intentionally induced flaws

Unexpected Behavior  Hindrances for eliminating program security flaws How do we test for what a program shouldn’t do?How do we test for what a program shouldn’t do? Programming and software engineering techniques evolve more rapidly than computer security techniquesProgramming and software engineering techniques evolve more rapidly than computer security techniques

Types of Flaws  Intentional MaliciousMalicious NonmaliciousNonmalicious  Inadvertent Validation error (incomplete / inconsistent)Validation error (incomplete / inconsistent) Domain errorDomain error Serialization and aliasingSerialization and aliasing Inadequate identification and authenticationInadequate identification and authentication Boundary condition violationBoundary condition violation Other exploitable logic errorsOther exploitable logic errors

Nonmalicious Program Errors  Buffer Overflows  char sample[10];  for (i=1; i<=10; i++) sample[i] = ‘A’;  Last ‘A’ goes into user data, user code, system data, or system code  If data is overwritten, can affect results  If system is overwritten, unpredictable results

Nonmalicious Program Errors  Buffer Overflows Security Implication Attacker replaces code in the system space and takes control back from the operating systemAttacker replaces code in the system space and takes control back from the operating system Attacker uses the stack pointer or return register to execute other codeAttacker uses the stack pointer or return register to execute other code How to write buffer overflowsHow to write buffer overflowsHow to write buffer overflowsHow to write buffer overflows Smashing the Stack for Fun and ProfitSmashing the Stack for Fun and ProfitSmashing the Stack for Fun and ProfitSmashing the Stack for Fun and Profit

Nonmalicious Program Errors  Buffer Overflows Security Implication Parameter passing to web serverParameter passing to web server (808) &parm2=2004Jan01http:// (808) &parm2=2004Jan01 What if one of the parameters is made longer?What if one of the parameters is made longer?  Microsoft's Phone Dialer contains a buffer overrun that allows execution of arbitary code Microsoft's Phone Dialer contains a buffer overrun that allows execution of arbitary code Microsoft's Phone Dialer contains a buffer overrun that allows execution of arbitary code

Nonmalicious Program Errors  Incomplete Mediation (data checking) (808) &parm2=2004Jan01http:// (808) &parm2=2004Jan01  What if parm2 is 1800Jan01 or 2004Feb30…  Use dropdown lists to force the input, test ranges  Even then, the user could send incorrect data to the server  Security Implication Easy to exploit – Things, Inc. exampleEasy to exploit – Things, Inc. example

Nonmalicious Program Errors  Time-of-Check to Time-of-Use Errors Mediation is performed with a “bait and switch” in the middle (synchronization flaw)Mediation is performed with a “bait and switch” in the middle (synchronization flaw)  Security Implication to avoid checking one action and performing another – use digital signatures and certificates to avoid checking one action and performing another – use digital signatures and certificates