Τα 5 κορυφαία κενά ασφαλείας στις εγκαταστάσεις του WordPress

Η εγκατάσταση του WordPress μπορεί να είναι όσο ασφαλής ή ανασφαλής θέλετε. Μάθετε ποια πέντε πράγματα είναι τα πιο σημαντικά όσον αφορά την ασφάλεια.

Οι ανησυχίες και τα παράπονα σχετικά με την ασφάλεια του WordPress δεν είναι κάτι νέο.

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

Όχι, γιατί όπως κάθε αλήθεια στη ζωή, έτσι και αυτή έχει πολλές πλευρές.

Είναι το WordPress εξαιρετικά ανασφαλές;

Ας ρίξουμε μια ματιά σε μερικούς τεράστιους ιστότοπους που δημιουργήθηκαν στο WordPress:

  • TechCrunch
  • Ο Νεοϋορκέζος
  • BBC Αμερικής
  • Bloomberg
  • MTV News
  • PlayStation Blog

Λοιπόν, τι κάνει αυτές τις εταιρείες –με παράλογα βαθιές τσέπες και ένα εντυπωσιακό εργατικό δυναμικό– να μην αλλάζουν από το WordPress; Εάν πιστεύετε ότι η απάντηση είναι κώδικας παλαιού τύπου, σκεφτείτε ξανά: για αυτά τα ονόματα, η ασφάλεια των δεδομένων και η δημόσια εικόνα είναι απείρως πιο σημαντικά από μια απλή μετεγκατάσταση που θα κοστίσει (υπολογίζω) λιγότερο από 200.000 $.

Σίγουρα οι μηχανικοί τους ξέρουν τι κάνουν και δεν βλέπουν θεμελιώδη, άλυτα ζητήματα ασφάλειας με το WordPress;

Ακόμα κι εγώ έχω την τύχη να διαχειρίζομαι μια εγκατάσταση WordPress που έχει 3,5-4 εκατομμύρια επισκέπτες το μήνα. Ο συνολικός αριθμός παραβιάσεων ασφαλείας τα τελευταία οκτώ χρόνια; Μηδέν!

Ετσι . . . είναι το WordPress ασφαλές;

Συγγνώμη αν μου φαίνεται τρολάρισμα, αλλά η απάντησή μου είναι:

Το λέω γιατί, όπως κάθε αλήθεια στη ζωή, είναι περίπλοκη. Για να καταλήξουμε σε μια νόμιμη απάντηση, πρέπει πρώτα να καταλάβουμε ότι το WordPress (ή οποιοδήποτε προκατασκευασμένο CMS, για αυτό το θέμα) δεν είναι σαν ένα ντουλάπι που κολλάς κάπου μόνιμα και τελειώνεις με αυτό.

Είναι ένα πολύπλοκο κομμάτι λογισμικού με πολλές εξαρτήσεις:

  • PHP, η οποία είναι η γλώσσα με την οποία έχει κατασκευαστεί
  • Ένα μηχάνημα ορατό στο κοινό που φιλοξενεί την εγκατάσταση
  • Ο διακομιστής ιστού που χρησιμοποιείται για τη διαχείριση επισκεπτών (Apache, Nginx, κ.λπ.)
  • Η βάση δεδομένων που χρησιμοποιείται (MySQL/MariaDB)
  • Θέματα (δέσμες αρχείων PHP, CS και JS)
  • Προσθήκες (δέσμες αρχείων PHP, CS και JS)
  • Και πολλά άλλα, ανάλογα με το πόσο στοχεύει να πετύχει η εγκατάστασή σας

Με άλλα λόγια, μια παραβίαση ασφαλείας σε οποιαδήποτε από αυτές τις ραφές θα ονομαστεί παραβίαση του WordPress.

Εάν ο κωδικός πρόσβασης root του διακομιστή ήταν admin123 και παραβιάστηκε, είναι ελάττωμα ασφαλείας του WordPress;

Εάν η έκδοση PHP είχε μια ευπάθεια ασφαλείας ή εάν η νέα προσθήκη που αγοράσατε και εγκαταστήσατε περιείχε μια κραυγαλέα τρύπα ασφαλείας. και ούτω καθεξής. Συνοψίζοντας: Ένα υποσύστημα αποτυγχάνει και είναι αποτυχία ασφάλειας του WordPress.

  30 Καλύτερο λογισμικό CAD για αρχάριους

