Ασφάλεια λογισμικού

ECTS: 6
Περιγραφή μαθήματος:
Οι εταιρείες και οι οργανισμοί σε όλο τον κόσμο αναγνωρίζουν σήμερα, πολύ περισσότερο από ποτέ άλλοτε, την αξία της ασφάλειας στο λογισμικό. Επιπλέον, οι πωλητές επενδύουν σημαντικά σε διαδικασίες ασφαλείας που θα τους επιτρέψουν να παράγουν λογισμικό που θα πληροί υψηλά πρότυπα ασφαλείας. Το μάθημα αυτό περιγράφει τις θεμελιώδεις αρχές πίσω από την ασφάλεια λογισμικού και εξηγεί την αξία του ασφαλούς λογισμικού σε αξιόπιστες υποδομές ΤΠΕ. Περιγράφει επίσης λεπτομερώς τους βασικούς τύπους τρωτών σημείων λογισμικού και δείχνει πώς αυτά μπορούν να βαθμολογηθούν και να διαχειριστούν ανάλογα με τον αντίστοιχο κίνδυνο.
Μέσω διαλέξεων, εργασιών και εργαστηρίων οι φοιτητές θα μάθουν πώς να εντοπίζουν σφάλματα ασφαλείας τόσο σε λογισμικό για το οποίο έχει διατεθεί ο πηγαίος κώδικας (επισκόπηση κώδικα) όσο και σε λογισμικό όπου ο πηγαίος κώδικας δεν είναι διαθέσιμος (επισκόπηση μαύρου κουτιού). Οι ευπάθειες που μελετώνται σε αυτό το μάθημα προέρχονται από ένα ευρύ πεδίο εφαρμογών, όπως: λογισμικό λειτουργικών συστημάτων, λογισμικό ενσωματωμένων συστημάτων, υπηρεσίες Διαδικτύου, λογισμικό γραφείου, εφαρμογές ιστού και εφαρμογές κινητών τηλεφώνων.

Πεδίο εφαρμογής του μαθήματος: Ο πρωταρχικός στόχος αυτού του μαθήματος είναι η ανάπτυξη των ακόλουθων δεξιοτήτων: η εφαρμογή βέλτιστων πρακτικών ασφάλειας στο υπό ανάπτυξη λογισμικό, ο εντοπισμός θεμάτων ασφάλειας σε λογισμικό ανοικτού και κλειστού κώδικα, η επίδειξη μιας ευπάθειας, η αξιολόγηση μιας ευπάθειας και η διαχείριση των ευπαθειών σε όλες τις φάσεις σχεδιασμού, υλοποίησης και συντήρησης έργων λογισμικού. Οι σπουδαστές θα εισαχθούν επίσης στις πιο σύγχρονες μεθόδους για τον εντοπισμό τρωτών σημείων και στις πρόσφατες τεχνικές για τον προληπτικό μετριασμό των κινδύνων.

Εργαστήρια: Διάφορα εργαλεία για στατική και δυναμική ανάλυση κώδικα (όπως nm, file, objdump, strace, ltrace), εργαλεία εντοπισμού σφαλμάτων (gdb), fuzzing πρωτοκόλλων (peach), fuzzing αρχείων (jonggfuzz) και ασφάλεια διαδικτυακών εφαρμογών (bwapp).

Συντονιστής μαθήματος: Παναγιώτης Κοτζανικολάου