SCSC 555 Computer Security Chapter 10 Malicious software Part B.

Slides:



Advertisements
Similar presentations
Buffer Overflows Nick Feamster CS 6262 Spring 2009 (credit to Vitaly S. from UT for slides)
Advertisements

Communications of the ACM (CACM), Vol. 32, No. 6, June 1989
Lecture: Malicious Code CIS 3360 Ratan K. Guha. Malicious Code2 Overview and Reading Assignments Defining malicious logic Types Action by Viruses Reading.
Dr. John P. Abraham Professor UTPA 2 – Systems Threats and Risks.
Lecturer: Fadwa Tlaelan
CHAPTER 2 KNOW YOUR VILLAINS. Who writes it: Malware writers vary in age, income level, location, social/peer interaction, education level, likes, dislikes.
Lecture 14 Malicious Software (cont) modified from slides of Lawrie Brown.
1 Topic 1 – Lesson 3 Network Attacks Summary. 2 Questions ► Compare passive attacks and active attacks ► How do packet sniffers work? How to mitigate?
Stack-Based Buffer Overflows Attacker – Can take over a system remotely across a network. local malicious users – To elevate their privileges and gain.
1 Protection Protection = access control Goals of protection Protecting general objects Example: file protection in Linux.
CMSC 414 Computer and Network Security Lecture 23 Jonathan Katz.
Introduction to Security Computer Networks Computer Networks Term B10.
Chapter 14 Computer Security Threats Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
1 Pertemuan 05 Malicious Software Matakuliah: H0242 / Keamanan Jaringan Tahun: 2006 Versi: 1.
Network & Computer Attacks (Part 2) February 11, 2010 MIS 4600 – MBA © Abdou Illia.
Malicious Attacks. Introduction Commonly referred to as: malicious software/ “malware”, computer viruses Designed to enter computers without the owner’s.
CMSC 414 Computer and Network Security Lecture 20 Jonathan Katz.
Hands-On Ethical Hacking and Network Defense Chapter 3 Network and Computer Attacks.
Chapter Nine Maintaining a Computer Part III: Malware.
University of Washington CSE 351 : The Hardware/Software Interface Section 5 Structs as parameters, buffer overflows, and lab 3.
R. FRANK NIMS MIDDLE SCHOOL A BRIEF INTRODUCTION TO VIRUSES.
Henric Johnson1 Chapter 10 Malicious Software Henric Johnson Blekinge Institute of Technology, Sweden
1 Chap 10 Malicious Software. 2 Viruses and ”Malicious Programs ” Computer “Viruses” and related programs have the ability to replicate themselves on.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Basic Security Networking for Home and Small Businesses – Chapter 8.
Chapter 15: Security (Part 1). The Security Problem Security must consider external environment of the system, and protect the system resources Intruders.
Malicious Code Brian E. Brzezicki. Malicious Code (from Chapter 13 and 11)
Security Exploiting Overflows. Introduction r See the following link for more info: operating-systems-and-applications-in-
Malware  Viruses  Virus  Worms  Trojan Horses  Spyware –Keystroke Loggers  Adware.
Chapter 3 Network and Computer Attacks. Objectives After reading this chapter and completing the exercises, you will be able to: Describe the different.
G53SEC 1 Software Security Overflows, overruns and (some) confusions.
Computer Security and Penetration Testing
More Network Security Threats Worm = a stand-alone program that can replicate itself and spread Worms can also contain manipulation routines to perform.
ITIS 1210 Introduction to Web-Based Information Systems Chapter 45 How Hackers can Cripple the Internet and Attack Your PC How Hackers can Cripple the.
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.
Buffer Overflows Lesson 14. Example of poor programming/errors Buffer Overflows result of poor programming practice use of functions such as gets and.
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.
Virus Detection Mechanisms Final Year Project by Chaitanya kumar CH K.S. Karthik.
Chapter 10 Malicious software. Viruses and ” Malicious Programs Computer “ Viruses ” and related programs have the ability to replicate themselves on.
Trojan Horses on the Web. Definition: A Trojan horse a piece of software that allows the user think that it does a certain task, while actually does an.
Denial of Service (DoS) DoS attacks are aggressive attacks on an individual computer or groups of computers with the intent to deny services to intended.
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.
Distributed Denial of Service Attacks Shankar Saxena Veer Vivek Kaushik.
What is risk online operation:  massive movement of operation to the internet has attracted hackers who try to interrupt such operation daily.  To unauthorized.
Lecture 9: Buffer Ovefflows and ROP EEN 312: Processors: Hardware, Software, and Interfacing Department of Electrical and Computer Engineering Spring 2014,
BY FIOLA CARVALHO TE COMP. CONTENTS  Malicious Software-Definition  Malicious Programs Backdoor Logic Bomb Trojan Horse Mobile Code Multiple-Threat.
Malicious Software.
IT Computer Security JEOPARDY RouterModesWANEncapsulationWANServicesRouterBasicsRouterCommands RouterModesWANEncapsulationWANServicesRouterBasicsRouterCommands.
Computer Security Threats CLICKTECHSOLUTION.COM. Computer Security Confidentiality –Data confidentiality –Privacy Integrity –Data integrity –System integrity.
14.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Protection.
Understand Malware LESSON Security Fundamentals.
Information Security - 2. A Stack Frame. Pushed to stack on function CALL The return address is copied to the CPU Instruction Pointer when the function.
Lecture 5 Rootkits Hoglund/Butler (Chapters 1-3).
Candidates should be able to:  describe the purpose and use of common utility programs for:  computer security (antivirus, spyware protection and firewalls)
VM: Chapter 7 Buffer Overflows. csci5233 computer security & integrity (VM: Ch. 7) 2 Outline Impact of buffer overflows What is a buffer overflow? Types.
Page 1 Viruses. Page 2 What Is a Virus A virus is basically a computer program that has been written to perform a specific set of tasks. Unfortunately,
Week-14 (Lecture-1) Malicious software and antivirus: 1. Malware A user can be tricked or forced into downloading malware comes in many forms, Ex. viruses,
@Yuan Xue Worm Attack Yuan Xue Fall 2012.
Created by the E-PoliceSlide 122 February, 2012 Dangers of s By Michael Kuc.
Botnets A collection of compromised machines
Protecting Memory What is there to protect in memory?
Instructor Materials Chapter 7 Network Security
Protecting Memory What is there to protect in memory?
Protecting Memory What is there to protect in memory?
Botnets A collection of compromised machines
CS 465 Buffer Overflow Slides by Kent Seamons and Tim van der Horst
Chap 10 Malicious Software.
CS703 - Advanced Operating Systems
Chap 10 Malicious Software.
Buffer Overflow and Stack Smashing
Presentation transcript:

