Heartbleed

heartbleedΣτις 7 Απρίλη 2014 ανακοινώθηκε δημόσια η ανακάλυψη μίας πολύ σοβαρής ευπάθειας στην βιβλιοθήκη λογισμικού OpenSSL. Το OpenSSL είναι μία δημοφιλής ανοιχτού κώδικα βιβλιοθήκη κρυπτογραφίας που υλοποιεί τα πρωτόκολλα SSL και TLS. Τα SSL/TLS χρησιμοποιούν κρυπτογραφία δημόσιου κλειδιού για να προστατέψουν τις διαδικτυακές επικοινωνίες προσφέροντας εμπιστευτικότητα των δεδομένων που ανταλλάσσονται και πιστοποίηση της ταυτότητας του παραλήπτη και αποστολέα. Τα χρησιμοποιούμε καθημερινά όταν επισκεπτόμαστε κάποια ιστοσελίδα (HTTPS), προστατεύουν την ανταλλαγή emails και instant messages καθώς και πολλές άλλες εφαρμογές και επικοινωνίες.

Η ευπάθεια οφείλεται σε ένα προγραμματιστικό λάθος (bug) το οποίο έγινε γνωστό ως Heartbleed (επίσημα CVE-2014-0160) και βρίσκεται στην υλοποίηση της επέκτασης Heartbeat των TLS και DTLS πρωτοκόλλων. Το Heartbleed bug επιτρέπει σε οποιονδήποτε στο διαδίκτυο να διαβάσει τα περιεχόμενα της μνήμης συστημάτων που προστατεύονται από τις προβληματικές εκδόσεις του OpenSSL. Αυτό συμπεριλαμβάνει μυστικά κλειδιά που χρησιμοποιούνται για πιστοποίηση και κρυπτογράφηση, ονόματα και κωδικούς χρηστών και κάθε είδους δεδομένα που βρίσκονται στη μνήμη. Αυτό επιτρέπει σε κάποιον να υποκλέψει επικοινωνίες, να κλέψει δεδομένα απευθείας από υπηρεσίες και να προσποιηθεί την ταυτότητα χρηστών και υπηρεσιών.

Η ευπάθεια εισήχθηκε στον κώδικα του OpenSSL στις 31 Δεκέμβρη 2011 και πέρασε σε ευρεία χρήση με την έκδοση 1.0.1 στις 14 Μαρτίου 2012. Ανακαλύφθηκε ανεξάρτητα από μηχανικό ασφαλείας της Google και τη φινλανδική Codenomicon που το δήλωσαν στο OpenSSL project στις 1 και 3 Απρίλη 2014 αντίστοιχα. Στις 7 Απρίλη βγήκε η έκδοση 1.0.1g που διορθώνει το Heartbleed bug και ανακοινώθηκε δημόσια η ύπαρξη του.

Πόσο κακό είναι:

Με τα λόγια του ειδικού στην κρυπτογραφία και την ασφάλεια Bruce Schneier:

Βασικά, ένα επιτιθέμενος μπορεί να αρπάξει 64KB μνήμης από ένα server. Η επίθεση δεν αφήνει ίχνη και μπορεί να επαναληφθεί πολλές φορές επιστρέφοντας ένα διαφορετικό τυχαίο κομμάτι 64KB μνήμης. Αυτό σημαίνει πως τα πάντα στη μνήμη — ιδιωτικά κλειδιά SSL, κλειδιά χρηστών, οτιδήποτε — είναι ευάλωτα. Και πρέπει να υποθέσουμε ότι έχουν εκτεθεί. Όλα.

“Καταστροφικό” είναι η σωστή λέξη. Σε κλίμακα από το 1 έως το 10, αυτό παίρνει 11.

[…]

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

Στις 7 Απρίλη όπου, μετά από 2 χρόνια ζωής, ανακοινώθηκε δημόσια το Heartbleed bug, εκτιμάται πως οι ευάλωτοι web servers ήταν γύρω στο 17% (περίπου μισό εκατομμύριο). Επιπλέον, το OpenSSL δε χρησιμοποιείται μόνο από web servers αλλά και για emails, instant messaging, κάποια VPN’s και πολλές άλλες εφαρμογές οπότε ο πραγματικός αριθμός των επηρεασμένων servers είναι ακόμα μεγαλύτερος.

Πως (δε) δουλεύει:

