Home » Software » Ηλεκτρονική Ασφάλεια » Heartbleed Bug - Τι είναι, και Πόσο πρέπει να Ανησυχούμε?

Heartbleed Bug – Τι είναι, και Πόσο πρέπει να Ανησυχούμε?

Αυτός ο οδηγός γράφτηκε πριν από περισσότερα από 2 χρόνια. Η τεχνολογία αλλάζει και εξελίσσεται. Αν οτιδήποτε δεν σας λειτουργεί, γράψτε μας στα σχόλια και θα κοιτάξουμε να τον ανανεώσουμε.

Την 1η Απριλίου 2014 συνέβη κάτι που δεν ήταν φάρσα. Ερευνητές ηλεκτρονικής ασφάλειας ανακάλυψαν ένα σοβαρό bug στο σύστημα κρυπτογράφησης που χρησιμοποιείται στα 2/3 ολόκληρου του Internet. Στο άρθρο αυτό θα εξηγήσουμε, απλά και κατανοητά, τι ακριβώς είναι το heartbleed bug και τι πρέπει να κάνουμε για αυτό.

Δείτε τις ενότητες του οδηγού

Προτάσεις συνεργασίας

Προωθήστε δυναμικά την επιχείρησή σας στο site του PCsteps και στο κανάλι μας στο YouTube.

Επικοινωνία

Γίνε VIP μέλος στο PCSteps

Τα μέλη υποστηρίζουν ενεργά το PCsteps για να συνεχίσει να λειτουργεί χωρίς διαφημίσεις για όλους.

Συμμετοχή

Προσοχή! Πριν συνεχίσετε με το άρθρο, μπείτε εδώ και τώρα σε αυτή την σελίδα. Θα βρείτε μια λίστα με γνωστές ιστοσελίδες.

Σε όλες τις σελίδες που έχουν πράσινο τσεκ, όπως οι παρακάτω, και στις οποίες έχετε λογαριασμό, κάντε log-in αυτή τη στιγμή και αλλάξτε το password σας.

heartbleed bug 00a

heartbleed bug 00b

heartbleed bug 00c

To heartbleed bug είναι ίσως το χειρότερο κενό ασφαλείας στην ιστορία του Internet. Λόγω αυτού, υπάρχει περίπτωση κάποιοι να έχουν ήδη πρόσβαση στους κωδικούς μας!

Για να βοηθηθείτε με τη δημιουργία και διαχείριση password, δείτε το άρθρο:

Ισχυρά Password σε Κάθε Λογαριασμό με το LastPass.

Κρυπτογράφηση δεδομένων και OpenSSL

Όσοι έχετε διαβάσει το άρθρο μας για την κρυπτογράφηση δεδομένων γνωρίζετε ήδη για το Transport Layer Security (TLS), το κύριο πρωτόκολλο κρυπτογράφησης που χρησιμοποιείται στο Internet.

heartbleed bug 01

Με απλά λόγια, το TLS και ο προκάτοχός του, SSL (Secure Socket Layer), είναι ο λόγος που μπορούμε να χρησιμοποιήσουμε password οπουδήποτε στο Internet.

Χωρίς αυτή την κρυπτογράφηση, όποτε γράφαμε τον κωδικό για να μπούμε στο λογαριασμό του email, του facebook ή οποιονδήποτε άλλο, θα ήταν πολύ απλό για κάποιον τρίτο να διαβάσει τον κωδικό κατά τη μεταφορά του στο Internet.

heartbleed bug 1a

Εξίσου απλό θα ήταν σε μια τρίτη σελίδα να παριστάνει πως είναι το Facebook, το Gmail, το Yahoo, με στόχο να κλέψει τον κωδικό μας.

Όταν μπαίνουμε σε οποιαδήποτε από τις παραπάνω σελίδες, παρατηρούμε πως ξεκινούν με https:// και έχουν ένα λουκέτο.

heartbleed bug 02

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

Τι είναι το OpenSSL

To OpenSSL είναι ουσιαστικά μια υλοποίηση ανοιχτού κώδικα του πρωτοκόλλου TLS/SSL, και είναι διαθέσιμο δωρεάν.

Το OpenSSL είναι η κατεξοχήν επιλογή στους Web Servers ανοιχτού κώδικα, όπως ο Apache και ο nginx, που χρησιμοποιούνται στο 66% των server στο Internet.

