Τι είναι η ευπάθεια Heartbleed;

Ένα από τα πιο γνωστά τρωτά σημεία στα μέσα της δεκαετίας του 2010 ονομαζόταν «Heartbleed». Το Heartbleed ήταν ιδιαίτερα σοβαρό επειδή το λογισμικό που επηρέασε το «OpenSSL», την κύρια κρυπτογραφική βιβλιοθήκη για συνδέσεις HTTPS, οι οποίες χρησιμοποιούνται ευρέως. Για να γίνουν τα πράγματα χειρότερα, η ευπάθεια ήταν παρούσα στο OpenSSL για περισσότερα από δύο χρόνια πριν ανακαλύφθηκε, δημοσιοποιήθηκε και επιδιορθώθηκε, πράγμα που σήμαινε ότι πολλοί άνθρωποι χρησιμοποιούσαν ένα ευάλωτο εκδοχή.

Το Heartbleed ήταν μια ευπάθεια διαρροής δεδομένων στην επέκταση του καρδιακού παλμού, η οποία όταν εκμεταλλευόταν διέρρευσε δεδομένα από τη μνήμη RAM από τον διακομιστή στον πελάτη. Η επέκταση καρδιακού παλμού χρησιμοποιείται για τη διατήρηση μιας σύνδεσης μεταξύ του διακομιστή web και του προγράμματος-πελάτη χωρίς να υποβάλετε ένα κανονικό αίτημα σελίδας.

Στην περίπτωση του OpenSSL, ο πελάτης στέλνει ένα μήνυμα στον διακομιστή και ενημερώνει τον διακομιστή για το μήκος του μηνύματος, έως 64 KB. Στη συνέχεια, ο διακομιστής υποτίθεται ότι θα επαναλάβει το ίδιο μήνυμα. Το σημαντικότερο, ωστόσο, είναι ότι ο διακομιστής στην πραγματικότητα δεν έλεγξε ότι το μήνυμα ήταν τόσο μεγάλο όσο ισχυρίστηκε ο πελάτης. Αυτό σήμαινε ότι ένας πελάτης μπορούσε να στείλει ένα μήνυμα 10 KB, να ισχυριστεί ότι ήταν 64 KB και να λάβει μια απάντηση 64 KB, με τα επιπλέον 54 KB να αποτελούνται από τα επόμενα 54 KB μνήμης RAM, ανεξάρτητα από τα δεδομένα που ήταν αποθηκευμένα εκεί. Αυτή η διαδικασία απεικονίζεται καλά από το

Κόμικ XKCD #1354.

Εικόνα ευγενική προσφορά του xkcd.com.

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

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

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

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