8 Βασικές συμβουλές για την ασφάλεια του διακομιστή εφαρμογών Web

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

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

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

Ένα βασικό περιβάλλον για τη φιλοξενία και την εκτέλεση εφαρμογών Ιστού περιλαμβάνει το λειτουργικό σύστημα (Linux, Windows), το λογισμικό διακομιστή ιστού (Apache, Nginx), έναν διακομιστή βάσης δεδομένων. Εάν κάποιο από αυτά τα στοιχεία διασπαστεί, οι εισβολείς θα μπορούσαν να αποκτήσουν πρόσβαση και να εκτελέσουν όλες τις κακόβουλες ενέργειες που θέλουν.

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

Το τείχος προστασίας απομυθοποιήθηκε

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

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

Πως?

Απλό: το τείχος προστασίας του δικτύου σας πρέπει τουλάχιστον να επιτρέπει την εισερχόμενη κίνηση στις θύρες 80 και 443 (δηλαδή HTTP και HTTPS) και δεν γνωρίζει ποιος ή τι διέρχεται από αυτές τις θύρες.

Αυτό που χρειάζεστε για να προστατέψετε την εφαρμογή σας είναι ένα τείχος προστασίας εφαρμογών ιστού (WAF) που αναλύει ειδικά την κυκλοφορία ιστού και αποκλείει κάθε προσπάθεια εκμετάλλευσης ευπαθειών, όπως δέσμες ενεργειών μεταξύ τοποθεσιών ή εισαγωγή κώδικα. Ένα WAF λειτουργεί σαν ένα τυπικό λογισμικό προστασίας από ιούς και κακόβουλο λογισμικό: αναζητά γνωστά μοτίβα στη ροή δεδομένων και το αποκλείει όταν εντοπίζει ένα κακόβουλο αίτημα.

  Οι καλύτερες εναλλακτικές λύσεις για την ιδιωτική πρόσβαση στο Διαδίκτυο (PIA) το 2020

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

Για αυτούς τους λόγους, η εφαρμογή Ιστού σας χρειάζεται πρόσθετα επίπεδα προστασίας εκτός από το τείχος προστασίας δικτύου.

Σάρωση για ευπάθειες ειδικά για τον ιστό

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

Οι σαρωτές δικτύου δεν μπορούν να εντοπίσουν ευπάθειες για συγκεκριμένες εφαρμογές. Για να εντοπίσετε και να εξαλείψετε αυτά τα τρωτά σημεία, πρέπει να θέσετε τις εφαρμογές σε μια σειρά δοκιμών και ελέγχων, όπως δοκιμές διείσδυσης, σάρωση μαύρου κουτιού και έλεγχος πηγαίου κώδικα. Ωστόσο, καμία από αυτές τις μεθόδους δεν είναι αλεξίσφαιρη. Στην ιδανική περίπτωση, θα πρέπει να εκτελέσετε όσο το δυνατόν περισσότερες από αυτές για να εξαλείψετε όλα τα τρωτά σημεία.

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

Εκπαιδεύστε τους προγραμματιστές σας

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

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

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

  Οι καλύτεροι τρόποι εμφάνισης NFT στο σπίτι σας

Απενεργοποιήστε την περιττή λειτουργία

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

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

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

Χρησιμοποιήστε ξεχωριστά περιβάλλοντα για ανάπτυξη, δοκιμή και παραγωγή

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

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

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

Διατηρήστε το λογισμικό του διακομιστή σας ενημερωμένο

Όσο προφανές κι αν φαίνεται, αυτή είναι μια από τις πιο παραμελημένες εργασίες. Η SUCURI διαπίστωσε ότι το 59% των εφαρμογών CMS ήταν ξεπερασμένες, γεγονός που ενέχει κινδύνους.

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

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

  Πώς να επαναφέρετε τη λειτουργία αδρανοποίησης στο Ubuntu

Περιορίστε την πρόσβαση και τα προνόμια

Ένα βασικό μέτρο ασφαλείας είναι να διατηρείται η κίνηση απομακρυσμένης πρόσβασης — όπως το RDP και το SSH — κρυπτογραφημένη και σήραγγα. Είναι επίσης καλή ιδέα να διατηρείτε μια μειωμένη λίστα διευθύνσεων IP από όπου επιτρέπεται η απομακρυσμένη πρόσβαση, διασφαλίζοντας ότι αποκλείεται κάθε προσπάθεια απομακρυσμένης καταγραφής από οποιαδήποτε άλλη IP.

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

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

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

Παρακολουθήστε τα αρχεία καταγραφής διακομιστή

Τα αρχεία καταγραφής υπάρχουν για κάποιο λόγο.

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

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

Συμβουλή μπόνους: κρατήστε τον εαυτό σας ενημερωμένο

Υπάρχουν πολλές δωρεάν και χρήσιμες πληροφορίες στο Διαδίκτυο που μπορείτε να χρησιμοποιήσετε προς όφελος της διαδικτυακής σας εφαρμογής. Μην χάσετε καμία νέα ανάρτηση σε αξιόπιστα ιστολόγια ασφαλείας (όπως αυτό) και μείνετε ενημερωμένοι για το τι συμβαίνει στον κλάδο της ασφάλειας και του ιστού.

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