Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Έλεγχος Ευπαθειών Web Εφαρμογών Αξιωματικός Έρευνας Πληροφορικής

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Έλεγχος Ευπαθειών Web Εφαρμογών Αξιωματικός Έρευνας Πληροφορικής"— Μεταγράφημα παρουσίασης:

1 Έλεγχος Ευπαθειών Web Εφαρμογών Αξιωματικός Έρευνας Πληροφορικής
Χρήστος Παπακρίβος Αξιωματικός Έρευνας Πληροφορικής Στρατού Ξηράς Έλεγχος Ευπαθειών Web Εφαρμογών

2 ΠΕΡΙΕΧΟΜΕΝΑ Ιστορική Αναδρομή Ορισμός Αρχιτεκτονική Web Εφαρμογών
Αδυναμίες και Απειλές Ασφάλεια Web Εφαρμογών Εργαλεία Ελέγχου Ασφάλειας OWASP WebScarab Διάφοροι Έλεγχοι Συμπεράσματα Η παρουσίαση θα περιλάβει τα περιεχόμενα που φαίνονται στη διαφάνεια. Έλεγχος Ευπαθειών Web Εφαρμογών

3 Ιστορική Αναδρομή Εξέλιξη Χρόνος Εμφάνιση ASP, JSP, PHP
Εμφάνιση Server-side scripts Client-Server Προσέγγιση Στατικές Σελίδες Ιστορική Αναδρομή Τα πρώτα χρόνια του WEB, τα web sites αποτελούνταν από εφαρμογές που περιόριζαν την αλληλεπίδραση τους με τους χρήστες, λόγω του ότι ουσιαστικά αποτελούνταν από σύνολα στατικών σελίδων HTML. Αργότερα προς τα τέλη της δεκαετίας του ’90, έχουμε την εμφάνιση της client-server προσέγγισης, όπου κάθε εφαρμογή είχε το δικό της client πρόγραμμα που εξυπηρετούνταν από αντίστοιχο interface χρήστη και έπρεπε να εγκατασταθεί ξεχωριστά σε κάθε Η/Υ χρήστη. Έτσι όμως, μια ενημέρωση/αλλαγή στην εφαρμογή του server, απαιτούσε και μια αντίστοιχη ενημέρωση της εφαρμογής σε κάθε client, πράγμα που αυξάνει το κόστος λειτουργίας της. Τη δεκαετία του ’90 άρθηκε αυτός ο περιορισμός, με την διαμόρφωση των web servers κατά τέτοιο τρόπο, ώστε να μπορούν να επικοινωνούν μέσω server-side scripts. Το server-side scripting είναι μια web server τεχνολογία, όπου το ερώτημα του χρήστη πραγματοποιείται με την εκτέλεση ενός script κατευθείαν στο web server όπου εκεί δημιουργούνται δυναμικά HTML σελίδες. Με τον τρόπο αυτό δημιουργούνται interactive web sites, που διασυνδέονται με βάσεις δεδομένων. Κατόπιν έκαναν την εμφάνιση τους γλώσσες όπως είναι η ASP, JSP και PHP, οι οποίες χρησιμοποιούνται Αρχικά, οι εφαρμογές ήταν απλές και βασιζόταν σε κάποιες φόρμες χρηστών και εφαρμογές αναζήτησης. Σήμερα όμως έχουν εξελιχθεί σε μοντέρνες εφαρμογές συνήθως γραμμένες σε Java (ή ισοδύναμες γλώσσες), που τρέχουν πάνω σε κατανεμημένους application servers οι οποίοι συνδέονται με σύνθετες και πολλαπλές πηγές πληροφοριών. Χρόνος Έλεγχος Ευπαθειών Web Εφαρμογών

4 Ορισμός προγράμματα ή σύνολα προγραμμάτων που σχεδιάζονται για τελικούς χρήστες, οι οποίοι πάνω από δίκτυα Internet ή Intranet, έχουν πρόσβαση σε αυτές μέσω του web. Ορισμός Έτσι σήμερα, οι web εφαρμογές παράγουν δυναμικά ένα σύνολο Web Documents σε μορφή που υποστηρίζονται από όλους τους browsers. Περιλαμβάνουν client-side scripting, τα οποία προσφέρουν δυναμικά στοιχεία στο interface του χρήστη. Ουσιαστικά, οι web εφαρμογές προσφέρουν ξεχωριστές σελίδες στο χρήστη σαν στατικά documents, αλλά η ακολουθία αυτή των σελίδων παρέχει μια αλληλεπίδραση στους χρήστες. Μπορεί να δοθεί ο ορισμός τους ως εξής: «προγράμματα ή σύνολα προγραμμάτων που σχεδιάζονται για end users, οι οποίοι πάνω από δίκτυα Internet ή Intranet, έχουν πρόσβαση σε αυτές μέσω του web.» Η ικανότητα αναβάθμισης και διατήρησης τους, χωρίς διαμοιρασμό και εγκατάσταση λογισμικού σε χιλιάδες Η/Υ – πελάτες, είναι το κλειδί της μεγάλης επέκτασης τους. Η χρήση τους είναι πολύ συνηθισμένη για υλοποίηση webmail, online πωλήσεις/αγορές και γενικά συναλλαγές, chat rooms, weblogs κλπ. Να εξηγήσουμε εδώ τη διαφορά του web page και web document: Το Web document: χρησιμοποιεί όπως και το web page το HTTP(S), αλλά και οποιοδήποτε άλλο πρωτόκολλο επικοινωνίας internet το format του είναι HTML ή οποιοσδήποτε άλλος τύπος περιεχομένου όχι ASCII, όπως ΜΙΜΕ (Multipurpose Internet Mail Extensions) (γραφικά, ήχο και αρχεία video) το περιεχόμενο του μπορεί να είναι μια απλή σελίδα HTML ή ένα attachment ή οτιδήποτε άλλο Μπορεί να το δει κάποιος μέσω του browser ή οποιαδήποτε άλλης εφαρμογής ΜΙΜΕ. Έλεγχος Ευπαθειών Web Εφαρμογών

5 N-Tier Application Architecture (Ν-Βαθμίδες Αρχιτεκτονικής Εφαρμογών)
Η αρχιτεκτονική των Web Εφαρμογών στηρίζεται στην πολυεπίπεδη προσέγγιση. Υπάρχουν δηλαδή διακριτά επίπεδα-βαθμίδες, που διευκολύνουν τον σχεδιασμό τους αλλά και τη λειτουργία τους: Στο Data Tier ανήκει το Database Management System (DBMS) – που μπορεί να είναι SQL Server, Access, Oracle, MySql, αρχεία απλού κειμένου. Αυτό το επίπεδο σχετίζεται μόνο με την αποθήκευση των δεδομένων και την ανάκτηση τους. Δεν ασχολείται με το πώς εμείς χειριζόμαστε ή παρέχουμε τα δεδομένα. Το Data Access Tier είναι αυτό στο οποίο θα γράψουμε κάποιες γενικές μεθόδους, για να μπορούμε να συνδεθούμε με τα δεδομένα. Π.χ. θα γράψουμε μια μέθοδο για να δημιουργήσουμε και να ανοίξουμε μια σύνδεση αντικειμένου, και άλλη μια μέθοδο για να δημιουργήσουμε και να χρησιμοποιήσουμε μια Εντολή αντικειμένου, μαζί με μια αποθηκευμένη διαδικασία. Είναι δηλαδή απλά ένα interface επικοινωνίας με τη βάση δεδομένων. Το Business Tier είναι βασικά το μυαλό της εφαρμογής. Περιέχει στοιχεία όπως κανόνες επιχειρησιακούς, χειρισμού των δεδομένων, κλπ. Π.χ. αν η εφαρμογή είναι μια μηχανή αναζήτησης, εδώ θα θέσουμε τα κριτήρια με τα οποία θα γίνεται το ταίριασμα των στοιχείων του αποτελέσματος με τα keywords του θέτει ο χρήστης. Το Presentation Logic Tier αποτελείται από τα στάνταρντ ASP αρχεία, φόρμες των Windows, κλπ. Είναι το επίπεδο που παρέχει ένα interface στον τελικό χρήστη της εφαρμογής. Δηλαδή, λειτουργεί με τα αποτελέσματα/εξόδους του Business Tier, έτσι ώστε να τα μετατρέψει σε κάτι χρήσιμο και ευανάγνωστο στο χρήστη. Τα Proxy Tier ενεργεί εκ μέρους του Distributed Logic (ή των αιτημάτων του χρήστη), για να παρέχει πρόσβαση στο επόμενο επίπεδο, το Business Tier. Γιατί όμως γίνεται αυτό; Επειδή διευκολύνει την ανάγκη για κατανεμημένη επεξεργασία. Εδώ χρησιμοποιούμε το Simple Object Access Protocol (SOAP). Είναι ένα προτόκολλο για απομακρυσμένη πρόσβαση αντικειμένων. Παρέχει ένα τρόπο επικοινωνίας μεταξύ δύο μηχανών. Η παρουσίαση Presentation στον χρήστη (των Windows forms, κλπ.) επικοινωνεί απευθείας με το Business Tier. Ένα καλό παράδειγμα είναι οι εφαρμογές πάνω από ένα Local Area Network (LAN). Αυτή είναι μια τυπική, όχι κατανεμημένη, client-server application. Επίσης βλέπουμε ότι εκτείνεται και πάνω από το Distributed Logic layer. Αυτό δείχνει πως μπορούμε να χρησιμοποιήσουμε το SOAP (ή κάποιο άλλο παρόμοιο είδος προτοκόλλου) στον πελάτη, ώστε να επικοινωνεί με το server και να μετατρέπονται τα αιτήματα του σε αιτήματα κατανοητά από τον απλό χρήστη. Έλεγχος Ευπαθειών Web Εφαρμογών

6 N-Tier Application Architecture (Ν-Βαθμίδες Αρχιτεκτονικής Εφαρμογών)
Πλεονεκτήματα: Δημιουργία ευέλικτων και εύχρηστων εφαρμογών Αλλαγή ή προσθήκη επιπέδων N-Tier Application Architecture (Ν-Βαθμίδες Αρχιτεκτονικής Εφαρμογών) ΠΛΕΟΝΕΚΤΗΜΑΤΑ: Η αρχιτεκτονική αυτή παρέχει ένα μοντέλο στους σχεδιαστές εφαρμογών, τέτοιο ώστε να δημιουργούν ευέλικτες και εύχρηστες εφαρμογές. Με τη διάσπαση μιας εφαρμογής σε βαθμίδες, οι σχεδιαστές μπορούν να αλλάξουν ή να προσθέσουν ένα συγκεκριμένο επίπεδο, χωρίς να απαιτείται η δημιουργία της εφαρμογής από την αρχή αν αποφασίσουν να αλλάξουν τεχνολογία ή να την αναβαθμίσουν. Το «N-», ο αριθμός των βαθμίδων, εξαρτάται από τον σχεδιαστή της εκάστοτε εφαρμογής. Έλεγχος Ευπαθειών Web Εφαρμογών

