Τα περισσότερα προγράμματα πρέπει να αλληλεπιδρούν με τον χρήστη εισάγοντας συγκεκριμένα δεδομένα, είτε πρόκειται για όνομα, ύψος, βάρος για να εισαχθούν σε μια βάση δεδομένων ή γεωμετρικές διαστάσειςκάποιο αντικείμενο για το οποίο κάτι πρέπει να υπολογιστεί. Όλα αυτά τα δεδομένα εισάγονται από τον χρήστη - ένα άτομο, πράγμα που σημαίνει ότι όλα μπορούν να ανταποκριθούν. Τι θα βγάζει το πρόγραμμα εάν ο χρήστης το γράψει με λέξεις αντί για την ηλικία που απαιτεί; Πιθανότατα, το πρόγραμμα θα διακοπεί ή θα παγώσει, αλλά όχι εάν έχει "προστασία από ανόητα".
Γιατί μπορεί ένα πρόγραμμα να διακοπεί ή να παγώσει; Το πρόγραμμα θα προσπαθήσει να μετατρέψει το σύνολο των χαρακτήρων σε αριθμό, κάτι που δεν θα είναι δυνατό, πράγμα που σημαίνει περισσότερη δουλειαεφαρμογή δεν ορίζεται. Ως εκ τούτου, είναι πολύ σημαντικό να οργανωθεί η δομή του προγράμματος έτσι ώστε κατά την είσοδο απροσδόκητοςγια το πρόγραμμα δεδομένων (λανθασμένο από την άποψη της απαιτούμενης μορφής: απαιτείται αριθμός, αλλά εισάγεται μια λέξη), η εφαρμογή δεν διακόπηκε, αλλά ενημέρωσε τον χρήστη ότι είχε προκύψει σφάλμα και ζήτησε να επαναλάβει την εισαγωγή. Αυτό είναι «ανόητη απόδειξη».
Εφαρμογή παραπλανητικής προστασίας στο C
Για την εφαρμογή καλής ανόθειας για την εισαγωγή διαφόρων αριθμητικών (int, double...) δεδομένων, είναι απαραίτητο να διαβάσετε όχι τους ίδιους τους αριθμούς, αλλά ολόκληρη τη συμβολοσειρά εισόδου και μόνο τότε να αναλύσετε την είσοδο. Η γλώσσα C έχει μια πολύ καλή συνάρτηση sscanf(const char *, const char *, args) , η οποία λειτουργεί παρόμοια με τη συνάρτηση scanf(const char *, args), επιστρέφοντας τον αριθμό των ορισμάτων που διαβάστηκαν με επιτυχία, μόνο που τα δεδομένα δεν διαβάζονται από την τυπική ροή εισόδου, αλλά από τη συμβολοσειρά που μεταβιβάστηκε σε αυτήν ως το πρώτο όρισμα.
Ας δούμε μερικά παραδείγματα συναρτήσεων που εφαρμόζουν τον ανόητο έλεγχο χρησιμοποιώντας τη συνάρτηση sscanf.
Εισαγωγή ακέραιου με έλεγχο για λανθασμένη εισαγωγή
int get_integer(const char *msg) (απάντηση χαρακτήρων; // γραμμή για ανάγνωση int n; // τελικός ακέραιος printf("%s", msg); // εμφάνιση προτροπής fgets(answer, sizeof(answer), stdin); // διαβάστε τη γραμμή // μέχρι να διαβαστεί ένας ακέραιος ενώ (sscanf(απάντηση, "%d", &n) != 1) ( printf("Λανθασμένη εισαγωγή. Δοκιμάστε ξανά: "); // εκτυπώστε ένα μήνυμα σχετικά με το σφάλμα fgets (απάντηση, sizeof(απάντηση), // και ξαναδιαβάστε τη γραμμή ) επιστρέψτε τον σωστό ακέραιο αριθμό )Για να διαβάσει έναν ακέραιο, ο αλγόριθμος διαβάζει ολόκληρη τη συμβολοσειρά και στη συνέχεια προσπαθεί να πάρει έναν ακέραιο από αυτήν. Εάν αυτό αποτύχει, η συνάρτηση εμφανίζει ένα μήνυμα σφάλματος που σας ζητά να επαναλάβετε την εισαγωγή μέχρι να εισαχθεί η σωστή ακέραια τιμή.
Εισαγωγή πραγματικού αριθμού με έλεγχο για λανθασμένη εισαγωγή
double get_double(const char *msg) (απάντηση χαρακτήρων; // γραμμή για ανάγνωση διπλό x; // τελικός πραγματικός αριθμός printf("%s", msg); // εμφάνιση προτροπής fgets(answer, sizeof(answer), stdin) ; // διαβάστε τη γραμμή // μέχρι να διαβαστεί ένας πραγματικός αριθμός ενώ (sscanf(απάντηση, "%lf", &x) != 1) ( printf("Εσφαλμένη εισαγωγή. Δοκιμάστε ξανά: "); // εκτυπώστε ένα μήνυμα σχετικά με το error fgets(απάντηση, sizeof(απάντηση), stdin // και ξαναδιαβάστε τη γραμμή) επιστρέψτε τον σωστό πραγματικό αριθμό)Εισαγωγή σημείου στο επίπεδο συντεταγμένων (δομή με δύο πραγματικά πεδία)
// περιγραφή της δομής δεδομένων typedef struct point_t ( double x; // x συντεταγμένη διπλή y; // y συντεταγμένη ) point_t; point_t get_point(const char *msg) (απάντηση χαρακτήρων; // γραμμή για ανάγνωση σημείου_t; // τελικό σημείο printf("%s", msg); // εμφάνιση μιας προτροπής εισαγωγής fgets(answer, sizeof(answer), stdin ); Δοκιμάστε ξανά: "); // εμφανίστε ένα μήνυμα σφάλματος fgets(answer, sizeof(answer), stdin); // και διαβάστε ξανά τη γραμμή ) σημείο επιστροφής; // επιστρέψτε το σωστό σημείο )Όπως φαίνεται από τα παραδείγματα, η δυνατότητα της συνάρτησης sscanf που επιστρέφει τον αριθμό των ορισμάτων ανάγνωσης σάς επιτρέπει να ελέγχετε την ορθότητα των δεδομένων που εισάγετε στην καθορισμένη μορφή και η ανάγνωση ολόκληρης της γραμμής προστατεύει από το γεγονός ότι οι χαρακτήρες διαστήματος ή οι αλλαγές γραμμής Το "\n" θα παραμείνει στη ροή εισόδου, κάτι που πολύ συχνά σας αναγκάζει να σπαταλήσετε. Δεν χρειάζεται μια ώρα ή ακόμη και μια μέρα για να βρείτε ένα σφάλμα.
Είναι αδύνατο να προστατεύσετε τον διακομιστή από εξωτερική πρόσβαση μια για πάντα, επειδή κάθε μέρα ανακαλύπτονται νέα τρωτά σημεία και εμφανίζονται νέοι τρόποι για να χακάρετε τον διακομιστή. Θα μιλήσουμε για την προστασία των διακομιστών από μη εξουσιοδοτημένη πρόσβαση σε αυτό το άρθρο.
Οι διακομιστές οποιασδήποτε εταιρείας μπορούν αργά ή γρήγορα να γίνουν στόχος hacking ή επίθεσης από ιούς. Συνήθως, το αποτέλεσμα μιας τέτοιας επίθεσης είναι η απώλεια δεδομένων, η φήμη ή η οικονομική ζημιά, επομένως θα πρέπει να δοθεί προτεραιότητα στα θέματα ασφάλειας του διακομιστή.
Πρέπει να γίνει κατανοητό ότι η προστασία από την παραβίαση διακομιστή είναι ένα σύνολο μέτρων, συμπεριλαμβανομένης της συνεχούς παρακολούθησης της λειτουργίας του διακομιστή και της εργασίας για τη βελτίωση της προστασίας. Είναι αδύνατο να προστατεύσετε τον διακομιστή από εξωτερική πρόσβαση μια για πάντα, επειδή κάθε μέρα ανακαλύπτονται νέα τρωτά σημεία και εμφανίζονται νέοι τρόποι για να χακάρετε τον διακομιστή.
Θα μιλήσουμε για την προστασία των διακομιστών από μη εξουσιοδοτημένη πρόσβαση σε αυτό το άρθρο.
Τρόποι και μέθοδοι προστασίας των διακομιστών από μη εξουσιοδοτημένη πρόσβαση
Φυσική προστασία διακομιστή
Φυσική προστασία. Συνιστάται ο διακομιστής να βρίσκεται σε ένα ασφαλές κέντρο δεδομένων, ένα κλειστό και φυλασσόμενο δωμάτιο δεν πρέπει να έχει πρόσβαση στον διακομιστή.
Ρύθμιση ελέγχου ταυτότητας SSH
Κατά τη ρύθμιση της πρόσβασης στον διακομιστή, χρησιμοποιήστε έλεγχο ταυτότητας κλειδιού SSH αντί για κωδικό πρόσβασης, καθώς τέτοια κλειδιά είναι πολύ πιο δύσκολο και μερικές φορές απλά αδύνατο να σπάσουν χρησιμοποιώντας ωμή βία.
Εάν πιστεύετε ότι εξακολουθείτε να χρειάζεστε κωδικό πρόσβασης, φροντίστε να περιορίσετε τον αριθμό των προσπαθειών εισαγωγής του.
Λάβετε υπόψη σας εάν βλέπετε ένα τέτοιο μήνυμα όταν συνδέεστε:
Τελευταία αποτυχημένη σύνδεση: Τρίτη 28 Σεπτεμβρίου 12:42:35 MSK 2017 από 52.15.194.10 στο ssh:notty
Έγιναν 8243 αποτυχημένες προσπάθειες σύνδεσης από την τελευταία επιτυχημένη σύνδεση.
Μπορεί να υποδηλώνει ότι κάποιος προσπάθησε να χακάρει τον διακομιστή σας. Σε αυτήν την περίπτωση, για να διαμορφώσετε την ασφάλεια του διακομιστή, αλλάξτε τη θύρα SSH, περιορίστε τη λίστα των IP από τις οποίες είναι δυνατή η πρόσβαση στον διακομιστή ή εγκαταστήστε λογισμικό που αποκλείει αυτόματα την υπερβολικά συχνή και ύποπτη δραστηριότητα.
Εγκαθιστάτε τακτικά τις πιο πρόσφατες ενημερώσεις
Για να διασφαλίσετε την προστασία του διακομιστή, εγκαταστήστε αμέσως τις πιο πρόσφατες ενημερώσεις κώδικα και ενημερώσεις για το λογισμικό διακομιστή που χρησιμοποιείτε - λειτουργικό σύστημα, hypervisor, διακομιστής βάσης δεδομένων.
Συνιστάται να ελέγχετε για νέες ενημερώσεις κώδικα, ενημερώσεις και αναφορές σφαλμάτων/ευπάθειας κάθε μέρα για να αποτρέψετε επιθέσεις που εκμεταλλεύονται τρωτά σημεία zero-day. Για να το κάνετε αυτό, εγγραφείτε σε νέα από την εταιρεία ανάπτυξης λογισμικού, ακολουθήστε τις σελίδες της στα κοινωνικά δίκτυα.
Προστατέψτε τους κωδικούς πρόσβασής σας
Μέχρι τώρα, ένας από τους πιο συνηθισμένους τρόπους για να αποκτήσετε πρόσβαση σε έναν διακομιστή είναι να χακάρετε τον κωδικό πρόσβασης του διακομιστή. Επομένως, ακολουθήστε τις γνωστές, αλλά παρόλα αυτά σχετικές συστάσεις, ώστε να μην αφήσετε τον διακομιστή απροστάτευτο:
- Μην χρησιμοποιείτε κωδικούς πρόσβασης που είναι εύκολο να μαντέψετε, όπως το όνομα της εταιρείας σας.
- Εάν εξακολουθείτε να χρησιμοποιείτε τον προεπιλεγμένο κωδικό πρόσβασης για την κονσόλα διαχειριστή, αλλάξτε τον αμέσως.
- οι κωδικοί πρόσβασης για διαφορετικές υπηρεσίες πρέπει να είναι διαφορετικοί.
- Εάν πρέπει να δώσετε κωδικό πρόσβασης σε κάποιον, μην στείλετε ποτέ τη διεύθυνση IP, τη σύνδεση και τον κωδικό πρόσβασης στο ίδιο μήνυμα ηλεκτρονικού ταχυδρομείου ή αγγελιοφόρου.
- Μπορείτε να ρυθμίσετε τον έλεγχο ταυτότητας δύο παραγόντων για να συνδεθείτε στον λογαριασμό διαχειριστή σας.
Τείχος προστασίας
- Βεβαιωθείτε ότι ο διακομιστής έχει , έχει ρυθμιστεί και λειτουργεί συνεχώς.
- Ασφαλίστε τόσο την εισερχόμενη όσο και την εξερχόμενη κίνηση.
- Παρακολουθήστε ποιες θύρες είναι ανοιχτές και για ποιους σκοπούς, μην ανοίξετε τίποτα περιττό, για να μειώσετε τον αριθμό των πιθανών ευπάθειας για την παραβίαση του διακομιστή.
Συγκεκριμένα, ένα τείχος προστασίας είναι πολύ χρήσιμο για την προστασία του διακομιστή από επιθέσεις ddos, επειδή μπορείτε να δημιουργήσετε γρήγορα απαγορευτικούς κανόνες τείχους προστασίας και να προσθέσετε τις διευθύνσεις IP από τις οποίες προέρχεται η επίθεση ή να αποκλείσετε την πρόσβαση σε ορισμένες εφαρμογές χρησιμοποιώντας συγκεκριμένα πρωτόκολλα.
Παρακολούθηση και ανίχνευση εισβολών
- Περιορίστε το λογισμικό και τις υπηρεσίες που εκτελούνται στον διακομιστή σας. Ελέγχετε περιοδικά όλα όσα εκτελείτε και αν βρείτε άγνωστες διεργασίες, διαγράψτε τις αμέσως και ξεκινήστε τη σάρωση για ιούς.
- Ελέγχετε περιοδικά για σημάδια παραβίασης. Νέες πληροφορίες μπορεί να υποδεικνύουν ένα hack Λογαριασμοίχρήστες που δεν δημιουργήσατε, δεν μετακινήσατε ή διαγράψατε ένα αρχείο /etc/syslog.conf, διαγραμμένα αρχεία/etc/shadowΚαι /etc/passwrd.
- Παρακολουθήστε την απόδοση του διακομιστή σας, δείτε την κανονική του ταχύτητα και διακίνηση, ώστε να μπορείτε να παρατηρήσετε αποκλίσεις, για παράδειγμα, όταν το φορτίο στον διακομιστή έχει γίνει σημαντικά υψηλότερο από το συνηθισμένο.
Χρήση κρυπτογράφησης VPN και SSL/TLS
Αν είναι απαραίτητο απομακρυσμένη πρόσβασηστον διακομιστή, θα πρέπει να επιτρέπεται μόνο από συγκεκριμένες διευθύνσεις IP και να εμφανίζεται μέσω VPN.
Το επόμενο βήμα για τη διασφάλιση της ασφάλειας θα μπορούσε να είναι η ρύθμιση του SSL, το οποίο θα σας επιτρέψει όχι μόνο να κρυπτογραφήσετε δεδομένα, αλλά και να επαληθεύσετε την ταυτότητα άλλων συμμετεχόντων στην υποδομή δικτύου, εκδίδοντάς τους τα κατάλληλα πιστοποιητικά.
Έλεγχος ασφαλείας διακομιστή
Θα ήταν καλή ιδέα να ελέγξετε ανεξάρτητα την ασφάλεια του διακομιστή χρησιμοποιώντας μια μέθοδο pentest, π.χ. μοντελοποίηση επίθεσης για την εύρεση πιθανών τρωτών σημείων και την έγκαιρη εξάλειψή τους. Συνιστάται η συμμετοχή ειδικών σε αυτό ασφάλεια πληροφοριών, ωστόσο, ορισμένες δοκιμές μπορούν να γίνουν ανεξάρτητα, χρησιμοποιώντας προγράμματα για hacking διακομιστές.
Τι άλλο απειλεί τους διακομιστές εκτός από το hacking;
Ένας διακομιστής μπορεί να αποτύχει για διάφορους λόγους εκτός από το hacking. Για παράδειγμα, αυτό θα μπορούσε να είναι μόλυνση από κακόβουλο λογισμικό ή απλώς μια φυσική βλάβη ενός από τα στοιχεία.
Επομένως, τα μέτρα για την προστασία του διακομιστή θα πρέπει να περιλαμβάνουν:
- Εγκατάσταση και ενημέρωση προγραμμάτων προστασίας του διακομιστή - antivirus.
- Τακτικά κρυπτογραφημένα αντίγραφα δεδομένων, τουλάχιστον μία φορά την εβδομάδα, αφού, σύμφωνα με στατιστικά στοιχεία, οι σκληροί δίσκοι των διακομιστών βρίσκονται στην πρώτη θέση στη συχνότητα των αστοχιών. Σιγουρέψου ότι Αντίγραφο ασφαλείαςαποθηκεύονται σε φυσικό ασφαλές περιβάλλον.
- Εξασφάλιση αδιάλειπτης παροχής ρεύματος στην αίθουσα διακομιστή.
- Έγκαιρη φυσική πρόληψη των διακομιστών, συμπεριλαμβανομένου του καθαρισμού τους από τη σκόνη και της αντικατάστασης θερμικής πάστας.
Αυτό μας λέει η εμπειρία των ειδικών του Integrus καλύτερη προστασίαενάντια σε αυτού του είδους την απειλή - αυτή είναι η χρήση βέλτιστες πρακτικέςστον τομέα των συστημάτων προστασίας διακομιστή.
Για να διασφαλίσουμε την ασφάλεια των διακομιστών των πελατών μας, χρησιμοποιούμε έναν συνδυασμό εργαλείων: τείχη προστασίας, antivirus, τεχνολογίες ασφάλειας / διαχείρισης συμβάντων (SIM / SEM), τεχνολογίες ανίχνευσης εισβολής / προστασίας (IDS / IPS), τεχνολογίες ανάλυσης συμπεριφοράς δικτύου (NBA) , και φυσικά διακομιστές τακτικής προληπτικής συντήρησης και διευθέτηση δωματίων ασφαλών διακομιστών με το κλειδί στο χέρι. Αυτό σας επιτρέπει να μειώσετε στο ελάχιστο τους κινδύνους εισβολής ή αποτυχίας διακομιστή για άλλους λόγους.
Είμαστε έτοιμοι να πραγματοποιήσουμε έλεγχο ασφαλείας των διακομιστών της εταιρείας σας, να συμβουλευτούμε ειδικούς και να εκτελέσουμε κάθε είδους εργασία για τη ρύθμιση της προστασίας του εξοπλισμού διακομιστή.