Exercises for the course Introduction to Cyber Security Testing IC00AI82.
Upon completing the course, the student:
- is familiar with the basic concepts and the terminology of cyber security testing
- can use security testing tools
- is familiar with different challenges in the field of cyber security
The course is organized by Oulu University Secure Programming Group (OUSPG).
The exercises in this repository also contain some required theoretical material to understand some concepts.
The course has seven lectures, seven laboratory exercises, and seven Moodle mini-exams.
Moodle mini-exams are mostly based on the lectures.
To pass this course with grade one, you have to pass the Moodle mini-exams.
To get a better grade, you have to do some laboratory exercises. You can somewhat decide what grade you will earn on this course!
All laboratory tasks are optional and total points from those will determine your grade.
Upon completing the exercises, you can get up to five points every week, excluding possible bonus points.
Your grade is based on the following grading table. For example, with 12 points you get grade 2.
Total Points | Total Grade |
---|---|
12+ | 2 |
18+ | 3 |
24+ | 4 |
30+ | 5 |
The submission of the basic technical tasks will be usually implemented as Moodle exams (different from weekly, mandatory mini-exams!).
There will be a collection of parametrised questions and you will get one randomly. You need to do something technical, and return the result, which will then be automatically reviewed.
For advanced and essay-like tasks, you are required to use a private GitHub repository, with weekly template folders.
- Find a link from Moodle where you can receive and create a private GitHub repository containing all the return template folders. You are expected to answer for given templates and store your actual work in this repository.
- Create a GitHub account, if you don't have one already, and create this private repository from the link.
- Complete as many tasks as you wish and update your repository accordingly. Check the grading table found in each lab instructions on what you have to complete to earn the grade of your choosing
- Push your changes to your repository before the deadline, and return the link to your repository to the corresponding return box of the lab in Moodle.
Check the cheat sheet if you need a refresher on how to use Git. Some basic commands below:
git add </path/filename>
git commit -m "<message>"
git push
The course requires the usage of a Linux-based operating system. You can use anything you want, but then you might need to figure out how to install some tools by yourself. See more general information here.
We will provide custom Arch Linux as the pre-configured solution. See Moodle workspace for download links.
More information about Arch Linux is available here.
You are allowed, and even recommended to use trending LLMs (chatbots) for finding information. They can be particularly useful in explaining and generating some command-line interface commands, for example. Or for getting a high-level overview of some topics, when they can be very accurate. They are also good at generating formatted data.
- In general, you are not allowed to use them as a reference. Find a real one. But if you really must, you can cite them as personal communication. Attribution is always important, especially when there is a chance of confusing something that you said for something that AI said.
- You are not allowed to trust them blindly. Double-check what they say, if you are making statements or assumptions.
- You are not allowed to copy their output directly to your written answers, especially in essays.
- You are allowed to use them for rephrasing, brainstorming, for grammar corrections, but please mention if you do so.
- We recommend including/exporting the chat history for transparency if you have used them significantly. Check if the platform supports this directly by generating an archived URL about the conversation history.
- Whenever you submit information (making a prompt, asking something), remember that data is likely stored forever, now owned by the platform owner and likely used to train the LLM further.
Overall, LLMs can be very useful but one should not develop too high a dependency on them.
- If you are new to programming language, get used to the standard library documentation or official book, and maybe later use the LLM.
- If you are new to some CLI application, read the manual first and later use LLM to generate the commands.
- If you are new to some technical protocol and intend to use it a lot, read the official introduction and maybe use LLM later.
- The list goes on. You should always know where to find the original information.
Otherwise, use the official guidelines of the University of Oulu about the usage of AI.
Any information, guidelines, tutorials, examples, or code pieces here are for teaching purposes, under MIT license, unless otherwise declared.