7 N-Tier Application Architecture (Ν-Βαθμίδες Αρχιτεκτονικής Εφαρμογών)
Τυπικά, μια Web Εφαρμογή στην πιο απλή μορφή της, δομείται από τρία επίπεδα-βαθμίδες: Ένα Web Browser Ένα Web Server με τεχνολογία δυναμικού web περιεχομένου Μια Βάση Δεδομένων Τυπικά, μια Web Εφαρμογή στην πιο απλή μορφή της, δομείται από τρία επίπεδα-βαθμίδες: Ένα web browser Μια μηχανή (web server) που χρησιμοποιεί τεχνολογία δυναμικού web περιεχομένου (ASP, ASP.NET, CGI, JSP/JAVA, PHP, Python, κλπ.) Μια Βάση Δεδομένων Και η λειτουργία της έχει ως εξής: Ο web browser στέλνει αιτήσεις στο web server, οι οποίες αφού πάρουν την κατάλληλη μορφή αιτημάτων στέλνονται στη βάση δεδομένων, από όπου εξάγονται τα δεδομένα και επιστρέφουν στο web server, ο οποίος τα μετατρέπει σε μορφή κατανοητή και στέλνονται πίσω στο web browser. Έλεγχος Ευπαθειών Web Εφαρμογών

8 N-Tier Application Architecture (Ν-Βαθμίδες Αρχιτεκτονικής Εφαρμογών)
Σχηματική παράσταση του λογισμικού web εφαρμογών: «κάθεται» πάνω στο λογισμικό του συστήματος δεν μπορεί να λειτουργήσει χωρίς το ΛΣ και βασικά προγράμματα του συστήματος Σχηματική παράσταση του λογισμικού web εφαρμογών: «κάθεται» πάνω στο λογισμικό του συστήματος δεν μπορεί να λειτουργήσει χωρίς το ΛΣ και βασικά προγράμματα του συστήματος Έλεγχος Ευπαθειών Web Εφαρμογών

9 Εξέλιξη των Web Εφαρμογών
Εξέλιξη των εφαρμογών όσον αφορά στο χρόνο και σε σχέση με την αλληλεπίδραση των χρηστών: Στην αρχή βλέπουμε τις στατικές HTML σελίδες, κατόπιν εμφανίζονται το Common Gateway Interface (CGI) καθώς και ActiveX applets που κάνουν πιο δυναμικές τις σελίδες. Μετέπειτα έχουμε τη δημιουργία των εφαρμογών με γλώσσες όπως είναι ASP, JSP, PHP και Flash, που κάνουν πιο ευχάριστες τις εφαρμογές με όμορφες εικόνες με αρκετή κίνηση (έτσι είναι φτιαγμένες οι περισσότερες εφαρμογές σήμερα). Κατόπιν αρχίζει η χρήση των WEB SERVICES και της τεχνολογίας ASP.NET και δημιουργούνται πλέον μεγάλες εφαρμογές. Και η εξέλιξη συνεχίζεται με τη χρήση του AJAX (Asynchronous JavaScript and XML), το οποίο περιγράφει μια νέα προσέγγιση χρησιμοποίησης ενός αριθμού υπαρχόντων τεχνολογιών, που περιλαμβάνουν HTML ή XHTML, JavaScript, the Document Object Model, XML, XSLT κλπ. Όταν αυτές οι τεχνολογίες συνδιάζονται στο μοντέλο Ajax, οι Web applications είναι ικανές να κάνουν γρήγορες και ευπαξητικές ενημερώσεις στο user interface, ξαναφορτώνοντας ολόκληρη τη σελίδα του browser. Έλεγχος Ευπαθειών Web Εφαρμογών

10 Πλεονεκτήματα Web Εφαρμογών
Είναι συμβατές με όλες τις πλατφόρμες Υπάρχει συνεχής ενημέρωση των εφαρμογών Παρέχουν αμεσότητα πρόσβασης των δεδομένων Ευκολία δοκιμής και χρήσης Μικρότερες απαιτήσεις μνήμης Λιγότερα τεχνικά προβλήματα Χαμηλότερο κόστος ΠΛΕΟΝΕΚΤΗΜΑΤΑ Web Εφαρμογών Είναι συμβατές με όλες τις πλατφόρμες (υποστηρίζουν όλα τα ΛΣ) Υπάρχει συνεχής ενημέρωση των εφαρμογών (χωρίς να απαιτείται καμιά ενέργεια από τους χρήστες) Παρέχουν αμεσότητα πρόσβασης των δεδομένων (δεν χρειάζονται εγκατάσταση και διαμόρφωση) Ευκολία δοκιμής και χρήσης (υπάρχουν δοκιμαστικές εκδόσεις, ειδικά για ακριβά λογισμικά) Μικρότερες απαιτήσεις μνήμης (από ότι τοπικά εγκατεστημένα προγράμματα) Λιγότερα τεχνικά προβλήματα (όσον αφορά το software αλλά και το hardware, και τυχόν προβλήματα που παρουσιάζονται λύνονται πολύ πιο γρήγορα από ότι αν ήταν εγκατεστημένες τοπικά) Χαμηλότερα κόστη (αφού δεν απαιτείται διανομή, τεχνική υποστήριξη και υποδομή μάρκετινγκ του λογισμικού) Έλεγχος Ευπαθειών Web Εφαρμογών

11 Πλεονεκτήματα Web Εφαρμογών
Συγκεντρωμένα δεδομένα Οι πληροφορίες είναι προσβάσιμες από περισσότερους χρήστες Η πρόσβαση των πληροφοριών είναι συνεχής Ταυτόχρονη εξυπηρέτηση πολλών χρηστών Η ανάπτυξη τους μπορεί να γίνει σε οποιαδήποτε γλώσσα ΠΛΕΟΝΕΚΤΗΜΑΤΑ Συγκεντρωμένα δεδομένα, κάτι που κάνει πιο εύκολη την αποθήκευση τους και την δημιουργία αντιγράφων ασφαλείας (εταιρίες αποθηκεύουν τα δεδομένα με σύγχρονα μέσα και μεθόδους σε server farms όπως λέγονται, μειώνοντας τον κίνδυνο απώλειας αυτών, από ότι αν ήταν τοπικά σε κάθε χρήστη) Οι πληροφορίες είναι προσβάσιμες από περισσότερους χρήστες (σε όλο τον κόσμο) Η πρόσβαση των πληροφοριών είναι συνεχής (24 ώρες το 24ώρο, 7 ημέρες την εβδομάδα) Υπάρχει ταυτόχρονη εξυπηρέτηση πολλών χρηστών Η ανάπτυξη τους μπορεί να γίνει σε οποιαδήποτε γλώσσα επιθυμούμε από τη στιγμή που δεν υπάρχουν οι περιορισμοί του ΛΣ, λόγω της ανεξαρτησίας τους από αυτό. Έλεγχος Ευπαθειών Web Εφαρμογών

12 Μειονεκτήματα Web Εφαρμογών
Η έλλειψη τυπικής σύνταξης των γλωσσών scripting Οι γλώσσες scripting είναι αργές Τα Scripts έχουν ως αποτέλεσμα μεγάλες βάσεις κώδικα Είναι δύσκολο να γραφούν μεγάλες και multi-tier εφαρμογές, σε γλώσσες scripting Οι περισσότερες γλώσσες scripting δεν υποστηρίζουν remote μεθόδους και κλήσεις web υπηρεσιών ΜΕΙΟΝΕΚΤΗΜΑΤΑ Τα μειονεκτήματα των εφαρμογών, που αναφέρονται κυρίως στο σχεδιασμό τους και στις γλώσσες που χρησιμοποιούν, είναι: Οι περισσότερες γλώσσες scripting δεν έχουν τυπική σύνταξη και δεν συμβάλλουν στην καλή προγραμματιστική μέθοδο (εννοώντας τον καλό τρόπο γραφής προγραμμάτων) Οι γλώσσες scripting είναι γενικά πιο αργές από αυτές που χρειάζονται compiler (μερικές φορές και περισσότερο από 100 φορές) Τα Scripts πολλές φορές οδηγούν σε βάσεις κώδικα που είναι δύσκολο να διαχειριστούν καθώς το μέγεθος τους αυξάνει, μειώνοντας συνεπώς την απόδοση της εφαρμογής Είναι δύσκολο (αλλά όχι αδύνατο) να γραφούν μεγάλες και multi-tier εφαρμογές σε γλώσσες scripting, διότι τα επίπεδα presentation, application and data βρίσκονται στο ίδιο μηχάνημα με αποτέλεσμα να περιορίζεται η κλιμάκωση και η ασφάλεια τους Οι περισσότερες γλώσσες scripting από τη φύση τους δεν υποστηρίζουν remote μεθόδους και κλήσεις web υπηρεσιών, πράγμα που κάνει δύσκολη την επικοινωνία με application servers και εξωτερικές web υπηρεσίες. Έλεγχος Ευπαθειών Web Εφαρμογών

13 Μειονεκτήματα Web Εφαρμογών
Όμως το σημαντικότερο μειονέκτημα των web εφαρμογών αφορά την ΑΣΦΑΛΕΙΑ, αφού σχετίζονται άμεσα με το WEB. ΜΕΙΟΝΕΚΤΗΜΑΤΑ Όμως το σημαντικότερο μειονέκτημα των web εφαρμογών αφορά την ΑΣΦΑΛΕΙΑ, αφού σχετίζονται άμεσα με το WEB. Έλεγχος Ευπαθειών Web Εφαρμογών

14 Διαφορά Web Εφαρμογών και Υπηρεσιών
Web Υπηρεσία (Web Service) είναι η ενοποίηση web εφαρμογών, πάνω από ένα δίκτυο internet. ΔΙΑΦΟΡΑ WEB ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ Ο όρος web υπηρεσία (service) περιγράφει ένα τυποποιημένο τρόπο ενοποίησης των web εφαρμογών, με τη χρήση των XML, SOAP, WSDL και UDDI προτύπων, πάνω από ένα δίκτυο internet. Η XML χρησιμοποιείται για να δείξει τη μορφή των δεδομένων, το SOAP για μεταφέρει τα δεδομένα, το WSDL για να περιγράψει τις διαθέσιμες υπηρεσίες και το UDDI για να δείξει ποιες υπηρεσίες είναι διαθέσιμες. Η XML (Extensible Markup Language) είναι σχεδιασμένη ειδικά για Web documents. Επιτρέπει στους σχεδιαστές να δημιουργήσουν τα δικά τους tags (ετικέτες), επιτρέποντας τον καθορισμό, την μεταφορά, την επικύρωση και την ερμηνεία των δεδομένων μεταξύ των διαφόρων εφαρμογών και οργανισμών. Το SOAP (Simple Object Access Protocol), είναι ένα πρωτόκολλο επικοινωνίας μέσω μηνυμάτων, που βασίζεται στην XML, και χρησιμοποιείται για να κωδικοποιήσει τις πληροφορίες των μηνυμάτων αιτήσεων και απαντήσεων των web υπηρεσιών πριν αυτά αποσταλούν πίσω στο δίκτυο. Τα SOAP μηνύματα εξαρτώνται από το ΛΣ και το εκάστοτε πρωτόκολλο και μπορεί να μεταφερθεί χρησιμοποιώντας ποικιλία πρωτοκόλλων του internet, όπως είναι τα SMTP, MIME, και HTTP. Το WSDL (Web Services Description Language), είναι μια an XML-formatted γλώσσα που χρησιμοποιείται για να περιγράψει τις ικανότητες μιας Web υπηρεσίας ως συλλογές επικοινωνίας endpoints στοιχείων ικανών να ανταλλάσσουν μηνύματα. Το WSDL είναι ένα αναπόσπαστο κομμάτι του UDDI. Το WSDL είναι η γλώσσα που χρησιμοποιεί το UDDI. Το WSDL αναπτύχθηκε από σε συνεργασία της Microsoft και της IBM. Το UDDI (Universal Description, Discovery and Integration) είναι ένας Web-based κατανεμημένος κατάλογος που επιτρέπει στις επιχειρήσεις να εγγράφονται και να ανακαλύπτει η κάθε μια την άλλη, παρόμοια δηλαδή με ένα τηλεφωνικό κατάλογο ή ένα χρυσό οδηγό. Έλεγχος Ευπαθειών Web Εφαρμογών

