Chapter 3 – Program Security Section 3.4 Targeted Malicious Code Section 3.5 Controls Against Program Threats.

Slides:



Advertisements
Similar presentations
Making the System Operational
Advertisements

Configuration management
Configuration management
Design Validation CSCI 5801: Software Engineering.
Test process essentials Riitta Viitamäki,
Distributed Systems Major Design Issues Presented by: Christopher Hector CS8320 – Advanced Operating Systems Spring 2007 – Section 2.6 Presentation Dr.
Secure Code Development What are the risks of delivering insecure applications or software products? How can a company ensure they produce secure code?
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
ITMS Information Systems Security 1. Malicious Code Malicious code or rogue program is the general name for unanticipated or undesired effects in.
Security Issues and Challenges in Cloud Computing
1: Operating Systems Overview
Lesson 13-Intrusion Detection. Overview Define the types of Intrusion Detection Systems (IDS). Set up an IDS. Manage an IDS. Understand intrusion prevention.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –
CS 5950/6030 Network Security Class 16 (F, 10/7/05) Leszek Lilien Department of Computer Science Western Michigan University Based on Security in Computing.
Lecture 15 Overview. Kinds of Malicious Codes Virus: a program that attaches copies of itself into other programs. – Propagates and performs some unwanted.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Outline Types of errors Component Testing Testing Strategy
1 Chap 10 Malicious Software. 2 Viruses and ”Malicious Programs ” Computer “Viruses” and related programs have the ability to replicate themselves on.
Chapter 5CSA 217 Design in Construction Chapter 5 1.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Information Systems Security Computer System Life Cycle Security.
Week 7 - Monday.  What did we talk about last time?  Malicious code case studies  Exam 1 post mortem.
Chapter 13 Processing Controls. Operating System Integrity Operating system -- the set of programs implemented in software/hardware that permits sharing.
Software Testing.
G53SEC 1 Reference Monitors Enforcement of Access Control.
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
Rootkits. EC-Council The Problem  Microsoft Corp. security researchers are warning about a new generation of powerful system-monitoring programs, or.
Computer Security and Penetration Testing
Lecture 14 Overview. Program Flaws Taxonomy of flaws: – how (genesis) – when (time) – where (location) the flaw was introduced into the system 2 CS 450/650.
Lecture 16 Overview.
INSTALLATION HANDS-ON. Page 2 About the Hands-On This hands-on section is structured in a way, that it allows you to work independently, but still giving.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Chapter 13 Users, Groups Profiles and Policies. Learning Objectives Understand Windows XP Professional user accounts Understand the different types of.
Windows Vista Inside Out Chapter 22 - Monitoring System Activities with Event Viewer Last modified am.
CHAPTER 3 Program Security 1. Objectives 2  Defined the concept of secured program  differentiate malicious and non-malicious code  identify and describe.
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.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Week 10-11c Attacks and Malware III. Remote Control Facility distinguishes a bot from a worm distinguishes a bot from a worm worm propagates itself and.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
G53SEC 1 Reference Monitors Enforcement of Access Control.
Operating Systems Lecture November 2015© Copyright Virtual University of Pakistan 2 Agenda for Today Review of previous lecture Hardware (I/O, memory,
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
The Software Development Process
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.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
Introduction to Software Design by A.Surasit Samaisut Copyrights : All Rights Reserved.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
(1) Test Driven Development Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
Computer Security Threats CLICKTECHSOLUTION.COM. Computer Security Confidentiality –Data confidentiality –Privacy Integrity –Data integrity –System integrity.
CS451 Software Implementation and Integration Yugi Lee STB #555 (816) Note: This lecture was designed.
Lecture 17 Overview. Targeted Malicious Code Trapdoor – undocumented entry point to a module – forget to remove them – intentionally leave them in the.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Lecture 5 Rootkits Hoglund/Butler (Chapters 1-3).
Writing Secure Programs. Program Security CSCE Farkas/Eastman - Fall Program Flaws Taxonomy of flaws: how (genesis) when (time) where (location)
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Chapter 29: Program Security Dr. Wayne Summers Department of Computer Science Columbus State University
Coupling and Cohesion Schach, S, R. Object-Oriented and Classical Software Engineering. McGraw-Hill, 2002.
Coupling and Cohesion Pfleeger, S., Software Engineering Theory and Practice. Prentice Hall, 2001.
Introduction to Operating Systems Concepts
CHAPTER 3 PROGRAM SECURITY.
Verification and Testing
Chap 10 Malicious Software.
جلسه دوم مبانی امنیت (3) ارائه دهنده: حسین محمدحسن زاده 15 اسفند 1391
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Operating Systems Lecture 3.
Chapter 29: Program Security
Chap 10 Malicious Software.
Presentation transcript:

Chapter 3 – Program Security Section 3.4 Targeted Malicious Code Section 3.5 Controls Against Program Threats

In this Section Program Threats Trapdoors Salami Attack Privilege Escalation Man-in-the-Middle Covert Channels Controls Against Program Threats Modularity Mutual Suspicion Hazard Analysis

Targeted Malicious Code So far looked at code written to affect users and machines indiscriminately Targeted Malicious Code – written for a particular system or application with a particular purpose Similar to viruses but with the addition of new techniques

Trapdoor Trapdoor – an undocumented entry point to a module. Inserted for code development “Hooks” to add additional future enhancements Can be legitimate or non-legitmate Software Testing Unit Testing Integration Testing Stubs and Drivers – routines that inject information during testing Control Stubs – used to invoke debugging code Accidently left in place Poor Error Checking

Trapdoors Poorly defined Data Incomplete Mediation Undefined Opcodes – instructions that have not been defined for the processor Trapdoors can be useful Software audits may request trapdoors to be inserted Trap doors should always be documented.

Causes of Trapdoors Forgot to remove Intentionally for Testing Intentionally left for maintenance Intentionally left for covert means of access Trapdoors are not bad. They are not faults until the trapdoor is not shut. A system is not secure if a trapdoor is present but unknown by others

Salami Attack Named after the way scrap meat is used to form salami Salami Attack – merges seemingly inconsequential bits of data to yield something important Classic Salami Attacks Missing ½ cent Missing percentage Taking a bit from a bunch Charging higher fees Why do they happen? Sometimes programmers just except small errors Code many times it to large to look for salami type errors

Rootkits Rootkit – is a piece of malicious code that goes to great lengths not to be discovered If discovered tries to reestablish itself Tries to run itself as “root” on the system (UNIX administrator) Resides between user and OS Intercepts commands in order to keep itself hidden Rootkit Revealer – program written to reveal rootkits XCP rootkit – used to help prevent copying of music

Others Privilege Escalation-Attack is a means for malicious code to be launched by a user with lower privileges but run with higher privileges Interface Illusions - spoofing an attack in which all or part of a web page is false Keystroke Logging – keeps a copy of everything pressed Man-in-the-Middle Attack- Malicious program exists between tow programs Timing Attack – identify how fast something happens

Covert Channels Communication information to people/systems that should not have it Unnoticed communication and accompanies other information Data written to a drive, sent across a network, placed in a file or printout Storage Channel – passes information based on presence or non-presence of data File lock Channel – lock or non-lock of file Timing Channels – varying speed in system or not using assigned computational time

Controls Against Program Threats Development of Controls Specify the system Design the system Implement the system Test the system Review the system at various stages Document the system Manage the system Maintain the systems Typically it is not one person that does all of these

Designing Secure and Usable Systems You can’t retrofit usable security Tools aren’t a solution Min the upper layers Keep the customers satisfied Think Locally; act locally

Modularity Small self-contained units Modularity Isolates Hides Keep it isolated from the effects of other components Encapsulation – is isolation Information Hiding – each component hides its precise implementation of some other design decision from others.

Modularization Process of dividing into subtasks Goal of Modular Units Single-purpose Small Simple Independent Advantages of Modularity Maintenance Understandability Reuse Correctness Testing

Modularity High Cohesion All the elements of a component have a logical and functional reason for being there Low Coupling The degree with which a component depends on other components in the system Encapsulation – does not mean complete isolation Information Hiding – a “black box” approach

Mutual Suspicion Programs are not always trustworthy Mutual suspicion – each program operates as if other routines in the system were malicious or incorrect Confinement – program is strictly prohibited in what system resources can be accessed

Peer Reviews Peer review Hazard analysis Testing Good design Predictions Static analysis Configuration management Analysis of mistakes

Types of Peer Review Review- presented formally Walk-Through – creator leads and controls the discussion Inspection – formal detailed analysis Finding a fault and dealing with it: By learning how, when, and why errors occur By taking action to prevent mistakes By scrutinizing products to find the instances and effects of errors that were missed.

Hazard Analysis/Testing Hazard Analysis – set of systematic techniques to expose potentially hazardous system states. Hazards and Operability Studies Failure Modes and effects analysis Fault tree analysis Testing Unit Testing Integration Testing Function Testing Performance Testing Acceptance Testing Installation Testing Regression Testing Black-box Testing Clear-box Testing Independent Testing Penetration Testing

Good Design Using a philosophy of fault tolerance Having a consistent policy for handling failures Capturing the design rationale and history Using design patterns Passive fault detection – waiting for a system to fail Active fault detection – construct a system that reacts to a failure

Good Design Handling Problems Retrying – restoring the system to previous state and try again Correcting – resorting the system to previous state and correcting some system characteristic before trying again Reporting – restoring and reporting but not trying again

Configuration Management Who is making the changes Corrective change Adaptive change Perfective change Preventive change Configuration Management – is the process by which we control changes during development and maintenance Configuration identification Configuration control and change management Configuration auditing Status accounting