Επικοινωνήστε μαζί μας

Εξέλιξη Κομματιού

Ημέρα 1

Ασφάλεια πληροφοριακών συστημάτων και ασφαλής προγραμματισμός

  • Φύση της ασφάλειας
  • Όροι σχετικοί με την ασφάλεια πληροφοριακών συστημάτων
  • Ορισμός του κινδύνου
  • Διαφορετικές πτυχές της ασφάλειας πληροφοριακών συστημάτων
  • Απαιτήσεις διαφορετικών περιοχών εφαρμογών
  • Ασφάλεια πληροφοριακών συστημάτων έναντι ασφαλούς προγραμματισμού
  • Από τις ευπάθειες στα botnet και το κυβερνοέγκλημα
    • Φύση των ελαττωμάτων ασφαλείας
    • Λόγοι δυσκολίας
    • Από έναν μολυσμένο υπολογιστή σε στοχευμένες επιθέσεις
  • Ταξινόμηση ελαττωμάτων ασφαλείας
    • Η ταξινομία του Landwehr
    • Τα Επτά Ολέθρια Βασίλεια
    • OWASP Top Ten 2013
    • Σύγκριση OWASP Top Ten 2003 – 2013

Εισαγωγή στον Microsoft® Security Development Lifecycle (SDL)

  • Ατζέντα
  • Εφαρμογές υπό επίθεση...
    • Εξέλιξη του κυβερνοεγκλήματος
    • Οι επιθέσεις επικεντρώνονται στις εφαρμογές
    • Οι περισσότερες ευπάθειες βρίσκονται σε μικρότερες εφαρμογές ISV
  • Προέλευση του Microsoft SDL...
    • Χρονολόγιο ασφάλειας στη Microsoft...
    • Ποιες εφαρμογές απαιτείται να ακολουθούν το SDL;
  • Microsoft Security Development Lifecycle (SDL)
    • Microsoft Security Development Lifecycle (SDL)
    • Απαιτήσεις πριν από το SDL: Εκπαίδευση ασφαλείας
    • Φάση Πρώτη: Απαιτήσεις
    • Φάση Δεύτερη: Σχεδιασμός
    • Φάση Τρίτη: Υλοποίηση
    • Φάση Τέταρτη: Επαλήθευση
    • Φάση Πέμπτη: Κυκλοφορία – Σχέδιο Ανταπόκρισης
    • Φάση Πέμπτη: Κυκλοφορία – Τελική Εξέταση Ασφαλείας
    • Φάση Πέμπτη: Κυκλοφορία – Αρχειοθέτηση
    • Απαίτηση μετά το SDL: Ανταπόκριση
    • Οδηγίες Διαδικασίας SDL για Εφαρμογές LOB
    • Οδηγίες SDL για Ευέλικτες Μεθοδολογίες (Agile)
    • Η Ασφαλής Ανάπτυξη Λογισμικού Απαιτεί Βελτίωση Διαδικασιών

Αρχές ασφαλούς σχεδιασμού

  • Επιφάνεια επίθεσης
    • Μείωση επιφάνειας επίθεσης
    • Επιφάνεια επίθεσης – ένα παράδειγμα
    • Ανάλυση επιφάνειας επίθεσης
    • Μείωση επιφάνειας επίθεσης – παραδείγματα
  • Απόρρητο
    • Απόρρητο
    • Κατανόηση Συμπεριφορών και Ανησυχιών Εφαρμογών
  • Άμυνα σε βάθος
    • Βασική Αρχή SDL: Άμυνα σε Βάθος
    • Άμυνα σε βάθος – παράδειγμα
  • Αρχή ελάχιστων προνομίων
    • Ελάχιστα προνόμια – παράδειγμα
  • Ασφαλείς προεπιλογές
    • Ασφαλείς προεπιλογές – παραδείγματα

