Software ExploitationLaajuus (5 cr)
Code: TTC6520
Credits
5 op
Teaching language
- Finnish
- English
Responsible person
- Joonatan Ovaska
Objective
The student knows 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.
Competences
EUR-ACE: Knowledge and understanding
EUR-ACE: Engineering practice
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)
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.
Assessment criteria, good (3)
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.
Assessment criteria, excellent (5)
Excellent (5): The student understands all topics discussed during the course and is able to use them in an innovative manner even in challenging cases.
Enrollment
18.11.2024 - 09.01.2025
Timing
13.01.2025 - 30.04.2025
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
- Bachelor's Degree Programme in Information and Communications Technology
Teachers
- Joonatan Ovaska
Groups
-
TTV22S5Tieto- ja viestintätekniikka (AMK)
-
TTV22S2Tieto- ja viestintätekniikka (AMK)
-
TTV22S3Tieto- ja viestintätekniikka (AMK)
-
TIC22S1Bachelor's Degree Programme in Information and Communications Technology
-
TTV22S1Tieto- ja viestintätekniikka (AMK)
-
TTV22SMTieto- ja viestintätekniikka (AMK)
-
TTV22S4Tieto- ja viestintätekniikka (AMK)
-
TTV22SM2Tieto- ja viestintätekniikka (AMK)
Objectives
The student knows 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.
Competences
EUR-ACE: Knowledge and understanding
EUR-ACE: Engineering practice
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
Materials in the e-learning environment and a book: Hacking : the art of exploitation 2nd edition
Teaching methods
- lectures
- independent study
- distance learning
- webinars
- exercises
- learning tasks
- book
Exam dates and retake possibilities
No exam, assessment is based on assignments.
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 10 h
- reading assignments 15 h
- independent study 60 h
- assignment solving 40 h
- assignment reporting 10 h
Total 135 h
Content scheduling
We start by going through whole course theory, after all theory parts, we'll continue with hands-on assignments for the rest of the course.
Further information for students
Points from the quizzes and from the labs. No exam
Evaluation scale
0-5
Evaluation criteria, satisfactory (1-2)
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.
Evaluation criteria, good (3-4)
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.
Evaluation criteria, excellent (5)
Excellent (5): The student understands all topics discussed during the course and is able to use them in an innovative manner even in challenging cases.
Prerequisites
Basics in programming, Data structures and algorithms
Enrollment
01.08.2024 - 22.08.2024
Timing
26.08.2024 - 18.12.2024
Number of ECTS credits allocated
5 op
Mode of delivery
Face-to-face
Unit
School of Technology
Campus
Lutakko Campus
Teaching languages
- English
Seats
0 - 35
Degree programmes
- Bachelor's Degree Programme in Information and Communications Technology
- Bachelor's Degree Programme in Information and Communications Technology
Teachers
- Joonatan Ovaska
Groups
-
TTV22S5Tieto- ja viestintätekniikka (AMK)
-
TTV22S2Tieto- ja viestintätekniikka (AMK)
-
TTV22S3Tieto- ja viestintätekniikka (AMK)
-
TIC22S1Bachelor's Degree Programme in Information and Communications Technology
-
TTV22S1Tieto- ja viestintätekniikka (AMK)
-
TTV22S4Tieto- ja viestintätekniikka (AMK)
Objectives
The student knows 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.
Competences
EUR-ACE: Knowledge and understanding
EUR-ACE: Engineering practice
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
Materials in the e-learning environment and a book: Hacking : the art of exploitation 2nd edition
Teaching methods
- lectures
- independent study
- distance learning
- webinars
- exercises
- learning tasks
- book
Exam dates and retake possibilities
No exam, assessment is based on assignments.
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 10 h
- reading assignments 15 h
- independent study 60 h
- assignment solving 40 h
- assignment reporting 10 h
Total 135 h
Content scheduling
We start by going through whole course theory, after all theory parts, we'll continue with hands-on assignments for the rest of the course.
Further information for students
Points from the quizzes and from the lab reports. No exam
Evaluation scale
0-5
Evaluation criteria, satisfactory (1-2)
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.
Evaluation criteria, good (3-4)
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.
Evaluation criteria, excellent (5)
Excellent (5): The student understands all topics discussed during the course and is able to use them in an innovative manner even in challenging cases.
Prerequisites
Basics in programming, Data structures and algorithms
Enrollment
01.08.2023 - 24.08.2023
Timing
30.10.2023 - 19.12.2023
Number of ECTS credits allocated
5 op
Virtual portion
4 op
Mode of delivery
20 % Face-to-face, 80 % 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
- Bachelor's Degree Programme in Information and Communications Technology
Teachers
- Joonatan Ovaska
Groups
-
TTV21S3Tieto- ja viestintätekniikka (AMK)
-
TTV21S5Tieto- ja viestintätekniikka (AMK)
-
TIC21S1Bachelor's Degree Programme in Information and Communications Technology
-
TTV21S2Tieto- ja viestintätekniikka (AMK)
-
TTV21S1Tieto- ja viestintätekniikka (AMK)
Objectives
The student knows 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.
Competences
EUR-ACE: Knowledge and understanding
EUR-ACE: Engineering practice
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.
Time and location
- First contact on campus, rest of them online
- Guidance sessions on campus
Learning materials and recommended literature
Materials in the e-learning environment and a book: Hacking : the art of exploitation 2nd edition
Teaching methods
- lectures
- independent study
- distance learning
- webinars
- exercises
- learning tasks
- book
Exam dates and retake possibilities
No exam, assessment is based on assignments.
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 15 h
- demos and walkthroughs 15 h
- assignment 45 h
- independent study 55 h
Total 135 h
Further information for students
Points from lab reports. No exam.
Evaluation scale
0-5
Evaluation criteria, satisfactory (1-2)
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.
Evaluation criteria, good (3-4)
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.
Evaluation criteria, excellent (5)
Excellent (5): The student understands all topics discussed during the course and is able to use them in an innovative manner even in challenging cases.
Prerequisites
Basics in programming, Data structures and algorithms
Enrollment
01.08.2022 - 25.08.2022
Timing
31.10.2022 - 16.12.2022
Number of ECTS credits allocated
5 op
Virtual portion
4 op
Mode of delivery
20 % Face-to-face, 80 % Online learning
Unit
School of Technology
Campus
Lutakko Campus
Teaching languages
- Finnish
Seats
0 - 35
Degree programmes
- Bachelor's Degree Programme in Information and Communications Technology
Teachers
- Joonatan Ovaska
Objectives
The student knows 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.
Competences
EUR-ACE: Knowledge and understanding
EUR-ACE: Engineering practice
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
Materials in the e-learning environment and a book: Hacking : the art of exploitation 2nd edition
Teaching methods
- lectures
- independent study
- distance learning
- webinars
- exercises
- learning tasks
- book
Exam dates and retake possibilities
No exam, assessment is based on assignments.
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 lab reports. No exam.
Evaluation scale
0-5
Evaluation criteria, satisfactory (1-2)
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.
Evaluation criteria, good (3-4)
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.
Evaluation criteria, excellent (5)
Excellent (5): The student understands all topics discussed during the course and is able to use them in an innovative manner even in challenging cases.
Prerequisites
Basics in programming, Data structures and algorithms