Το Heartbeat είναι μία επέκταση των TLS και DTLS πρωτοκόλλων που προσφέρει μία μέθοδο για να ελέγχονται και να διατηρούνται ανοιχτές συνδέσεις. Ο υπολογιστής στη μία μεριά της σύνδεσης στέλνει μία αίτηση Heartbeat που είναι απλά ένα αλφαριθμητικό (string) μαζί με το μήκος του. Ο άλλος υπολογιστής πρέπει τότε να απαντήσει με ακριβώς το ίδιο αλφαριθμητικό για να επιβεβαιωθεί πως η σύνδεση είναι ακόμα ενεργή. Το bug στις προβληματικές εκδόσεις του OpenSSL ήταν πως κατά την κατασκευή της απάντησης, δεν ελεγχόταν αν το μήκος που αναφερόταν μέσα στην Heartbeat αίτηση ταίριαζε όντως με το μήκος του αλφαριθμητικού της αίτησης. Το αποτέλεσμα είναι πως βάζοντας μία μεγαλύτερη της πραγματικής τιμή στο πεδίο του μήκους (64Κ το μέγιστο), μαζί με το αλφαριθμητικό που στείλαμε, παίρνουμε και ότι το ακολουθεί στη θέση του στη μνήμη, όπως φαίνεται στην παρακάτω εικόνα:

heartbleed_explanation

Τι μπορούμε να κάνουμε:

Διαχειριστές υπηρεσιών και servers

Κατ’αρχάς πρέπει να γίνει το security update στην OpenSSL. Τα ίδια τα κλειδιά του SSL/TLS βρίσκονται στη μνήμη και άρα ενδέχεται να έχουν διαρρεύσει, οπότε πρέπει να δημιουργηθούν νέα κλειδιά, να ανακληθούν τα υπάρχοντα πιστοποιητικά και να εκδοθούν καινούρια για τα νέα κλειδιά. Πρέπει να αλλαχθούν όλοι οι κωδικοί, API keys, tokens etc. Πρέπει να τερματίσουν όλα τα session keys και cookies για αποτροπή session hijacking. Τέλος πρέπει να γίνουν restart όλα τα processes που χρησιμοποιούν την OpenSSL (δεν είναι μόνο ο web server).

Χρήστες υπηρεσιών

Κωδικοί και αναγνωριστικά κάθε είδους ενδέχεται να έχουν διαρρεύσει. Για να προστατέψουμε τους λογαριασμούς και τα δεδομένα μας στο μέλλον, πρέπει άμεσα να αλλάξουμε κωδικούς σε όλες τις υπηρεσίες. Μπορούμε να δούμε αν οι υπηρεσίες που χρησιμοποιούμε είναι ευάλωτες στο Heartbleed bug από το https://filippo.io/Heartbleed/.

Τι δε μπορούμε να κάνουμε

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

Σύμφωνα με τη σχετική ανακοίνωση του Linux Foundation:

[…] Με απλά λόγια, από τη μεριά ενός χρήστη του διαδικτύου, αυτή η ευπάθεια σημαίνει πως για τα τελευταία δύο χρόνια, κάθε ασφαλές site (με το λουκετάκι στο browser) που επισκεπτόσουν μπορεί να μην ήταν ασφαλές στην πραγματικότητα και ένας επιτιθέμενος θα μπορούσε να υποκλέπτει τους κωδικούς και τα ευαίσθητα δεδομένα σου, όπως μπορεί στην περίπτωση των “κανονικών” χωρίς SSL sites. Ή ένας επιτιθέμενος θα μπορούσε να ανακαλύψει πληροφορίες για ένα server που φιλοξενούσε κάποιο site με SSL, που στη συνέχεια θα τον βοηθούσαν να θέσει υπό τον έλεγχό του (να χακέψει) αυτό το server.

heartbleed

 

Πηγές/αναφορές:

