Transcript Διαφάνεια 1
Έλεγχος Ευπαθειών Web Εφαρμογών Χρήστος Παπακρίβος Αξιωματικός Έρευνας Πληροφορικής Στρατού Ξηράς Έλεγχος Ευπαθειών Web Εφαρμογών 1 ΠΕΡΙΕΧΟΜΕΝΑ Ιστορική Αναδρομή Ορισμός Αρχιτεκτονική Web Εφαρμογών Αδυναμίες και Απειλές Ασφάλεια Web Εφαρμογών Εργαλεία Ελέγχου Ασφάλειας OWASP WebScarab Διάφοροι Έλεγχοι Συμπεράσματα Έλεγχος Ευπαθειών Web Εφαρμογών 2 Εξέλιξη Ιστορική Αναδρομή Εμφάνιση ASP, JSP, PHP Εμφάνιση Server-side scripts Στατικές Σελίδες ClientServer Προσέγγιση Χρόνος Έλεγχος Ευπαθειών Web Εφαρμογών 3 Ορισμός προγράμματα ή σύνολα προγραμμάτων που σχεδιάζονται για τελικούς χρήστες, οι οποίοι πάνω από δίκτυα Internet ή Intranet, έχουν πρόσβαση σε αυτές μέσω του web. Έλεγχος Ευπαθειών Web Εφαρμογών 4 N-Tier Application Architecture (Ν-Βαθμίδες Αρχιτεκτονικής Εφαρμογών) Έλεγχος Ευπαθειών Web Εφαρμογών 5 N-Tier Application Architecture (Ν-Βαθμίδες Αρχιτεκτονικής Εφαρμογών) Πλεονεκτήματα: Δημιουργία ευέλικτων και εύχρηστων εφαρμογών Αλλαγή ή προσθήκη επιπέδων Έλεγχος Ευπαθειών Web Εφαρμογών 6 N-Tier Application Architecture (Ν-Βαθμίδες Αρχιτεκτονικής Εφαρμογών) Τυπικά, μια Web Εφαρμογή στην πιο απλή μορφή της, δομείται από τρία επίπεδα-βαθμίδες: Ένα Web Browser Ένα Web Server με τεχνολογία δυναμικού web περιεχομένου Μια Βάση Δεδομένων Έλεγχος Ευπαθειών Web Εφαρμογών 7 N-Tier Application Architecture (Ν-Βαθμίδες Αρχιτεκτονικής Εφαρμογών) Σχηματική παράσταση του λογισμικού web εφαρμογών: • «κάθεται» πάνω στο λογισμικό του συστήματος • δεν μπορεί να λειτουργήσει χωρίς το ΛΣ και βασικά προγράμματα του συστήματος Έλεγχος Ευπαθειών Web Εφαρμογών 8 Εξέλιξη των Web Εφαρμογών Έλεγχος Ευπαθειών Web Εφαρμογών 9 Πλεονεκτήματα Web Εφαρμογών Είναι συμβατές με όλες τις πλατφόρμες Υπάρχει συνεχής ενημέρωση των εφαρμογών Παρέχουν αμεσότητα πρόσβασης των δεδομένων Ευκολία δοκιμής και χρήσης Μικρότερες απαιτήσεις μνήμης Λιγότερα τεχνικά προβλήματα Χαμηλότερο κόστος Έλεγχος Ευπαθειών Web Εφαρμογών 10 Πλεονεκτήματα Web Εφαρμογών Συγκεντρωμένα δεδομένα Οι πληροφορίες είναι προσβάσιμες από περισσότερους χρήστες Η πρόσβαση των πληροφοριών είναι συνεχής Ταυτόχρονη εξυπηρέτηση πολλών χρηστών Η ανάπτυξη τους μπορεί να γίνει σε οποιαδήποτε γλώσσα Έλεγχος Ευπαθειών Web Εφαρμογών 11 Μειονεκτήματα Web Εφαρμογών Η έλλειψη τυπικής σύνταξης των γλωσσών scripting Οι γλώσσες scripting είναι αργές Τα Scripts έχουν ως αποτέλεσμα μεγάλες βάσεις κώδικα Είναι δύσκολο να γραφούν μεγάλες και multi-tier εφαρμογές, σε γλώσσες scripting Οι περισσότερες γλώσσες scripting δεν υποστηρίζουν remote μεθόδους και κλήσεις web υπηρεσιών Έλεγχος Ευπαθειών Web Εφαρμογών 12 Μειονεκτήματα Web Εφαρμογών Όμως το σημαντικότερο μειονέκτημα των web εφαρμογών αφορά την ΑΣΦΑΛΕΙΑ, αφού σχετίζονται άμεσα με το WEB. Έλεγχος Ευπαθειών Web Εφαρμογών 13 Διαφορά Web Εφαρμογών και Υπηρεσιών Web Υπηρεσία (Web Service) είναι η ενοποίηση web εφαρμογών, πάνω από ένα δίκτυο internet. Έλεγχος Ευπαθειών Web Εφαρμογών 14 Διαφορά Web Εφαρμογών και Υπηρεσιών Επικοινωνία πολλών διαφορετικών εφαρμογών Οι web υπηρεσίες δεν εξαρτώνται από κάποιο ΛΣ ή προγραμματιστική γλώσσα Δεν απαιτείται η χρήση browsers ή γλώσσας HTML Έλεγχος Ευπαθειών Web Εφαρμογών 15 Αδυναμίες και Απειλές Η ύπαρξη διαφορετικών τεχνολογιών και προϊόντων, για τη λειτουργία ενός Website στο οποίο τρέχουν web εφαρμογές, δημιουργεί πολλά προβλήματα ασφάλειας Έλεγχος Ευπαθειών Web Εφαρμογών 16 Αδυναμίες και Απειλές Οι κατηγορίες Αδυναμιών και Απειλών αναφέρονται σε: Διαχείριση Διαμόρφωσης της Υποδομής (Infrastructure Configuration Management) Διαχείριση Διαμόρφωσης των Εφαρμογών (Application Configuration Management) Επικύρωση Εγκυρότητας των δεδομένων Εισόδου/Εξόδου (Boundary Validation Vulnerabilities) Αυθεντικοποίηση και Έλεγχο Πρόσβασης (Authentication and Access Control) Προστασία Δεδομένων (Data Protection) Έλεγχος Ευπαθειών Web Εφαρμογών 17 Αδυναμίες και Απειλές Οι κατηγορίες Αδυναμιών και Απειλών αναφέρονται σε: Υπερχείλιση Buffer (Buffer Overflows) Λάθη στη Λογική των Εφαρμογών (Application Logic Flaws) Ζητήματα Διαχείρισης Συνόδων (Session Management Issues) Παραβίαση Ιδιωτικότητας Χρηστών (User Privacy Violations) Χειρισμό Λαθών και Εξαιρέσεων (Error and Exception Handling) Έλεγχος Ευπαθειών Web Εφαρμογών 18 Αδυναμίες και Απειλές Top 10 Web application vulnerabilities A1 Μη πιστοποιηµένη είσοδος Δεδοµένα που προέρχονται από αιτήµατα δεν πιστοποιούνται πριν χρησιµοποιηθούν από µια web εφαρµογή. A2 Έλεγχος πρόσβασης Δεν επιβάλλονται κατάλληλα οι περιορισµοί σχετικά µε τις επιτρεπόµενες ενέργειες των πιστοποιηµένων χρηστών. A3 Διαχείριση προσβάσεων και συνδέσεων Ιδιότητες των λογαριασµών και συνδέσεις που έχουν γίνει, δεν προστατεύονται επαρκώς. A4 Διαρροές µέσω Cross Site Scripting (XSS) Η web εφαρµογή μπορεί να χρησιµοποιηθεί σαν ένας μηχανισµός μεταφοράς επιθέσεων, στον browser του χρήστη. Υπερχείλιση Buffer Τα στοιχεία μιας web εφαρµογής που δεν επικυρώνει κατάλληλα την είσοδο, μπορεί να τεθούν εκτός και σε μερικές περιπτώσεις να χρησιµοποιηθούν για να πάρει ένας επιτιθέµενος τον έλεγχο της εφαρµογής. A5 Έλεγχος Ευπαθειών Web Εφαρμογών 19 Αδυναμίες και Απειλές Top 10 Web application vulnerabilities A6 Διαρροές µέσω Injection Εισαγωγή κακόβουλων εντολών σε παραμέτρους της εφαρμογής. A7 Μη αρµόζουσα διαχείριση λαθών Καταστάσεις λάθους που προκύπτουν κατά τη διάρκεια κανονικών λειτουργιών της εφαρμογής, δεν διαχειρίζονται ορθά. A8 Μη ασφαλής αποθήκευση Οι Web εφαρµογές συχνά χρησιµοποιούν εντολές κρυπτογράφησης, για να προστατεύσουν πληροφορίες και πιστοποιητικά, που είναι δύσκολο να κωδικοποιηθούν σωστά. A9 Άρνηση παροχής Υπηρεσιών (DoS) Η κατανάλωση πόρων της web εφαρµογής, σε σηµείο που άλλοι νόµιµοι χρήστες να µην μπορούν πλέον να έχουν πρόσβαση σε αυτή. A1 0 Μη ασφαλής διαχείριση της παραµετροποίησης Το να έχουµε ένα ισχυρό πρότυπο παραµετροποίησης των servers είναι σηµαντικό για την ασφάλεια των web εφαρµογών µας. Έλεγχος Ευπαθειών Web Εφαρμογών 20 Αδυναμίες και Απειλές Οι αδυναμίες αυτές καθιστούν τις web εφαρμογές πολύ ευάλωτες σε επιθέσεις hackers. Θα πρέπει να γίνονται τακτικοί έλεγχοι Έλεγχος Ευπαθειών Web Εφαρμογών 21 Ασφάλεια Web Εφαρμογών Πώς μπορούμε όμως να καταλάβουμε ότι κινδυνεύουμε; Με τη χρήση εργαλείων Web Scanning Με συχνές επιθεωρήσεις της διαμόρφωσης των υποδομών της εφαρμογής Με τη χρήση Vulnerability Scanners, για περιοδικούς ελέγχους των web servers Έλεγχος Ευπαθειών Web Εφαρμογών 22 Ασφάλεια Web Εφαρμογών Οι βασικές μέθοδοι της ασφάλειας των web εφαρμογών είναι: Επιθεώρηση Ασφαλείας (Security Audit): Ύπαρξη πινάκων ελέγχου (checklists) Προσωπικές συνεντεύξεις, ανιχνεύσεις αδυναμιών, εξετάσεις των ρυθμίσεων, αναλύσεις των διαμοιρασμένων πόρων δικτύου και μελέτες ιστορικών στοιχείων (log files). Έλεγχος Ευπαθειών Web Εφαρμογών 23 Ασφάλεια Web Εφαρμογών Οι βασικές μέθοδοι της ασφάλειας των web εφαρμογών είναι: Αυτο-αξιολόγηση Ασφαλείας (Security Self-assessment): Ο στόχος προσδιορίζεται από την περιοχή που χρειάζεται διερεύνηση και βελτίωση στη θωράκιση της Επεκτείνεται σε ένα πιο λεπτομερή έλεγχο για εντοπισμό αδυναμιών Έλεγχος Ευπαθειών Web Εφαρμογών 24 Ασφάλεια Web Εφαρμογών Οι βασικές μέθοδοι της ασφάλειας των web εφαρμογών είναι: Δοκιμή διείσδυσης (penetration testing ή "ethical hacking"): Είναι η ελεγχόμενη προσομοίωση μιας επίθεσης Σκοπός της είναι να εντοπιστούν συγκεκριμένες πληροφορίες για την ύπαρξη γνωστών αδυναμιών Μπορεί να πραγματοποιηθεί με μηδενική ή πλήρη γνώση του συστήματος που δοκιμάζεται Οι “ethical hackers” προσπαθούν να υιοθετήσουν τις επιθέσεις και τις τεχνικές των hackers Έλεγχος Ευπαθειών Web Εφαρμογών 25 Ασφάλεια Web Εφαρμογών Σύγκριση των μεθόδων μέτρησης ασφάλειας Στις μεθόδους της Επιθεώρησης Ασφάλειας και της Αυτο-αξιολόγησης απαιτούνται: Η μετακίνηση των ειδικών ασφαλείας Κατάλληλα checklists Υψηλή τεχνογνωσία Άρτιος συντονισμός Πολύς χρόνος Διαταράσσεται η λειτουργία του οργανισμού. Έλεγχος Ευπαθειών Web Εφαρμογών 26 Ασφάλεια Web Εφαρμογών Σύγκριση των μεθόδων μέτρησης ασφάλειας Η Δοκιμή Διείσδυσης αποτελεί ΜΟΝΟΔΡΟΜΟΣ Έχει τα εξής πλεονεκτήματα: Απαιτείται ελάχιστο προσωπικό, χωρίς την ανάγκη μετακίνησης του Δυνατότητα πλήρους αυτοματοποίησης Είναι μικρής διάρκειας και εύκολα επαναλαμβανόμενη Δεν απαιτείται η γνώση της εφαρμογής Δεν διαταράσσει τη λειτουργία της Είναι πολύ οικονομικότερη Έλεγχος Ευπαθειών Web Εφαρμογών 27 Ασφάλεια Web Εφαρμογών Τεχνικές Δοκιμή Διείσδυσης Χειροκίνητη (manual) Αυτοματοποιημένη (automated), όπου διακρίνεται σε δύο τεχνικές: Black Box: Η εφαρμογή εξετάζεται χρησιμοποιώντας την εξωτερική της διεπαφή White Box: Εξετάζεται η εσωτερική δομή της εφαρμογής, χρησιμοποιώντας τη διεπαφή προγραμματισμού εφαρμογών Έλεγχος Ευπαθειών Web Εφαρμογών 28 Ασφάλεια Web Εφαρμογών Interface των Black και White Box τεχνικών δοκιμής διείσδυσης Οι ποιοτικές δοκιμές απαιτούν την λειτουργία των ελέγχων, σύμφωνα με τον τρόπο με τον οποίο οι χρήστες αλληλεπιδρούν με την εφαρμογή Έλεγχος Ευπαθειών Web Εφαρμογών 29 Εργαλεία Ελέγχου Ασφαλείας Διακρίσεις των Εργαλείων Ως προς το σύνολο των ελέγχων που πραγματοποιούν σε: Επιχειρησιακού επιπέδου (Enterprise level): Αποτελούνται από ένα σύνολο εργαλείων που χρησιμοποιούν την τεχνική της Black box δοκιμής διείσδυσης (π.χ.: Sanctum AppScan, KaVaDo ScanDo, SPI Dynamics WebInspect, OWASP WebScarab). Εστιασμένα (Focused): Εργαλεία που εκτελούν συγκεκριμένες λειτουργίες ή αυτοματοποιούν ένα ή περισσότερα τεστ ελέγχου (π.χ.: WebSphinx, AtStake WebProxy, Nikto, SPIKE Proxy, WebserverFP, Mieliekoek.pl). Έλεγχος Ευπαθειών Web Εφαρμογών 30 Εργαλεία Ελέγχου Ασφαλείας Διακρίσεις των Εργαλείων Ως προς τον κώδικα τους σε: Κλειστού κώδικα (Close - proprietary source): Είναι ολοκληρωμένα προϊόντα, για μη ειδικούς και τα οποία προσφέρουν μια ολοκληρωμένη διαδικασία για την αξιολόγηση της ασφάλειας. Χρησιμοποιούν ιδιωτικές βάσεις δεδομένων αδυναμιών Ανοικτού κώδικα (Open source): Είναι πολύ πιο εύκολα επεκτάσιμα, γεγονός που τα καθιστά πολύ δημοφιλή Έλεγχος Ευπαθειών Web Εφαρμογών 31 Εργαλεία Ελέγχου Ασφαλείας Συμπεράσματα σχετικά με τα Εργαλεία Τα Επιχειρησιακού επιπέδου εργαλεία, είναι κατάλληλα για κάθε επιχείρηση που θέλει να διεξάγει δικούς της ελέγχους ασφαλείας, χωρίς να έχει την ανάγκη εξωτερικών παραγόντων Τα Εστιασμένα εργαλεία απαιτούν κατάλληλο θεωρητικό υπόβαθρο και εξειδίκευση Τα Επιχειρησιακού επιπέδου, ανοικτού κώδικα εργαλεία, είναι κατάλληλα για εκπαίδευση και έρευνα πάνω στον τομέα του ελέγχου ασφάλειας Έλεγχος Ευπαθειών Web Εφαρμογών 32 OWASP WebScarab Περιγραφή εργαλείου Είναι Επιχειρησιακού επιπέδου, Ανοικτού κώδικα εργαλείο ελέγχου ασφάλειας Είναι γραμμένο σε Java και έτσι μπορεί να λειτουργήσει σε πολλές πλατφόρμες Λειτουργεί με τη χρήση διαφόρων plugins Η χρήση του απαιτεί προγραμματιστικό υπόβαθρο Έχει ως σκοπό να αποκαλύψει τον τρόπο λειτουργίας της εφαρμογής Έλεγχος Ευπαθειών Web Εφαρμογών 33 OWASP WebScarab Περιγραφή εργαλείου Παρέχει διάφορα plugins, όπως: Fragments: εξάγει scripts και σχόλια από HTML σελίδες Proxy: παρατηρεί την κυκλοφορία μεταξύ browser και web server Manual intercept: επιτρέπει την άμεση τροποποίηση αιτημάτων Manual request: επιτρέπει δημιουργία, επεξεργασία και επανάληψη αιτημάτων Spider: προσδιορίζει νέες URLs στο site-στόχο Scripted: γράφουμε scripts που δημιουργούν αιτήματα προς το server Έλεγχος Ευπαθειών Web Εφαρμογών 34 OWASP WebScarab Περιγραφή εργαλείου SessionID analysis: συλλέγει και αναλύει τα διάφορα cookies Parameter fuzzer: εκτελεί αυτοματοποιημένη αντικατάσταση τιμών παραμέτρου Reveal hidden fields: μετατρέπει τα hidden fields σε text SOAP: αναλύει το έγγραφο WSDL Έλεγχος Ευπαθειών Web Εφαρμογών 35 OWASP WebScarab Διάφορες εκδόσεις του WebScarab μπορεί να βρεθούν στην ιστοσελίδα του OWASP (www.owasp.org) Προτιμάτε η έκδοση Java Web Start, διότι έχει το πλεονέκτημα της αυτόματης ενημέρωσης (http://dawes.za.net/rogan/webscarab/WebScarab.jnlp) Απαιτεί το περιβάλλον Java Runtime (http://java.sun.com) Έλεγχος Ευπαθειών Web Εφαρμογών 36 OWASP WebScarab Έλεγχος Ευπαθειών Web Εφαρμογών 37 OWASP WebScarab Ρυθμίσεις Περιβάλλοντος WebScarab Εάν χρησιμοποιούμε proxy server, θα πρέπει να κάνουμε κάποιες ρυθμίσεις, μέσα από το μενού Proxy, για να δηλώσουμε την διεύθυνση του proxy server που χρησιμοποιούμε Έλεγχος Ευπαθειών Web Εφαρμογών 38 OWASP WebScarab Ρυθμίσεις Περιβάλλοντος WebScarab Εάν δεν χρησιμοποιούμε proxy server, τότε πρέπει να προχωρήσουμε σε κάποιες ρυθμίσεις του Internet Explorer Έλεγχος Ευπαθειών Web Εφαρμογών 39 OWASP WebScarab Το αρχικό παράθυρο του εργαλείου Έλεγχος Ευπαθειών Web Εφαρμογών 40 OWASP WebScarab Στο παράθυρο Summary βλέπουμε το δέντρο των URL's και τις συνομιλίες Έλεγχος Ευπαθειών Web Εφαρμογών 41 OWASP WebScarab Έλεγχος Ευπαθειών Web Εφαρμογών 42 OWASP WebScarab Επιλογή παρεμβολής των αιτημάτων και συγκεκριμένων μεθόδων HTTP Έλεγχος Ευπαθειών Web Εφαρμογών 43 OWASP WebScarab Δημιουργία scripts για τροποποιήσεις αιτημάτων Έλεγχος Ευπαθειών Web Εφαρμογών 44 OWASP WebScarab Μέσω του proxy plug-in μπορούμε να εφαρμόσουμε: Έλεγχος Ευπαθειών Web Εφαρμογών 45 OWASP WebScarab Δημιουργία αιτήματος ή επανάληψης προηγούμενου Έλεγχος Ευπαθειών Web Εφαρμογών 46 OWASP WebScarab Το Web Services plugin προσδιορίζει αυτόματα τις συνομιλίες που περιέχουν έγγραφα WSDL Έλεγχος Ευπαθειών Web Εφαρμογών 47 OWASP WebScarab Το Spider plugin δημιουργεί ένα χάρτη της εφαρμογής Έλεγχος Ευπαθειών Web Εφαρμογών 48 OWASP WebScarab Το Session ID Analysis συλλέγει και αναλύει τα προσδιοριστικά συνόδου Έλεγχος Ευπαθειών Web Εφαρμογών 49 OWASP WebScarab Το Scripted plugin επιτρέπει τη δημιουργία scripts Έλεγχος Ευπαθειών Web Εφαρμογών 50 OWASP WebScarab To Fragments plugin ελέγχει τις απαντήσεις HTML για scripts και σχόλια Έλεγχος Ευπαθειών Web Εφαρμογών 51 OWASP WebScarab Το Fuzzer plug-in επιτρέπει τον συνδυασμό τιμών παραμέτρων Έλεγχος Ευπαθειών Web Εφαρμογών 52 Διάφοροι Έλεγχοι Το πρώτο βήμα είναι η συλλογή πληροφοριών από τις απαντήσεις του web server και τη μελέτη του πηγαίου κώδικα των HTML σελίδων Επίσης μπορούμε να δούμε ότι λειτουργεί proxy server με λογισμικό Squid Έλεγχος Ευπαθειών Web Εφαρμογών 53 Διάφοροι Έλεγχοι Με το httprint, ένα άλλο εργαλείο για συλλογή πληροφοριών (Fingerprinting), παρατηρούμε ότι δεν παρέχονται πληροφορίες για το site του ΠΑΜΑΚ Έλεγχος Ευπαθειών Web Εφαρμογών 54 Διάφοροι Έλεγχοι Χρήση του Netcraft για Fingerprinting στο web server του ΠΑΜΑΚ Έλεγχος Ευπαθειών Web Εφαρμογών 55 Διάφοροι Έλεγχοι Με το εργαλείο Authentication Tester της IBM AppScan, διαπιστώνουμε ότι ο mail server του ΠΑΜΑΚ χρησιμοποιεί Form και όχι HTTP Authentication Έλεγχος Ευπαθειών Web Εφαρμογών 56 Διάφοροι Έλεγχοι Με το εργαλείο Paros, διαπιστώνουμε ότι Έλεγχος Ευπαθειών Web Εφαρμογών 57 Διάφοροι Έλεγχοι Έλεγχος Ευπαθειών Web Εφαρμογών 58 Διάφοροι Έλεγχοι Έλεγχος Ευπαθειών Web Εφαρμογών 59 Διάφοροι Έλεγχοι Έλεγχος Ευπαθειών Web Εφαρμογών 60 Διάφοροι Έλεγχοι Το εργαλείο Nessus Έλεγχος Ευπαθειών Web Εφαρμογών 61 Διάφοροι Έλεγχοι Nessus Security Reports Έλεγχος Ευπαθειών Web Εφαρμογών 62 Διάφοροι Έλεγχοι Έλεγχος Ευπαθειών Web Εφαρμογών 63 ΣΥΜΠΕΡΑΣΜΑΤΑ Οι web εφαρμογές λειτουργούν σε ανασφαλές περιβάλλον Ανάγκη εκπαίδευσης των υπεύθυνων ανάπτυξης εφαρμογών σε θέματα ασφάλειας Συνεχής και λεπτομερής έλεγχος της ασφάλειας Η επιλογή κάποιου εργαλείου πρέπει να είναι πολύ προσεκτική Τα εργαλεία ελέγχου ασφάλειας δεν προστατεύουν τις εφαρμογές Έλεγχος Ευπαθειών Web Εφαρμογών 64 Έλεγχος Ευπαθειών Web Εφαρμογών Χρήστος Παπακρίβος Αξιωματικός Έρευνας Πληροφορικής Στρατού Ξηράς Έλεγχος Ευπαθειών Web Εφαρμογών 65