The Internet Worm Crisis and Aftermath Miyu Nakagawa Cameron Smithers Ying Han.

Slides:



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

C risis And A ftermath Eugene H. Spafford 발표자 : 손유민.
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.
CSE331: Introduction to Networks and Security Lecture 32 Fall 2002.
Week 6 - Friday.  What did we talk about last time?  Viruses and other malicious code.
Computer Viruses and Worms* *Referred to slides by Dragan Lojpur, Zhu Fang at Florida State University.
CPT 123 Internet Skills Class Notes Internet Services Session A.
1 Computer Security Instructor: Dr. Bo Sun. 2 Course Objectives Understand basic issues, concepts, principles, and mechanisms in computer network security.
October 15, 2002Serguei A. Mokhov, 1 UNIX Security 2: A Quick Recap SOEN321 - Information Systems Security Revision 1.3 Date: September.
Web Defacement Anh Nguyen May 6 th, Organization Introduction How Hackers Deface Web Pages Solutions to Web Defacement Conclusions 2.
19.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java Chapter 19: Security The Security Problem Authentication Program Threats.
Security Presented by : Qing Ma. Introduction Security overview security threats password security, encryption and network security as specific.
Tirgul 8 Universal Hashing Remarks on Programming Exercise 1 Solution to question 2 in theoretical homework 2.
SSH : The Secure Shell By Rachana Maheswari CS265 Spring 2003.
The Internet. Telnet Telnet means using your computer as a terminal. All commands you type are sent to the host computer you are connected to and executed.
© Lethbridge/Laganière 2001 Chap. 3: Basing Development on Reusable Technology 1 Let’s get started. Let’s start by selecting an architecture from among.
Information Networking Security and Assurance Lab National Chung Cheng University 1 A Real World Attack: wu-ftp.
Tcl Agent : A flexible and secure mobile-agent system Paper by Robert S. Gray Dartmouth College Presented by Vipul Sawhney University of Pennsylvania.
Computer Security and Penetration Testing
C. Edward Chow Presented by Mousa Alhazzazi C. Edward Chow Presented by Mousa Alhazzazi Design Principles for Secure.
Chapter 15: Security (Part 1). The Security Problem Security must consider external environment of the system, and protect the system resources Intruders.
Viruses.
Intro to Computer Networks Bob Bradley The University of Tennessee at Martin.
Lecturer: Ghadah Aldehim
Web Application Access to Databases. Logistics Test 2: May 1 st (24 hours) Extra office hours: Friday 2:30 – 4:00 pm Tuesday May 5 th – you can review.
PVM. PVM - What Is It? F Stands for: Parallel Virtual Machine F A software tool used to create and execute concurrent or parallel applications. F Operates.
CMSC 414 Computer (and Network) Security Lecture 14 Jonathan Katz.
More Network Security Threats Worm = a stand-alone program that can replicate itself and spread Worms can also contain manipulation routines to perform.
Terminology Worm –A computer program that duplicates itself over computer networks. Virus –A computer program that inspects it’s environment and copies.
| nectar.org.au NECTAR TRAINING Module 5 The Research Cloud Lifecycle.
Saeed Darvish Pazoki – MCSE, CCNA Abstracted From: Cisco Press – ICND 1 – Chapter 9 Ethernet Switch Configuration 1.
Administrative: Objective: –Tutorial on Risks –Phoenix recovery Outline for today.
Bugs SATAN scans for It is interesting to look at the bugs SATAN scans for. They are easily detected by the scanners and therefore do not pose a threat.
ITIS 1210 Introduction to Web-Based Information Systems Chapter 47 How Viruses Work.
Types of Electronic Infection
Security at NCAR David Mitchell February 20th, 2007.
Understanding Computer Viruses: What They Can Do, Why People Write Them and How to Defend Against Them Computer Hardware and Software Maintenance.
Security CS Introduction to Operating Systems.
1 UNIT 13 The World Wide Web Lecturer: Kholood Baselm.
©Ian Sommerville 2004Software Engineering Case Studies Slide 1 The Internet Worm Compromising the availability and reliability of systems through security.
Topic 5: Basic Security.
Crisis And Aftermath Eugene H. Spafford 이희범.  Introduction  How the worm operated  Aftermath Contents.
4061 Session 26 (4/19). Today Network security Sockets: building a server.
Viruses a piece of self-replicating code attached to some other code – cf biological virus both propagates itself & carries a payload – carries code to.
Chapter 9 Intruders.
Database Security Cmpe 226 Fall 2015 By Akanksha Jain Jerry Mengyuan Zheng.
A Failure to Learn from the Past Presented by Chad Frommeyer CSC 493/593 Professors Charles E. Frank/James Walden.
1 Day 2 Logging in, Passwords, Man, talk, write. 2 Logging in Unix is a multi user system –Many people can be using it at the same time. –Connections.
SCSC 455 Computer Security Chapter 3 User Security.
The Internet Worm Incident Eugene H. Spafford  Attack Format –Worm vs. Virus  Attack Specifications –Worm operation –Infection and propagaion  Topics.
Lab 9 Department of Computer Science and Information Engineering National Taiwan University Lab9 - Debugging I 2014/11/4/ 28 1.
1 Computer Security Instructor: Dr. Bo Sun. 2 Course Objectives Understand basic issues, concepts, principles, and mechanisms in computer network security.
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,
INTERNET APPLICATIONS CPIT405 Install a web server and analyze packets.
1 UNIT 13 The World Wide Web. Introduction 2 Agenda The World Wide Web Search Engines Video Streaming 3.
1 UNIT 13 The World Wide Web. Introduction 2 The World Wide Web: ▫ Commonly referred to as WWW or the Web. ▫ Is a service on the Internet. It consists.
CACI Proprietary Information | Date 1 PD² v4.2 Increment 2 SR13 and FPDS Engine v3.5 Database Upgrade Name: Semarria Rosemond Title: Systems Analyst, Lead.
1 Example security systems n Kerberos n Secure shell.
@Yuan Xue Worm Attack Yuan Xue Fall 2012.
Chapter 7: Using Network Clients The Complete Guide To Linux System Administration.
Lecture 19 Page 1 CS 236 Online 6. Application Software Security Why it’s important: –Security flaws in applications are increasingly the attacker’s entry.
Chapter 40 Internet Security.
The Internet Worm Compromising the availability and reliability of systems through security failure.
Chapter 2: System Structures
Internet Worms, SYN DOS attack
Lecture 3: Secure Network Architecture
Crisis and Aftermath Eugene H. Spafford
Crisis and Aftermath Morris worm.
6. Application Software Security
Presentation transcript:

