Web Security for OpenCart

Web security Διαδικτυακών Εφαρμογών

Από το σεμινάριο web security expert του Εργαστηρίου ΤΠΕ Ήρων

 

Web security : Οι διαδικτυακές εφαρμογές αποτελούν μεγάλο κομμάτι και ισχυρό πυρήνα διαφόρων λειτουργιών στον κυβερνοχώρο. Χρησιμοποιούνται για τη δημιουργία e-shops μέχρι την υποβολή οικονομικών στοιχείων σε υπηρεσίες, ακόμα και για την ηλεκτρονική διακυβέρνηση. Η χρήση τους είναι συνεχής και για αυτό το λόγο είναι σημαντικό να προστατεύεται η λειτουργία τους από διάφορες κυβερνοεπιθέσεις σε όλο τον κύκλο ζωής τους.

Συνεχίζοντας τώρα στο κομμάτι του ηλεκτρονικού εμπορίου (e-commerce) θα γίνει λόγος για ένα από τα πιο γνωστά συστήματα διαχείρισης ηλεκτρονικών καταστημάτων, το OpenCart.

Το OpenCart ανήκει στις CMS (Content Management System) εφαρμογές, ενώ αυτοματοποιεί και διευκολύνει τη διαδικασία προσθήκης και τροποποίησης του περιεχομένου ( στην περίπτωση μας προϊόντων ) των ιστοσελίδων αυτών. Βοηθά  στην οργάνωση, αλλά και τον έλεγχο των δραστηριοτήτων του ηλεκτρονικού καταστήματος και διευκολύνει τους καταναλωτές στη διαδικασία των αγορών τους.

Είναι μια από τις πιο δημοφιλείς πλατφόρμες που χρησιμοποιούνται παγκοσμίως για την δημιουργία eshop 

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

OpenCart και Web Security

Το OpenCart βασίζεται στη γλώσσα προγραμματισμού PHP, χρησιμοποιώντας τη βάση δεδομένων MySQL και στοιχεία της HTML. Οι δυνατότητές του είναι πολλές και μεγάλες και αυτός είναι ένας λόγος για τον οποίο τα τελευταία χρόνια χρησιμοποιείται ευρέως από χιλιάδες επιχειρήσεις.

Το OpenCart λόγω του ότι είναι ανοιχτού κώδικα (open source), δίνει τη δυνατότητα σε κάποιον να γνωρίζει τον κώδικα και τη δομή του αρχείου. Αυτομάτως, το καθιστά πιο ευάλωτο σε επιθέσεις και κάθε είδους απειλές. Επομένως, κρίνεται αναγκαίο να διαφυλαχτεί η ασφάλεια της λειτουργίας του και η ενίσχυση της προστασίας του ακολουθώντας τις μεθόδους που αναφέρονται.

1. Μετά την Εγκατάσταση του OpenCart

  • Διαγράψτε το φάκελο με την ονομασία /install/directory
  • chmod (αλλάξτε δικαιώματα ) στο αρχείο config.php και index.php το οποίο βρίσκεται στην τοποθεσία C:\\\\. (root folder/directory) καθώς και στον φάκελο /admin/ και στους υποφακέλους του σε 444

2. Δημιουργήστε μία Σωστή Σελίδα Σφάλματος (Error Page 404)

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

Εάν όμως δεν επιθυμείτε να έχει κάποιος χρήστης οποιαδήποτε πρόσβαση σε μία από τις σελίδες, η λύση είναι να δημιουργήσετε ένα αρχείο με το όνομα 404.html στο root folder του e-shop σας (είναι το βασικό directory του OpenCart καταστήματος). Μία σελίδα σφάλματος δηλαδή στην οποία θα ανακατευθύνεται ο χρήστης.

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

3. Ασφαλίστε τον φάκελο /admin

  • Αποκρύψετε το φάκελο/admin, κάνοντας μετονομασία κατά βούληση.
  • Ακολούθως, επεξεργαστείτε το αρχείο /admin/config.php και αντικαταστήστε το όνομα του admin folder με το νέο που επιλέξατε.
  • Ορίστε έναν κωδικό πρόσβασης με τον οποίο θα προστατεύετε τον admin folder με τη δημιουργία επιπρόσθετου αρχείου ασφάλειας htpasswd. Εάν έχετε web hosting services, τότε έχοντας πρόσβαση στο cPanel του λογαριασμού σας, μπορείτε να κάνετε τη ρύθμιση από εκεί.
  1. Ασφαλίστε τον φάκελο /system

Μέσα στο system folder υπάρχουν δύο αρχεία τα οποία πρέπει να προστατεύσετε. Αυτά είναι τα αρχεία logs/error.txt και start_up.php.

Το αρχείο καταγραφής σφαλμάτων (logs/error.txt) το οποίο περιλαμβάνει σφάλματα και σημαντικές πληροφορίες και το αρχείο start_up.php το οποίο περιέχει ενημερωτικά μηνύματα.

