Hello everyone. So, for this session, we're going to talk about something called a worm program. And I think you know what a worm is. Now, here's the idea. It may or may not be somewhat familiar with the idea of a virus. That's a piece of malware that gets on a system that looks to be doing one thing, but it actually does something different. Well, we've learned over time that that concept can be lethal if, in fact, it can propagate on its own. What that means is, I put a little piece of malware on a computer, and then I push a button, make it run and it finds its way across a network. That's frightening concept because it's cascading, it's propagating, without human beings having to do something. And we call that kind of program a worm. Now, it turns out that there's three steps in a worm program, and if you're a programmer then you might even say three lines of code. But think of it as three steps. The first step in a worm program is that the program itself running on a computer needs to find another computer it can connect to. In the old days, you'd look it up in a UNIX file. Nowadays, you might create a TCP/IP address, number dot number dot number dot number, and use that as some way of sort of pointing off to find another computer. So that's step one, find a place you can copy to. Step two in the worm, is to actually take the worm program and copy it to that other machine. In a lot of ways you can do that. You can do that with browsers, you can do it with different types of runtime environments, and frankly, you can do it by exploiting bugs in software that allow you to copy executables onto another machine. So, that's the second step. And the third step, is to actually run the program then on that machine. Think about it, what's going to happen? When I run it on that new machine, what's it going to do? It's then going to find a computer that it can connect to, again IP address or whatever. It's going to then copy itself and then it's going to run that, which case what's it going to do? It's going to find the machine, copy itself, run, find a machine... Get the idea? It's going to cascade. Now, the first time we saw something like this was back in 1988. That's before a lot of you were born. So, a young man in New Jersey, where I live in the United States, who wrote a program that did essentially this. His name was Robert Morris Jr., whose Robert Morris Sr., his father, was actually my boss at the time at AT&T Bell Laboratories, but he wrote this program and he pushed it on the Internet somewhat inadvertently and it created a gigantic debate, an early debate about whether he was to be held responsible for this. I think it's sort of an important lesson. This is a young man, he was a graduate student, he had no intention of causing problems, and yet he brought the Internet down with that simple worm program. We call it, appropriate enough, the worm program of 1988, the Morris worm. So, if you look that up, if you look on the internet, look up Morris worm, you'll see a little bit of information. Bottom line is, that a worm program is those three lines. Now, for your further consideration, as you think about this session and think about the discussion we're having here, like you think a little bit about where you might actually inject some lines of code, some functionality, some additional steps, to do a little bit of damage at each machine that you visit. For example, when the worm program visits the machine, copies itself, maybe before it executes, perhaps it could do something; check for passwords, look around, see if there's something interesting, I'd like you to ponder that. Think through what types of activities you might add to a worm program to actually make it somewhat more lethal or at least more interesting to the attackers. So, what you should take from this is worm program is very simple, three steps. But as we've said in other discussions, for example, you remember our old soda machine example, worm programs easy to describe, not so easy to stop once something like this is coded. This is not necessarily the easiest thing in the world to stop. So with that, I'd like you to ponder a little bit about worms, then we'll be back with another session.