Ανάπτυξη Αξιόπιστου και Ασφαλούς Λογισμικού
ΑΛΕΞΟΠΟΥΛΟΣ ΝΙΚΟΛΑΟΣ
Περιεχόμενο μαθήματος
Ενδεικτικά παρατίθεται το εβδομαδιαίο πρόγραμμα διαλέξεων του Εαρινού Εξαμήνου 2025.
Εβδ. Κύριο θέμα διάλεξης Πρακτικό μέρος διάλεξης
1 Introduction & TLS – Basic Cryptography Principles (Encryption, Signatures) Bash basics & demo
2 Software Security Basics (Vulnerabilities, patches, lifecycle)
3 Application Security: Web Security (injection attacks, XSS attacks) XSS Lab task (HW)
4 OS Fundamentals and Security Part 1: Access control and Isolation (Files, permissions, etc.) Making a container from scratch, Android access control
5 OS Fundamentals and Security Part 2: Processes & Overflows stack overflow demo
6 Stack overflow (cont.) + Network/Internet Basics Traceroute demo
7 Network Security (attacks and defenses) Morris Worm Lab task (HW)
8 Data & Communications Privacy (Surveillance, Mixnets, Tor) Tor demo
9 The Human Factor: Passwords, Biometrics + networking basics revision
10 Cryptocurrencies Basics and Bitcoin/Ethereum
11 Other topics in Security (ML, Cryptocurrencies, HW) PKI Lab task (HW)
12 Recap, Research in Computer Security, Questions
Μαθησιακά αποτελέσματα
Οι προγραμματιστές συνήθως εκπαιδεύονται έτσι ώστε όταν αναπτύσσουν υπολογιστικά συστήματα, να έχουν στο μυαλό τους την απαιτούμενη λειτουργικότητα χωρίς να λαμβάνουν υπόψη τους την ασφάλεια. Αυτό έχει ως αποτέλεσμα πολλά συστήματα να περιέχουν αδυναμίες, τις οποίες μπορεί να εκμεταλλευτούν κακόβουλοι χρήστες με ιδιαίτερα επιζήμιες συνέπειες είτε: α) για τους οργανισμούς που διαθέτουν τα συστήματα αυτά, αλλά και β) για τους χρήστες τους.
Οι φοιτητές που θα παρακολουθήσουν το συγκεκριμένο μάθημα θα έρθουν σε επαφή με το “security mindset” («νοοτροπία της ασφάλειας»). Θα μάθουν να σκέφτονται όχι μόνο πώς να αναπτύσσουν συστήματα που λειτουργούν, αλλά πώς κάποιος θα μπορούσε να κάνει ένα σύστημα να αποτύχει. Επιπλέον, θα μπορούν να αναγνωρίζουν άμεσα τις αδυναμίες ενός ευπαθούς συστήματος, ενώ θα είναι σε θέση να αναγνωρίζουν τρόπους με τους οποίους θα μπορούν να το προστατέψουν. Τέλος, θα διδαχθούν σύγχρονες τεχνικές ανάπτυξης ασφαλούς λογισμικού, κρυπτογραφικά πρωτόκολλα, βασικές αρχές δικτύων υπολογιστών και γενικότερα όλα όσα χρειάζονται για να αναπτύξουν ένα αξιόπιστο και ασφαλές σύστημα.