Tagged with: , , , , , ,
Posted in Ειδήσεις
One comment on “Heartbleed
  1. luigi says:

    Ανακοίνωση από τη May First/People Link σχετικά με το κενό ασφαλείας Heart Bleed
    14 Απριλίου 2014 – 4:36μμ

    Η Κρυπτογράφηση Δουλεύει Ακόμα. Το Λογισμικό Ελεύθερου και Ανοικτού Κώδικα είναι Ακόμα η Σωστή Επιλογή

    14 Απριλίου 2014

    Οι περισσότεροι άνθρωποι που διαβάζετε αυτό το κείμενο έχετε ακούσει για το κενό ασφαλείας που έγινε γνωστό ως Heart Bleed – το οποίο επηρεάζει εκατομμύρια χρήστες του Διαδικτύου, συμπεριλαμβανομένου χρήστες εταιρικών υπηρεσιών όπως Yahoo, Google, και Twitter όπως επίσης και κινηματικούς παρόχους όπως η May First/People Link. Αυτό το κενό ασφαλείας, στο λογισμικό που ονομάζεται “openssl”, επέτρεπε σε έναν επιτιθέμενο να έχει πρόσβαση σε πληροφορίες (όπως ονόματα χρηστών, κωδικοί, ακόμα και αριθμούς πιστωτικών καρτών) από servers που ήταν ευάλωτοι.

    Ως αποτέλεσμα, οποιοσδήποτε είχε πρόσβαση στο internet και βασικές προγραμματιστικές ικανότητες θα μπορούσε να επιτεθεί σε οποιονδήποτε server είχε μια ευπαθή έκδοση του openssl, στέλνοντας στον server ένα ειδικό ερώτημα που τον ξεγελούσε ώστε να απαντήσει με ένα κομμάτι δεδομένων από τη μνήμη του. Η μνήμη αυτή, γνωστή ως RAM, χρησιμοποιείται για την προσωρινή αποθήκευση δεδομένων: όπως είναι ο κωδικός του τελευταίου ατόμου που συνδέθηκε ή το τελευταίο κομμάτι δεδομένων που υποβλήθηκε μέσω μιας φόρμας σε ιστοσελίδα (για μια σύντομη εξήγηση των λεπτομερειών της ευπάθειας αυτής δείτε το κόμικ από το XKCD: xkcd.com/1354 )

    Θα πρέπει να είναι ξεκάθαρο από την περιγραφή αυτή, ότι η ευπάθεια ήταν τεράστια, θέτοντας τα δεδομένα εκατομμυρίων χρηστών του Διαδικτύου σε κίνδυνο. Αν και το λογισμικό του openssl δεν είναι εγκατεστημένο σε Windows ή Mac OS X από προεπιλογή, μας επηρεαζει όλους επειδή σχεδόν όλοι οι χρήστες στο διαδίκτυο αλληλεπιδρούν με τουλάχιστον έναν server που τρέχει το λογισμικό αυτό.

    Στα χνάρια των αποκαλύψεων του Edward Snowden, οι οποίες έδειξαν πώς η NSA κατάφερε να νικήσει διάφορους τύπους κρυπτογράφησης, αξίζει να αναρωτηθούμε : Για ποιό λόγο να χρησιμοποιούμε κρυπτογράφηση ή ακόμα έναν κινηματικό πάροχο διαδικτύου, αν δεν υπάρχει κανένας τρόπος να διατηρούμε τα δεδομένα μας ασφαλή;

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

    Για να ξεκινήσουμε : η κρυπτογραφία εξακολουθεί να δουλεύει και, αν ρυθμιστεί και χρησιμοποιηθεί σωστά, μπορεί ακόμα να διασφαλίσει το απόρρητο των επικοινωνιών. Δεν υπάρχει καμία απόδειξη στις αποκαλύψεις του Snowden που να δείχνει το αντίθετο. Και έχοντας ως δεδομένο ότι οι διαχειριστές των server που χρησιμοποιείτε στο internet είναι πολιτικά και νομικά αφοσιωμένοι στο να αντισταθούν στην κυβερνητική παρακολούθηση και είναι υπεύθυνοι να εφαρμόζουν όλες τις ενημερώσεις ασφαλείας μέσα σε ένα λογικό χρονικό πλαίσιο, μπορείτε να είστε επαρκώς σίγουροι ότι οι επικοινωνίες και τα δεδομένα σας βρίσκονται υπό τον έλεγχό σας. Μπορεί ακόμα να αναρωτηθείτε : Πώς μπορούμε να εμπιστευθούμε το ελεύθερο λογισμικό, εφόσον μια ευπάθεια τέτοιου μεγέθους μπορεί να συμβεί σε ένα λογισμικό ανοικτού κώδικα;

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

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

    Αντίθετα, στο κλειστό λογισμικό της Apple αποκαλύφθηκε πρόσφατα ένα μείζον κενό ασφαλείας, που έμεινε γνωστό ως “GOTO Fail”. Στην περίπτωση αυτή πρέπει να εμπιστευθούμε την Apple να μας δώσει ειλικρινείς απαντήσεις σχετικά με το πότε εισήχθη η ευπάθεια αυτή και πώς διορθώθηκε και κατά πόσον ήταν σκόπιμη ή όχι. Όμοια, υπάρχουν αποδείξεις ότι η εταιρεία ασφαλείας RSA πληρώθηκε εκατομμύρια δολλάρια από την CIA για να εισάγει μια ευπάθεια στο λογισμικό ασφαλείας τους. Η ευπάθεια αυτή ήταν εκεί για 10 χρόνια.

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

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

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

    Η May First/People Link είναι μια πολιτικά προοδευτική οργάνωση Διαδικτύου με μέλη στις Ηνωμένες Πολιτείες και το Μεξικό.
    Επικοινωνία για media : Alfredo López (alfredo@mayfirst.org)
    mayfirst.org
    info@mayfirst.org

    https://mayfirst.org/may-firstpeople-link-statement-heart-bleed-security-flaw

1 Pings/Trackbacks for "Heartbleed"
  1. […] για να διορθωθεί. (διαβάστε περισσότερα σχετικά : skytal.es, heartbleed, eff) Το κενό αυτό υπάρχει για περίπου δύο χρόνια, […]