9 Δημοφιλείς τύποι επίθεσης με έγχυση εφαρμογών Ιστού

Το πρόβλημα με τις διαδικτυακές εφαρμογές είναι ότι είναι ανοιχτά εκτεθειμένες σε δισεκατομμύρια χρήστες του Διαδικτύου, πολλοί από τους οποίους θα θέλουν να παραβιάσουν τα μέτρα ασφαλείας του -για όποιον και αν είναι οι λόγοι.

Στις πρώτες μέρες του Διαδικτύου, μια από τις πιο κοινές μεθόδους επίθεσης ήταν η βασική, απλή ωμή βία. Τα ρομπότ συνήθως εκτελούσαν αυτές τις επιθέσεις -ή άτομα με άφθονο ελεύθερο χρόνο- που δοκίμασαν χιλιάδες συνδυασμούς ονομάτων χρήστη και κωδικών πρόσβασης μέχρι να βρουν έναν που θα επέτρεπε πρόσβαση στην εφαρμογή-στόχο.

Οι επιθέσεις ωμής βίας δεν αποτελούν πλέον απειλή, χάρη στις πολιτικές κωδικών πρόσβασης, τις περιορισμένες προσπάθειες σύνδεσης και τα captchas. Αλλά οι εγκληματίες του κυβερνοχώρου λατρεύουν να ανακαλύπτουν νέα εκμεταλλεύσεις και να τα χρησιμοποιούν για να εκτελούν νέους τύπους επιθέσεων. Πριν από πολύ καιρό, ανακάλυψαν ότι τα πεδία κειμένου σε εφαρμογές ή ιστοσελίδες μπορούσαν να χρησιμοποιηθούν με την εισαγωγή –ή την ένεση– απροσδόκητου κειμένου σε αυτά που θα ανάγκαζε την εφαρμογή να κάνει κάτι που δεν έπρεπε να κάνει. Με αυτόν τον τρόπο μπήκαν στη σκηνή οι λεγόμενες επιθέσεις με ένεση.

Οι επιθέσεις με έγχυση μπορούν να χρησιμοποιηθούν όχι μόνο για τη σύνδεση σε μια εφαρμογή χωρίς να γνωρίζουν το όνομα χρήστη και τον κωδικό πρόσβασης, αλλά και για την έκθεση ιδιωτικών, εμπιστευτικών ή ευαίσθητων πληροφοριών ή ακόμη και για την παραβίαση ενός ολόκληρου διακομιστή. Αυτός είναι ο λόγος για τον οποίο αυτές οι επιθέσεις δεν αποτελούν απειλή μόνο για τις εφαρμογές Ιστού, αλλά και για τους χρήστες των οποίων τα δεδομένα βρίσκονται σε αυτές τις εφαρμογές, και στη χειρότερη περίπτωση, για άλλες συνδεδεμένες εφαρμογές και υπηρεσίες.

Εισαγωγή κώδικα

Η ένεση κώδικα είναι ένας από τους πιο συνηθισμένους τύπους επιθέσεων με ένεση. Εάν οι εισβολείς γνωρίζουν τη γλώσσα προγραμματισμού, το πλαίσιο, τη βάση δεδομένων ή το λειτουργικό σύστημα που χρησιμοποιείται από μια διαδικτυακή εφαρμογή, μπορούν να εισάγουν κώδικα μέσω πεδίων εισαγωγής κειμένου για να αναγκάσουν τον διακομιστή ιστού να κάνει αυτό που θέλουν.

Αυτοί οι τύποι επιθέσεων έγχυσης είναι δυνατοί σε εφαρμογές που δεν διαθέτουν επικύρωση δεδομένων εισόδου. Εάν ένα πεδίο εισαγωγής κειμένου επιτρέπει στους χρήστες να εισάγουν ό,τι θέλουν, τότε η εφαρμογή είναι δυνητικά εκμεταλλεύσιμη. Για να αποτραπούν αυτές οι επιθέσεις, η εφαρμογή πρέπει να περιορίσει όσο περισσότερο μπορεί τους χρήστες εισόδου που επιτρέπεται να εισέλθουν.