Επιπλέον, μην αφήσετε αυτό να σας δώσει την εντύπωση ότι η PHP, η MySQL και ο Apache δεν είναι ασφαλείς. Κάθε λογισμικό έχει τρωτά σημεία, ο αριθμός των οποίων είναι συγκλονιστικός στην περίπτωση του ανοιχτού κώδικα (επειδή είναι διαθέσιμο σε όλους να το δουν και να το αναλύσουν).

Είπε κάποιος «ασφαλής»; 😛

Αυτό που μαθαίνουμε από όλη αυτή την άσκηση είναι το εξής:

Τίποτα δεν είναι ασφαλές ή ανασφαλές από μόνο του. Είναι τα διαφορετικά εξαρτήματα που χρησιμοποιούνται που σχηματίζουν τους κρίκους στην αλυσίδα, η αλυσίδα, φυσικά, είναι τόσο ισχυρή όσο και η πιο αδύναμη από αυτές. Ιστορικά, η ετικέτα “μη ασφαλής” του WordPress ήταν ένας συνδυασμός παλιών εκδόσεων PHP, κοινόχρηστης φιλοξενίας και προσθήκης προσθηκών/θεμάτων από μη αξιόπιστες πηγές.

Ταυτόχρονα, ορισμένες αρκετά κοινές παραλείψεις καθιστούν την εγκατάσταση του WordPress ευάλωτη σε όσους ξέρουν πώς να τις εκμεταλλεύονται και είναι αποφασισμένοι. Και αυτό είναι το θέμα αυτής της ανάρτησης. Λοιπόν, χωρίς άλλη κουβέντα (και κυκλικά επιχειρήματα), ας ξεκινήσουμε.

Κορυφαία κενά στο WordPress που μπορούν να εκμεταλλευτούν οι χάκερ

Το πρόθεμα πίνακα WordPress

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

Αυτό σημαίνει ότι το προεπιλεγμένο πρόθεμα για τους πίνακες WordPress σας είναι wp_, με αποτέλεσμα ονόματα πινάκων που μπορεί να μαντέψει ο καθένας:

  • wp-χρήστες
  • wp-options
  • wp-posts

Τώρα, σκεφτείτε μια επίθεση γνωστή ως SQL Injection, όπου τα κακόβουλα ερωτήματα της βάσης δεδομένων εισάγονται έξυπνα και εκτελούνται μέσα στο WordPress (παρακαλώ σημειώστε – δεν πρόκειται σε καμία περίπτωση για επίθεση αποκλειστική WordPress/PHP).

Ενώ το WordPress έχει ενσωματωμένους μηχανισμούς για να χειρίζεται αυτούς τους τύπους επιθέσεων, κανείς δεν μπορεί να εγγυηθεί ότι δεν θα συμβεί.

Έτσι, εάν με κάποιο τρόπο, με κάποιο τρόπο, ο εισβολέας καταφέρει να εκτελέσει ένα ερώτημα όπως DROP TABLE wp_users. DROP TABLE wp_posts;, όλοι οι λογαριασμοί, τα προφίλ και οι αναρτήσεις σας θα διαγραφούν σε μια στιγμή χωρίς καμία πιθανότητα ανάκτησης (εκτός εάν έχετε εφαρμόσει ένα εφεδρικό σύστημα, αλλά ακόμα και τότε, είναι βέβαιο ότι θα χάσετε δεδομένα από το τελευταίο αντίγραφο ασφαλείας ).

Η απλή αλλαγή του προθέματος κατά την εγκατάσταση είναι μεγάλη υπόθεση (που απαιτεί μηδενική προσπάθεια).

