Saturday, April 12, 2014

Ρέκβιεμ για μια ματωμένη καρδιά

Μέχρι τώρα με τις χοντρομαλακίες που διαβάζετε στο Internet για το Heartbleed, πρέπει να έχετε χεστεί πάνω σας, ειδικά αν είστε ο τυπικός ασχετίλας απο πληροφορική - εδω λένε μαλακίες και αρκετοί που ΔΕΝ είναι.

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

* Πανικός στις ιστοσελίδες από τον ιό «ματωμένη καρδιά»
* Η ματωμένη καρδιά που απειλεί να «ματώσει» το διαδίκτυο
* Ιός διαβάζει τους κωδικούς σας σε υπολογιστή και κινητά!
* Ο ιός έχει το όνομα heartbleed, και το σχήμα καρδιάς που ματώνει
* Βόμβα διαδικτυακή ο νέος ιός που διαπερνά τα πάντα και ματώνει όλα τα συστήματα ασφαλείας σε κινητά και υπολογιστές!

Τι πρέπει να πιστέψετε απο όλα αυτά;



ΑΠΟΛΥΤΩΣ
ΤΙΠΟΤΑ!!!!!!!!!!!!1111111
1111111oneoneoneone
oneelevenχιλιαεκατονεντεκα



Το πρόβλημα είναι σημαντικό, είναι όντως σημαντικό, ΑΛΛΑ ΔΕΝ ΑΦΟΡΑ ΕΣΑΣ. Όντως η έκταση του είναι μεγάλη, όντως έγιναν χοντρομαλακίες στο χειρισμό του θέματος, όντως κανείς δεν ξέρει τι δεδομένα πιθανώς έχουν υποκλαπεί απο vulnerable συστήματα, όντως ενδεχομένως να υπάρχει πουστιά στη μέση - αυτά ισχύουν.

Άλλα αυτά αφορούν κυρίως ένα τσούρμο καημένους τεχνικούς που θα τρέχουν μερα νύχτα να patchάρουν SSL servers. Απλήρωτοι. Με υπερωρίες. Γιατί "είναι η δουλειά τους", "Για το καλό της εταιρίας", και άλλες λοιπές παπάντζες.

Οσο για τους κωδικούς σας και αν πρέπει να τους αλλάξετε; Καλό είναι να το κάνετε. Όχι τώρα. Σε κανένα μήνα απο τώρα, όταν θα έχουν προλάβει πρώτα οι τεχνικοί που τρέχουν σα γαίδαροι, να patchάρουν τους servers στους οποίους τους έχετε. Γιατί αν τους αλλάξετε πρίν, είναι δώρο - άδωρο.

Και να σας πώ και τρία μυστικά:

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

Δεύτερον. ΚΑΝΕΝΑΣ, ΑΠΟΛΥΤΩΣ ΚΑΝΕΝΑΣ ΣΤΟ ΓΝΩΣΤΟ ΣΥΜΠΑΝ ΔΕΝ ΝΟΙΑΖΕΤΑΙ ΠΡΑΓΜΑΤΙΚΑ ΝΑ ΠΡΟΣΠΑΘΗΣΕΙ ΝΑ ΒΡΕΙ ΤΟΝ ΓΑΜΗΜΕΝΟ ΤΟΝ ΚΩΔΙΚΟ ΣΟΥ ΣΤΟ FACEBOOK. ΟΧΙ, ΟΥΤΕ Η ΠΡΩΗΝ ΣΟΥ.

Πόσο μάλλον στο Yahoo.

Μόνο εσυ ο ίδιος νομίζεις οτι είσαι τόσο σημαντικός που το password σου αποτελεί το μεγάλο μυστικό του σύμπαντος. Εξ'αλλου, κατά πάσα πιθανότητα, είναι το νούμερο του τηλεφώνου σου η το όνομα του σκύλου σου, η "123qwe".