Αρχές ασφαλούς υλοποίησης

  • Ατζέντα
  • Microsoft Security Development Lifecycle (SDL)
  • Βασικά στοιχεία υπερχείλισης buffer
    • Επεξεργαστές Intel 80x86 – κύριοι καταχωρητές
    • Η διάταξη διευθύνσεων μνήμης
    • Ο μηχανισμός κλήσης συναρτήσεων σε C/C++ σε x86
    • Οι τοπικές μεταβλητές και το πλαίσιο στοίβας
    • Υπερχείλιση στοίβας
      • Υπερχείλιση buffer στη στοίβα
      • Ασκήσεις – εισαγωγή
      • Άσκηση BOFIntro
      • Άσκηση BOFIntro – προσδιορισμός της διάταξης της στοίβας
      • Άσκηση BOFIntro – ένα απλό exploit
  • Επικύρωση εισόδου
    • Έννοιες επικύρωσης εισόδου
    • Προβλήματα ακεραίων
      • Αναπαράσταση αρνητικών ακεραίων
      • Υπερχείλιση ακεραίου
      • Αριθμητική υπερχείλιση – μαντέψτε την έξοδο!
      • Άσκηση IntOverflow
      • Ποια είναι η τιμή του Math.Abs(int.MinValue);
    • Μετριασμός προβλημάτων ακεραίων
      • Μετριασμός προβλημάτων ακεραίων
      • Αποφυγή αριθμητικής υπερχείλισης – πρόσθεση
      • Αποφυγή αριθμητικής υπερχείλισης – πολλαπλασιασμός
      • Εντοπισμός υπερχείλισης με τη λέξη-κλειδί checked σε C#
      • Άσκηση – Χρήση της λέξης-κλειδιού checked σε C#
      • Εξαιρέσεις που ενεργοποιούνται από υπερχειλίσεις σε C#
    • Μελέτη περίπτωσης – Υπερχείλιση ακεραίου σε .NET
      • Μια πραγματική ευπάθεια υπερχείλισης ακεραίου
      • Εκμετάλλευση της ευπάθειας υπερχείλισης ακεραίου
    • Ευπάθεια διέλευσης διαδρομής (path traversal)
      • Μετριασμός διέλευσης διαδρομής

Ημέρα 2

Αρχές ασφαλούς υλοποίησης

  • Έγχυση (Injection)
    • Τυπικές μέθοδοι επίθεσης SQL Injection
    • Τυφλό και βασισμένο στον χρόνο SQL injection
    • Μέθοδοι προστασίας από SQL Injection
    • Έγχυση εντολών (Command injection)
  • Σπασμένη αυθεντικοποίηση - διαχείριση κωδικών πρόσβασης
    • Άσκηση – Αδυναμία κατακερματισμένων κωδικών πρόσβασης
    • Διαχείριση και αποθήκευση κωδικών πρόσβασης
    • Ειδικοί αλγόριθμοι κατακερματισμού για αποθήκευση κωδικών πρόσβασης
  • Cross-Site Scripting (XSS)
    • Cross-Site Scripting (XSS)
    • Έγχυση CSS
    • Εκμετάλλευση: έγχυση μέσω άλλων ετικετών HTML
    • Πρόληψη XSS
  • Έλλειψη ελέγχου πρόσβασης σε επίπεδο λειτουργίας
    • Φιλτράρισμα μεταφορτώσεων αρχείων
  • Πρακτική κρυπτογραφία
    • Παροχή εμπιστευτικότητας με συμμετρική κρυπτογραφία
    • Συμμετρικοί αλγόριθμοι κρυπτογράφησης
    • Κρυπτογράφηση κατά μπλοκ – τρόποι λειτουργίας
    • Κατακερματισμός ή περίληψη μηνύματος
    • Αλγόριθμοι κατακερματισμού
    • Κώδικας Αυθεντικοποίησης Μηνύματος (MAC)
    • Παροχή ακεραιότητας και αυθεντικότητας με συμμετρικό κλειδί
    • Παροχή εμπιστευτικότητας με κρυπτογράφηση δημόσιου κλειδιού
    • Κανόνας – κατοχή ιδιωτικού κλειδιού
    • Τυπικά λάθη στη διαχείριση κωδικών πρόσβασης
    • Άσκηση – Σκληρά κωδικοποιημένοι κωδικοί πρόσβασης
    • Συμπέρασμα