Θα πρέπει να δημιουργήσετε ένα .htaccess αρχείο για να προστατεύσετε τα αρχεία logs/error.txt και start_up.php με τον κώδικα παρακάτω:

Order Deny, Allow

Deny from all

Allow from “admin IP address”

Εφόσον ολοκληρώσετε το βήμα αυτό, βάλτε το .htaccess αρχείο στα directories:

/system/

/system/logs/

  1. Ασφαλίστε τον φάκελο /catalog

Tα αρχεία καταλόγου μπορούν επίσης να προστατευτούν χρησιμοποιώντας το αρχείο .htaccess, επιτρέποντας αποκλειστική πρόσβαση στη διεύθυνση IP του διαχειριστή. Δεν χρειάζεται απαραίτητα να προστατεύσετε όλα τα αρχεία καταλόγου, εκτός από τα σημαντικά όπως .php και .txt και αρχεία template.

  • Μεταβείτε στο αρχείο καταλόγου (catalog file),
  • Επιλέξτε  επεξεργασία (edit) και χρησιμοποιήστε τον κώδικα:

Order Deny, Allow

Deny from all

Allow from “admin IP address”

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

 

  1. Ενισχύστε την Ασφάλεια του φακέλου /image

Όπως και τα παραπάνω αρχεία, έτσι και το image/folder χρειάζεται προστασία και για να επιτευχθεί αυτό, χρειάζεστε ένα παρόμοιο .htaccess. Απλά, δημιουργήστε ένα .htaccess  μέσα στο /image/ folder με τον εξής κώδικα:

Order Deny, Allow

Deny from all

Allow from “admin IP address”

Εάν χρησιμοποιείτε άλλους τύπους αρχείων μέσα στα /catalog/ or /image/ directories όπως είναι τα .swf ή .fly τότε πρέπει να προσθέσετε στο .htaccess αρχείο τις συγκεκριμένες επεκτάσεις αρχείου.

 7.Διαγράψτε τον φάκελο /install

Προτείνεται να γίνεται διαγραφή του φακέλου εγκατάστασης (install folder) ή του  καταλόγου (directory folder), μόλις ολοκληρωθεί η εγκατάσταση. Αυτό, γιατί εάν κάποιος εισβολέας καταφέρει και αποκτήσει πρόσβαση στο φάκελο αυτό, τότε μπορεί να προκαλέσει μεταβολές (επανεκκίνηση ή άλλη ενέργεια) στο site σας. Μετά το πέρας της εγκατάστασης και του set up ο φάκελος αυτός χάνει τη χρηστικότητά του οπότε είναι μία επιπλέον ενέργεια για να αυξήσετε τη διαδικτυακή ασφάλεια της εφαρμογής.

  • Ανοίξτε το FTP CLIENT, μεταβείτε στο «Shop» και επιλέξτε το φάκελο «install» και διαγράψτε τον.

8.Δώστε προσοχή στην εγκατάσταση thirdparty modules / extensions.

Τα διάφορα plugins είναι καμιά φορά υπεύθυνα για την έκθεση των ηλεκτρονικών καταστημάτων σε διάφορες ευπάθειες ασφάλειας και η εφαρμογή του OpenCart σίγουρα δεν αποτελεί εξαίρεση.

Για το λόγο αυτό θα πρέπει να προτιμάτε την εγκατάσταση οποιουδήποτε module μόνο από αξιόπιστη πηγή. Αυτό το εξασφαλίζετε αναζητώντας modules με καλή βαθμολογία (rating), αξιολογήσεις (reviews) και πρόσφατα updates.

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

9.Εφαρμόστε τις προτεινόμενες πρακτικές ασφαλείας  / web security για το ηλεκτρονικό εμπόριο

Υπάρχουν ορισμένες τυπικές πρακτικές ασφαλείας , οι οποίες αφορούν το ηλεκτρονικό εμπόριο κι εφαρμόζονται από  όλα τα ηλεκτρονικά καταστήματα.

  • Σύνθετοι κωδικοί ασφάλειας.

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

Οι κωδικοί καλό είναι να περιέχουν στο σύνολο 15-20 χαρακτήρες αποτελούμενοι από γραμματικό, αριθμητικό μέρος καθώς και σύμβολα ώστε η εύρεση τους να απαιτεί περισσότερο χρόνο και να δυσχεραίνει κάθε προσπάθεια εισβολής.

  • Διπλή επιβεβαίωση (2 Step Verification)