Τρίτον. Μόνο κάποιοι servers έχουν πρόβλημα. Ναι, θεωρητικά έχουν και κάποιοι clients. ("client" ονομάζεται το κομπιούτερ σου, γάιδαρε). Πολύ θεωρητικά. Το πόσο θεωρητικά, θα το δείς παρακάτω. Δε θα καταλάβεις το χριστό σου βέβαια απο αυτό που θα δείς, αλλά θα το δείς.

Και η μαλακία είναι οτι θα εξακολουθήσεις να'σαι σα χεσμένος και ΑΦΟΥ το δείς. Γιατί τόσο σου κόφτει. Γιατί τόσο έχεις συνηθίσει να πιστεύεις άκριτα ότι μπούρδα σου πουλάνε τα blogs.

Ψεκασμένε.

Πόσο σπάνιο είναι το client-side vulnerability; Η αλήθεια είναι οτι για να καταφέρω να βρώ vulnerable client για να δοκιμάσω τα παρακάτω patches, μου βγήκαν τα παναγίδια ανάποδα.

Πάμε στα patches:

Αυτό εδώ είναι ενα patch για το OpenSSL που διορθώνει το heartbleed attack όπως θα έπρεπε να είχε διορθωθεί: Loggάρει το attack attempt, και απαντάει στο oversized heartbeat request ΜΕ ΜΙΑ ΠΟΥΤΣΑ ΝΑ, με το συμπάθειο (μη με ρωτάτε για ποια έκδοση του OpenSSL είναι, αμα δε μπορείτε να διαβάσετε ενα patch, και να σας απαντήσω για ποια έκδοση είναι θα σας είναι πιο άχρηστο κι απο υποθαλάσσιο ποδήλατο).


Και για μια live επείδιξη του τελευταίου, αν πατήσετε το παρακάτω link, ο ΙΟΣ που επιτίθεται στο ΓΚΟΜΠΓΙΟΥΤΕΡ σας θα ΤΡΥΠΩΣΕΙ ΑΘΟΡΥΒΑ ΜΕΣΑ ΑΠΟ ΤΙΣ ΓΡΑΜΜΕΣ ΤΟΥ ΙΝΤΕΡΝΕΤ. Θα σας κλέψει την παρθενιά, θα σας σκοτώσει το σκύλο, θα βιάσει την αδερφή σας απο τον κώλο (αν δεν έχετε αδερφή θα σας κάνει μια πρώτα), θα αδειάσει την πιστωτική σας κάρτα, και θα σας κλέψει ολο το μπάφο. ΝΑΙ, και αυτόν που έχετε κρυμμένο μέσα στην κάλτσα στο συρτάρι του υπνοδωματίου.

Φυσικά δε θα κάνει τίποτε απο αυτά. Κατά πάσα πιθανότητα δε θα κάνει απολύτως τίποτε. Βασικά αν έχετε Windows, μην κάνετε καν τον κόπο να το πατήσετε. Σε λίγο καιρό θα κάτσω να βγάλω στατιστικά απο τους ηλίθιους με Windows που το πάτησαν.

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

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

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

* H ημερομηνία και η ώρα,
* Η IP σας (ξέρετε, εκείνο το "ηλεκτρονικό ίχνος" που λένε τα blogw)
* Το User-Agent string σας (ΔΕΝ ΕΙΝΑΙ ΒΡΑΚΙ, ΗΛΙΘΙΟΙ!)
* Το GET string σας (ΟΥΤΕ ΑΥΤΟ!)
* Ο Referer σας (για να μη μου κάνετε καμμιά πουστιά, δε σας ξέρω τι κερατάδες είστε;)
* Εαν ο client σας είναι ευπαθής στο heartbleed.

ΔΕΝ θα καταγραφεί:

* Ο buffer με τα δεδομένα που επέστρεψε ο client σας σε περίπτωση επιτυχίας του heartbleed attack.