heartbleed bug 03

Σε αυτόν τον κώδικα του OpenSSL, υπάρχει το κενό ασφαλείας που ονομάστηκε heartbleed bug. Μάλιστα, υπάρχει από το Δεκέμβριο του 2011, και ανακαλύφθηκε μόλις την 1η Απριλίου 2014.

Το heartbleed δεν είναι κάποιο πρόβλημα του πρωτοκόλλου TLS/SSL, των αλγορίθμων κρυπτογράφησης που εφαρμόζονται, ούτε καν της θεωρητικής λειτουργίας του OpenSSL.

Το heartbleed bug, πολύ απλά, είναι ένα ανόητο προγραμματιστικό λάθος.

Από το Heartbeat στο Heartbleed

Όταν ένας server και ο υπολογιστής μας είναι έτοιμοι να δημιουργήσουν μια ασφαλή σύνδεση μεταξύ τους, εφαρμόζουν μια διαδικασία που ονομάζεται heartbeat (κυριολεκτικά: χτύπος καρδιάς).

heartbleed bug 04

Ουσιαστικά οι δύο υπολογιστές ανταλλάσσουν μεταξύ τους κάποια συγκεκριμένα δεδομένα, για να δείξουν ο ένας στον άλλο πως εξακολουθούν να είναι σε λειτουργία και με πρόσβαση στο δίκτυο (“ζωντανοί”).

Αν συμβεί οτιδήποτε στον ένα από τους δύο υπολογιστές (σβήσει, πέσει το δίκτυο, εκραγεί κλπ), διακόπτεται αυτόματα η διαδικασία της σύνδεσης.

heartbleed bug 05

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

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

Η γραμμή είναι αυτή:

memcpy(bp, pl, payload);

Το heartbleed bug, απλά και κατανοητά

Στην ενότητα αυτή θα εξηγήσουμε όσο πιο απλά γίνεται το πρόβλημα που δημιουργεί η παραπάνω εντολή, το οποίο ονομάστηκε heartbleed.

Η εντολή memcpy είναι μια εντολή που αντιγράφει δεδομένα (από το “memory copy”). Έχει τρεις παραμέτρους που χρειάζεται για να λειτουργήσει:

  • To bp περιγράφει σε ποια θέση μνήμης του Server θα γραφτούν τα δεδομένα του heartbeat.
  • Το pl περιγράφει που βρίσκονται τα δεδομένα του heartbeat στον δικό μας υπολογιστή.
  • Το payload είναι ένας αριθμός που δείχνει πόσο μέγεθος έχουν τα δεδομένα του heartbeat.

Με αυτή την εντολή, ο υπολογιστής μας ουσιαστικά λέει στο Server το εξής:

“Έχω τα δεδομένα για το heartbeat στη θέση pl. Έχουν μέγεθος payload. Σου τα στέλνω στη θέση bp στη μνήμη σου, φρόντισε να έχεις χώρο αρκετό για να χωρέσει το payload. Μόλις λάβεις τα δεδομένα, μου τα επιστρέφεις όπως είναι, για να ξέρω πως είναι εντάξει η σύνδεση”.

heartbleed bug 06

Εδώ είναι σημαντικό να κατανοήσουμε το εξής: Η μνήμη RAM σε έναν υπολογιστή ή ένα server που λειτουργεί, δεν είναι ποτέ εντελώς άδεια.

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

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

heartbleed bug 07

Στην ιδανική λειτουργία της εντολής memcpy, αν ο υπολογιστής μας έχει δημιουργήσει ένα heartbeat 10ΚΒ, και δηλώνει πως το payload είναι 10KB.

Η εντολή παίρνει τα 10KB από τη θέση pl του υπολογιστή μας…

heartbleed bug 08

και τα βάζει μέσω δικτύου στη θέση bp του server, η οποία έχει χώρο ακριβώς 10KB (payload).

heartbleed bug 09

Ό,τι δεδομένα υπήρχαν πριν στη θέση bp διαγράφονται από τα δεδομένα του heartbeat.

Ύστερα ο server, με τη σειρά του, στέλνει τα δεδομένα του heartbeat πίσω στον υπολογιστή μας, και όλα λειτουργούν όπως πρέπει.

heartbleed bug 10