Για παράδειγμα, πρέπει να περιορίσει τον όγκο των αναμενόμενων δεδομένων, να ελέγξει τη μορφή δεδομένων πριν τα αποδεχτεί και να περιορίσει το σύνολο των επιτρεπόμενων χαρακτήρων.

Τα τρωτά σημεία εισαγωγής κώδικα μπορεί να είναι εύκολο να εντοπιστούν, απλώς δοκιμάζοντας την εισαγωγή κειμένου μιας εφαρμογής Ιστού με διαφορετικούς τύπους περιεχομένου. Όταν εντοπιστούν, τα τρωτά σημεία είναι σχετικά δύσκολο να αξιοποιηθούν. Αλλά όταν ένας εισβολέας καταφέρει να εκμεταλλευτεί ένα από αυτά τα τρωτά σημεία, ο αντίκτυπος μπορεί να περιλαμβάνει απώλεια εμπιστευτικότητας, ακεραιότητας, διαθεσιμότητας ή λειτουργικότητας εφαρμογής.

  6 Εργαλεία Anti Spyware για να καθαρίσετε τις συσκευές σας

SQL injection

Με παρόμοιο τρόπο με την ένεση κώδικα, αυτή η επίθεση εισάγει ένα σενάριο SQL -τη γλώσσα που χρησιμοποιείται από τις περισσότερες βάσεις δεδομένων για την εκτέλεση εργασιών ερωτήματος- σε ένα πεδίο εισαγωγής κειμένου. Το σενάριο αποστέλλεται στην εφαρμογή, η οποία το εκτελεί απευθείας στη βάση δεδομένων της. Ως αποτέλεσμα, ο εισβολέας θα μπορούσε να περάσει από μια οθόνη σύνδεσης ή να κάνει πιο επικίνδυνα πράγματα, όπως να διαβάσει ευαίσθητα δεδομένα απευθείας από τη βάση δεδομένων, να τροποποιήσει ή να καταστρέψει δεδομένα βάσης δεδομένων ή να εκτελέσει λειτουργίες διαχειριστή στη βάση δεδομένων.

Οι εφαρμογές PHP και ASP είναι επιρρεπείς σε επιθέσεις SQL injection λόγω των παλαιότερων λειτουργικών διεπαφών τους. Οι εφαρμογές J2EE και ASP.Net είναι συνήθως πιο προστατευμένες από αυτές τις επιθέσεις. Όταν εντοπιστεί μια ευπάθεια SQL injection –και θα μπορούσε να βρεθεί εύκολα– το μέγεθος των πιθανών επιθέσεων θα περιοριστεί μόνο από την ικανότητα και τη φαντασία του εισβολέα. Έτσι, ο αντίκτυπος μιας επίθεσης SQL injection είναι αναμφίβολα υψηλός.

Έγχυση εντολών

Αυτές οι επιθέσεις είναι επίσης πιθανές, κυρίως λόγω ανεπαρκούς επικύρωσης εισόδου. Διαφέρουν από τις επιθέσεις εισαγωγής κώδικα στο ότι ο εισβολέας εισάγει εντολές συστήματος αντί για κομμάτια κώδικα προγραμματισμού ή σενάρια. Επομένως, ο χάκερ δεν χρειάζεται να γνωρίζει τη γλώσσα προγραμματισμού στην οποία βασίζεται η εφαρμογή ή τη γλώσσα που χρησιμοποιείται από τη βάση δεδομένων. Πρέπει όμως να γνωρίζουν το λειτουργικό σύστημα που χρησιμοποιεί ο διακομιστής φιλοξενίας.

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

Αυτές οι επιθέσεις μπορούν να αποτραπούν από έναν sysadmin, περιορίζοντας το επίπεδο πρόσβασης στο σύστημα των εφαρμογών Ιστού που εκτελούνται σε έναν διακομιστή.

Διαδικτυακή δέσμη ενεργειών

Κάθε φορά που μια εφαρμογή εισάγει είσοδο από έναν χρήστη στην έξοδο που παράγει, χωρίς να την επικυρώσει ή να την κωδικοποιήσει, δίνει την ευκαιρία σε έναν εισβολέα να στείλει κακόβουλο κώδικα σε διαφορετικό τελικό χρήστη. Οι επιθέσεις Cross-Site Scripting (XSS) εκμεταλλεύονται αυτές τις ευκαιρίες για να εισάγουν κακόβουλα σενάρια σε αξιόπιστους ιστότοπους, τα οποία τελικά αποστέλλονται σε άλλους χρήστες της εφαρμογής, οι οποίοι γίνονται θύματα του εισβολέα.