15 Διαφορά Web Εφαρμογών και Υπηρεσιών
Επικοινωνία πολλών διαφορετικών εφαρμογών Οι web υπηρεσίες δεν εξαρτώνται από κάποιο ΛΣ ή προγραμματιστική γλώσσα Δεν απαιτείται η χρήση browsers ή γλώσσας HTML ΔΙΑΦΟΡΑ WEB ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ Οι web υπηρεσίες επιτρέπουν σε διαφορετικές εφαρμογές, από διαφορετικές πηγές, να επικοινωνούν μεταξύ τους. Επειδή όλες οι επικοινωνίες είναι σε γλώσσα XML, οι web υπηρεσίες δεν εξαρτώνται από κάποιο ΛΣ ή κάποια προγραμματιστική γλώσσα. Δεν απαιτείται η χρήση browsers ή της HTML. Μερικές φορές θα τις συναντήσουμε και ως application services Πάντως πολύ συχνά, είναι δύσκολο να διαχωριστούν οι περίπλοκες web εφαρμογές από τις web υπηρεσίες. Έλεγχος Ευπαθειών Web Εφαρμογών

16 Αδυναμίες και Απειλές Η ύπαρξη διαφορετικών τεχνολογιών και προϊόντων, για τη λειτουργία ενός Website στο οποίο τρέχουν web εφαρμογές, δημιουργεί πολλά προβλήματα ασφάλειας ΑΔΥΝΑΜΙΕΣ ΚΑΙ ΑΠΕΙΛΕΣ Για τη δημιουργία και τη λειτουργία ενός Website στο οποίο τρέχουν web εφαρμογές, γίνεται χρήση ενός μεγάλου συνόλου διαφορετικών τεχνολογιών και προϊόντων. Η αλληλεπίδραση μεταξύ αυτών προκαλεί ένα απέραντο πλήθος προβλημάτων ασφαλείας. Από την ύπαρξη και την εκμετάλλευση αυτών των αδυναμιών, ένας επιτιθέμενος μπορεί να προκαλέσει μεγάλη ζημιά. Το σύνολο των γνωστών αδυναμιών που είναι δυνατό να εμφανισθούν σε ένα Website και που σχετίζονται με ανάλογες απειλές, μπορούν να αναφερθούν σε 10 κατηγορίες Έλεγχος Ευπαθειών Web Εφαρμογών

17 Αδυναμίες και Απειλές Οι κατηγορίες Αδυναμιών και Απειλών αναφέρονται σε: Διαχείριση Διαμόρφωσης της Υποδομής (Infrastructure Configuration Management) Διαχείριση Διαμόρφωσης των Εφαρμογών (Application Configuration Management) Επικύρωση Εγκυρότητας των δεδομένων Εισόδου/Εξόδου (Boundary Validation Vulnerabilities) Αυθεντικοποίηση και Έλεγχο Πρόσβασης (Authentication and Access Control) Προστασία Δεδομένων (Data Protection) Οι κατηγορίες Αδυναμιών και Απειλών αναφέρονται σε: Διαχείριση Διαμόρφωσης της Υποδομής (Infrastructure Configuration Management) (κακή διαμόρφωση των web-servers, application-servers, firewalls, κλπ.). Διαχείριση Διαμόρφωσης των Εφαρμογών (Application Configuration Management) (κακή διαμόρφωση των εφαρμογών και της ανάπτυξης των διαφόρων επιπέδων τους). Επικύρωση Εγκυρότητας των δεδομένων Εισόδου/Εξόδου (Boundary Validation Vulnerabilities) (μη επαρκής έλεγχος των δεδομένων Ι/Ο) Αυθεντικοποίηση και Έλεγχο Πρόσβασης (Authentication and Access Control) (αυθεντικοποίηση χρήστη καθώς και ελεγχόμενη πρόσβαση στους πόρους του συστήματος) Προστασία Δεδομένων (Data Protection) (προστασία τους από μη εξουσιοδοτημένους χρήστες) Έλεγχος Ευπαθειών Web Εφαρμογών

18 Αδυναμίες και Απειλές Οι κατηγορίες Αδυναμιών και Απειλών αναφέρονται σε: Υπερχείλιση Buffer (Buffer Overflows) Λάθη στη Λογική των Εφαρμογών (Application Logic Flaws) Ζητήματα Διαχείρισης Συνόδων (Session Management Issues) Παραβίαση Ιδιωτικότητας Χρηστών (User Privacy Violations) Χειρισμό Λαθών και Εξαιρέσεων (Error and Exception Handling) Οι κατηγορίες Αδυναμιών και Απειλών αναφέρονται σε: Υπερχείλιση Buffer (Buffer Overflows) (φτωχή κωδικοποίηση που μπορεί να εκθέσει σε κίνδυνο το σύστημα) Λάθη στη Λογική των Εφαρμογών (Application Logic Flaws) (επιχειρησιακής λογικής αποφάσεις που δεν εκτελούνται όπως έχει σχεδιαστεί το σύστημα) Ζητήματα Διαχείρισης Συνόδων (Session Management Issues) (λήξη χρόνου συνόδου, πειρατεία ή δέσμευση συνόδου, κλπ.) Παραβίαση Ιδιωτικότητας Χρηστών (User Privacy Violations) (ζητήματα που μπορούν να αποκαλύψουν προσωπικές πληροφορίες χρηστών) Χειρισμό Λαθών και Εξαιρέσεων (Error and Exception Handling) (λάθη του συστήματος που μπορούν να δώσουν πληροφορίες για την κατάσταση του) Έλεγχος Ευπαθειών Web Εφαρμογών

19 Αδυναμίες και Απειλές A1 Top 10 Web application vulnerabilities A2 A3
Μη πιστοποιηµένη είσοδος Δεδοµένα που προέρχονται από αιτήµατα δεν πιστοποιούνται πριν χρησιµοποιηθούν από µια web εφαρµογή. A2 Έλεγχος πρόσβασης Δεν επιβάλλονται κατάλληλα οι περιορισµοί σχετικά µε τις επιτρεπόµενες ενέργειες των πιστοποιηµένων χρηστών. A3 Διαχείριση προσβάσεων και συνδέσεων Ιδιότητες των λογαριασµών και συνδέσεις που έχουν γίνει, δεν προστατεύονται επαρκώς. A4 Διαρροές µέσω Cross Site Scripting (XSS) Η web εφαρµογή μπορεί να χρησιµοποιηθεί σαν ένας μηχανισµός μεταφοράς επιθέσεων, στον browser του χρήστη. A5 Υπερχείλιση Buffer Τα στοιχεία μιας web εφαρµογής που δεν επικυρώνει κατάλληλα την είσοδο, μπορεί να τεθούν εκτός και σε μερικές περιπτώσεις να χρησιµοποιηθούν για να πάρει ένας επιτιθέµενος τον έλεγχο της εφαρµογής. Top 10 Web application vulnerabilities Μη πιστοποιηµένη είσοδος: Δεδοµένα που προέρχονται από αιτήµατα µέσω δικτύου δεν πιστοποιούνται πριν χρησιµοποιηθούν από µια web εφαρµογή. Οι επιτιθέµενοι μπορούν να χρησιµοποιήσουν αυτή τη διαρροή ασφαλείας για να επιτεθούν στα στοιχεία που την απαρτίζουν, μέσα από µια εφαρµογή. Έλεγχος πρόσβασης: Περιορισµοί σχετικά µε τις επιτρεπόµενες ενέργειες των πιστοποιηµένων χρηστών, δεν επιβάλλονται όπως θα έπρεπε. Οι επιτιθέµενοι μπορούν να ανακαλύψουν τα κενά αυτά για να αποκτήσουν πρόσβαση στους λογαριασµούς άλλων χρηστών, να δουν ευαίσθητα δεδοµένα ή να κάνουν χρήση εντολών για τις οποίες δεν έχουν δικαιώµατα. Διαχείριση προσβάσεων και συνδέσεων: Ιδιότητες των λογαριασµών και συνδέσεις που έχουν γίνει, δεν προστατεύονται επαρκώς. Επιτιθέµενοι που μπορούν να χρησιµοποιήσουν κωδικούς, κλειδιά, session cookies, ή άλλα κεκτηµένα, μπορούν να ξεπεράσουν τη διαδικασία πιστοποίησης και τους περιορισµούς που αυτή επιβάλλει και να συνδεθούν υποδυόμενοι άλλους χρήστες. Διαρροές µέσω Cross Site Scripting (XSS): Η web εφαρµογή μπορεί να χρησιµοποιηθεί σαν ένας µηχανισµός μεταφοράς επιθέσεων, στον browser του τελικού χρήστη. Μια επιτυχηµένη επίθεση μπορεί να κρατήσει ανοιχτή τη σύνδεση ενός χρήστη, να µπει στο τοπικό μηχάνηµα ή να αλλάξει δεδοµένα και περιεχόµενα, για να ξεγελάσει τον χρήστη. Υπερχείλιση των Buffer: Τα στοιχεία μιας web εφαρµογής σε μερικές γλώσσες που δεν επικυρώνουν την είσοδο μπορεί να τεθούν εκτός και, σε μερικές περιπτώσεις, να χρησιµοποιηθούν για να πάρει ένας επιτιθέµενος τον έλεγχο της εφαρµογής. Τα στοιχεία αυτά μπορεί να περιλαµβάνουν CGI, βιβλιοθήκες, οδηγούς συσκευών και στοιχεία διακοµιστών web εφαρµογών. Έλεγχος Ευπαθειών Web Εφαρμογών

