# Module 5 Overview

## Module Overview

In this module we begin with individual programs and potential attacks against them; we examine the nature of some of these attacks and how they can be prevented.

Learning objectives for this module and the tasks you need to complete in this module are listed below. Along with each module learning objective (MLO), the course learning objective(s) (CLO) that it aligns with are indicated in parentheses at the end of the item. CLOs are listed in the course syllabus. Along with each task you need to complete, the MLO(s) that it aligns with are indicated in parentheses at the end of the item.

## Module Objectives

By the end of this module you should be able to:

1. Explain programming oversights including buffer overflows, off-by-one errors, incomplete mediation, time-of-check to time-of-use error and the impact they may have on a computer, (aligned with CLO1 and CLO2)
2. Compare and contrast different kinds of malware including viruses, worms, Trojan horses, ransomware (aligned with CLO2)
3. Discuss countermeasures against programming vulnerabilities (aligned with CLO3)
4. Demonstrate basic skills in using tools for analyzing malware (aligned with CLO7)

## Task List

The tasks included in this module are:

Chapter 3 (textbook reading) | MLO1, MLO2, MLO3
Chapter 3 (ppt) | MLO1, MLO2, MLO3
Java Integer Error Demonstration (video) | MLO3,MLO4
Race Condition Demonstration (TOCTOU) in C (video) | MLO3,MLO4
Discussion: Programming errors and countermeasures | MLO2, MLO3
Quiz 5 | MLO1, MLO2, MLO3
Lab 8 - Analyze and Differentiate Types of Malware & Application Attacks (assigned in next module) | MLO4