Το προφίλ μας στο Google Plus
2

Οι συνέπειες μιας υπ3rxεiλ1ση$,..&+@~

Αν μιλάμε για το φράγμα ενός ποταμού, οι συνέπειες είναι δυσάρεστες για όλους! Εάν όμως μιλάμε για ένα στοιχείο στη στοίβα ενός προγράμματος, το πράγμα αλλάζει: Για τον επιτιθέμενο αυτή η κατάσταση είναι μάλλον ευχάριστη και τον γεμίζει με αισιοδοξία! Όσο για το υποψήφιο θύμα, καλά θα κάνει ν’ ανησυχεί…

deltaHacker Ιανουαρίου (τεύχος 004) | Οι συνέπειες μιας υπ3rxεiλ1ση$,..&+@~

Το λεγόμενο stack overflow είναι μια κατάσταση η οποία, σύμφωνα με τον οργανισμό Web Application Security Consortium, είναι πολύ συχνή και πολύ επικίνδυνη. Για να γίνει κατανοητός ο μηχανισμός μιας επίθεσης stack overflow, απαιτούνται ορισμένες γνώσεις για τα όσα συμβαίνουν κατά την εκτέλεση ενός προγράμματος. Ελπίζουμε να καλύψαμε τα κενά με το άρθρο μας που αρχίζει από τη σελίδα 46, οπότε στο παρόν θα περάσουμε αμέσως στο ψητό: Θα περιγράψουμε βήμα προς βήμα –και με πραγματικά παραδείγματα–, όλες τις ενέργειες που μπορεί να κάνει κάποιος για να ανακαλύψει μια τέτοια αδυναμία σ’ ένα πρόγραμμα. Φυσικά, θα αναφέρουμε και όλα όσα πρέπει να προσέχει ένας προγραμματιστής, ώστε να εξασφαλίσει ότι το δημιούργημά του θα είναι θωρακισμένο απέναντι στις επιθέσεις buffer overflow.

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

Σε πολύ γενικές γραμμές, μια επίθεση buffer overflow εκμεταλλεύεται τις συνέπειες που επιφέρει το γράψιμο σε μη προβλεπόμενες περιοχές της μνήμης. Διαβάζοντας την αμέσως προηγούμενη πρόταση, θα μπορούσε κάποιος να υποθέσει ότι τα αποτελέσματα μιας τέτοιας ενέργειας είναι απρόβλεπτα! Χμ, εν μέρει σωστό είναι αυτό, αλλά όχι πάντα. Αρκεί να ξέρουμε ακριβώς τι κάνουμε ;) Για την επίθεση stack overflow ο πρώτος που μίλησε επίσημα ήταν ο Aleph One το 1996, στο περίφημο άρθρο του “Smashing the stack for fun and profit”. Από τότε μέχρι σήμερα έχουν αλλάξει πάρα πολλά. Ωστόσο οι σχετικές αδυναμίες δεν έχουν εξαλειφθεί, παρά την ανάπτυξη πολλών μηχανισμών προστασίας στις γλώσσες προγραμματισμού (συγκεκριμένα στους αντίστοιχους compilers) αλλά και στα λειτουργικά συστήματα. Πριν προχωρήσουμε, να διευκρινίσουμε ότι όσα θα αναφέρουμε για διευθύνσεις μνήμης και καταχωρητές ισχύουν για επεξεργαστές αρχιτεκτονικής i386. Πάμε, λοιπόν!

Διαβάστε όλο το άρθρο στο deltaHacker Ιανουαρίου (τεύχος 004). Όλες τις πληροφορίες για τις συνδρομές στο deltaHacker, το μοναδικό μηνιαίο περιοδικό με θεματολογία ethical hacking και infosec που δεν κυκλοφορεί στα περίπτερα, θα τις βρείτε εδώ ακριβώς. Για παραγγελίες μεμονωμένων τευχών ή συνδρομών συμπληρώστε τη σχετική φόρμα.

Σημείωση: Οι συνδρομές μπορούν να ξεκινούν από όποιο τεύχος επιθυμείτε, αρκεί να υπάρχει σε stock.

2 Responses to “Οι συνέπειες μιας υπ3rxεiλ1ση$,..&+@~”

  1. kolios13 | 21/01/2012 at 16:27

    Ακολουθώ όλα τα βήματα σωστά και όλα είναι καλά σε backtrack 5. Απενεργοποιω το aslr και το κάνω compile με την εντολη -fno-stack-protector. Ωστοσο το τελευταίο βήμα όπου δίνουμε: ./vuln printf “….” δεν δουλεύει. Είμαι σίγουρος βάζω την σωστή διεύθυνση ανάποδα γραμμένη. Το δοκίμασα επίσης σε damn vulnerable Linux αλλά πάλι κανένα αποτέλεσμα.

    Έχει κανείς υπόψιν του τι μπορεί να συμβαίνει;

    Ευχαριστω.

  2. kolios13 | 21/01/2012 at 20:06

    Το βρήκα! Δεν έβαζα το`. Θα ήταν ωραίο κάποια στιγμή αργότερα να δούμε και κάτι σε πραγματική εφαρμογή.

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

Αρχείο δημοσιεύσεων