Το πρόγραμμα περιήγησης των θυμάτων θα εκτελέσει το κακόβουλο σενάριο χωρίς να γνωρίζει ότι δεν πρέπει να είναι αξιόπιστο. Επομένως, το πρόγραμμα περιήγησης θα του επιτρέψει να έχει πρόσβαση σε διακριτικά συνεδρίας, cookie ή ευαίσθητες πληροφορίες που αποθηκεύονται από το πρόγραμμα περιήγησης. Εάν προγραμματιστούν σωστά, τα σενάρια θα μπορούσαν ακόμη και να ξαναγράψουν τα περιεχόμενα ενός αρχείου HTML.

Οι επιθέσεις XSS μπορούν γενικά να χωριστούν σε δύο διαφορετικές κατηγορίες: αποθηκευμένες και ανακλώμενες.

Σε αποθηκευμένες επιθέσεις XSS, το κακόβουλο σενάριο βρίσκεται μόνιμα στον διακομιστή-στόχο, σε ένα φόρουμ μηνυμάτων, σε μια βάση δεδομένων, σε ένα αρχείο καταγραφής επισκεπτών, κ.λπ. Το θύμα το λαμβάνει όταν το πρόγραμμα περιήγησής του ζητά τις αποθηκευμένες πληροφορίες. Στις ανακλώμενες επιθέσεις XSS, το κακόβουλο σενάριο αντικατοπτρίζεται σε μια απάντηση που περιλαμβάνει την είσοδο που αποστέλλεται στον διακομιστή. Αυτό μπορεί να είναι ένα μήνυμα σφάλματος ή ένα αποτέλεσμα αναζήτησης, για παράδειγμα.

  Πώς να δημιουργήσετε ένα διάγραμμα Venn στο Microsoft PowerPoint

Έγχυση XPath

Αυτός ο τύπος επίθεσης είναι δυνατός όταν μια εφαρμογή Ιστού χρησιμοποιεί πληροφορίες που παρέχονται από έναν χρήστη για να δημιουργήσει ένα ερώτημα XPath για δεδομένα XML. Ο τρόπος με τον οποίο λειτουργεί αυτή η επίθεση είναι παρόμοιος με την έγχυση SQL: οι εισβολείς στέλνουν πληροφορίες με λανθασμένη μορφή στην εφαρμογή για να μάθουν πώς είναι δομημένα τα δεδομένα XML και στη συνέχεια επιτίθενται ξανά για πρόσβαση σε αυτά τα δεδομένα.

Η XPath είναι μια τυπική γλώσσα με την οποία, όπως η SQL, μπορείτε να καθορίσετε τα χαρακτηριστικά που θέλετε να βρείτε. Για να εκτελέσετε ένα ερώτημα σε δεδομένα XML, οι εφαρμογές Ιστού χρησιμοποιούν τα δεδομένα εισόδου χρήστη για να ορίσουν ένα μοτίβο με το οποίο τα δεδομένα πρέπει να ταιριάζουν. Με την αποστολή εισόδου με λανθασμένη μορφή, το μοτίβο μπορεί να μετατραπεί σε μια λειτουργία που ο εισβολέας θέλει να εφαρμόσει στα δεδομένα.

Σε αντίθεση με αυτό που συμβαίνει με την SQL, στο XPath, δεν υπάρχουν διαφορετικές εκδόσεις. Αυτό σημαίνει ότι η έγχυση XPath μπορεί να γίνει σε οποιαδήποτε εφαρμογή web που χρησιμοποιεί δεδομένα XML, ανεξάρτητα από την υλοποίηση. Αυτό σημαίνει επίσης ότι η επίθεση μπορεί να αυτοματοποιηθεί. Επομένως, σε αντίθεση με την ένεση SQL, έχει τη δυνατότητα να πυροδοτηθεί ενάντια σε έναν αυθαίρετο αριθμό στόχων.