20 Αδυναμίες και Απειλές A6 Top 10 Web application vulnerabilities A7 A8
Διαρροές µέσω Injection Εισαγωγή κακόβουλων εντολών σε παραμέτρους της εφαρμογής. A7 Μη αρµόζουσα διαχείριση λαθών Καταστάσεις λάθους που προκύπτουν κατά τη διάρκεια κανονικών λειτουργιών της εφαρμογής, δεν διαχειρίζονται ορθά. A8 Μη ασφαλής αποθήκευση Οι Web εφαρµογές συχνά χρησιµοποιούν εντολές κρυπτογράφησης, για να προστατεύσουν πληροφορίες και πιστοποιητικά, που είναι δύσκολο να κωδικοποιηθούν σωστά. A9 Άρνηση παροχής Υπηρεσιών (DoS) Η κατανάλωση πόρων της web εφαρµογής, σε σηµείο που άλλοι νόµιµοι χρήστες να µην μπορούν πλέον να έχουν πρόσβαση σε αυτή. A10 Μη ασφαλής διαχείριση της παραµετροποίησης Το να έχουµε ένα ισχυρό πρότυπο παραµετροποίησης των servers είναι σηµαντικό για την ασφάλεια των web εφαρµογών µας. Top 10 Web application vulnerabilities Διαρροές µέσω Injection: Οι web εφαρµογές περνούν παραµέτρους όταν παίρνουν πρόσβαση σε εξωτερικά συστήµατα ή σε τοπικά λειτουργικά συστήµατα. Αν ένας επιτιθέµενος μπορέσει να εµβολιάσει κακόβουλες εντολές μέσα σε αυτές τις παραµέτρους, το εξωτερικό σύστηµα θα εκτελέσει τις εντολές αυτές για λογαριασµό της εφαρµογής. Μη αρµόζουσα διαχείριση λαθών: Καταστάσεις λάθους που προκύπτουν κατά τη διάρκεια κανονικών λειτουργιών δεν διαχειρίζονται ορθά. Εάν ένας επιτιθέµενος μπορεί να προκαλέσει σφάλµατα για να δώσει την εικόνα ότι η εφαρµογή δεν συµπεριφέρεται σωστά, μπορεί να συλλέξει λεπτοµερείς πληροφορίες σχετικές µε το σύστηµα, να προκαλέσει άρνηση παροχής υπηρεσιών, να "ρίξει" μηχανισµούς ασφαλείας ή να θέσει εκτός τον server. Μη ασφαλής αποθήκευση: Οι Web εφαρµογές συχνά χρησιµοποιούν εντολές κρυπτογράφησης για να προστατεύσουν πληροφορίες και πιστοποιητικά. Οι εντολές αυτές και ο κώδικας που τις ενοποιεί έχει αποδειχθεί ότι είναι δύσκολο να κωδικοποιηθούν σωστά. Το γεγονός αυτό συχνά µας οδηγεί σε αδύναµα μέτρα ασφαλείας. Άρνηση παροχής Υπηρεσιών (DoS): Οι επιτιθέµενοι μπορούν να καταναλώσουν πόρους της web εφαρµογής σε σηµείο που άλλοι νόµιµοι χρήστες να µην μπορούν πλέον να έχουν πρόσβαση σε αυτή. Οι επιτιθέµενοι μπορούν επίσης να κλειδώσουν τους λογαριασµούς άλλων χρηστών ή ακόµη να προκαλέσουν την κατάρρευση ολόκληρης της εφαρµογής. Μη ασφαλής διαχείριση της παραµετροποίησης: Το να έχουµε ένα ισχυρό πρότυπο παραµετροποίησης των διακοµιστών µας είναι σηµαντικό για την ασφάλεια των web εφαρµογών µας. Οι διακοµιστές αυτοί έχουν πολλές επιλογές παραµετροποίησης που επηρεάζουν την ασφάλεια. Έλεγχος Ευπαθειών Web Εφαρμογών

21 Θα πρέπει να γίνονται τακτικοί έλεγχοι
Αδυναμίες και Απειλές Οι αδυναμίες αυτές καθιστούν τις web εφαρμογές πολύ ευάλωτες σε επιθέσεις hackers. Θα πρέπει να γίνονται τακτικοί έλεγχοι ΑΔΥΝΑΜΙΕΣ ΚΑΙ ΑΠΕΙΛΕΣ Οι αδυναμίες αυτές και πολλές άλλες που μπορεί να υπάρχουν, καθιστούν τις web εφαρμογές πολύ ευάλωτες σε επιθέσεις hackers. Οι hackers πλέον δεν αποτελούν μια μικρή εξειδικευμένη κοινότητα. Υπάρχουν πίνακες ανακοινώσεων και ομάδες συζητήσεων, όπου ο καθένας μπορεί να βρει έτοιμο υλικό και πληροφορίες για την πραγματοποίηση διαφόρων ειδών επιθέσεων. Η απόλυτη πλειοψηφία των επιθέσεων προέρχεται από αυτή την κατηγορία. Για το λόγο αυτό θα πρέπει να γίνονται τακτικοί έλεγχοι στο σύνολο των εφαρμογών, να επαναλαμβάνονται σε κάθε νέα εγκατάσταση και κάθε φορά που γίνεται μια επέκταση, προσθήκη ή αναβάθμιση. Έλεγχος Ευπαθειών Web Εφαρμογών

22 Ασφάλεια Web Εφαρμογών
Πώς μπορούμε όμως να καταλάβουμε ότι κινδυνεύουμε; Με τη χρήση εργαλείων Web Scanning Με συχνές επιθεωρήσεις της διαμόρφωσης των υποδομών της εφαρμογής Με τη χρήση Vulnerability Scanners, για περιοδικούς ελέγχους των web servers ΑΣΦΑΛΕΙΑ WEB ΕΦΑΡΜΟΓΩΝ Πώς μπορούμε όμως να καταλάβουμε ότι κινδυνεύουμε; Υπάρχουν διάφορα εργαλεία, που ονομάζονται "Web scanning" και τα οποία μπορούν να μας βοηθήσουν να βρούμε αυτές τις αδυναμίες, ειδικά αν είναι γνωστά bugs. Όμως, για να βρούμε όλες τις αδυναμίες που πιθανόν να υπάρχουν θα πρέπει να γίνει καλή "επιθεώρηση" του κώδικα της εφαρμογής, όπως επίσης και έλεγχος διείσδυσης στην εφαρμογή (application penetration test). Αυτές οι ενέργειες πρέπει να εκτελούνται από τους υπεύθυνους ανάπτυξης της εφαρμογής, πριν από την κυκλοφορία κάθε εφαρμογής. Πρέπει να γίνονται συχνές επιθεωρήσεις της διαμόρφωσης των υποδομών της εφαρμογής και να επιβάλλεται η κατάλληλη ασφάλεια. Οι διαχειριστές των συστημάτων πρέπει να "σκανάρουν" περιοδικά τους web servers με διάφορα vulnerability scanners, ιδιαίτερα αν οι servers χρησιμοποιούν μεγάλο σε αριθμό και ποικιλία σύνολο scripts. Έλεγχος Ευπαθειών Web Εφαρμογών

23 Ασφάλεια Web Εφαρμογών
Επιθεώρηση Ασφαλείας (Security Audit): Ύπαρξη πινάκων ελέγχου (checklists) Προσωπικές συνεντεύξεις, ανιχνεύσεις αδυναμιών, εξετάσεις των ρυθμίσεων, αναλύσεις των διαμοιρασμένων πόρων δικτύου και μελέτες ιστορικών στοιχείων (log files). ΑΣΦΑΛΕΙΑ WEB ΕΦΑΡΜΟΓΩΝ Οι βασικές μέθοδοι της ασφάλειας των web εφαρμογών είναι: Επιθεώρηση ασφαλείας (security audit): ένα σύστημα ελέγχεται με βάση ένα σύνολο από πίνακες ελέγχου (checklists), οι οποίοι διαμορφώνονται με βάση διεθνή πρότυπα σχετικά με την ασφάλεια και τις κατάλληλες πολιτικές ασφαλείας ενός οργανισμού. οι ελεγκτές εκτελούν την εργασία τους μέσα από προσωπικές συνεντεύξεις, ανιχνεύσεις αδυναμιών, εξετάσεις των ρυθμίσεων, αναλύσεις των διαμοιρασμένων πόρων δικτύου και μελέτες των ιστορικών στοιχείων (log files). Έλεγχος Ευπαθειών Web Εφαρμογών

24 Ασφάλεια Web Εφαρμογών
Αυτο-αξιολόγηση Ασφαλείας (Security Self-assessment): Ο στόχος προσδιορίζεται από την περιοχή που χρειάζεται διερεύνηση και βελτίωση στη θωράκιση της Επεκτείνεται σε ένα πιο λεπτομερή έλεγχο για εντοπισμό αδυναμιών ΑΣΦΑΛΕΙΑ WEB ΕΦΑΡΜΟΓΩΝ Οι βασικές μέθοδοι της ασφάλειας των web εφαρμογών είναι: Αυτο-αξιολόγηση ασφαλείας (security self-assessment): δεν υπάρχουν συγκεκριμένα standards ως προς τα οποία θα μετρηθεί το σύστημα, αλλά ο στόχος προσδιορίζεται από την περιοχή που χρειάζεται διερεύνηση και βελτίωση στη θωράκιση της. ξεπερνά τους πίνακες ελέγχου (checklists) και επεκτείνεται, σε ένα πιο λεπτομερή έλεγχο για εντοπισμό αδυναμιών αλλά και σε συστάσεις για επιδιορθώσεις και βελτιώσεις. πλεονέκτημα της είναι η δυνατότητα να οριστούν επίπεδα προτεραιότητας σε κάθε συστατικό που αξιολογείται, έτσι ώστε με την ολοκλήρωση της να δοθεί μια σειρά προτεραιότητας στην επιδιόρθωση των αδυναμιών. Έλεγχος Ευπαθειών Web Εφαρμογών

25 Ασφάλεια Web Εφαρμογών
Δοκιμή διείσδυσης (penetration testing ή "ethical hacking"): Είναι η ελεγχόμενη προσομοίωση μιας επίθεσης Σκοπός της είναι να εντοπιστούν συγκεκριμένες πληροφορίες για την ύπαρξη γνωστών αδυναμιών Μπορεί να πραγματοποιηθεί με μηδενική ή πλήρη γνώση του συστήματος που δοκιμάζεται Οι “ethical hackers” προσπαθούν να υιοθετήσουν τις επιθέσεις και τις τεχνικές των hackers ΑΣΦΑΛΕΙΑ WEB ΕΦΑΡΜΟΓΩΝ Δοκιμή διείσδυσης (penetration testing ή "ethical hacking"): είναι η ελεγχόμενη προσομοίωση μιας επίθεσης, προκειμένου να επιτευχθεί ένας προκαθορισμένος στόχος. σκοπός της είναι να εντοπιστούν συγκεκριμένες πληροφορίες (σχετικές με την ύπαρξη γνωστών αδυναμιών) και να διερευνηθεί κατά πόσο είναι δυνατόν ένας ξένος, κάνοντας χρήση αυτών των πληροφοριών, να μπορέσει να δημιουργήσει προβλήματα. Δεν έχει σκοπό να εντοπίσει όλες τις αδυναμίες, αλλά να αποδείξει ότι η ασφάλεια του συστήματος μπορεί να διακυβευτεί. η δοκιμή μπορεί να πραγματοποιηθεί με βάση μηδενική γνώση (zero knowledge), ή με πλήρη γνώση (full knowledge) του συστήματος που δοκιμάζεται. Χρησιμοποιείται για να καθορίσει την αξιοπιστία και τη δύναμη των μέτρων ασφαλείας που παίρνουμε. οι “ethical hackers” προσπαθούν να υιοθετήσουν τις επιθέσεις και τις τεχνικές των hackers, για να μετρήσουν το επίπεδο ασφάλειας. Έλεγχος Ευπαθειών Web Εφαρμογών

26 Ασφάλεια Web Εφαρμογών
Σύγκριση των μεθόδων μέτρησης ασφάλειας Στις μεθόδους της Επιθεώρησης Ασφάλειας και της Αυτο-αξιολόγησης απαιτούνται: Η μετακίνηση των ειδικών ασφαλείας Κατάλληλα checklists Υψηλή τεχνογνωσία Άρτιος συντονισμός Πολύς χρόνος Διαταράσσεται η λειτουργία του οργανισμού. Σύγκριση των μεθόδων μέτρησης ασφάλειας Για τον έλεγχο της ασφάλειας μιας web εφαρμογής με τις μεθόδους της επιθεώρησης ασφάλειας και της αυτο-αξιολόγησης, απαιτείται η μετακίνηση μιας μεγάλης ομάδας ειδικών ασφαλείας στον τόπο που λειτουργεί ο οργανισμός, του οποίου η ασφάλεια της εφαρμογής ελέγχεται. Η ομάδα αυτή πρέπει να έχει στη διάθεση της τα κατάλληλα checklists, να έχει υψηλή τεχνογνωσία και να είναι άρτια συντονισμένη. Για την ενέργεια των ελέγχων, απαιτείται πολύς χρόνος ώστε να ολοκληρωθούν οι συνεντεύξεις, οι επιθεωρήσεις, οι αξιολογήσεις και οι έρευνες, στη διάρκεια των οποίων αποκαλύπτεται και διαταράσσεται η λειτουργία του οργανισμού. Έλεγχος Ευπαθειών Web Εφαρμογών

