Skip to main content

Software ExploitationLaajuus (5 cr)

Code: TTKW0220

Credits

5 op

Teaching language

  • English

Responsible person

  • Joonatan Ovaska

Objective

The student is aware of the most common application vulnerabilities and how they affect new and existing applications. The student is also able to find, exploit and fix common application vulnerabilities. The student is also familiar with safety mechanisms built into modern operating systems to make exploitation more difficult.

Content

The course will cover most common application vulnerabilities, what causes them, how they are exploited and how to fix or mitigate them. Basic knowledge of C or C++ and data structures and algorithms is required. Knowledge of one scripting language (e.g. Python) is recommended.

Qualifications

Basics in programming, Data structures and algorithms

Assessment criteria, satisfactory (1)

Excellent (5): The student understands all topics discussed during the course and is able to utilize them in an innovative manner even in challenging cases.
Very good (4): The student understands the most important topics discussed during the course and is able to utilize this knowledge in the most common cases.
Good (3): The student understands the most important topics discussed during the course and is able to utilize this knowledge in the most basic cases.
Satisfactory (2): The student understands the most basic topics discussed during the course, however, struggles to utilize this knowledge.
Sufficient (1): The student is familiar with the basic topics discussed during the course. He is able to solve problems related to the topics only in the simplest of cases.
Fail 0: The student does not meet the minimum criteria set for the course.

- The course is graded based on the exam and labs.

Enrollment

01.11.2021 - 09.01.2022

Timing

28.03.2022 - 29.04.2022

Number of ECTS credits allocated

5 op

Virtual portion

5 op

Mode of delivery

Online learning

Unit

School of Technology

Campus

Lutakko Campus

Teaching languages
  • English
Seats

0 - 35

Degree programmes
  • Bachelor's Degree Programme in Information and Communications Technology
Teachers
  • Joonatan Ovaska
Groups
  • TTV19S1
    Tieto- ja viestintätekniikka

Objectives

The student is aware of the most common application vulnerabilities and how they affect new and existing applications. The student is also able to find, exploit and fix common application vulnerabilities. The student is also familiar with safety mechanisms built into modern operating systems to make exploitation more difficult.

Content

The course will cover most common application vulnerabilities, what causes them, how they are exploited and how to fix or mitigate them. Basic knowledge of C or C++ and data structures and algorithms is required. Knowledge of one scripting language (e.g. Python) is recommended.

Learning materials and recommended literature

Hacking : the art of exploitation 2nd edition

Teaching methods

Lecture videos, assignment solving, book

Alternative completion methods

The admission procedures are described in the degree rule and the study guide. The teacher of the course will give you more information on possible specific course practices.

Student workload

One credit (1 Cr) corresponds to an average of 27 hours of work.

- lectures 5 h
- assignment 65 h
- independent study 65 h
Total 135 h

Further information for students

Points from the quizzes and from the lab reports. No exam

Evaluation scale

0-5

Evaluation criteria, satisfactory (1-2)

Excellent (5): The student understands all topics discussed during the course and is able to utilize them in an innovative manner even in challenging cases.
Very good (4): The student understands the most important topics discussed during the course and is able to utilize this knowledge in the most common cases.
Good (3): The student understands the most important topics discussed during the course and is able to utilize this knowledge in the most basic cases.
Satisfactory (2): The student understands the most basic topics discussed during the course, however, struggles to utilize this knowledge.
Sufficient (1): The student is familiar with the basic topics discussed during the course. He is able to solve problems related to the topics only in the simplest of cases.
Fail 0: The student does not meet the minimum criteria set for the course.

- The course is graded based on the exam and labs.

Prerequisites

Basics in programming, Data structures and algorithms