The Internet Worm Crisis and Aftermath Miyu Nakagawa Cameron Smithers Ying Han

Introduction On November 2, 1988, the Internet came under attack from within. On November 2, 1988, the Internet came under attack from within. Sometime after 5 p.m., a worm program was executed on one or more hosts connected to the Internet. Sometime after 5 p.m., a worm program was executed on one or more hosts connected to the Internet. This program collected host, network, and user information, then used bugs present in those systems’ software. This program collected host, network, and user information, then used bugs present in those systems’ software. After breaking in, the program would replicate itself and the replica would attempt to infect other systems in the same manner. After breaking in, the program would replicate itself and the replica would attempt to infect other systems in the same manner.

Introduction On November 3, 1988, personnel at the University of California at Berkeley and Massachusetts Institute of Technology (MIT) had “captured” copies of the program and began to analyze it. On November 3, 1988, personnel at the University of California at Berkeley and Massachusetts Institute of Technology (MIT) had “captured” copies of the program and began to analyze it. By 5 a.m., less than 12 hours after the program was first discovered on the network, the Computer Systems Research Group at Berkeley had developed a set of steps to temporary halt its spread. By 5 a.m., less than 12 hours after the program was first discovered on the network, the Computer Systems Research Group at Berkeley had developed a set of steps to temporary halt its spread.

Introduction The suggestions were published in mailing lists and on the Usenet. The suggestions were published in mailing lists and on the Usenet. By about 9 p.m., another simple effective method of stopping the invading program, without terminating system utilities, was discovered at Purdue and also widely published. By about 9 p.m., another simple effective method of stopping the invading program, without terminating system utilities, was discovered at Purdue and also widely published. Software patches were posted by the Berkeley Group at the same time to mend all the flaws that enabled the program to invade systems. Software patches were posted by the Berkeley Group at the same time to mend all the flaws that enabled the program to invade systems.

