Now, the definition of a vulnerability is a system attribute or feature that can be exploited to cause something bad to happen. Not exactly the most technical definition, we get the idea. They give us a bug in the system or something and I go, " Ah, my gosh!". I can exploit that to cause something bad, then we call that a vulnerability. It turns out that there are going to be four types of vulnerabilities. So let's go through them and it's taxonomy again that we want to keep in mind as we go through the cybersecurity. You're noticing in our lectures here that a lot of lists, right? Sometimes cybersecurity reminds me of biology, of these taxonomies, and lists, and types, and you can get a little crazy with it. I try and minimize it. I don't want you to have to be sitting around memorizing things, but I do think it helps in our vocabulary for you to be able to sort things out. So the first type of vulnerability is just flat out a bug. It's usually a bug in software, the system design, or software design. And that's where you just made a mistake in some code like for example, if you write code that takes in address, names in a box, name, address, and whatever, and you kind of forget to do some bounds checking in the software. I assume you're smart enough to know that, but for years people didn't know that. And then somebody figures out, "Oh, this software doesn't even check to see." So where's this address? I just hold down the A-key, and let it just keep running, and suddenly, the whole system crashes, and I'm sitting there laughing. That's a vulnerability that takes advantage of a flaw in your code. You blew it. And I did that, and the question is is that malicious or is that tampering? Well, you have to decide. So that's the first type of vulnerability, and that's kind of a funny example, but the reality is there are dangerous ones, right? You don't want that kind of example like in the safety system for a nuclear power plant. That would not be a great thing if somebody can tamper with those. So that's number one. Second is a missing security control. So that's where set up a network, set up a router, connect everybody up, hook up Wi-Fi, everything's great, we go, "How are we doing?", and somebody says, "Seems like we're getting hacked", then you go, "Getting hacked, getting hacked." And you went, "I forgot to put a firewall in." And everybody goes "Duh!" and you run out, you get yourself firewall whether you buy it or download or whatever, you put it in place. Missing security components. It's not really like a coding flaw, it's a little different, but you can see in both cases, it's your mistake, right? I mean, that's the essence of vulnerability. It's somebody doing something that is then exploited. You got that? So for bug, missing security flaw is the second. The third is you and me, human action. It's on learning community doing something dumb. An email comes across and it says, "Hey. You have a fax waiting for you at coolcoolfax.net." And you go, "coolcoolfax.net?" and it says, "Yeah, just click here and get your fax." You go, "Um, I wasn't expecting a fax. Well, let's click and see what happens." And you click and downloads malware, whatever. Human being, a human being doing something dumb. And that's a really egregious example. But I'll tell you what? Think about your day to day activity. I'm pretty sure I could send you something like that. You know what that's called, called a fish. I could probably get you to click on something, right? If I sent our learning communities something from me and it said, "Hey, what do you think of the lecture today?" with a link. You'll probably click on that, right? And there's ways around it, but again, it's the vulnerability type, third one is human beings. A fourth kind of interesting one is Organizational Action. Meaning, you didn't fund the security team properly, you didn't put people in place, you were negligent in setting up policy, you just were a bad organizational manager, and you set things up in a chaotic way. Now all four of them can be exploited, right? I mean, fundamentally, it's that first one that from a functional perspective is the one that gets exploited. In all the other cases, there's ones and zeros, there's computing going on, like if a human being does something stupid and there's a fish that causes malware to be downloaded. The malware is still taking advantage of a vulnerability in the operating system, in your local runtime environment, but those four different components gives you a pretty good idea of how we're going to be categorizing vulnerabilities. Most of our emphasis is going to be on the first, that first software vulnerability, the bugs and so on, with some emphasis on the second one as well. So I hope that's a good way for you to kind of keep straight in your mind. A useful taxonomy on vulnerabilities. Thanks.