Τι γίνεται όμως αν το Payload λέει ψέματα?

Ας πούμε πως ένας hacker ρυθμίζει τον υπολογιστή του να στείλει ένα μηδενικό heartbeat, αλλά το Payload λέει πως είναι 64KB.

heartbleed bug 910

Ο Server θα ετοιμάσει ένα χώρο 64KB στη μνήμη του, στον οποίο θα υπάρχουν ήδη από πριν δεδομένα προς διαγραφή.

Όμως, επειδή το heartbeat έχει μηδενικά δεδομένα, τα άχρηστα δεδομένα στη RAM του Server δεν διαγράφονται.

Το χειρότερο? Ο server, για να επιβεβαιώσει τη σύνδεση, θα επιστρέψει 64KB στον υπολογιστή του hacker, όσα νομίζει πως έλαβε, με το περιεχόμενο της δικής του μνήμης.

heartbleed bug 11

Τι μπορεί να περιέχουν αυτά τα δεδομένα?

Μπορεί να μην περιέχουν τίποτα χρήσιμο, να είναι απλά σκουπίδια.

Μπορεί όμως να περιέχουν το username και το password του τελευταίου πελάτη που συνδέθηκε. Να περιέχουν email και προσωπικά μηνύματα. Να περιέχουν μέχρι και το κρυφό κλειδί της κρυπτογράφησης, που θα έδινε στον hacker τη δυνατότητα να βλέπει όλα τα δεδομένα που διακινούνται μέσω της “ασφαλούς” σύνδεσης!

heartbleed bug 12

Το χειρότερο?

Ακόμα κι αν το πρώτο πειραγμένο heartbeat δεν επιστρέψει κάτι χρήσιμο, κανείς δεν εμποδίζει τον hacker να στείλει 100, 1.000, 10.000 μηδενικά heartbeat, μέχρι τα δεδομένα που θα λάβει από τον server να είναι αυτά που χρειάζεται.

Και, από τη στιγμή που η συνεχής ανταλλαγή δεδομένων είναι φυσιολογική στα πλαίσια του heartbeat, δεν υπάρχει κανένας τρόπος για το διαχειριστή του server να γνωρίζει αν κάποιος εκμεταλλεύτηκε το heartbleed ή όχι.

heartbleed bug 13

Για να το καταλάβετε πιο παραστατικά, δείτε την καταπληκτική οπτική εξήγηση του κόμικ XKCD.

heartbleed bug 14

Τι σημαίνει το Heartbleed bug για εμάς

Ορισμένες από τις μεγαλύτερες ιστοσελίδες του διαδικτύου χρησιμοποιούσαν server με εκδόσεις OpenSSL που ήταν ευάλωτες στο heartbleed bug.

Αναφερόμαστε σε κολοσσούς όπως η Google (Gmail, YouTube, Google+), το Facebook, το Yahoo, το Tumbl, το Imgur και δεκάδες άλλες ιστοσελίδες στις οποίες είναι πιθανό να έχουμε λογαριασμούς.

heartbleed bug 15

To Mashable.com έχει δημοσιεύσει μια αναλυτική λίστα με τα σημαντικότερα Site που είχαν το heartbleed bug και το αν το έχουν διορθώσει ακόμα ή όχι.

Αυτό που πρέπει να κάνουμε, το ταχύτερο δυνατόν, είναι να αλλάξουμε το password μας σε οποιοδήποτε από τα παραπάνω sites είναι επιβεβαιωμένο πως ήταν ευάλωτο στο heartbleed και έχει κλείσει το κενό ασφαλείας.

Είναι βέβαιο πως κάποιος έχει αποκτήσει πρόσβαση στους κωδικούς μας?

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

Σε κάθε περίπτωση, η αλλαγή password είναι ένα απαραίτητο προληπτικό μέτρο.

heartbleed bug 16

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

Πώς δημιουργήθηκε το heartbleed

Η κατάσταση του OpenSSL

Ο οργανισμός OpenSSL Software Foundation, που συντηρεί και αναπτύσσει τη βιβλιοθήκη OpenSSL, ιδρύθηκε το 1998.

Παρ' όλο που το OpenSSL χρησιμοποιείται από τα 2/3 του Internet, καθώς είναι διαθέσιμο δωρεάν, ο οργανισμός δεν έχει κανένα σημαντικό κέρδος.