27 Ασφάλεια Web Εφαρμογών
Σύγκριση των μεθόδων μέτρησης ασφάλειας Η Δοκιμή Διείσδυσης αποτελεί ΜΟΝΟΔΡΟΜΟΣ Έχει τα εξής πλεονεκτήματα: Απαιτείται ελάχιστο προσωπικό, χωρίς την ανάγκη μετακίνησης του Δυνατότητα πλήρους αυτοματοποίησης Είναι μικρής διάρκειας και εύκολα επαναλαμβανόμενη Δεν απαιτείται η γνώση της εφαρμογής Δεν διαταράσσει τη λειτουργία της Είναι πολύ οικονομικότερη Σύγκριση των μεθόδων μέτρησης ασφάλειας Όλα τα παραπάνω, σε συνάρτηση με την ανάγκη για συνεχείς και επαναλαμβανόμενους ελέγχους, καθιστούν τη δοκιμή διείσδυσης μονόδρομο. Επιπλέον η δοκιμή διείσδυσης έχει τα εξής πλεονεκτήματα: απαιτείται ελάχιστο προσωπικό και δεν είναι αναγκαία η μετακίνηση του παρέχει δυνατότητα πλήρους αυτοματοποίησης διαρκεί ελάχιστο χρόνο και είναι εύκολα επαναλαμβανόμενη δεν απαιτεί τη σε βάθος γνώση της εφαρμογής που ελέγχεται δεν διαταράσσει τη λειτουργία της είναι πολύ οικονομικότερη Έλεγχος Ευπαθειών Web Εφαρμογών

28 Ασφάλεια Web Εφαρμογών
Τεχνικές Δοκιμή Διείσδυσης Χειροκίνητη (manual) Αυτοματοποιημένη (automated), όπου διακρίνεται σε δύο τεχνικές: Black Box: Η εφαρμογή εξετάζεται χρησιμοποιώντας την εξωτερική της διεπαφή White Box: Εξετάζεται η εσωτερική δομή της εφαρμογής, χρησιμοποιώντας τη διεπαφή προγραμματισμού εφαρμογών Τεχνικές Δοκιμή Διείσδυσης Υπάρχουν δύο κύριες προσεγγίσεις τεχνικών ελέγχου ασφάλειας των web εφαρμογών με τη μέθοδο της δοκιμής διείσδυσης: Χειροκίνητη (manual), όπου όλη η διαδικασία ελέγχου γίνεται βήμα-βήμα, χωρίς την ύπαρξη αυτοματισμών επανάληψης παρόμοιων βημάτων. Αυτοματοποιημένη (automated), όπου με τη χρήση εργαλείων αυτοματοποιούνται μερικοί ή όλοι οι έλεγχοι και οι διαδικασίες ελέγχου. Διακρίνεται σε δύο τεχνικές: Black Box: είναι η εφαρμογή δοκιμαστικών δεδομένων που έχουν προέλθει από καθορισμένες λειτουργικές απαιτήσεις, χωρίς να λαμβάνουν υπόψη τη δομή της εφαρμογής στην οποία εφαρμόζονται. Η εφαρμογή εξετάζεται χρησιμοποιώντας την εξωτερική της διεπαφή, αυτή που χρησιμοποιούν οι απλοί χρήστες. Μιμούνται την ακολουθία αλληλεπιδράσεων χρήστη-εφαρμογής και κάθε αποτυχία δείχνει ότι ο χρήστης έλαβε ανεπαρκή υπηρεσία. White Box: εξετάζεται η δομή της εφαρμογής και βάση αυτής καθορίζονται τα δεδομένα της δοκιμής. Εξετάζεται η εσωτερική δομή της εφαρμογής, χρησιμοποιώντας τη διεπαφή προγραμματισμού εφαρμογών (Application Programmatic Interface – που αποτελεί το μέσο επικοινωνίας των εφαρμογών με τον πυρήνα του ΛΣ ή με βιβλιοθήκες τρίτων κατασκευαστών). Έλεγχος Ευπαθειών Web Εφαρμογών

29 Ασφάλεια Web Εφαρμογών
Interface των Black και White Box τεχνικών δοκιμής διείσδυσης Οι ποιοτικές δοκιμές απαιτούν την λειτουργία των ελέγχων, σύμφωνα με τον τρόπο με τον οποίο οι χρήστες αλληλεπιδρούν με την εφαρμογή Interface των Black και White Box τεχνικών δοκιμής διείσδυσης Το να κρατηθούν οι δοκιμές απόλυτα ευθυγραμμισμένες με τον τρόπο με τον οποίο οι χρήστες αλληλεπιδρούν με την εφαρμογή, αποτελεί το κλειδί για ποιοτικές δοκιμές. Έλεγχος Ευπαθειών Web Εφαρμογών

30 Εργαλεία Ελέγχου Ασφαλείας
Διακρίσεις των Εργαλείων Ως προς το σύνολο των ελέγχων που πραγματοποιούν σε: Επιχειρησιακού επιπέδου (Enterprise level): Αποτελούνται από ένα σύνολο εργαλείων που χρησιμοποιούν την τεχνική της Black box δοκιμής διείσδυσης (π.χ.: Sanctum AppScan, KaVaDo ScanDo, SPI Dynamics WebInspect, OWASP WebScarab). Εστιασμένα (Focused): Εργαλεία που εκτελούν συγκεκριμένες λειτουργίες ή αυτοματοποιούν ένα ή περισσότερα τεστ ελέγχου (π.χ.: WebSphinx, AtStake WebProxy, Nikto, SPIKE Proxy, WebserverFP, Mieliekoek.pl). ΕΡΓΑΛΕΙΑ ΕΛΕΓΧΟΥ ΑΣΦΑΛΕΙΑΣ Τα εργαλεία διακρίνονται, ως προς το σύνολο των ελέγχων που πραγματοποιούν, σε: Επιχειρησιακού επιπέδου (Enterprise level): διεξάγουν ελέγχους για το σύνολο των γνωστών αδυναμιών, βάση ενημερωμένων βιβλιοθηκών. Αποτελούνται από μια συλλογή εργαλείων και ανιχνεύουν τις εφαρμογές με την τεχνική της Black box δοκιμής διείσδυσης. Επιτρέπουν την αυτόματη ανίχνευση, αλλά και με ειδικά σενάρια, είτε ως προς τα σημεία ανίχνευσης, είτε ως προς τα είδη των αδυναμιών. Επίσης επιτρέπουν και χειροκίνητους ελέγχους. (π.χ.: Sanctum AppScan, KaVaDo ScanDo, SPI Dynamics WebInspect, OWASP WebScarab). Εστιασμένα (Focused): εκτελούν συγκεκριμένες λειτουργίες ή αυτοματοποιούν ένα ή περισσότερα τεστ ελέγχου. Αποτελούν στοιχειώδεις δομικές μονάδες, που βοηθούν στην οικοδόμηση μιας ακολουθίας δοκιμών ασφαλείας, αλλά για να πραγματοποιηθεί μια δοκιμή από τη βάση με αυτά απαιτεί πολύ χρόνο. (π.χ.: WebSphinx, AtStake WebProxy, Nikto, SPIKE Proxy, WebserverFP, Mieliekoek.pl). Έλεγχος Ευπαθειών Web Εφαρμογών

31 Εργαλεία Ελέγχου Ασφαλείας
Διακρίσεις των Εργαλείων Ως προς τον κώδικα τους σε: Κλειστού κώδικα (Close - proprietary source): Είναι ολοκληρωμένα προϊόντα, για μη ειδικούς και τα οποία προσφέρουν μια ολοκληρωμένη διαδικασία για την αξιολόγηση της ασφάλειας. Χρησιμοποιούν ιδιωτικές βάσεις δεδομένων αδυναμιών Ανοικτού κώδικα (Open source): Είναι πολύ πιο εύκολα επεκτάσιμα, γεγονός που τα καθιστά πολύ δημοφιλή Τα εργαλεία διακρίνονται ως προς τον κώδικα τους σε: Κλειστού κώδικα (Close - proprietary source): δηλαδή τα εμπορικά εργαλεία διαφόρων εταιριών, ανήκουν όλα τα Επιχειρησιακού επιπέδου (Enterprise level), εκτός από το WebScarab το οποίο είναι ένα εργαλείο ανοικτού κώδικα, του οργανισμού OWASP (Open Web Application Security Project), ο οποίος είναι ένας μη κερδοσκοπικός οργανισμός για την ασφάλεια των Web εφαρμογών. Ανοικτού κώδικα (Open source):περιλαμβάνονται και τα ελευθέρας χρήσεως εργαλεία (δηλαδή εργαλεία για μη εμπορική χρήση). Σε αυτή την κατηγορία ανήκουν όλα τα Focused εργαλεία Τα Κλειστού κώδικα εργαλεία είναι ολοκληρωμένα προϊόντα, που δίνουν μεγάλη προσοχή στην ευκολία χρήσης από προσωπικό μη ειδικό σε θέματα ασφαλείας. Στο σύνολο τους τα εμπορικά εργαλεία, έχουν λίγο πολύ τα ίδια βασικά λειτουργικά χαρακτηριστικά γνωρίσματα. Στοχεύουν στην παροχή μιας σαφούς ροής εργασιών ή μιας ολοκληρωμένης διαδικασίας για την αξιολόγηση της ασφάλειας μιας web εφαρμογής. Προσφέρουν επίσης πολύ περισσότερα χαρακτηριστικά γνωρίσματα από οποιοδήποτε από τα Ανοικτού κώδικα εργαλεία. Το πρόβλημα με τα Κλειστού κώδικα εργαλεία είναι ότι χρησιμοποιούν ιδιωτικές βάσεις δεδομένων αδυναμιών και είναι δύσκολο να αξιολογηθεί πόσο περιεκτικές είναι αυτές και συνεπώς πόσο αποτελεσματικοί είναι οι έλεγχοι τους. Έχουν το πλεονέκτημα της υποστήριξης των χρηστών, έναντι αμοιβής βέβαια. Ένα άλλο πρόβλημα των Κλειστού κώδικα εργαλείων είναι η δυσκολία επέκτασης τους, που βασίζεται στη διακριτική ευχέρεια των εταιριών που τα παρέχουν. Σε αντίθεση, τα Ανοικτού κώδικα είναι πολύ πιο εύκολα επεκτάσιμα, πράγμα που ενισχύει την εντύπωση ότι έχουν πιο ενημερωμένες βάσεις δεδομένων αδυναμιών, κάτι που τα κάνει πολύ δημοφιλή. ΣΗΜΕΙΩΣΗ: Στα Ανοικτού Κώδικα εργαλεία περιλαμβάνονται και τα ελευθέρας χρήσεως εργαλεία (δηλαδή εργαλεία για μη εμπορική χρήση). Σε αυτή την κατηγορία ανήκουν όλα τα Focused εργαλεία Στα Κλειστού Κώδικα εργαλεία, δηλαδή τα εμπορικά εργαλεία διαφόρων εταιριών, ανήκουν όλα τα Επιχειρησιακού επιπέδου (Enterprise level), εκτός από το WebScarab το οποίο είναι ένα εργαλείο ανοικτού κώδικα, του οργανισμού OWASP (Open Web Application Security Project), ο οποίος είναι ένας μη κερδοσκοπικός οργανισμός για την ασφάλεια των Web εφαρμογών. Όλα τα παραπάνω εργαλεία υποστηρίζουν έλεγχο ασφάλειας με την τεχνική της Black Box δοκιμής διείσδυσης (δηλαδή όπως είπαμε δεν απαιτούν προηγούμενη γνώση της εσωτερικής δομής της εφαρμογής). Έλεγχος Ευπαθειών Web Εφαρμογών

