Git Product home page Git Product logo

softwarehardwaresec's Introduction

IC00AJ74 Cyber Security III: Software and Hardware Security

Exercises for the course IC00AJ74 Cyber Security III: Software and Hardware Security at the University of Oulu.

Course key content

This course handles key concepts and principles in software and hardware security. Especially in the topics of

  • Software testing including fuzzing and fuzzing integration
  • Memory errors and vulnerabilities
  • Return-oriented programming exploits and shellcoding
  • Malware analysis and reverse engineering
  • Hardware glitching and side-channel attacks
  • Hardware testing with physical interfaces and close-range wireless methods
  • Remote attestation and Hardware Security Modules (HSMs)

The course is organized by Oulu University Secure Programming Group (OUSPG)

Practicalities

The course has seven laboratory exercises, and six (might change!) Moodle exams.

Lectures are handling topics from a high perspective and they are not generally going technically deep. Moodle exams are mostly based on the lectures.

Laboratory exercises are thought of as independent packages: containing theory and exercises and going technologically very deep.

To pass this course with grade 1, you have to pass the Moodle 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 because you can (hopefully!) see from the beginning how much work is required for each grade. All laboratory tasks are optional and total points from those will determine your grade.

Grading

As described earlier, you have to pass Moodle exams to pass the course. You can have higher grades by doing lab work.

You can get up to 5 points in each lab (A total of 35 points). The grade is determined based on those points. For example, with 12 points you get grade 2.

Total Points Total Grade
12+ 2
18+ 3
24+ 4
30+ 5

Getting started

  • Enroll in the course
  • Find the course's Moodle page from the University's Moodle
  • Find a link where you can receive and create a private 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.
  • You can see the deadlines below. They are the same in Moodle. There might be exceptions for ChipWhisperer.
  • 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

Laboratory environment

The course requires extensive use 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 in here.

We will provide custom Arch Linux as pre-tested solution. See Moodle workspace for download links.

More information about the Arch Linux is available here.

License

Any information, guidelines, tutorials, examples, or code pieces here are for teaching purposes, under MIT license, unless otherwise declared.

softwarehardwaresec's People

Contributors

asadhasan73 avatar nicceboy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.