Φυσικά δεν έχετε καμμία υποχρέωση να με πιστέψετε. Μπορεί όλα αυτά να είναι ψέμματα για να σας κάνω να το πατήσετε και να σας κλέψω τον κωδικό σας στο facebook για να την παίζω με τις φωτογραφίες σας σε κείνο το κλειδωμένο album. Ξέρετε ποιό λέω. 


Και μην πέφτετε όλοι σαν τα γίδια επάνω. Βαριόμουν και το μαλάκισα άγρια με την BIO_puts(), συν το γεγονός οτι ο s_client είναι single-threaded - οπότε αμα αρχίσετε να το βαράτε όλοι μαζί, θα πάρετε τ'αρχίδια του Δαλαι Λάμα.

Update #1

Και με τα private keys των servers τι γίνεται;

Αυτά είναι όντως vulnerable, αλλά η μεγάλη ζημιά έχει γίνει ήδη. Οι περισσότερες απο τις υπηρεσίες που χρησιμοποιείτε, αργά η γρήγορα θα διορθωθούν - και θα αλλάξουν τα private keys τους. Μέχρι τότε, φυσικά μπορείτε και να τις ελέγχετε - ενα κάρο sites υπάρχουν που κάνουν αυτόματα heartbleed tests - και ναι, το ξέρω οτι αποκλείεται να το κάνετε. Γενικά ωστόσο, οποιοδήποτε vulnerability στο server-side έχει σχετικά πιο περιορισμένο χρόνο ζωής απο ότι στο client-side. Πρόβλημα στο client-side θα υπάρξει ενδεχομένως με κινητά που γίνονται upgrade κάθε ποτέ, embedded devices, κτλ.

Πρόβλημα επίσης υπάρχει με το compromise των private keys κυρίως στην περίπτωση που κάποιος έχει μεγάλο όγκο καταγεγραμμένης κρυπτογραφικής κίνησης, που τώρα μπορεί πλέον να αποκρυπτογραφήσει - σχεδόν κανείς δε χρησιμοποιεί PFS. Αυτοί είναι σχετικά λίγοι, και συνήθως έχουν καλύτερα attack vectors απ'αυτό εδω πέρα - που θα καταστεί και άχρηστο σε λίγο καιρό. Το μεγαλύτερο πρόβλημα με το συγκεκριμένο vulnerability είναι οτι έχει αρκετά μεγάλο εύρος ωστέ να γίνουν σοβαρές εκτιμήσεις του τι κινδυνεύει και τί όχι.

Τώρα, αν είστε πελάτης της Συνεταιριστικής Τράπεζας Κάτω Μπραχαμίου, με IT services βασισμένα σε yggdrasil linux και διαχειριστή το γιό του προέδρα που τελείωσε ΙΕΚ Γάμα, Τμήμα Εφαρμογών Κρυπτογραφίας, οκ, ας προσέχατε.

Και η μεγάλη κακιά NSA;

Αυτή έχει καλύτερους τρόπους να μαζεύει δεδομένα.

Ντάξ, κι αυτός καλός ήταν - μέχρι σήμερα.

Τελικά τι να κάνω; Να αλλάξω κωδικό στο Pinterestagram;

Ακόμα και να αλλάξεις, κάποια παρόμοια μαλακία θα βάλεις. Και θα ξέχασες κι οτι έχεις τον ίδιο κωδικό σε ακόμα 842 sites. Αυτό, δυστυχώς, δεν αλλάζει.

Μα τι θα γίνει επιτέλους με όλους αυτούς τους προγραμματιστές που είναι ανίκανοι να θυμούνται συνέχεια το μέγεθος των buffers τους;

Θα τους μεταθέσουμε όλους στην Αλάσκα να γράφουν COBOL.

Έχω τον Exchange Server της Microsoft. Θα έχω πρόβλημα με το Heartbleed;

Οχι, και πλέον αυτού, κατα πάσα πιθανότητα το Exchange σου είναι πεσμένο.