Συνιστάται κάτι τυχαίο όπως το sdg21g34_ επειδή είναι ανοησία και δύσκολο να μαντέψει κανείς (όσο μεγαλύτερο είναι το πρόθεμα, τόσο το καλύτερο). Το καλύτερο μέρος είναι ότι αυτό το πρόθεμα δεν χρειάζεται να είναι αξέχαστο. το πρόθεμα είναι κάτι που θα αποθηκεύσει το WordPress και δεν θα χρειαστεί να ανησυχείτε ποτέ ξανά για αυτό (όπως δεν ανησυχείτε για το προεπιλεγμένο πρόθεμα wp_!).

  Χρειάζεστε οθόνη υψηλού ρυθμού ανανέωσης για εργασίες γραφείου;

Η προεπιλεγμένη διεύθυνση URL σύνδεσης

Πώς ξέρετε ότι ένας ιστότοπος εκτελείται σε WordPress; Ένα από τα ενδεικτικά σημάδια είναι ότι βλέπετε τη σελίδα σύνδεσης του WordPress όταν προσθέτετε το “/wp-login.php” στη διεύθυνση του ιστότοπου.

Για παράδειγμα, ας πάρουμε τον ιστότοπό μου (http://ankushthakur.com). Είναι στο WordPress; Λοιπόν, προχωρήστε και προσθέστε το μέρος σύνδεσης. Αν νιώθετε πολύ τεμπέλης, ακολουθεί τι συμβαίνει:

¯_(ツ)_/¯

WordPress, σωστά;

Μόλις γίνει γνωστό αυτό, ο επιτιθέμενος μπορεί να τρίψει τα χέρια του με χαρά και να αρχίσει να εφαρμόζει άσχημα κόλπα από το Bag-O’-Doom του σε αλφαβητική βάση. Καημένη εγώ!

Η λύση είναι να αλλάξετε το προεπιλεγμένο URL σύνδεσης και να το δώσετε μόνο σε εκείνα τα άτομα που είναι αξιόπιστα.

Για παράδειγμα, αυτός ο ιστότοπος είναι επίσης στο WordPress, αλλά αν επισκεφτείτε τη διεύθυνση http://grtechpc.org.com/wp-login.php, το μόνο που θα λάβετε είναι μια βαθιά απογοήτευση. Η διεύθυνση URL σύνδεσης είναι κρυφή και είναι γνωστή μόνο στους διαχειριστές;

Η αλλαγή της διεύθυνσης URL σύνδεσης δεν είναι επίσης επιστήμη. Απλώς πιάσε αυτό συνδέω.

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

Η έκδοση PHP και web server

Έχουμε ήδη συζητήσει ότι κάθε κομμάτι λογισμικού που γράφτηκε (και γράφεται) είναι γεμάτο σφάλματα που περιμένουν να αξιοποιηθούν.

Το ίδιο ισχύει και για την PHP.

Ακόμα κι αν χρησιμοποιείτε την πιο πρόσφατη έκδοση της PHP, δεν μπορείτε να είστε σίγουροι ποιες ευπάθειες υπάρχουν και μπορεί να ανακαλυφθούν μέσα σε μια νύχτα. Η λύση είναι να αποκρύψετε μια συγκεκριμένη κεφαλίδα που αποστέλλεται από τον διακομιστή ιστού σας (δεν έχετε ακούσει ποτέ για κεφαλίδες; διαβάστε Αυτό!) όταν ένα πρόγραμμα περιήγησης συνδέεται με αυτό: x-powered-by.

Δείτε πώς φαίνεται αν ελέγξετε τα εργαλεία προγραμματισμού του αγαπημένου σας προγράμματος περιήγησης:

Όπως μπορούμε να δούμε εδώ, ο ιστότοπος μας λέει ότι εκτελείται σε Apache 2.4 και χρησιμοποιεί PHP έκδοση 5.4.16.

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

Αυτές (και παρόμοιες) κεφαλίδες πρέπει να είναι κρυφές.

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

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

Αξίζει? Μόνο εσύ μπορείς να το αποφασίσεις. 🙂

Ω, και αν θέλετε να ασχοληθείτε με τις κεφαλίδες ασφαλείας, εδώ είναι η λύση σας!

Αριθμός προσπαθειών σύνδεσης

Ένα από τα παλαιότερα κόλπα στο εγχειρίδιο του χάκερ είναι το λεγόμενο Λεξικό Επίθεση.

  11 Καλύτερος Πίνακας Ελέγχου που βασίζεται σε Cloud για τη Διαχείριση Διακομιστών και Ιστοσελίδων

Η ιδέα είναι ότι δοκιμάζετε έναν γελοία μεγάλο αριθμό (εκατομμύρια, αν είναι δυνατόν) συνδυασμούς για έναν κωδικό πρόσβασης, εκτός εάν ένας από αυτούς πετύχει. Δεδομένου ότι οι υπολογιστές είναι αστραπιαία σε αυτό που κάνουν, ένα τέτοιο ανόητο σχέδιο είναι λογικό και μπορεί να αποφέρει αποτελέσματα σε εύλογο χρονικό διάστημα.

Μια κοινή (και εξαιρετικά αποτελεσματική) άμυνα ήταν να προσθέσετε μια καθυστέρηση πριν εμφανιστεί το σφάλμα. Αυτό κάνει τον παραλήπτη να περιμένει, πράγμα που σημαίνει ότι αν πρόκειται για σενάριο που χρησιμοποιείται από χάκερ, θα χρειαστεί πολύς χρόνος για να ολοκληρωθεί. Αυτός είναι ο λόγος για τον οποίο ο υπολογιστής ή η αγαπημένη σας εφαρμογή αναπηδά λίγο και στη συνέχεια λέει, “Ωχ, ο λάθος κωδικός πρόσβασης!”.

Τέλος πάντων, το θέμα είναι ότι θα πρέπει να περιορίσετε τον αριθμό των προσπαθειών σύνδεσης για τον ιστότοπό σας στο WordPress.

Πέρα από έναν καθορισμένο αριθμό προσπαθειών (ας πούμε, πέντε), ο λογαριασμός θα πρέπει να κλειδωθεί και θα πρέπει να είναι ανακτήσιμος μόνο μέσω του email του κατόχου του λογαριασμού.

Ευτυχώς, το να το κάνετε αυτό είναι μια περιπάτους, αν συναντήσετε ένα ωραίο συνδέω.

HTTP έναντι HTTPS

Το πιστοποιητικό SSL για το οποίο σας ενοχλεί ο προμηθευτής σας είναι πιο σημαντικό από όσο νομίζετε.

Δεν είναι απλώς ένα εργαλείο φήμης για την εμφάνιση ενός πράσινου εικονιδίου κλειδαριάς στο πρόγραμμα περιήγησης που λέει “Secure”. Αντίθετα, το να εγκαταστήσετε ένα πιστοποιητικό SSL και να αναγκάσετε όλες τις διευθύνσεις URL να λειτουργούν στο “https” είναι αρκετό για να μετατρέψει τον ιστότοπό σας από ένα ανοιχτό βιβλίο σε μια κρυπτική κύλιση.

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

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

Για ιστότοπους που εκτελούνται με απλό “HTTP”, το άτομο που παρακολουθεί την κυκλοφορία του δικτύου, οι κωδικοί πρόσβασης και οι αριθμοί της πιστωτικής σας κάρτας εμφανίζονται καθαρό, απλό κείμενο.

Πηγή: comparitech.com

Τρομακτικός? Πολύ!

Αλλά μόλις εγκαταστήσετε ένα πιστοποιητικό SSL και όλα τα URL μετατραπούν σε “https”, αυτές οι ευαίσθητες πληροφορίες εμφανίζονται ως ασυναρτησίες που μόνο ο διακομιστής μπορεί να αποκρυπτογραφήσει. Με άλλα λόγια, μην ιδρώνετε αυτά τα λίγα δολάρια το χρόνο. 🙂

συμπέρασμα

Θα κρατήσετε αυτά τα πέντε πράγματα υπό έλεγχο ασφαλή τον ιστότοπό σας;

Οχι, καθόλου. Όπως αναφέρουν αμέτρητα άρθρα ασφαλείας, ποτέ δεν είστε 100% ασφαλείς, αλλά είναι δυνατό να εξαλείψετε μια μεγάλη κατηγορία από αυτά τα προβλήματα με εύλογη προσπάθεια. Μπορείτε να εξετάσετε το ενδεχόμενο να χρησιμοποιήσετε το SUCURI cloud WAF για να προστατέψετε τους ιστότοπούς σας ολιστικά.