Με τη μέθοδο του 2SV μπορείτε να αποτρέψετε την κακόβουλη ενέργεια ενός hacker ακόμα κι εάν το άτομο αυτό γνωρίζει τους κωδικούς σύνδεσης του λογαριασμού σας.

  • Το πρώτο βήμα αποτελεί την προσθήκη των κωδικών και την είσοδό στο λογαριασμό σας,
  • και το δεύτερο βήμα την αποστολή ενός OTP κωδικού στο κινητό ή το email.

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

  • Θέστε περιορισμένες προσπάθειες σύνδεσης

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

  • Πραγματοποιείτε τακτικά back ups

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

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

10.SSL Certificate

Το πιστοποιητικό Socket Secure Layer κρυπτογραφεί την επικοινωνία μεταξύ  του διακομιστή (το κατάστημά σας) – και του πελάτη. Αυτό σημαίνει ότι καθιστά τα δεδομένα (τραπεζικές συναλλαγές, προσωπικά δεδομένα),  που ανταλλάσσονται μη αναγνώσιμα από τρίτους ενώ στις μέρες πλέον είναι υποχρεωτικό όλοι οι ιστότοποι να έχουν το SSL Certificate το οποίο:

  • Παρέχει εμπιστοσύνη στους χρήστες
  • Ενισχύει το SEO της σελίδας σας
  • Επιτρέπει τη χρήση του προτύπου HTTP/2 για τη μεταφορά των δεδομένων
  • Αποφεύγετε τις κυρώσεις σε περίπτωση παραβίασης της ασφάλειας

Για να διακρίνετε εάν διάφοροι ιστότοποι λειτουργούν βάσει πρωτοκόλλου HTTPS έχοντας εγκαταστήσει στο SSL, αρκεί να δείτε τη μπάρα διεύθυνσης URL και εάν αυτή αναγράφεται με http:// ή https:// καθώς και την ύπαρξη του εικονιδίου με το λουκέτο το οποίο εμφανίζεται στην αρχή της διεύθυνσης της μπάρας πλοήγησης.

Θεωρήστε το σαν την σφραγίδα του web security η οποία δεν περιορίζεται φυσικά σε διακοσμητικό ρόλο αλλά αποτελεί απαραίτητο συστατικό της πολιτικής ασφαλείας ενός ιστοτόπου.

11.Εφαρμόστε Firewalls. Τα κατεξοχήν εργαλεία του web security

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

12.Αποκτήστε μια υπηρεσία φιλοξενίας υπηρεσιών που να δίνει έμφαση στο web security

Όντας σε μια υπηρεσία φιλοξενίας υπηρεσιών (host) είναι ένα επιπρόσθετο κομμάτι ενίσχυσης της ασφάλειας του e-shop σας και της προστασίας αυτού. Εφόσον χρησιμοποιούνται από τους παρόχους των υπηρεσιών αυτών οι βέλτιστες και πλέον επικαιροποιημένες τεχνικές και μέθοδοι ασφάλειας

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

13.Χρησιμοποιείστε τη νεότερη έκδοση του OpenCart

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

Αυτό που χρειάζεται είναι να αναζητήσετε την έκδοση αυτή από τα επίσημα site που την παρέχουν.

14.Ενεργοποιήστε το SSL Certificate και για το Admin Panel

Στο OpenCart το SSL Certificate δεν είναι προεπιλεγμένο ως επιλογή για το Admin panel (Διαχειριστικό πίνακα). Επομένως, εκτός από την ενεργοποίηση του πιστοποιητικού για το e-shop σας, θα πρέπει να το ενεργοποιήσετε και στο admin panel.

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

  • Κάνετε κλικ στις ρυθμίσεις (settings) του καταστήματος OpenCart,
  • Μεταβείτε στο διακομιστή (καρτέλα server) και ελέγξτε την επιλογή “Χρήση SSL” και κάνετε αποθήκευση στις νέες ρυθμίσεις.

15.Χρησιμοποιείστε CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart)

Είναι μία επιπλέον υπηρεσία ασφάλειας και προστασίας της ιστοσελίδας σας από απειλές και ενδεχόμενες επιθέσεις. Το CAPTCHA απλά χρησιμοποιεί κάποιες ερωτήσεις ή puzzles προς επίλυση από τους χρήστες προκειμένου να εισέλθουν σε έναν ιστότοπο. Θα έχουν πρόσβαση μόνο εάν βρουν τη λύση ή απαντήσουν επιτυχώς.

Ουσιαστικά, θέλουμε με τον τρόπο αυτό να διαχωρίσουμε το χρήστη (άνθρωπο) από κάποιο .bot με τον τύπο πρόκλησης-απόκρισης.

Επειδή τα διάφορα κακόβουλα προγράμματα δεν μπορούν να παρακάμψουν ή να ξεγελάσουν το CAPTCHA, το e-shop έχει ακόμα μία δικλίδα ασφαλείας.

Επίσης, υπάρχει και η επέκταση ReCAPTCHA της Google την οποία μπορεί κάποιος να εφαρμόσει στην εφαρμογή OpenCart.

 

Rate this post
Close Popup