How the Worm Operated The worm took advantage of: The worm took advantage of: flaws in standard software installed on many UNIX systems.flaws in standard software installed on many UNIX systems. a mechanism used to simplify the sharing of resources in LAN.a mechanism used to simplify the sharing of resources in LAN.

How the Worm Operated There are three main attacks of the worm: There are three main attacks of the worm: Finger program Finger program Sendmail program Sendmail program Password mechanism Password mechanism

Finger Program The finger program is a utility that allows user to obtain information about other users. The finger program is a utility that allows user to obtain information about other users. The finger program is intended to run as a daemon or background process. The finger program is intended to run as a daemon or background process. This daemon program accepts connections from remote programs, reads a single line of input, and send back output. This daemon program accepts connections from remote programs, reads a single line of input, and send back output.

Finger Program The worm broke fingerd program by overrunning the buffer the daemon used for input. The worm broke fingerd program by overrunning the buffer the daemon used for input. The standard C language I/O library has a few routines that read input without checking for bounds on the buffer involved, such as gets() call.The standard C language I/O library has a few routines that read input without checking for bounds on the buffer involved, such as gets() call. The worm exploited this gets() call. The worm exploited this gets() call. The input overran the buffer allocated for it and rewrote the stack frame which altered the behavior of the program. The input overran the buffer allocated for it and rewrote the stack frame which altered the behavior of the program.

Sendmail Program The sendmail program is a mailer designed to route mail in a heterogeneous network. The sendmail program is a mailer designed to route mail in a heterogeneous network. The sendmail daemon listens on a TCP port, sending and receiving electronic mail to and from other servers. The sendmail daemon listens on a TCP port, sending and receiving electronic mail to and from other servers. When such an attempt occurs, the daemon enters into a dialog with the remote mailer to determine sender, receiver, delivery instructions, and message contents. When such an attempt occurs, the daemon enters into a dialog with the remote mailer to determine sender, receiver, delivery instructions, and message contents.

Sendmail Program The worm broke the sendmail program by using the debugging option in the code. The worm broke the sendmail program by using the debugging option in the code. First, it would issue the DEBUG command to sendmail and then specify a set of commands instead of a user address. First, it would issue the DEBUG command to sendmail and then specify a set of commands instead of a user address. This is only allowed in debugging option. This is only allowed in debugging option. Using this option, testers can run programs to display the state of the mail system without sending mail or establishing a separate login connection. Using this option, testers can run programs to display the state of the mail system without sending mail or establishing a separate login connection.

Passwords The password mechanism was the key attack of the worm. The password mechanism was the key attack of the worm. The worm was able to determine passwords because the encrypted password of each user was in a publicly readable file. The worm was able to determine passwords because the encrypted password of each user was in a publicly readable file.

Passwords Password mechanism in UNIX systems Password mechanism in UNIX systems Password Encryption Standard algorithm result Previously encrypted password compare encrypted  When a match occurs, access is allowed.

Passwords The worm took advantage of the accessibility of the password file and the fact that users tend to choose common words as their password. The worm took advantage of the accessibility of the password file and the fact that users tend to choose common words as their password. The worm encrypted lists of common words, including the standard online dictionary, using a fast version of the password algorithm and then compared the result against the contents of the password file. The worm encrypted lists of common words, including the standard online dictionary, using a fast version of the password algorithm and then compared the result against the contents of the password file. Some sites reported that over 50% of their passwords were quickly broken by this simple approach. Some sites reported that over 50% of their passwords were quickly broken by this simple approach.

Passwords ways to reduce the risk of such attacks: ways to reduce the risk of such attacks: to have a shadow password file.to have a shadow password file. save the encrypted password in a shadow file that is readable only by the system administrators, and privileged call performs password encryptions and comparisons with an appropriate timed delay. save the encrypted password in a shadow file that is readable only by the system administrators, and privileged call performs password encryptions and comparisons with an appropriate timed delay. to add mechanism to check for repeated password attempts from the same process, resulting in some form of alarm being raised.to add mechanism to check for repeated password attempts from the same process, resulting in some form of alarm being raised.

