Τετάρτη 30 Ιανουαρίου 2008

Το χρονικό της επίθεσης στο YouReka.gr!

Όπως θα ξέρετε, οι φανατικοί αναγνώστες μας :-), έχω φτιάξει με κάτι παλιόφιλους από την σχολή ένα site με γρίφους, το YouReka. Το site, αν και ακόμα σε πιλοτικό στάδιο, πάει πάρα πολύ καλά από επισκέψεις και πλέον έχει αποκτήσει περισσότερη ζωντάνια με την ενεργή συμμετοχή πολλών επισκεπτών που στέλνουν τις λύσεις αλλά και τους δικούς τους γρίφους.

Το YouReka είναι στημένο σε πλατφόρμα blog και συγκεκριμένα σε Wordpress. Η πλατφόρμα είναι πολύ πρακτική για τις ανάγκες του YouReka. Κάθε γρίφος δημοσιεύεται σαν ένα blog post και τα σχόλια των post χρησιμοποιούνται για ζητούν οι χρήστες, αν είναι αναγκαίο, διευκρινήσεις πάνω στον κάθε γρίφο.

Εχτές το πρωί ξεκίνησε μια συστηματική επίθεση spam στα σχόλια του site. Συγκεκριμένα στο site υπήρχε ένας γρίφος με όνομα "Κολλημένος με τα ζάρια". Κάποιο spam bot θεώρησε ότι εφόσον στη δημοσίευση υπάρχει το keyword "ζάρια", αυτή θα σχετίζεται με τζόγο. Έτσι αποφάσισε να επισκέπτεται κάθε 100 περίπου δευτερόλεπτα(!!!) το YouReka και να εισάγει στον συγκεκριμένο γρίφο ένα σχόλιο που διαφήμιζε κάθε μορφής online τζόγο. Σε λίγες ώρες η MySQL βάση του YouReka είχε πλημμυρίσει με αρκετές εκατοντάδες σχόλια που μεταφράζονται σε αρκετά MBytes spam, και κάθε λεπτό που περνούσε η κατάσταση χειροτέρευε. Πέρα από το flooding της βάσης ο spammer κατανάλωνε και πολύτιμο πληρωμένο traffic.

Το ειρωνικό της υπόθεσης είναι ότι ο spammer δεν είχε κανένα κέρδος από αυτήν την επίθεση αφού ποτέ δεν εμφανίστηκαν τα διαφημιστικά σχόλια στο site. Το YouReka προστατεύεται από το spam με δύο τρόπους:

  1. Έχει γίνει ρύθμιση ώστε τα σχόλια πρέπει να ελεγθούν από κάποιον moderator πριν εμφανιστούν.
  2. Έχει εγκατασταθεί το Akismet plugin στο Wordpress ώστε τα σχόλια spam να μετακινούνται άμεσα στον φάκελο των ανεπιθύμητων σχολίων.

Ωστόσο καμία από τις παραπάνω προφυλάξεις δεν προστατεύει το YouReka από τα δεινά που αναφέραμε παραπάνω. Το Akismet δεν σβήνει αυτόματα τα σχόλια (και καλά κάνει, αφού μπορεί λανθασμένα να θεωρήσει κάποιο επιθυμητό σχόλιο ως spam) οπότε η βάση δεδομένων μεγαλώνει συνεχώς!

Δοκιμάσαμε κάθε γενική και ειδική antispam ρύθμιση του Wordpress χωρίς αποτέλεσμα. Όλες οι μέθοδοι είχαν σαν αποτέλεσμα όχι την απόρριψη των σχολίων αλλά απλά την σήμανσή τους ως ανεπιθύμητα.