32 Εργαλεία Ελέγχου Ασφαλείας
Συμπεράσματα σχετικά με τα Εργαλεία Τα Επιχειρησιακού επιπέδου εργαλεία, είναι κατάλληλα για κάθε επιχείρηση που θέλει να διεξάγει δικούς της ελέγχους ασφαλείας, χωρίς να έχει την ανάγκη εξωτερικών παραγόντων Τα Εστιασμένα εργαλεία απαιτούν κατάλληλο θεωρητικό υπόβαθρο και εξειδίκευση Τα Επιχειρησιακού επιπέδου, ανοικτού κώδικα εργαλεία, είναι κατάλληλα για εκπαίδευση και έρευνα πάνω στον τομέα του ελέγχου ασφάλειας Συμπεράσματα σχετικά με τα Εργαλεία Τα Εστιασμένα εργαλεία είναι απαραίτητα σε έναν ελεγκτή ασφάλειας, με κατάλληλο θεωρητικό υπόβαθρο και εξειδίκευση. Μπορούν να γίνουν όμως επικίνδυνα για κάποιον χωρίς γνώσεις που πειραματίζεται με αυτά, καθιστώντας τον επικίνδυνο για τις εφαρμογές πάνω στις οποίες τα δοκιμάζει. Τα Επιχειρησιακού επιπέδου εργαλεία, είναι κατάλληλα για κάθε επιχείρηση που θέλει να διεξάγει δικούς της ελέγχους ασφαλείας, χωρίς να έχει την ανάγκη εξωτερικών παραγόντων. Τα Ανοικτού κώδικα, Επιχειρησιακού επιπέδου εργαλεία, είναι κατάλληλα για την εκπαίδευση και την έρευνα πάνω στον τομέα του ελέγχου ασφάλειας των web εφαρμογών, παρόλο που δεν είναι πολύ φιλικά προς τους χρήστες και απαιτούν θεωρητικό υπόβαθρο γνώσεων. Έλεγχος Ευπαθειών Web Εφαρμογών

33 OWASP WebScarab Περιγραφή εργαλείου
Είναι Επιχειρησιακού επιπέδου, Ανοικτού κώδικα εργαλείο ελέγχου ασφάλειας Είναι γραμμένο σε Java και έτσι μπορεί να λειτουργήσει σε πολλές πλατφόρμες Λειτουργεί με τη χρήση διαφόρων plugins Η χρήση του απαιτεί προγραμματιστικό υπόβαθρο Έχει ως σκοπό να αποκαλύψει τον τρόπο λειτουργίας της εφαρμογής OWASP WebScarab (Περιγραφή εργαλείου) Το WebScarab είναι ένα Επιχειρησιακού επιπέδου, Ανοικτού κώδικα εργαλείο ελέγχου ασφάλειας. Αποτελεί ένα πλαίσιο (framework), για Web εφαρμογές που επικοινωνούν με τη χρησιμοποίηση των πρωτοκόλλων HTTP και HTTPS. Είναι γραμμένο σε γλώσσα Java και για αυτό το λόγο μπορεί να λειτουργήσει σε πολλές πλατφόρμες. Λειτουργεί με τη χρήση διαφόρων plugins. Τα plugins ή αλλιώς extensions είναι προγράμματα που αλληλεπιδρούν με εφαρμογές (π.χ. ένα web browser ή ένα client), παρέχοντας συγκεκριμένες συνήθως λειτουργίες. Στην πιο κοινή χρήση του, το WebScarab λειτουργεί ως ένας "intercepting proxy", επιτρέποντας στο χρήστη να ελέγξει και να τροποποιήσει τα αιτήματα που δημιουργούνται από τον browser του χρήστη, προτού σταλούν στον server καθώς και να ελέγξει και να τροποποιήσει τις απαντήσεις του server, προτού αυτές παραληφθούν από τον browser. Είναι ένα εργαλείο με σκοπό, πρώτιστα, να χρησιμοποιηθεί από τους ανθρώπους που μπορούν να γράψουν κώδικα οι ίδιοι. Το WebScarab έχει ως σκοπό να αποκαλύψει τον τρόπο λειτουργίας μιας εφαρμογής HTTP(S), ή να επιτρέπει στον υπεύθυνο ανάπτυξης να διορθώνει τα ειδάλλως δύσκολα προβλήματα, ή να επιτρέπει σε έναν ειδικό ασφάλειας να προσδιορίζει τις αδυναμίες μιας εφαρμογής, ανάλογα με τον τρόπο που αυτή έχει σχεδιαστεί ή εφαρμοσθεί. Έλεγχος Ευπαθειών Web Εφαρμογών

34 OWASP WebScarab Περιγραφή εργαλείου Παρέχει διάφορα plugins, όπως:
Fragments: εξάγει scripts και σχόλια από HTML σελίδες Proxy: παρατηρεί την κυκλοφορία μεταξύ browser και web server Manual intercept: επιτρέπει την άμεση τροποποίηση αιτημάτων Manual request: επιτρέπει δημιουργία, επεξεργασία και επανάληψη αιτημάτων Spider: προσδιορίζει νέες URLs στο site-στόχο Scripted: γράφουμε scripts που δημιουργούν αιτήματα προς το server OWASP WebScarab (Περιγραφή εργαλείου) Το WebScarab παρέχει διάφορα plugins, που στοχεύουν στη λειτουργία της επιθεώρησης ασφάλειας των web εφαρμογών. Αυτά τα plugins περιλαμβάνουν: Fragments: εξάγει scripts και HTML σχόλια από HTML σελίδες, όπως αυτά φαίνονται μέσω του proxy. Proxy: παρατηρεί την κυκλοφορία μεταξύ browser και web server. Παρατηρήσει HTTP αλλά και HTTPS κυκλοφορία, με τη δημιουργία μιας σύνδεσης SSL (SSL tunnel) μεταξύ του WebScarab και του browser, αντί απλά να συνδέσει τον browser στο server, επιτρέποντας έτσι σε κρυπτογραφημένα δεδομένα να περάσουν μέσω αυτού. Manual intercept: επιτρέπει στο χρήστη να τροποποιήσει άμεσα τα αιτήματα HTTP/HTTPS και τις απαντήσεις, προτού φθάσουν στο server ή στον browser. Manual request: επιτρέπει επεξεργασία και επανάληψη προηγούμενων αιτημάτων, ή δημιουργία εξ’ ολοκλήρου νέων αιτημάτων. Spider: προσδιορίζει νέες URLs στην περιοχή του site-στόχου. Scripted: μπορούμε γράψουμε scripts, που να δημιουργήσουν έτσι τα αιτήματα προς το server. Έλεγχος Ευπαθειών Web Εφαρμογών

35 OWASP WebScarab Περιγραφή εργαλείου
SessionID analysis: συλλέγει και αναλύει τα διάφορα cookies Parameter fuzzer: εκτελεί αυτοματοποιημένη αντικατάσταση τιμών παραμέτρου Reveal hidden fields: μετατρέπει τα hidden fields σε text SOAP: αναλύει το έγγραφο WSDL OWASP WebScarab (Περιγραφή εργαλείου) Το WebScarab παρέχει διάφορα plugins, που στοχεύουν στη λειτουργία της επιθεώρησης ασφάλειας των web εφαρμογών. Αυτά τα plugins περιλαμβάνουν: SessionID analysis: συλλέγει και αναλύει τα διάφορα cookies (και URL-based παραμέτρους επίσης), για να προσδιορίσει ο ελεγκτής το βαθμό τύχης και μη προβλεψιμότητας, των cookies που δημιουργούνται από την εφαρμογή. Parameter fuzzer: εκτελεί την αυτοματοποιημένη αντικατάσταση των τιμών παραμέτρου, πράγμα το οποίο είναι πιθανό να αποκαλύψει την ελλιπή επικύρωση παραμέτρου, οδηγώντας έτσι σε ευπάθειες όπως είναι οι Cross Site Scripting (XSS) και SQL Injection. Reveal hidden fields: αλλάζει όλα τα κρυμμένα πεδία που βρίσκονται στις σελίδες HTML σε πεδία απλού κειμένου (text), καθιστώντας τα έτσι ορατά και επεξεργάσιμα. SOAP: αναλύει το έγγραφο WSDL και παρουσιάζει τις διάφορες λειτουργίες και τις απαραίτητες παραμέτρους, επιτρέποντας έτσι την επεξεργασία τους πριν σταλούν στο server. Έλεγχος Ευπαθειών Web Εφαρμογών