Αρχές ασφαλούς επαλήθευσης

  • Λειτουργικός έλεγχος έναντι ελέγχου ασφαλείας
  • Ευπάθειες ασφαλείας
  • Ιεράρχηση προτεραιοτήτων
  • Έλεγχος ασφαλείας στον κύκλο ζωής ανάπτυξης λογισμικού (SDLC)
  • Βήματα σχεδιασμού ελέγχου (ανάλυση κινδύνου)
  • Οριοθέτηση και συλλογή πληροφοριών
    • Ενδιαφερόμενα μέρη
    • Περιουσιακά στοιχεία
    • Η επιφάνεια επίθεσης
    • Στόχοι ασφαλείας για τον έλεγχο
  • Μοντελοποίηση απειλών
    • Μοντελοποίηση απειλών
    • Προφίλ επιτιθέμενων
    • Μοντελοποίηση απειλών με βάση δέντρα επίθεσης
    • Μοντελοποίηση απειλών με βάση περιπτώσεις κακής χρήσης/κατάχρησης
    • Περιπτώσεις κακής χρήσης/κατάχρησης – ένα απλό παράδειγμα διαδικτυακού καταστήματος
    • Προσέγγιση STRIDE ανά στοιχείο για μοντελοποίηση απειλών – MS SDL
    • Προσδιορισμός στόχων ασφαλείας
    • Διαγραμματική απεικόνιση – παραδείγματα στοιχείων DFD
    • Διάγραμμα ροής δεδομένων – παράδειγμα
    • Απαρίθμηση απειλών – στοιχεία STRIDE και DFD του MS SDL
    • Ανάλυση κινδύνου – ταξινόμηση απειλών
    • Το μοντέλο κατάταξης απειλών/κινδύνων DREAD
  • Τεχνικές και εργαλεία ελέγχου ασφαλείας
    • Γενικές προσεγγίσεις ελέγχου
    • Τεχνικές για διάφορα βήματα του SDLC
  • Εξέταση κώδικα
    • Εξέταση κώδικα για ασφάλεια λογισμικού
    • Ανάλυση μόλυνσης (Taint analysis)
    • Ευρετικές μέθοδοι
  • Στατική ανάλυση κώδικα
    • Στατική ανάλυση κώδικα
    • Άσκηση – Χρήση εργαλείων στατικής ανάλυσης κώδικα
  • Έλεγχος της υλοποίησης
    • Χειροκίνητη επαλήθευση κατά τον χρόνο εκτέλεσης
    • Χειροκίνητος έναντι αυτοματοποιημένου ελέγχου ασφαλείας
    • Έλεγχος διείσδυσης
    • Δοκιμές καταπόνησης
  • Fuzzing
    • Αυτοματοποιημένος έλεγχος ασφαλείας - fuzzing
    • Προκλήσεις του fuzzing
  • Σαρωτές ευπαθειών ιστού
    • Άσκηση – Χρήση σαρωτή ευπαθειών
  • Έλεγχος και ενίσχυση του περιβάλλοντος
    • Κοινό Σύστημα Βαθμολόγησης Ευπαθειών – CVSS
    • Σαρωτές ευπαθειών
    • Δημόσιες βάσεις δεδομένων
  • Μελέτη περίπτωσης – Παράκαμψη Αυθεντικοποίησης Φορμών
    • Ευπάθεια τερματισμού με NULL byte
    • Η ευπάθεια Παράκαμψης Αυθεντικοποίησης Φορμών στον κώδικα
    • Εκμετάλλευση της Παράκαμψης Αυθεντικοποίησης Φορμών

Πηγές γνώσης

  • Πηγές ασφαλούς προγραμματισμού – ένα αρχικό πακέτο
  • Βάσεις δεδομένων ευπαθειών
  • Οδηγίες ασφαλούς προγραμματισμού .NET στο MSDN
  • Φύλλα αναφοράς ασφαλούς προγραμματισμού .NET
  • Προτεινόμενα βιβλία – .NET και ASP.NET
 14 Ώρες

Αριθμός συμμετέχοντων


Τιμή ανά συμμετέχοντα

Σχόλια (3)

Εφεξής Μαθήματα

Σχετικές Κατηγορίες