Αποφασίσαμε να πάρουμε δραστικά μέτρα εγκαθιστώντας επαλήθευση CAPTCHA στην ρουτίνα εισαγωγής σχολίων. Παρότι το όνομα ίσως σας ξενίζει, όλοι θα έχετε συναντήσει επαλήθευση CAPTCHA όταν συμπληρώνετε μια φόρμα σε ένα site, όπου σας ζητούν να επαληθεύσετε ότι δεν είστε κάποιο bot εισάγοντας κάποιο αλφαριθμητικό που βλέπετε παραμορφωμένο σε μια εικόνα. Μετά από αρκετή ώρα επεξεργασίας κώδικα PHP η εισαγωγή σχολίου στο YouReka προστατεύοταν από επαλήθευση CAPTCHA και το πρόβλημα είχε λυθεί. Έτσι τουλάχιστον νομίσαμε...

Είμασταν όμως αφελείς. Ο spammer ήταν πιο έξυπνος από ότι νομίζαμε. Με έκπληξη ανακαλύψαμε ότι η ροή των σχολίων spam συνεχίζοταν με τον ίδιο σταθερό ρυθμό. Πραγματικά σαστίσαμε. Ήταν αδιανόητο. Το να προσπεράσεις το CAPTCHA verification με bot είναι πρακτικά αδύνατο. Και εκεί μας ήρθε η Θεία Επιφώτηση.

Δεν θέλω να μπω σε πολύ τεχνικά θέματα. Αρκεί να πούμε ότι ο spammer εκμεταλλεύοταν ένα μικρό σχεδιαστικό λάθος στο Wordpress. Φυσικά το πρόβλημα λύθηκε και πλέον το YouReka είναι μια χαρά.

Βέβαια το θέμα δεν έμεινε εκεί. Μετά από μερικά whois queries εντόπισα την ταυτότητα του spammer. Πρόκειται για τον Bezruchenko Konstantin με έδρα την Κύπρο ο οποίος νοικιάζει server από την ολλανδική Webazilla η οποία νοικιάζει traffic από την ρώσσικη NetcatHosting. Διεθνής κομπίνα. Φυσικά ειδοποιήθηκαν οι πάροχοι για τις δράσεις του πελάτη τους αν και δεν νομίζω ότι θα κάνουν κάτι για αυτό. Για όσους ωστόσο θέλουν να σπάσουν πλάκα με ένα κάφρο spammer, το email του είναι mail@bezruk.eu και η IP από την οποία δρα είναι η 195.225.178.29. Μια έρευνα με το όνομά του στο google αποκαλύπτει και άλλες κομπίνες του εν λόγω κυρίου.

Από εδώ και πέρα όταν ένα αμφίβολης ποιότητας site μου ζητά το email για να μου στείλει spam, ξέρω ποιά διεύθυνση να δίνω...

3 σχόλια:

Ανώνυμος είπε...

προσωπο: Bezruchenko Konstantin διευθυνση: 8069, Τ.Θ. 62830 διευθυνση: Παφος, Κυπρος Τηλ: +35799074204-fax οχι: +35796742020 mnt-by: WZNET MNT-e-mail: mail@bezruk.eu

mouridis είπε...

Χεχε....εντάξει....αρκετά τον ξεφτιλίσαμε...

sp1r@lev0lut10n είπε...

Καλημέρα και χρόνια πολλά!!

Φαντάστηκες ποτέ οτι θα λάβεις ευχές από αυτή τη φόρμα;

Όχι, έ;

Ούτε κι εγώ φαντάστηκα οτι θα στείλω!

Μπήκα για να σου ζητήσω δύο χάρες. Θέλω να μου πεις ποιο plugin εγκατέστησες για το captcha και, αν είναι εύκολο, να μου στείλεις ένα email με λεπτομέρειες για την επίθεση, ή τέλος πάντων την αντίστοιχη αδυναμία του Wordpress.

...και κάτι γρήγορο: Ποια έκδοση του Wordpress χρησιμοποιείς;

Τα λέμε :)



...bzzt, blik!

('ΧΡΟΝΙΑ ΠΟΛΛΑ ΧΡΗΣΤΗ!')

bzzt...