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.

Slides:



Advertisements
Similar presentations
Higher Computing Computer Systems S. McCrossan Higher Grade Computing Studies 8. Supporting Software 1 Software Compatibility Whether you are doing a fresh.
Advertisements

 Application software consists of programs designed to make users more productive and/or assist with personal tasks.  Growth of internet simplified.
Dr. John P. Abraham Professor UTPA 2 – Systems Threats and Risks.
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,
Unit 18 Data Security 1.
Last time Program security Flaws, faults, and failures
ITMS Information Systems Security 1. Malicious Code Malicious code or rogue program is the general name for unanticipated or undesired effects in.
Chapter 14 Computer Security Threats
________________ CS3235, Nov 2002 Viruses Adapted from Pfleeger[Chap 5]. A virus is a program [fragment] that can pass on malicious code [usually itself]
Chapter 14 Computer Security Threats Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Security: Attacks. 2 Trojan Horse Malicious program disguised as an innocent one –Could modify/delete user’s file, send important info to cracker, etc.
1 Pertemuan 05 Malicious Software Matakuliah: H0242 / Keamanan Jaringan Tahun: 2006 Versi: 1.
Lecture 15 Overview. Kinds of Malicious Codes Virus: a program that attaches copies of itself into other programs. – Propagates and performs some unwanted.
Chap 3: Program Security.  Programming errors with security implications: buffer overflows, incomplete access control  Malicious code: viruses, worms,
Henric Johnson1 Chapter 10 Malicious Software Henric Johnson Blekinge Institute of Technology, Sweden
Chapter 3 – Program Security Section 3.4 Targeted Malicious Code Section 3.5 Controls Against Program Threats.
1 Chap 10 Malicious Software. 2 Viruses and ”Malicious Programs ” Computer “Viruses” and related programs have the ability to replicate themselves on.
Chapter 15: Security (Part 1). The Security Problem Security must consider external environment of the system, and protect the system resources Intruders.
Computer Viruses Preetha Annamalai Niranjan Potnis.
The Utility Programs: The system programs which perform the general system support and maintenance tasks are known as utility programs. Tasks performed.
CSCE 201 Attacks on Desktop Computers: Malicious Code Hardware attacks.
CMSC 414 Computer (and Network) Security Lecture 14 Jonathan Katz.
 a crime committed on a computer network, esp. the Internet.
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.
Chapter 5 P rogram Security. csci5233 computer security & integrity (Chap. 5) 2 Outline Viruses & worms Targeted Malicious Codes –Trapdoors, Salami attack,
1 Higher Computing Topic 8: Supporting Software Updated
1 Chap 10 Virus. 2 Viruses and ”Malicious Programs ” Computer “Viruses” and related programs have the ability to replicate themselves on an ever increasing.
CSCE 522 Lecture 12 Program Security Malicious Code.
CHAPTER 3 Program Security 1. Objectives 2  Defined the concept of secured program  differentiate malicious and non-malicious code  identify and describe.
Administrative: Objective: –Tutorial on Risks –Phoenix recovery Outline for today.
Malicious Code By Diana Peng. What is Malicious Code? Unanticipated or undesired effects in programs/program parts, caused by an agent with damaging intentions.
Chapter 10 Malicious software. Viruses and ” Malicious Programs Computer “ Viruses ” and related programs have the ability to replicate themselves on.
Logic Bomb Virus.  The first use of a time bomb in software may have been with the scribe markup language and word processing system, developed by Brian.
Operating system Security By Murtaza K. Madraswala.
For any query mail to or BITS Pilani Lecture # 1.
Computer Systems Security Part I ET4085 Keamanan Jaringan Telekomunikasi Tutun Juhana School of Electrical Engineering and Informatics Institut Teknologi.
CPSC 6126 Computer Security Information Assurance.
BY FIOLA CARVALHO TE COMP. CONTENTS  Malicious Software-Definition  Malicious Programs Backdoor Logic Bomb Trojan Horse Mobile Code Multiple-Threat.
Malicious Software.
n Just as a human virus is passed from person from person, a computer virus is passed from computer to computer. n A virus can be attached to any file.
Chapter 19 – Malicious Software What is the concept of defense: The parrying of a blow. What is its characteristic feature: Awaiting the blow. —On War,
Computer Security Threats CLICKTECHSOLUTION.COM. Computer Security Confidentiality –Data confidentiality –Privacy Integrity –Data integrity –System integrity.
Chapter 23: Vulnerability Analysis Dr. Wayne Summers Department of Computer Science Columbus State University
Lecture 17 Overview. Targeted Malicious Code Trapdoor – undocumented entry point to a module – forget to remove them – intentionally leave them in the.
W elcome to our Presentation. Presentation Topic Virus.
Types of Computer Malware. The first macro virus was written for Microsoft Word and was discovered in August Today, there are thousands of macro.
Writing Secure Programs. Program Security CSCE Farkas/Eastman - Fall Program Flaws Taxonomy of flaws: how (genesis) when (time) where (location)
COMPUTER VIRUSES ….! Presented by: BSCS-I Maheen Zofishan Saba Naz Numan Sheikh Javaria Munawar Aisha Fatima.
Computer Security Threats
Antivirus Software Technology By Mitchell Zell. Intro  Computers are vulnerable to attack  Most common type of attack is Malware  Short for malicious.
Cosc 4765 Antivirus Approaches. In a Perfect world The best solution to viruses and worms to prevent infected the system –Generally considered impossible.
Computer Viruses Author: Alyse Allen.
CHAPTER 3 PROGRAM SECURITY.
Buffer Overflows Incomplete Access Control
Chapter 7: Identifying Advanced Attacks
Viruses and Other Malicious Content
Operating system Security
CSE565: Computer Security Lecture 27 Program Security
Text Book: Security in Computing
Computer security Computer security means protecting our computer system and the information they contain againts unwanted access, damage,destruction or.
Chap 10 Malicious Software.
Program Security Jagdish S. Gangolly School of Business
UNIT 18 Data Security 1.
جلسه دوم مبانی امنیت (3) ارائه دهنده: حسین محمدحسن زاده 15 اسفند 1391
Chapter 23: Vulnerability Analysis
Chap 10 Malicious Software.
Presentation transcript:

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 a fault, or an incorrect step, command, process, or data definition in a computer program. For example, a designer may misunderstand a requirement and create a design that does not match the actual intent of the requirements analyst and the user. Failure: a departure from the system's required behavior. It can be discovered before or after system delivery, during testing, or during operation and maintenance. A Flaw can be either a fault or failure, and a Vulnerability usually describes a class of flaws, such as a buffer overflow.

