Sunday, November 16, 2014

Why I love linode.com - again!

Imagine yourself operating a VM hosting provider.

You have innumerable lots of customers, the vast majority of them having just a small - or, at worse, none at all - technical ability and knowledge to ensure that their VMs are running smoothly, without causing any issues either to you or to the larger Internet community as a whole.

Being a good netizen requires technical knowledge that is not so widely disseminated or given attention at nowadays, where the popular trend getting momentum is "anybody can fire up an Ubuntu and be happy with not ever having to deal with UNIX internals".

Now, imagine one of your customers VMs was causing trouble - not only to you, but to another ISP, and their customers too.

What would you do?

Most of us technically inclined people, would be quick to answer: "Shut them down so you alleviate the issue, and deal with them later, or not deal with them at all - they're not going to understand technical matters". Most probably, I myself would be amongst those giving the same exact answer when faced with this question.

But I wasn't.

To make it worse, this time, I was part of the problem: I had deliberately configured a DNS resolver on one of my VMs to allow unlimited recursive queries from the open Internet. The reason? At the time, I was behind some ISPs aggressively filtering DNS queries, and I wanted to have a DNS resolver I could trust - my own one.

Problem is, this configuration allows your DNS server to be the culprit for an interesting class of attacks, called DNS Amplification Attacks. Although I was very aware of the dangers of operating a publicly reachable open DNS resolver, I opted to hide behind the small possibility of my own VM being used as part of an attack - who scans the wide internet for open DNS resolvers, right?

Well, apparently somebody did. Fortunately, this somebody was an automated service scanning for open DNS resolvers rather than an actual attacker, but unfortunately it was also a misconfigured one: Upon discovery of an open DNS resolver, it didn't just notify their owners so they could alleviate the issue, but it also kept on hammering the said DNS resolver with thousands of DNS requests per minute, all of them destined for a couple of DNS domains - facilitating a DNS amplification attack, rather than preventing one!

My VM host provider is the more than excellent linode.com. So, what they did in this case to alleviate the issue my VM was causing - again, not only to them, but to another ISPs and another ISPs customers? Did they shut down my network connectivity, or my VM at large, as it would be easier - and safer - for them to do so?

No.

Instead, they opened a ticket with me. Supplying all the technical information needed so I could fix the issue myself.

To make a bad situation worse, my linode-registered e-mail is one that sometimes I don't read too often - especially when travelling around. And at the period in question, I was travelling around. So their ticket went unnoticed for a total of 5 days.

Did they shut me down after my inability of quickly respond to the issue, as they would be more than right to?

No.

They kept on sending me emails, until I finally noticed one of them.

Upon reading their ticket, it was just a matter of minutes to alleviate the problem. I turned off the recursive resolver on my bind configuration, and I supplied them with the list of IP addresses being responsible for the vast majority of the rogue DNS requests, as well as the domains being attacked. I also offered to contact the attacked ISP's technical contact, whose e-mail complaint linode had CC:ed to the ticket, to let them know I took care of the situation, and ask for forgiveness :)

Why, you would be inclined to ask, am I publicly exposing my mistakes like so? Only for one reason: To again, and again, and again praise linode.com, whose *EXCELLENT* technical customer support has been saving me from issues time after time, all these years I've been their customer. And let's not forget - they even give you free upgrades every time they expand - some capacity goes to accommodate for growth, and some capacity goes to free upgrades for their existing customers.

So, if you're a linode customer, be sure to read your registered linode e-mail often so you get notice of any issues, and be sure to read their blog often, so you get noticed of any offers and upgrades being offered to you.

And if you're not a linode customer, go on and be one right now. I can assure you that it will be one of the best decisions you'll ever make. 

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 σου είναι πεσμένο. 

Wednesday, March 12, 2014

[Snippets]: Online resize of LVM filesystems.

Είναι κάτι που χρειάζεται να το κάνω πολύ συχνά, και πάντα ξεχνάω πώς στο διάολο.

Σούμα:

recreate partitions (CAREFULLY!)
reread partition table
lvm pvresize
lvm lvextend
resize2fs

Βαριέμαι να τα γράψω αναλύτικότερα. Διαβάστε τα man pages. Ίσως την επόμενη φορά που θα χρειαστεί να το κάνω, να κρατήσω log.