Αποτίμηση Ασφάλειας και Εκμετάλλευση Αδυναμιών

Εκτύπωση

Στόχος

Στόχος του μαθήματος είναι να προσφέρει πρακτική εμπειρία σε θέματα εκτίμησης και εκμετάλλευσης ευπαθειών λογισμικού. Οι φοιτητές θα εξασκηθούν σε εργαστηριακές ασκήσεις, με σκοπό να αποκτήσουν πρακτική εμπειρία σε μεθοδολογίες, τεχνικές και εργαλεία εκτίμησης αδυναμιών και εκτέλεσης επιθέσεων. Το μάθημα περιέχει ένα διαγωνισμό «Capture The Flag», που έχει ως σκοπό οι φοιτητές να χρησιμοποιήσουν τις πρακτικές ικανότητες που θα έχουν αποκτήσει σε ένα πραγματικό περιβάλλον. Τέλος, θα μελετηθούν ανοιχτά ερευνητικά θέματα στο συγκεκριμένο πεδίο.

Ολοκληρώνοντας το μάθημα, οι φοιτητές θα είναι σε θέση:

  • Να γνωρίζουν διάφορες πτυχές της αρχιτεκτονικής υπολογιστών και τη σημασία της στην ασφάλεια λογισμικού.
  • Να σχεδιάζουν και να εκτελούν shellcode στη γλώσσα προγραμματισμού assembly, καθώς και να αποφεύγουν αμυντικές τεχνολογίες.
  • Να αναλύσουν και να αξιολογήσουν πηγαίο κώδικα για εύρεση καινούργιων αδυναμιών (0-day exploit) καθώς και εκμετάλλευσή τους για εκδήλωση επιθέσεων.
  • Να εφαρμόσουν μεθοδολογίες και τεχνικές penetration testing στη μελέτη ασφάλειας ενός πληροφοριακού συστήματος.
  • Να χρησιμοποιήσουν μια σειρά από εργαλεία ανοιχτού κώδικα τα οποία χρησιμοποιούνται ευρέως στο χώρο της ασφάλειας πληροφοριακών συστημάτων.
  • Να δημιουργήσουν δικό τους κώδικα επίθεσης και εργαλεία ασφάλειας σε σύγχρονες γλώσσες προγραμματισμού.
  • Να γνωρίζουν τις τρέχουσες τάσεις της έρευνας και να εκτιμήσουν την επίδραση που αυτές μπορεί να έχουν στο χώρο τα επόμενα χρόνια.

Περιεχόμενα

  • Εισαγωγή στο λειτουργικό σύστημα Linux. Κέλυφος Bash και βασικές εντολές του. Βασικά εργαλεία ασφάλειας. Εισαγωγή στη γλώσσα προγραμματισμού C και Python.
  • Διεπαφή λογισμικού-υλικού, γλώσσα assembly, διαχείριση μνήμης, λειτουργικά συστήματα.
  • Επιθέσεις υπερχείλισης μνήμης στη στοίβα σε λειτουργικά συστήματα Linux και Windows.
  • Δημιουργία και εκτέλεση shellcode. Τεχνικές κωδικοποίησης για αποφυγή εντοπισμού από αντιϊκά προγράμματα.
  • Ανέλιξη δικαιωμάτων (privilege escalation) σε Linux και Windows. Rooting σε λειτουργικά συστήματα κινητής τηλεφωνίας (IOS και Android).
  • Ανάλυση πηγαίου κώδικα. Τεχνικές Fuzzing για αυτοματοποιημένη εύρεση λογικών σφαλμάτων και ευπαθειών λογισμικού.
  • Σύγχρονες τεχνικές εκμετάλλευσης ευπαθειών λογισμικού. Επιθέσεις Return to Libc, heap overflows, integer overflows. Σύγχρονες τεχνικές προστασίας στα λειτουργικά συστήματα.
  • Εκτίμηση αδυναμιών και έλεγχος ασφάλειας (Vulnerability assessment and Penetration testing). Social Engineering.
  • Chris Anley, John Heasman, Felix Lindner, Gerardo Richarte (2007): The Shellcoder’s Handbook, Discovering and Exploiting Security Holes Publisher: Wiley.
  • Jon Erickson (2008): Hacking, The Art of Exploitation, 2nd Edition, Publisher: No Starch Press.
  • Σημειώσεις διδάσκοντα.

 


10K students