Έγχυση εντολών αλληλογραφίας

Αυτή η μέθοδος επίθεσης μπορεί να χρησιμοποιηθεί για την εκμετάλλευση διακομιστών email και εφαρμογών που δημιουργούν δηλώσεις IMAP ή SMTP με ακατάλληλα επικυρωμένη είσοδο χρήστη. Περιστασιακά, οι διακομιστές IMAP και SMTP δεν διαθέτουν ισχυρή προστασία από επιθέσεις, όπως θα συνέβαινε με τους περισσότερους διακομιστές ιστού, και επομένως θα μπορούσαν να είναι πιο εκμεταλλεύσιμοι. Με την είσοδο μέσω διακομιστή αλληλογραφίας, οι εισβολείς θα μπορούσαν να αποφύγουν περιορισμούς όπως captchas, περιορισμένο αριθμό αιτημάτων κ.λπ.

Για να εκμεταλλευτούν έναν διακομιστή SMTP, οι εισβολείς χρειάζονται έναν έγκυρο λογαριασμό email για να στείλουν μηνύματα με εντολές με ένεση. Εάν ο διακομιστής είναι ευάλωτος, θα ανταποκριθεί στα αιτήματα των εισβολέων, επιτρέποντάς τους, για παράδειγμα, να παρακάμπτουν τους περιορισμούς του διακομιστή και να χρησιμοποιούν τις υπηρεσίες του για την αποστολή ανεπιθύμητων μηνυμάτων.

Η έγχυση IMAP θα μπορούσε να γίνει κυρίως σε εφαρμογές webmail, εκμεταλλευόμενη τη λειτουργία ανάγνωσης μηνυμάτων. Σε αυτές τις περιπτώσεις, η επίθεση μπορεί να πραγματοποιηθεί απλά εισάγοντας, στη γραμμή διευθύνσεων ενός προγράμματος περιήγησης ιστού, μια διεύθυνση URL με τις εντολές που εισάγονται.

Έγχυση CRLF

Η εισαγωγή χαρακτήρων επιστροφής μεταφοράς και τροφοδοσίας γραμμής –συνδυασμός γνωστός ως CRLF– στα πεδία εισαγωγής φόρμας web αντιπροσωπεύει μια μέθοδο επίθεσης που ονομάζεται έγχυση CRLF. Αυτοί οι αόρατοι χαρακτήρες υποδεικνύουν το τέλος μιας γραμμής ή το τέλος μιας εντολής σε πολλά παραδοσιακά πρωτόκολλα Διαδικτύου, όπως το HTTP, το MIME ή το NNTP.

Για παράδειγμα, η εισαγωγή ενός CRLF σε ένα αίτημα HTTP, ακολουθούμενη από κάποιο συγκεκριμένο κώδικα HTML, θα μπορούσε να στείλει προσαρμοσμένες ιστοσελίδες στους επισκέπτες ενός ιστότοπου.

  9 καλύτερα εργαλεία συμπιεστή αρχείων για PDF, βίντεο, εικόνες

Αυτή η επίθεση μπορεί να εκτελεστεί σε ευάλωτες εφαρμογές Ιστού που δεν εφαρμόζουν το σωστό φιλτράρισμα στην είσοδο του χρήστη. Αυτή η ευπάθεια ανοίγει την πόρτα σε άλλους τύπους επιθέσεων έγχυσης, όπως το XSS και η ένεση κώδικα, και θα μπορούσε επίσης να προκύψει από την παραβίαση ενός ιστότοπου.

Έγχυση κεφαλίδας κεντρικού υπολογιστή

Σε διακομιστές που φιλοξενούν πολλούς ιστότοπους ή εφαρμογές Ιστού, η κεφαλίδα του κεντρικού υπολογιστή καθίσταται απαραίτητη για να προσδιοριστεί ποιος από τους μόνιμους ιστότοπους ή εφαρμογές Ιστού -καθένας από αυτούς γνωστός ως εικονικός κεντρικός υπολογιστής- θα πρέπει να επεξεργαστεί μια εισερχόμενη αίτηση. Η τιμή της κεφαλίδας λέει στον διακομιστή σε ποιον από τους εικονικούς κεντρικούς υπολογιστές να αποστείλει ένα αίτημα. Όταν ο διακομιστής λαμβάνει μια μη έγκυρη κεφαλίδα κεντρικού υπολογιστή, συνήθως τη μεταβιβάζει στον πρώτο εικονικό κεντρικό υπολογιστή στη λίστα. Αυτό αποτελεί μια ευπάθεια που μπορούν να χρησιμοποιήσουν οι εισβολείς για να στείλουν αυθαίρετες κεφαλίδες κεντρικού υπολογιστή στον πρώτο εικονικό κεντρικό υπολογιστή σε έναν διακομιστή.

