Εξέλιξη Κομματιού
Ημέρα 1
Ασφάλεια IT και συμπληρωματική κωδικοποίηση
- Φύση της ασφάλειας
- Έννοιες σχετικές με την ασφάλεια IT
- Ορισμός κινδύνου
- Διάφορες πτυχές της ασφάλειας IT
- Απαιτήσεις διαφόρων εφαρμογών και γιατρικών πεδίων
- Ασφάλεια IT vs. συμπληρωματική κωδικοποίηση
-
Από τα ελλείψεις προς τους botnets και την κυβερνοκriminaliteit
- Φύση των ελλείψεων ασφάλειας
- Αιτίες δυσκολίας
- Από μια λογισμική που υφίσταται επίθεση σε αποσκοπιμένες επιθέσεις
-
Ταξινόμηση των κλάδων ασφάλειας
- Taxonomy του Landwehr
- The Seven Pernicious Kingdoms
- OWASP Top Ten 2013
- Σύγκριση OWASP Top Ten 2003 - 2013
Εισαγωγή στο Microsoft® Security Development Lifecycle (SDL)
- Ημερολόγιο
-
Εφαρμογές υπό επίθεση...
- Περίβλεψη κυβερνοκriminaliteit
- Οι επιθέσεις εστιάζουν στις εφαρμογές
- Τα περισσότερα κλίμακες υπάρχουν σε μικρότερες εφαρμογές ISV
-
Πηγές του Microsoft SDL...
- Χρονολογία ασφάλειας στο Microsoft...
- Ποιες εφαρμογές υποχρεώνονται να ακολουθήσουν το SDL;
-
Microsoft Security Development Lifecycle (SDL)
- Microsoft Security Development Lifecycle (SDL)
- Προ-Security Requirements: Κατάρτιση σε ασφάλεια
- Φάση Α: Απαιτήσεις
- Φάση Β: Σχεδίαση
- Φάση Γ: Υλοποίηση
- Φάση Δ: Εξέταση
- Φάση Ε: Έκδοση – Σχέδιο αντίδρασης
- Φάση Ε: Έκδοση – Τελική εξέταση ασφάλειας
- Φάση Ε: Έκδοση – Αρχειοθέτηση
- Μετά-Security Requirement: Αντίδραση
- SDL Process Guidance for LOB Apps
- SDL Guidance for Agile Methodologies
- Η ασφαλής ανάπτυξη λογισμικού χρειάζεται βελτίωση διαδικασίας
Συμπληρωματικά πριντίπια σχεδίασης
-
Επιφάνεια αποκάλυψης
- Μείωση της επιφάνειας αποκάλυψης
- Επιφάνεια αποκάλυψης – παράδειγμα
- Ανάλυση επιφάνειας αποκάλυψης
- Μείωση της επιφάνειας αποκάλυψης – παραδείγματα
-
Προσωπική Δεδομένα
- Προσωπικά δεδομένα
- Κατανόηση των συμπεριφορών και των ανησυχιών των εφαρμογών
-
Ασφάλεια σε βάθος
- SDL Core Principle: Security In Depth
- Ασφάλεια σε βάθος – παράδειγμα
-
Πρίντιπιο ελάχιστης δικαιώματος χρήσης
- Ελάχιστη δικαιώματος χρήσης – παράδειγμα
-
Ασφαλείς καθορισμένες συστάσεις
- Ασφαλείς καθορισμένες συστάσεις – παραδείγματα
Συμπληρωματικά πριντίπια υλοποίησης
- Ημερολόγιο
- Microsoft Security Development Lifecycle (SDL)
-
Βασικές πληροφορίες buffer overflow
- Intel 80x86 Processors – κύρια μνήμη
- Το layout του χώρου μνήμης
- Η μηχανή κλήσης συνάρτησης σε C/C++ σε x86
- Τοπικές μεταβλητές και το frame stack
-
Stack overflow
- Buffer overflow στον stack
- Ασκήσεις – εισαγωγή
- Ασκηση BOFIntro
- Ασκηση BOFIntro – καθορισμός του layout stack
- Ασκηση BOFIntro – απλή εκμετάλλευση
-
Επιβεβαίωση εισόδου
- Έννοιες επιβεβαίωσης εισόδου
-
Προβλήματα ακέραιων αριθμών
- Απεικόνιση αρνητικών ακέραιων αριθμών
- Πλήρωση ακέραιων αριθμών
- Πλήρωση αριθμητικής – προσδοκία για το αποτέλεσμα!
- Ασκηση IntOverflow
- Τι είναι το Math.Abs(int.MinValue)?
-
Πρόληψη προβλημάτων ακέραιων αριθμών
- Πρόληψη προβλημάτων ακέραιων αριθμών
- Εξασφάλιση πλήρωσης αριθμητικής – πρόσθεση
- Εξασφάλιση πλήρωσης αριθμητικής – πολλαπλασιασμός
- Ανίχνευση πλήρωσης με το keyword checked σε C#
- Ασκηση – Χρήση του keyword checked σε C#
- Εξαίρεσεις που ενισχύονται από πλήρωση σε C#
-
Περίπτωση μελέτης –Πλήρωση ακέραιου σε .NET
- Πραγματικό πρόβλημα πλήρωσης ακέραιου υποχρεωτικό χρησιμό
- Εκμετάλλευση του προβλήματος πλήρωσης ακέραιου
-
Πρόβλημα περιήγησης μεταξύ παθών (path traversal)
- Πρόληψη του προβλήματος path traversal
Ημέρα 2
Συμπληρωματικά πριντίπια υλοποίησης
-
Injection
- Τυπικές μέθοδοι επίθεσης SQL injection
- Αόρατη και χρονοβάση περίπτωση SQL injection
- Μέθοδοι προστασίας από SQL injection
- Command injection
-
Ανεπαρκής πιστοποίηση - διαχείριση κωδικών
- Ασκηση – Αδυναμία hashed κωδικών υποστήριξης
- Διαχείριση και αποθήκευση κωδικών πρόσβασης
- Ειδικά hash algorithms για την αποθήκευση κωδικών υποστήριξης
-
Cross-Site Scripting (XSS)
- Cross-Site Scripting (XSS)
- CSS injection
- Εκμετάλλευση: injection μέσω άλλων HTML tags
- XSS πρόληψη
-
Απουσία ελέγχου και συντονισμού σε μέγιστο επίπεδο λειτουργίας
- Φίλτρο ανάβοητων προσφόρων αρχείων
-
Πρακτική κρυπτογράφηση
- Αξιοπιστία με συμμετρική κρυπτογράφηση
- Συμμετρικά algorithms κρυπτογράφησης
- Block ciphers – modes of operation
- Hash ή message digest
- Αλγόριθμοι hash
- Message Authentication Code (MAC)
- Αξιοπιστία και αυθεντικότητα με συμμετρική κλειδιά
- Αξιοπιστία με public-key encryption
- Κανόνας του προσχώρημα – κατοχή ιδιωτικού κλειδιού
- Τυπικά λάθη στην διαχείριση κωδικών υποστήριξης
- Ασκηση – Hard coded passwords
- Συμπέρασμα
Ασφάλεια εξέτασης πριντίπιοι
- Συναρτητική δοκιμή vs. ασφάλεια δοκιμή
- Επιθετικές κωδικοποίησης
- Προτεραιότητα
- Ασφάλεια δοκιμή στο SDLC
- Βήματα του προγράμματος (risk analysis)
-
Περίβλεψη και συσσωρεύση πληροφοριών
- Συμφέροντα
- Πόροι
- Η επιφάνεια αποκάλυψης
- Ασφάλεια στόχοι για δοκιμή
-
Μοντέλο απειλών
- Μοντέλο απειλών
- Profiles επιθέτη
- Μοντέλο απειλών με βάση τα δέντρα απειλών
- Μοντέλο απειλών με βάση misuse/abuse cases
- Misuse/abuse cases – παράδειγμα διαχείρισης ιδρυμάτων
- STRIDE per element approach to threat modeling – MS SDL
- Καθορισμός στόχων ασφάλειας
- Diagramming – παραδείγματα DFD elements
- Data flow diagram – παράδειγμα
- Αποκολάψιση απειλών – STRIDE και DFD elements του MS SDL
- Ανάλυση κινδύνων – καταταξία απειλών
- Το μοντέλο DREAD για την ταξινόμηση απειλών/κινδύνων
-
Τεχνικές και εργαλεία ασφάλειας δοκιμή
- Γενικές προσεγγίσεις δοκιμής
- Τεχνικές για την κάθε φάση του SDLC
-
Εξέταση κώδικα
- Εξέταση κώδικα για την ασφάλεια λογισμικού
- Taint analysis
- Ερμηνείαι
-
Στατική ανάλυση κώδικα
- Στατική ανάλυση κώδικα
- Ασκηση – Χρήση σε εργαλεία στατικής ανάλυσης κώδικα
-
Έλεγχος της υλοποίησης
- Αντικειμενικός ελεγχός κατά τη διαδικασία λειτουργίας
- Αντικειμενική vs. αυτοματική δοκιμή ασφάλειας
- Επίθεση περιβόησης (penetration testing)
- Δοκιμή ενδυνάμωσης
-
Αυτόματη δοκιμή ασφάλειας - fuzzing
- Αυτόματη δοκιμή ασφάλειας - fuzzing
- Προκλήσεις του fuzzing
-
Scanner απειλών web πλατφόρμων
- Ασκηση – Χρήση scanner απειλών
-
Έλεγχος και ενδυνάμωση του περιβάλλοντος
- Common Vulnerability Scoring System – CVSS
- Scanner απειλών
- Δημόσιες βάσεις δεδομένων
-
Περίπτωση μελέτης – Forms Authentication Bypass
- NULL byte termination vulnerability
- Το πρόβλημα Forms Authentication Bypass στον κώδικα
- Εκμετάλλευση του Forms Authentication Bypass
Πηγές γνώσεων
- Πηγές ασφαλούς κωδικοποίησης – starter kit
- Βάσεις δεδομένων απειλών
- .NET secure coding guidelines στο MSDN
- .NET secure coding cheat sheets
- Συστειμένα βιβλία – .NET και ASP.NET
Σχόλια (5)
Πολλά παραδείγματα για κάθε μονάδα και εξαιρετική γνώση του εκπαιδευτή.
Sebastian - BRD
Κομμάτι - Secure Developer Java (Inc OWASP)
Μηχανική Μετάφραση
Μονάδα 3 Εφαρμογές Επιθέσεις και Εκμετάλλευσης, XSS, SQL injection Μονάδα 4 Επιθέσεις σε Σέρβερ και Εκμετάλλευση, DOS, BOF
Tshifhiwa - Vodacom
Κομμάτι - How to Write Secure Code
Μηχανική Μετάφραση
Γενικές πληροφορίες για το μάθημα
Paulo Gouveia - EID
Κομμάτι - C/C++ Secure Coding
Μηχανική Μετάφραση
Η γνώση του εκπαιδευτή στο θέμα ήταν εξαιρετική και η διάταξη των διαλέξεων, η οποία επέτρεψε στο κοινό να ακολουθεί τις παραδείγματα, βοήθησε πραγματικά να επιβεβαιωθεί η γνώση, κατά το πλαίσιο του απλού κάθισμα και ακρόασης.
Jack Allan - RSM UK Management Ltd.
Κομμάτι - Secure Developer .NET (Inc OWASP)
Μηχανική Μετάφραση
Τίποτα, ήταν τέλειο.
Zola Madolo - Vodacom
Κομμάτι - Android Security
Μηχανική Μετάφραση