Passwords to change the utility that sets user passwords.to change the utility that sets user passwords. The program could be strengthened in such a way that it would reject any choice of a word currently in the online dictionary or based on the account name. The program could be strengthened in such a way that it would reject any choice of a word currently in the online dictionary or based on the account name.

Passwords The worm also took advantage of the use of trusted logins. The worm also took advantage of the use of trusted logins. In UNIX system, it is possible to for a user to specify a list of host/login name pairs that are assumed to be ‘trusted’ in the sense that a remote access from that host/login pair is never asked for a password In UNIX system, it is possible to for a user to specify a list of host/login name pairs that are assumed to be ‘trusted’ in the sense that a remote access from that host/login pair is never asked for a password

Passwords The worm used this mechanism. The worm used this mechanism. Once the worm found such likely candidates, it tried to instantiate itself in those machines by using the remote execution facility. Once the worm found such likely candidates, it tried to instantiate itself in those machines by using the remote execution facility.

General Overview of Worm Targeted Sun 3 systems and VAX + 4 BSD Targeted Sun 3 systems and VAX + 4 BSD Worm targets host until 1 of 3 attacks succeeds. Worm targets host until 1 of 3 attacks succeeds. /bin/sh shell is obtained /bin/sh shell is obtained Can parse instructions over networkCan parse instructions over network Worm compiles & executes ‘bootstrap’ program on host Worm compiles & executes ‘bootstrap’ program on host

General Overview of Worm Bootstrap connects back to worm, downloads worm objects Bootstrap connects back to worm, downloads worm objects Worm connects to host, links worm objects together, runs worm Worm connects to host, links worm objects together, runs worm Searches for new hosts to infect, cracks passwords in /etc/passwd, infects new hosts Searches for new hosts to infect, cracks passwords in /etc/passwd, infects new hosts

Finger Exploit Attacked Sun 3 systems only running finger daemon Attacked Sun 3 systems only running finger daemon Buffer overflow in gets() system call Buffer overflow in gets() system call Stack was overwritten Stack was overwritten Exec() system call was executed, replacing fingerd process with /bin/sh shell Exec() system call was executed, replacing fingerd process with /bin/sh shell Fingerd turned into a shell Fingerd turned into a shell

Sendmail Exploit Debug feature parses commands Debug feature parses commands Relied on lazy sysadmins Relied on lazy sysadmins Command to execute /bin/sh shell was fed to sendmail Command to execute /bin/sh shell was fed to sendmail Sendmail daemon turned into a shell Sendmail daemon turned into a shell

Password Exploit /etc/passwd file was world readable /etc/passwd file was world readable Contained pairs of username + password hashes Contained pairs of username + password hashes Dictionary passwords and permutations were fed into a hash function Dictionary passwords and permutations were fed into a hash function If any matched, the password was cracked If any matched, the password was cracked

Password Exploit Obtain privileges of user using his or her password Obtain privileges of user using his or her password Open certain files to discover new hosts Open certain files to discover new hosts Connect to hosts using ‘passwordless’ rsh Connect to hosts using ‘passwordless’ rsh Relied on principal of users having only one password Relied on principal of users having only one password On successs, a shell was obtained On successs, a shell was obtained

Bootstrap Stage Once the shell was obtained, finger, sendmail, and password cases are all the same Once the shell was obtained, finger, sendmail, and password cases are all the same Infecting computer compiles and executes bootstrap program Infecting computer compiles and executes bootstrap program Establishes connection back to worm, gets object files for two architectures, source for bootstrap program Establishes connection back to worm, gets object files for two architectures, source for bootstrap program

Bootstrap Stage Turn into a shell with exec() Turn into a shell with exec() Worm instructs to link correct object to run on architecture Worm instructs to link correct object to run on architecture The worm on the host computer is then executed The worm on the host computer is then executed

Operation of Worm (initialize) Hides execution of itself, ensure survival Hides execution of itself, ensure survival Delete arguments after copying them to another buffer to prevent displaying Delete arguments after copying them to another buffer to prevent displaying Change process name to 'sh' Change process name to 'sh' Kill the parent process Kill the parent process Unlink program binary file Unlink program binary file