SCSC 555 Computer Security Chapter 10 Malicious software Part B

Index Social Engineering Malware Payload Countermeasures of malware DDoS Buffer overflow

Social Engineering Tricking user to assist in the comprise of their own systems or personal information  Spam Most spam is sent by botnets using compromised user systems Advertising, scams, carrier of malware (attachment), or phishing attack  Trojan horse program A useful, or apparently useful program or utility containing hidden code that performs some unwanted or harmful funciton

Social Engineering Trojan horse program  E.g. claim to be antivirus scanner, security update actual carrying payload such as spyware  Three models of Trojan horses Continuing to perform the function of the original program and additionally performing a separate malicious activity … but modifying the function to perform malicious activity Performing a malicious function that completely replaces the function of the original program

Malware Payload System corruption  Data destruction  Ransomware, e.g. Gpcode Trojan  Real-world damage: cause damage to physical equipment  Logic bomb: is set to “explode” when certain conditions are met

Malware Payload Attack agent  Bot: malware subverts the computational and network resources of infected system for use by the attacker  The uses of bots: DDoS attack, Spamming …  Botnet: the collection of bots often is capable of acting in a coordinated manner.

Malware Payload Information theft  Keyloggers and Spyware What is a keylogger? (next slide)  Countermeasure to keylogger Spyware  Phishing and Identity theft URL of fake Web site controlled by the attacker Spear-phishing: an claiming to be from a trusted sources, the recipients are carefully researched by the attacker  greatly increases the likehood of the recipient responding as desired by the attacker

Malware Payload Backdoor and Rootkit  Backdoor (trapdoor) is a secret entry point into a program without going through the usual security access procedures  Rootkit is a set of programs installed on a system to maintain covert access to that system with root privileges, while hiding evidence of its presence Make many changes to a system to hide its existence Difficult to detect

Keyloggers Keyloggers are used to capture keystrokes on a computer  Hardware  Software Software  Behaves like Trojan programs Hardware  Easy to install  Goes between the keyboard and the CPU  KeyKatcher and KeyGhost