Τα μόνα έσοδα που έχει προέρχονται από κάποια συμβόλαια υποστήριξης για επιχειρήσεις, και ελάχιστες δωρεές. Τα έσοδα του οργανισμού δεν ξεπέρασαν ποτέ το 1 εκατομμύριο δολάρια το χρόνο, μεικτά.

heartbleed bug 17

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

Ένας μόνο, ο Dr. Stephen Hanson, εργάζεται αποκλειστικά στο OpenSSL. Όλοι οι υπόλοιποι έχουν δουλειές πλήρους απασχόλησης αλλού, και ασχολούνται με το OpenSSL στον όποιο ελεύθερο χρόνο τους.

Η γέννηση του Heartbleed

Ο Γερμανός Robin Seggelmann είναι ένας ακαδημαϊκός που είναι ειδικός στα πρωτόκολλα του Internet, και ανήκει στους εθελοντές του OpenSSL.

Στις 31 Δεκεμβρίου του 2011 έστειλε στον Stephen Hanson τον κώδικα για το τμήμα heartbeat του OpenSSL, που περιείχε το μοιραίο σφάλμα. Λόγω της διαφοράς ώρας, ο Hanson έλαβε τον κώδικα στις 11 η ώρα το βράδυ, λίγο πριν την αλλαγή της χρονιάς.

heartbleed bug 19

Την ώρα που οι κάτοικοι της Νέας Υόρκης γιόρταζαν το 2012, ο Hanson είχε ελέγξει τον κώδικα και τον είχε ανεβάσει στα “repositories”, για να μοιραστεί σε ιστοσελίδες σε ολόκληρο το Internet.

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

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

heartbleed bug 18

To heartbleed bug παρέμεινε κρυφό από το ευρύ κοινό για περισσότερα από δύο χρόνια.

Το ανακάλυψαν ταυτόχρονα η Φιλανδική εταιρεία ψηφιακής ασφάλειας Codenomicon και ο ερευνητής Neel Mehta, που ανήκει στην ομάδα ασφαλείας της Google.

H Codenomicon ανέβασε και την ιστοσελίδα http://heartbleed.com/, στην οποία αναφέρει όλες τις λεπτομέρειες σχετικά με το heartbleed bug.

heartbleed bug 21

Όπως πάντως ανέφερε ο Steve Marquess, ο οποίος διαχειρίζεται τα οικονομικά του OpenSSL Software Foundation, “Το μυστήριο δεν είναι το πώς λίγοι βαρυφορτωμένοι εθελοντές δεν εντόπισαν το πρόβλημα. Το μυστήριο είναι γιατί δεν συμβαίνει κάτι τέτοιο συχνότερα”.

Το μέλλον της ψηφιακής ασφάλειας

Με τον πανικό που έφερε το heartbleed σε ολόκληρο το Internet, κολοσσοί της τεχνολογίας όπως η Google, το Facebook, η Dell, η IBM, η Intel, η Amazon, η Fujitsu και η Microsoft, και άλλοι, θα στηρίξουν ένα νέο οργανισμό με το όνομα Core Infrastraucture Initiative.

heartbleed bug 20

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

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

Ας ελπίσουμε πως αυτή η πρωτοβουλία θα βοηθήσει σε βάθος χρόνου στην ηλεκτρονική ασφάλεια, και πως δεν θα ξεχαστεί μόλις καταλαγιάσει ο πανικός του heartbleed…

Τα σχόλια του PCsteps έχουν μεταφερθεί στο Questions.pcsteps.gr. Αν έχετε απορίες για τη δημοσίευση ή οποιαδήποτε τεχνολογική ερώτηση, από προτάσεις αγορών μέχρι τεχνικά προβλήματα, γράψτε μας εκεί. Απαντάμε το αργότερο εντός 48 ωρών.

Οι Στήλες του PCsteps

FEATURED SALE ALERT 77MM
Οδηγοί Αγοράς
QuickSteps#252 - Απεριόριστες Διευθύνσεις Gmail, Κωδικός Χρήστη Και Επαναφορά Οδηγών Windows 11
QuickSteps
GamingSteps#20221125 - Καλύτερης Ποιότητας Τα Παιχνίδια Του PS, AAA Παιχνίδι Από Το Netflix, Golden Joystick Awards
GamingSteps