Programming contd. Functional Requirements: The Functional Requirement document defines the capabilities and functions that a System must be able to perform successfully. Security Requirements: Types and levels of protection necessary for equipment, data, information, applications, and facilities. Unexpected Behaviour: The inadequacies of penetrate-and-patch led researchers to seek a better way to be confident that code meets its security requirements. One way to do that is to compare the requirements with the behavior.

Programming contd. Organised Design Top-down: is essentially the breaking down of a system to gain insight into its compositional sub-systems. Bottom-up: is the piecing together of systems to give rise to grander systems, thus making the original systems sub-systems of the emergent system. Waterfall Model

Programming contd. Organised Design CASE (Computer Aided Software Engineering) tool: it allows system developers to create prototype screens and report generators rapidly and easily. Language Choice Strongly Typed - each type of data is predefined as part of the programming language Example: Ruby, Python and so forth. “structured programming”, modularity, complexity Analyzable and Rigorous Semantics

Nonmalicious (unintentional) Programming Errors Buffer-overflows A buffer overflow is the computing equivalent of trying to pour two liters of water into a one-liter pitcher: Some water is going to spill out and make a mess. A buffer (or array or string) is a space in which data can be held. A buffer resides in memory. Because memory is finite, a buffer's capacity is finite.

Nonmalicious (unintentional) Programming Errors Incomplete mediation is another security problem that has been with us for decades. Attackers are exploiting it to cause security problems. &parm2=2009Jan17 Using verification techniques can reduce the problem. Time-of-Check to Time-of-Use Errors Check for access permission occurs before use; condition changes between check and use. The time-of-check to time-of-use (TOCTTOU) flaw can be in a scenario of Web application that allows a user to edit pages, and also allows administrators to lock pages to prevent editing.

Virus and Other Malicious Code Types (Note: terminology is nonstandard) Virus: A virus is a program that can replicate itself and pass on malicious code to other nonmalicious programs by modifying them. Eg. Transient and Resident Virus. Worms: A worm is a program that spreads copies of itself through a network. Difference between a worm and a virus is that a worm operates through networks, and a virus can spread through any medium. A Trojan horse is malicious code that, in addition to its primary effect, has a second, nonobvious malicious effect.

Virus and Other Malicious Code Types (Note: terminology is nonstandard) Trapdoor/backdoor: a program features that allows others to gain access other than obvious or direct means. Logic bomb: malicious code that is triggered or detonated or goes off when a specified condition is met. A time bob is a logic bomb that whose trigger is a time or data

Virus and Other Malicious Code Transmission links executable code in data files (macros, autorun code, helper applications) Gaining Control

Virus and Other Malicious Code Execution one-time on system startup or reboot on every activation of a program on an event Recognition signature, patterns polymorphic, viruses encrypted viruses

Targeted (intentional) Malicious Code Trapdoor: undocumented entry point to a program, for example, developers do this during testing. Salami attacks: “small thin slices” – typical example involve interest calculations. Small amounts of money (pennies) are accumulated elsewhere. Rootkits: It is a piece of malicious code that goes to great lengths not to be discovered or, if discovered and removed, to reestablish itself whenever possible. The name rootkit refers to the code's attempt to operate as root, the superprivileged user of a Unix system. Privilege escalation attack is a means for malicious code to be launched by a user with lower privileges but run with higher privileges.

Targeted (intentional) Malicious Code Interface Illusion – fake websites Keystroke loggers – retain copies of all keys presses. Man-In-The-Middle Attack – a program interjects itself between two the programs – e.g. user-input and application results. Covert channels – programs that leak information

Controls Depend in part on means of transmission of malicious code Some controls are not fool proof: - programming environment - testing (absence of flaws in testing does not imply absence of flaws in code) “vetting” or clearing programmers; using only programmers from a particular nation or having a particular certification - everyone makes human mistakes at some time - even well-vetted individuals can be malicious - programmers have method and opportunity; motive is hard to control completely

Controls Software development (programming environment and practices) controls testing (many types) program structure mutual suspicion genetic diversity Confined execution environment See many operating system confinement approaches in Chapter 3.

Thank You !