Countermeasures of malware Ensure all systems are current  All patches applied Set appropriate access controls on the applications and data  to reduce the number of files that any user can access Training the users to against social engineering attack

Countermeasures of malware Technical mechanism to mitigate threat  Detection  Identification  Removal Requirements for effective malware countermeasures  Generality, Timeliness, Resiliency, minimal DOS costs, transparency, global and local coverage

Countermeasures of malware Four generations of antivirus software  1 st generation  2 nd generation  3 rd generation  4 th generation More sophisticated antivirus approaches  Host-based behavior-blocking  Perimeter scanning approaches (Reading page 323 – 327)

Distributed Denial-of-Service (DDoS) Attacks DDoS attack on a host from multiple servers or workstations Network could be flooded with billions of requests  Loss of bandwidth  Degradation or loss of speed Often participants (zombies) are not aware they are part of the attack  Thousands zombies are controlled by the attacker via Trojan programs

DDoS Tools and Countermeasures DDoS countermeasures: Security patches from software vendors Antivirus software Firewalls: Ingress (inbound) and egress (outbound) filtering (details next …)

Buffer Overflow Attacks A vulnerability in poorly written code  does not check predefined size of input field Goal of buffer overflow attack:  Fill overflow buffer with executable code  OS executes this code, elevates attacker’s permission Administrator Owner of running application To stop software exploits  Train your programmer in developing applications with security in mind  Stay appraised of latest security patches provided by software vendors

Buffer Overflow Exploits Buffer Overflow Exploits is the Most common cause of Internet attacks Over 50% of advisories published by CERT (computer security incident report team) are caused by various buffer overflows Morris worm (1988): overflow in fingerd Infected 10% of the existing Internet CodeRed (2001): overflow in MS-IIS server 300,000 machines infected in 14 hours SQL Slammer (2003): overflow in MS-SQL server 75,000 machines infected in 10 minutes

Buffer is a data storage area inside computer memory (stack or heap)  Intended to hold pre-defined amount of data If more data is stuffed into it, it spills into adjacent memory  If executable code is supplied as “data”, victim’s machine may be fooled into executing it Code will self-propagate or give attacker control over machine Attack can exploit any memory operation  Pointer assignment, format strings, memory allocation and de-allocation, function pointers, calls to library routines via offset tables Memory Buffers

Stack Buffers Suppose Web server contains this function void func(char *str) { char buf[126]; strcpy(buf,str); } When this function is invoked, a new frame with local variables is pushed onto the stack Allocate local buffer (126 bytes reserved on stack) Copy argument into local buffer Top of stack Stack grows this way bufsfp ret addr str Local variables Pointer to previous frame Frame of the calling function Execute code at this address after func() finishes Arguments

What If Buffer is Overstuffed? Memory pointed to by str is copied onto stack… void func(char *str) { char buf[126]; strcpy(buf,str); } If a string longer than 126 bytes is copied into buffer, it will overwrite adjacent stack locations strcpy does NOT check whether the string at *str contains fewer than 126 characters Top of stack buf str Frame of the calling function This will be interpreted as return address! overflow

Executing Attack Code Suppose buffer contains attacker supplied string  For example, *str contains a string received from the network as input to some network service daemon When function exits, code in the buffer will be executed, giving attacker a shell  The attacker gets a root shell if the victim program is SUID root Top of stack code str Frame of the calling function ret Attacker puts actual instructions into his input string, e.g., binary code of execve(“/bin/sh”) In the overflow, a pointer back into the buffer appears in the location where the system expects to find return address

Executable attack code is stored on stack, inside the buffer containing attacker’s string  Stack memory is supposed to contain only data, but… Overflow portion of the buffer must contain correct address of attack code in the RET position  The value in the RET position must point to the beginning of attack code in the buffer Otherwise application will crash with segmentation violation  Attacker must know or correctly guess in which stack position his buffer will be when the function is called Some Issues on Buffer Overflow

The Cause : No Range Checking strcpy does not check input size  strcpy(buf, str) simply copies memory contents into buf starting from *str until “\0” is encountered  Ignoring the size of area allocated to buf Many C library functions are unsafe  strcpy(char *dest, const char *src)  strcat(char *dest, const char *src)  gets(char *s)  scanf(const char *format, …)  printf(const char *format, …)

Examples of Common Buffer Overflow Attacks