Ο χειρισμός της κεφαλίδας του κεντρικού υπολογιστή σχετίζεται συνήθως με εφαρμογές PHP, αν και μπορεί επίσης να γίνει με άλλες τεχνολογίες ανάπτυξης ιστού. Οι επιθέσεις κεφαλίδας κεντρικού υπολογιστή λειτουργούν ως ενεργοποιητές για άλλους τύπους επιθέσεων, όπως η δηλητηρίαση της κρυφής μνήμης ιστού. Οι συνέπειές του θα μπορούσαν να περιλαμβάνουν την εκτέλεση ευαίσθητων λειτουργιών από τους εισβολείς, για παράδειγμα, επαναφορά κωδικού πρόσβασης.

Έγχυση LDAP

Το LDAP είναι ένα πρωτόκολλο σχεδιασμένο για να διευκολύνει την αναζήτηση πόρων (συσκευών, αρχείων, άλλων χρηστών) σε ένα δίκτυο. Είναι πολύ χρήσιμο για ενδοδίκτυα και όταν χρησιμοποιείται ως μέρος ενός συστήματος ενιαίας σύνδεσης, μπορεί να χρησιμοποιηθεί για την αποθήκευση ονομάτων χρήστη και κωδικών πρόσβασης. Τα ερωτήματα LDAP περιλαμβάνουν τη χρήση ειδικών χαρακτήρων ελέγχου που επηρεάζουν τον έλεγχό του. Οι εισβολείς μπορούν ενδεχομένως να αλλάξουν την προβλεπόμενη συμπεριφορά ενός ερωτήματος LDAP εάν μπορούν να εισαγάγουν χαρακτήρες ελέγχου σε αυτό.

Και πάλι, το βασικό πρόβλημα που επιτρέπει επιθέσεις έγχυσης LDAP είναι η εσφαλμένη επικύρωση εισόδου χρήστη. Εάν το κείμενο που στέλνει ένας χρήστης σε μια εφαρμογή χρησιμοποιείται ως μέρος ενός ερωτήματος LDAP χωρίς να το απολυμαίνει, το ερώτημα θα μπορούσε να καταλήξει να ανακτήσει μια λίστα με όλους τους χρήστες και να την εμφανίσει σε έναν εισβολέα, χρησιμοποιώντας απλώς έναν αστερίσκο

στη σωστή θέση μέσα σε μια συμβολοσειρά εισόδου.

Πρόληψη επιθέσεων με ένεση

Όπως είδαμε σε αυτό το άρθρο, όλες οι επιθέσεις έγχυσης απευθύνονται σε διακομιστές και εφαρμογές με ανοιχτή πρόσβαση σε οποιονδήποτε χρήστη του Διαδικτύου. Η ευθύνη για την αποτροπή αυτών των επιθέσεων κατανέμεται μεταξύ των προγραμματιστών εφαρμογών και των διαχειριστών διακομιστών.

Οι προγραμματιστές εφαρμογών πρέπει να γνωρίζουν τους κινδύνους που ενέχει η λανθασμένη επικύρωση των εισροών των χρηστών και να μάθουν τις βέλτιστες πρακτικές για την εξυγίανση των πληροφοριών των χρηστών με σκοπούς πρόληψης κινδύνου. Οι διαχειριστές διακομιστών πρέπει να ελέγχουν τα συστήματά τους περιοδικά για να εντοπίζουν τρωτά σημεία και να τα διορθώνουν το συντομότερο δυνατό. Υπάρχουν πολλές επιλογές για την εκτέλεση αυτών των ελέγχων, είτε κατ’ απαίτηση είτε αυτόματα.