Ανάπτυξη Αξιόπιστου και Ασφαλούς Λογισμικού

Κωδικός: 
8178
Εξάμηνο: 
6ο
Μαθήματα Επιλογής
Διδάσκων: 

ΑΛΕΞΟΠΟΥΛΟΣ ΝΙΚΟΛΑΟΣ

Περιεχόμενο μαθήματος

Ενδεικτικά παρατίθεται το εβδομαδιαίο πρόγραμμα διαλέξεων του Εαρινού Εξαμήνου 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” («νοοτροπία της ασφάλειας»). Θα μάθουν να σκέφτονται όχι μόνο πώς να αναπτύσσουν συστήματα που λειτουργούν, αλλά πώς κάποιος θα μπορούσε να κάνει ένα σύστημα να αποτύχει. Επιπλέον, θα μπορούν να αναγνωρίζουν άμεσα τις αδυναμίες ενός ευπαθούς συστήματος, ενώ θα είναι σε θέση να αναγνωρίζουν τρόπους με τους οποίους θα μπορούν να το προστατέψουν. Τέλος, θα διδαχθούν σύγχρονες τεχνικές ανάπτυξης ασφαλούς λογισμικού, κρυπτογραφικά πρωτόκολλα, βασικές αρχές δικτύων υπολογιστών και γενικότερα όλα όσα χρειάζονται για να αναπτύξουν ένα αξιόπιστο και ασφαλές σύστημα.