36 OWASP WebScarab Διάφορες εκδόσεις του WebScarab μπορεί να βρεθούν στην ιστοσελίδα του OWASP (www.owasp.org) Προτιμάτε η έκδοση Java Web Start, διότι έχει το πλεονέκτημα της αυτόματης ενημέρωσης (http://dawes.za.net/rogan/webscarab/WebScarab.jnlp) Απαιτεί το περιβάλλον Java Runtime (http://java.sun.com) OWASP WebScarab (Περιγραφή εργαλείου) Διάφορες εκδόσεις του WebScarab μπορεί να βρεθούν στην ιστοσελίδα του OWASP (www.owasp.org). Προτιμάτε η έκδοση Java Web Start, (http://dawes.za.net/rogan/webscarab/WebScarab.jnlp), διότι αυτή έχει το πλεονέκτημα ότι λαμβάνει αυτόματα οποιεσδήποτε νέες εκδόσεις του εργαλείου κυκλοφορούν. Πρέπει να τονίσουμε ότι το εργαλείο είναι μια εφαρμογή σε Java, δηλαδή απαιτεί το περιβάλλον Java Runtime (http://java.sun.com/), ώστε να μπορεί να λειτουργεί. Έλεγχος Ευπαθειών Web Εφαρμογών

37 OWASP WebScarab Εδώ βλέπουμε το περιβάλλον του WebScarab, με το παράθυρο "Summary", το οποίο θα δίνει μια γενική εικόνα των συνομιλιών που έχουν περάσει μέσα από τον proxy του WebScarab και διάφορες πληροφορίες για αυτές τις συνομιλίες Έλεγχος Ευπαθειών Web Εφαρμογών

38 OWASP WebScarab Ρυθμίσεις Περιβάλλοντος WebScarab
Εάν χρησιμοποιούμε proxy server, θα πρέπει να κάνουμε κάποιες ρυθμίσεις, μέσα από το μενού Proxy, για να δηλώσουμε την διεύθυνση του proxy server που χρησιμοποιούμε Από τη στιγμή που εγκαταστήσουμε το WebScarab, θα πρέπει να γίνουν κάποιες ρυθμίσεις για τη σωστή λειτουργία του. Αυτές ουσιαστικά οι ρυθμίσεις αφορούν τον Proxy και σχετίζονται με την ύπαρξη ή όχι upstream proxy server. Έλεγχος Ευπαθειών Web Εφαρμογών

39 OWASP WebScarab Ρυθμίσεις Περιβάλλοντος WebScarab
Εάν δεν χρησιμοποιούμε proxy server, τότε πρέπει να προχωρήσουμε σε κάποιες ρυθμίσεις του Internet Explorer Εάν δεν χρησιμοποιούμε proxy server, τότε πρέπει να προχωρήσουμε σε κάποιες ρυθμίσεις του Internet Explorer. Το WebScarab ως προεπιλογή χρησιμοποιεί για τον proxy την πόρτα 8008 στο localhost, οπότε πρέπει να διαμορφώσουμε τον IE ώστε να μεταδίδει τα αιτήματα στο WebScarab, παρά να τα εκτελεί μόνος του. Έλεγχος Ευπαθειών Web Εφαρμογών

40 OWASP WebScarab Το αρχικό παράθυρο του εργαλείου
Εδώ μπορούμε να δούμε τα plug-ins του εργαλείου. Έλεγχος Ευπαθειών Web Εφαρμογών

41 OWASP WebScarab Στο παράθυρο Summary βλέπουμε το δέντρο των URL's και τις συνομιλίες Στο παράθυρο Summary μπορούμε να δούμε το δέντρο των URL's, που αντιπροσωπεύει το σχεδιάγραμμα των sites που έχουμε επισκεφθεί, όπως και τις μεμονωμένες συνομιλίες που έχουν περάσει μέσω του WebScarab. Έλεγχος Ευπαθειών Web Εφαρμογών

42 OWASP WebScarab Στο παράθυρο Summary μπορούμε να δούμε το δέντρο των URL's, που αντιπροσωπεύει το σχεδιάγραμμα των sites που έχουμε επισκεφθεί, όπως και τις μεμονωμένες συνομιλίες που έχουν περάσει μέσω του WebScarab. Έλεγχος Ευπαθειών Web Εφαρμογών

43 OWASP WebScarab Επιλογή παρεμβολής των αιτημάτων και συγκεκριμένων μεθόδων HTTP Μπορούμε να καθορίσουμε αν επιθυμούμε να παρεμβάλουμε τα αιτήματα, τις απαντήσεις ή και τα δύο, όπως και συγκεκριμένες μεθόδους HTTP. Έλεγχος Ευπαθειών Web Εφαρμογών

44 OWASP WebScarab Δημιουργία scripts για τροποποιήσεις αιτημάτων

45 OWASP WebScarab Μέσω του proxy plug-in μπορούμε να εφαρμόσουμε:
να εμφανίζει και να τροποποιεί "hidden" πεδία σε πεδία τύπου "text". να έχουμε πάντα ένα αντίγραφο του σώματος απάντησης. να επιτρέπεται η αντιγραφή οποιονδήποτε cookies στον browser. να επιτρέπεται η συλλογή cookies από τις απαντήσεις. Τα hidden fields είναι πεδία που δεν εμφανίζονται στον browser και χρησιμοποιούνται σε φόρμες, για να μεταφέρουν πληροφορίες για τους χρήστες που συμπληρώνουν τη φόρμα. Π.χ.: hidden fields υπάρχουν στα εμπορικά sites στις φόρμες όπου υπάρχουν καλάθια αγορών (add to cart), για να φαίνεται το προϊόν που επιλέχθηκε και η ποσότητα. Έλεγχος Ευπαθειών Web Εφαρμογών

46 OWASP WebScarab Δημιουργία αιτήματος ή επανάληψης προηγούμενου
Μπορούμε να γράψουμε χειροκίνητα ένα αίτημα μας ή να επαναλάβουμε ένα προηγούμενο. Όταν κάνουμε την επιλογή "Fetch Response", το WebScarab στέλνει το αίτημα στον κατάλληλο server και σώζει τη συνομιλία για τυχόν ανάλυση από άλλα WebScarab plugins. Επιλέγοντας "Get cookies" το WebScarab παίρνει τα σχετικά με το ζητούμενο URL cookies από την λίστα "Shared Cookies" και τα προσθέτει στο αίτημα. Η επιλογή "Update CookieJar" ψάχνει οποιεσδήποτε επικεφαλίδες "Set-Cookie" στην απάντηση που ανακτήθηκε και τις προσθέτει στη λίστα "Shared Cookies". Έλεγχος Ευπαθειών Web Εφαρμογών

47 OWASP WebScarab Το Web Services plugin προσδιορίζει αυτόματα τις συνομιλίες που περιέχουν έγγραφα WSDL Το Web Services plugin μας επιτρέπει να χρησιμοποιήσουμε χειροκίνητα μια web υπηρεσία SOAP. Προσδιορίζει αυτόματα τις συνομιλίες που περιέχουν έγγραφα WSDL (Web Service Definition Language) και τις παρουσιάζει στο μενού επιλογής. Το plugin παρουσιάζει τις διαθέσιμες υπηρεσίες και διαδικασίες και δημιουργεί αυτόματα ένα δέντρο που περιέχει τις παραμέτρους που η υπηρεσία αυτή απαιτεί. Ο χειριστής μπορεί έπειτα να επιλέξει την επιλογή "Execute", για να υποβάλει το αίτημα στο server και να λάβει την απάντηση. Έλεγχος Ευπαθειών Web Εφαρμογών

48 OWASP WebScarab Το Spider plugin δημιουργεί ένα χάρτη της εφαρμογής
Το Spider plugin μας επιτρέπει να δημιουργήσουμε ένα χάρτη της εφαρμογής, αναλύοντας τις απαντήσεις και προσδιορίζοντας οποιαδήποτε link στο σώμα της απάντησης. Έλεγχος Ευπαθειών Web Εφαρμογών

49 OWASP WebScarab Το Session ID Analysis συλλέγει και αναλύει τα προσδιοριστικά συνόδου Το Session ID Analysis είναι χρήσιμο, ώστε να καθορίσει πόσο εύκολο είναι για έναν επιτιθέμενο, με τη μέθοδο brute force, να επιτεθεί στο sessionid ενός χρήστη και να τα καταφέρει. Η αρχή είναι ότι, συλλέγουμε ένα δείγμα των προσδιοριστικών συνόδου, πιθανότατα από ένα cookie που τίθεται στον browser, αλλά ενδεχομένως και από ένα που τίθεται σε ένα κρυμμένο πεδίο φόρμας στο σώμα της HTML σελίδας. Το WebScarab προσαρτεί σε όλα τα προσδιοριστικά συνόδων την ημερομηνία και το χρόνο που αυτά συλλέχθηκαν και έπειτα, μετά από την εκτέλεση κάποιων υπολογισμών στην τιμή του string για να την μετατρέψει σε έναν αριθμό, σχεδιάζει την τιμή σε σχέση με το χρόνο σε μια γραφική παράσταση. Έλεγχος Ευπαθειών Web Εφαρμογών

50 OWASP WebScarab Το Scripted plugin επιτρέπει τη δημιουργία scripts
Το Scripted plugin επιτρέπει στους χρήστες να δημιουργήσουν τα scripts δοκιμής, χρησιμοποιώντας τις λειτουργίες του Webscarab. Η γλώσσα προεπιλογής που υποστηρίζεται είναι η BeanShell. Η BeanShell είναι μια Java scripting γλώσσα. Τρέχει σε περιβάλλον Java Runtime Environment (JRE) και χρησιμοποιεί το συντακτικό της Java. Έλεγχος Ευπαθειών Web Εφαρμογών

51 OWASP WebScarab To Fragments plugin ελέγχει τις απαντήσεις HTML για scripts και σχόλια To Fragments plugin αναλύει τις απαντήσεις HTML και ψάχνει για scripts και σχόλια. Αυτό μπορεί να είναι πολύ ενδιαφέρον, πρώτον για να δούμε εάν υπάρχουν οποιεσδήποτε κρυμμένες συνδέσεις ή άλλος κώδικας διόρθωσης και επίσης για να καταλάβουμε πώς οι σελίδες υποτίθεται ότι πρέπει να λειτουργούν. Έλεγχος Ευπαθειών Web Εφαρμογών

52 OWASP WebScarab Το Fuzzer plug-in επιτρέπει τον συνδυασμό τιμών παραμέτρων Το Fuzzer μας επιτρέπει να κάνουμε ένα συνδυασμό τιμών παραμέτρων στο server. Αυτό μπορεί να είναι πολύ ενδιαφέρον, πρώτον για να δούμε εάν υπάρχουν οποιεσδήποτε κρυμμένες συνδέσεις ή άλλος κώδικας διόρθωσης και επίσης για να καταλάβουμε πώς οι σελίδες υποτίθεται ότι πρέπει να λειτουργούν. Έλεγχος Ευπαθειών Web Εφαρμογών

53 Διάφοροι Έλεγχοι Το πρώτο βήμα είναι η συλλογή πληροφοριών από τις απαντήσεις του web server και τη μελέτη του πηγαίου κώδικα των HTML σελίδων Επίσης μπορούμε να δούμε ότι λειτουργεί proxy server με λογισμικό Squid Έλεγχοι με το WebScarab Το πρώτο βήμα είναι να συλλέξουμε πληροφορίες από τις απαντήσεις του web server, με την αποστολή κατάλληλων HTTP αιτήσεων και τη μελέτη του πηγαίου κώδικα των HTML σελίδων. Έτσι η απάντηση σε OPTIONS αιτήσεις μας εμφανίζει τις επιτρεπόμενες HTTP μεθόδους. Επίσης μπορούμε να δούμε ότι λειτουργεί proxy server με λογισμικό Squid Έτσι λοιπόν, μπορούμε να παρατηρήσουμε ότι ο web server είναι Apache, αλλά δεν δίνονται περισσότερες πληροφορίες για την έκδοση. Βλέπουμε τις επιτρεπόμενες μεθόδους HTTP. Επίσης βλέπουμε ότι λειτουργεί proxy server (www.philippos.uom:80), με λογισμικό Squid. Το Squid είναι ένας proxy server και ένας web cache daemon. Έχει πολλές λειτουργίες, όπως είναι η μεγαλύτερη ταχύτητα του web server με το να αποθηκεύει επαναλαμβανόμενα αιτήματα, DNS κλπ. για ένα σύνολο χρηστών που μοιράζονται τους ίδιους δικτυακούς πόρους, για ενισχύει την ασφάλεια με το να φιλτράρει την κίνηση στο δίκτυο. Ενώ χρησιμοποιείται κατά κόρον για HTTP και FTP, το Squid έχει περιορισμένη υποστήριξη για διάφορα άλλα πρωτόκολλα όπως είναι τα TLS, SSL, HTTPS. Έλεγχος Ευπαθειών Web Εφαρμογών

54 Διάφοροι Έλεγχοι Με το httprint, ένα άλλο εργαλείο για συλλογή πληροφοριών (Fingerprinting), παρατηρούμε ότι δεν παρέχονται πληροφορίες για το site του ΠΑΜΑΚ Χρησιμοποιώντας ένα άλλο εργαλείο, το httprint, για συλλογή πληροφοριών (Fingerprinting) σχετικά με το περιβάλλον, παρατηρούμε ότι δεν δίνονται πληροφορίες για το site του ΠΑΜΑΚ. Το εργαλείο έχει αναγνωρίσει τις εκδόσεις τους web servers των τριών sites, εκτός από του ΠΑΜΑΚ. Έλεγχος Ευπαθειών Web Εφαρμογών

55 Διάφοροι Έλεγχοι Χρήση του Netcraft για Fingerprinting στο web server του ΠΑΜΑΚ Χρησιμοποιώντας ένα on-line εργαλείο, το Netcraft, για Fingerprinting στο web server του ΠΑΜΑΚ, συλλέξαμε κάποιες πληροφορίες. Δίνει πληροφορίες για το ΛΣ, όχι όμως για την έκδοση αυτού. Επίσης δίνει πληροφορίες για το uptime του server, δηλαδή το συνεχή χρόνο λειτουργίας του server, καθώς και για το πότε έγινε Reboot. Έλεγχος Ευπαθειών Web Εφαρμογών

56 Διάφοροι Έλεγχοι Με το εργαλείο Authentication Tester της IBM AppScan, διαπιστώνουμε ότι ο mail server του ΠΑΜΑΚ χρησιμοποιεί Form και όχι HTTP Authentication Το εργαλείο AppScan της IBM είναι ένα Επιχειρησιακό εργαλείο κλειστού κώδικα. Δυστυχώς και η TRIAL έκδοση του δεν επιτρέπει την δοκιμή του εργαλείου εκτός από ένα δοκιμαστικό site της εταιρίας (δηλαδή δεν επιτρέπει να γίνουν όλοι οι έλεγχοι που προσφέρει το εργαλείο). Παρόλα αυτά, χρησιμοποιώντας το εργαλείο Authentication Tester της IBM AppScan, για το site του πανεπιστημίου, διαπιστώνουμε ότι ο mail server του ΠΑΜΑΚ χρησιμοποιεί Form και όχι HTTP Authentication. HTTP basic authentication δεν είναι ιδιαίτερα ασφαλής. Η Basic authentication στέλνει τα user names και τα passwords μέσω του Internet ως απλό κείμενο (text), το οποίο είναι κωδικοποιημένο (Unix-to-Unix encoded) αλλά όχι κρυπτογραφημένο. Αυτός ο τύπος αυθεντικοποίησης, που χρησιμοποιεί Base64 κωδικοποίηση, μπορεί να εκθέσει τα user names και passwords, εκτός και αν όλες οι συνδέσεις είναι πάνω από SSL. Αν κάποιος μπορέσει να παρεμβάλει την μεταφορά, τα user name και password μπορούν εύκολα να αποκωδικοποιηθούν. Και η Form-based authentication δεν είναι ιδιαίτερα ασφαλής. Σε αυτή, το περιεχόμενο του πλαισίου διαλόγου του χρήστη στέλνεται πάλι ως plain text, και ο server δεν έχει ακόμη αυθεντικοποιηθεί από το χρήστη. Και αυτός ο τύπος αυθεντικοποίησης μπορεί να εκθέσει τα names and passwords αν η σύνδεση δεν είναι SSL. Οι περισσότερες Web εφαρμογές χρησιμοποιούν τη form-based authentication επειδή αυτή επιτρέπει στις εφαρμογές να διαμορφώσουν το interface αυθεντικοποίησης του χρήστη. Έλεγχος Ευπαθειών Web Εφαρμογών

57 Διάφοροι Έλεγχοι Με το εργαλείο Paros, διαπιστώνουμε ότι
Χρησιμοποιώντας το εργαλείο Paros, το οποίο είναι ένα ανοικτού κώδικα εργαλείο, που αυτοματοποιεί τους ελέγχους, βλέπουμε κάποια εικόνα περίπου ίδια με αυτή που είδαμε στο WebScarab. Στο πάνω αριστερό τμήμα φαίνονται οι URLs που έχουμε επισκεφθεί, στο δεξιό τμήμα φαίνονται τα αιτήματα μας και οι απαντήσεις του server (ενώ υπάρχει και η δυνατότητα υποκλοπής του αιτήματος και αλλαγής του). Στο κάτω τμήμα παρουσιάζονται αναλυτικά οι συνομιλίες που περνάνε μέσα από το Paros ως proxy. Στο κάτω αριστερό τμήμα, υπάρχουν οι καρτέλες History, Spider, Alerts και Output. Έλεγχος Ευπαθειών Web Εφαρμογών

58 Διάφοροι Έλεγχοι Σε έλεγχο scanning που κάναμε στη διεύθυνση τα αποτελέσματα της αναφοράς έδειξαν ότι υπάρχουν 2 κίνδυνοι επιπέδου Medium και ένας επιπέδου Low. Ο ένας αναφέρεται σε πιθανή Cross-site scripting ή HTML injection και ο άλλος σε default αρχεία που βρέθηκαν. Ο χαμηλός κίνδυνος αναφέρεται σε αρχεία backup ή παλιά (όπως στην προκειμένη περίπτωση), τα οποία δεν πρέπει να διατηρούμε στο server, διότι αυτά τα αρχεία μπορεί να περιέχουν σημαντικές πληροφορίες, και να έχουν extensions που δεν επεξεργάζεται πλέον ο server μας, κάτι που αποτελεί πρόβλημα. Κάτι πολύ σημαντικό που προσφέρει αυτό το εργαλείο, είναι οι συμβουλές επιδιόρθωσης των κινδύνων που εντοπίζονται, προσφέροντας μάλιστα και ενδεικτική βιβλιογραφία για την επίλυση τους. Έλεγχος Ευπαθειών Web Εφαρμογών

59 Διάφοροι Έλεγχοι Σε άλλο έλεγχο που κάναμε, κατά την προσπάθεια σύνδεσης μας στο mail server του πανεπιστημίου, μπορούμε να παρατηρήσουμε στο Scan Report, ότι στα Alerts εντοπίζεται ένας κίνδυνος επιπέδου Medium. Το πρόβλημα εδώ, έγκειται στο γεγονός ότι η αυτόματη συμπλήρωση των username και password στη φόρμα αυθεντικοποίησης που μας εμφανίζει ο browser δεν είναι απενεργοποιημένη. Με αυτό τον τρόπο, τα passwords μπορούν να αποθηκευτούν στον browser και να ανακτηθούν ίσως από κάποιο επιτιθέμενο. Έλεγχος Ευπαθειών Web Εφαρμογών

60 Διάφοροι Έλεγχοι Έχουμε επίσης τη δυνατότητα να δημιουργούμε εμείς τα αιτήματα μας και όχι μόνο μέσω του browser. Εδώ βλέπουμε ένα αίτημα που κάναμε προς το mail server. Ενώ είχαμε αποσυνδεθεί, προσπαθήσαμε να υπερπηδήσουμε τη σελίδα αυθεντικοποίησης, κάνοντας ένα αίτημα για να μας εμφανίσει τα εισερχόμενα μηνύματα. Βέβαια ο server απαίτησε την αυθεντικοποίηση μας. Στην απάντηση που έστειλε, μπορούμε να δούμε κάποια σημαντικά χαρακτηριστικά που πολύ σωστά υπάρχουν. Έχουν να κάνουν με την μνήμη Cache, “no-store, no-cache, must-revalidate, post-check=0, pre-check=0” Έλεγχος Ευπαθειών Web Εφαρμογών

61 Διάφοροι Έλεγχοι Το εργαλείο Nessus
Το εργαλείο Nessus της Tenable Network Security, είναι ένα εργαλείο ανοικτού λογισμικού που υποστηρίζει αυτοματοποιημένους ελέγχους ασφαλείας ευπαθειών. Είναι εργαλείο πολύ εύκολο στη χρήση, και με πολύ φιλικό περιβάλλον. Σημαντικά πλεονεκτήματα του Nessus είναι ότι υπάρχει η δυνατότητα update των plugins του σύμφωνα με νέες ευπάθειες που εμφανίζονται και επίσης υπάρχει η δυνατότητα ελέγχου πολλών hosts ταυτόχρονα. Επίσης πολύ σημαντικό είναι το γεγονός ότι το Nessus δεν παρουσιάζει απλά τυχόν ευπάθειες ασφάλειας που ανακαλύπτει, αλλά προσφέρει και λύσεις αντιμετώπισης τους, κάτι ανάλογο με το Paros. Έλεγχος Ευπαθειών Web Εφαρμογών

62 Διάφοροι Έλεγχοι Nessus Security Reports
Εδώ, μετά από ένα scanning που κάναμε στο web server του πανεπιστημίου, μπορούμε να δούμε την αναφορά που μας παρουσιάζει το Nessus. Αναφέρεται ο κίνδυνος του Buffer Overflow Έλεγχος Ευπαθειών Web Εφαρμογών

63 Διάφοροι Έλεγχοι Αναφέρεται ο κίνδυνος του Buffer Overflow
Έλεγχος Ευπαθειών Web Εφαρμογών

64 ΣΥΜΠΕΡΑΣΜΑΤΑ Οι web εφαρμογές λειτουργούν σε ανασφαλές περιβάλλον
Ανάγκη εκπαίδευσης των υπεύθυνων ανάπτυξης εφαρμογών σε θέματα ασφάλειας Συνεχής και λεπτομερής έλεγχος της ασφάλειας Η επιλογή κάποιου εργαλείου πρέπει να είναι πολύ προσεκτική Τα εργαλεία ελέγχου ασφάλειας δεν προστατεύουν τις εφαρμογές Οι web εφαρμογές λειτουργούν σε ανασφαλές περιβάλλον, λόγω του ότι λειτουργούν πάνω σε πρωτόκολλα HTTP(S) και οι θύρες που χρησιμοποιούν αυτά τα πρωτόκολλα (80 και 443) πρέπει να είναι εντελώς ανοικτές, ώστε να επιτρέπεται η πρόσβαση των χρηστών. Για το λόγο αυτό θα πρέπει οι υπεύθυνοι ανάπτυξης των εφαρμογών να είναι έχουν ως πρώτιστο μέλημα τους την ασφάλεια τους και όχι μόνο τη λειτουργικότητα τους. Αυτό όμως προϋποθέτει τη γνώση τους σε θέματα ασφάλειας των web εφαρμογών και την πιστή τήρηση αυτών. Συνεχής και λεπτομερής έλεγχος της ασφάλειας: αυτό προϋποθέτει την επιθεώρηση ασφάλειας του κώδικα, που είναι ο πιο αποτελεσματικός και σίγουρος τρόπος. Αποφασίζοντας για τη χρήση ενός εργαλείου, η επιλογή του πρέπει να είναι πολύ προσεκτική, ώστε να καλύπτει τις ανάγκες μας και όχι την ευκολία μας. Τα εργαλεία ελέγχου ασφάλειας δεν προστατεύουν τις εφαρμογές: δεν θα πρέπει να αποτελεί πανάκεια η χρήση κάποιου ή κάποιων εργαλείων για τον έλεγχο της ασφάλειας, γιατί ποτέ δεν μπορούμε να γνωρίζουμε κατά πόσο το εργαλείο είναι αξιόπιστο ή ενημερωμένο, δηλαδή αποτελεσματικό Έλεγχος Ευπαθειών Web Εφαρμογών

65 Έλεγχος Ευπαθειών Web Εφαρμογών Αξιωματικός Έρευνας Πληροφορικής
? Ευχαριστώ πολύ για την υπομονή σας. Είμαι στη διάθεση σας για τυχόν ερωτήσεις. Χρήστος Παπακρίβος Αξιωματικός Έρευνας Πληροφορικής Στρατού Ξηράς Έλεγχος Ευπαθειών Web Εφαρμογών


Κατέβασμα ppt "Έλεγχος Ευπαθειών Web Εφαρμογών Αξιωματικός Έρευνας Πληροφορικής"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google