Operation of Worm (initialize) Read worm objects and bootstrap source file in from stored arguments Read worm objects and bootstrap source file in from stored arguments Solves problem of replicating itselfSolves problem of replicating itself Discover currently connected hosts, sort for priority Discover currently connected hosts, sort for priority 1) Gateways1) Gateways 2) Hosts on local net2) Hosts on local net 3) Hosts on other nets3) Hosts on other nets

Operation of Worm (initialize) Tries to attack other hosts Tries to attack other hosts Send shell instructions to host, compile and execute bootstrap Send shell instructions to host, compile and execute bootstrap Listen on socket for host to connect back Listen on socket for host to connect back Send worm object files and bootstrap to host Send worm object files and bootstrap to host Send shell instructions to execute worm Send shell instructions to execute worm Mark host as "infected“, otherwise “can’t infect” Mark host as "infected“, otherwise “can’t infect”

Operation of Worm (Main loop) Read /etc/passwd password file Read /etc/passwd password file When another copy of the worm is discovered When another copy of the worm is discovered Communicate with other worm, randomly decide who will quitCommunicate with other worm, randomly decide who will quit Attack passwords with dictionary and random attacks using hash function Attack passwords with dictionary and random attacks using hash function Discover more hosts in files using username / password information Discover more hosts in files using username / password information Attack hosts like in previous slide Attack hosts like in previous slide Watch time, clear host flags of "can't infect" and "infected" every 12 hours Watch time, clear host flags of "can't infect" and "infected" every 12 hours Go to beginning of loop Go to beginning of loop

Operation of Worm Time divided between cracking passwords and attacking new hosts Time divided between cracking passwords and attacking new hosts Cracking hosts could take a really long time with complicated passwords, maybe foreverCracking hosts could take a really long time with complicated passwords, maybe forever Population control Population control Distributed nature requires balanceDistributed nature requires balance Attempts to prevent discovering execution and obtaining worm code Attempts to prevent discovering execution and obtaining worm code

Aftermath The Internet worm was huge at the time The Internet worm was huge at the time First of its kind First of its kind Around 6000 major UNIX machines were infected (around 10% of the Internet) Around 6000 major UNIX machines were infected (around 10% of the Internet) The worm caused machines to operate at close to their capacity The worm caused machines to operate at close to their capacity Important nation-wide gateways were shutdown Important nation-wide gateways were shutdown

Who? Identified as Robert T. Morris by the New York Times Identified as Robert T. Morris by the New York Times 23 year old doctoral student at Cornell University at the time 23 year old doctoral student at Cornell University at the time His father is the National Computer Security Center’s chief scientist (NSA) His father is the National Computer Security Center’s chief scientist (NSA) Morris released the worm from MIT to conceal the fact that it was from Cornell Morris released the worm from MIT to conceal the fact that it was from Cornell

Why? Many speculation at the time on his motive Many speculation at the time on his motive Worm contained no code to cause any damage to systems Worm contained no code to cause any damage to systems Worm had no code to stop the spread of the worm Worm had no code to stop the spread of the worm True motive True motive use it as a tool to gauge the size of the internetuse it as a tool to gauge the size of the internet

Consequences Some people think Morris should not be punished Some people think Morris should not be punished system administrator or operator should be punishedsystem administrator or operator should be punished Morris was the first person to be indicted under the Computer Fraud and Abuse Act of 1986 Morris was the first person to be indicted under the Computer Fraud and Abuse Act of 1986 Sentenced to three years’ probation, a fine of $10,050, and 400 hours of community serviceSentenced to three years’ probation, a fine of $10,050, and 400 hours of community service

Consequences Morris received his Ph. D. in computer science from Harvard University in 1999 Morris received his Ph. D. in computer science from Harvard University in 1999 Morris is a professor at MIT right now Morris is a professor at MIT right now

Effects Establishment of Computer Emergency Response Team (CERT) by Defense Advanced Research Projects Agency (DARPA) at the Software Engineering Institute at Carnegie Mellon University Establishment of Computer Emergency Response Team (CERT) by Defense Advanced Research Projects Agency (DARPA) at the Software Engineering Institute at Carnegie Mellon University Worm made people think more about ethics and laws concerning access to computers Worm made people think more about ethics and laws concerning access to computers

Questions?