Σπίτι Προσωπικά Οικονομικά C ++ Προγραμματισμός: 10 Anti-Hacker Tips - dummies

C ++ Προγραμματισμός: 10 Anti-Hacker Tips - dummies

Πίνακας περιεχομένων:

Βίντεο: Revolution OS - 2001 - Multilingual (16 languages) 2024

Βίντεο: Revolution OS - 2001 - Multilingual (16 languages) 2024
Anonim

Ως προγραμματιστής C ++ πρέπει να μάθετε τα πράγματα που πρέπει να κάνετε στον κώδικα C ++ για να αποφύγετε την εγγραφή προγραμμάτων που είναι ευάλωτα σε χάκερ. Υπάρχουν επίσης περιγραφές λειτουργιών που μπορείτε να ενεργοποιήσετε αν το λειτουργικό σας σύστημα τις υποστηρίζει, όπως το ASLR (Random Layout Layout Randomization) και την Πρόληψη εκτέλεσης δεδομένων (Data Execution Prevention - DEP).

Μην κάνετε υποθέσεις σχετικά με την είσοδο χρήστη

Η όραση του σήματος του προγραμματιστή είναι εντάξει κατά τη διάρκεια της πρώιμης φάσης ανάπτυξης. Σε κάποιο σημείο, όμως, ο προγραμματιστής (ή ακόμα καλύτερα κάποιος άλλος προγραμματιστής που δεν έχει καμία σχέση με την ανάπτυξη του κώδικα) πρέπει να καθίσει και να ξεχάσει το άμεσο πρόβλημα. Πρέπει να ρωτήσει τον εαυτό της: "Πώς θα αντιδράσει αυτό το πρόγραμμα στις παράνομες εισροές; "

Εδώ είναι μερικοί από τους κανόνες ελέγχου εισόδου:

  • Μην κάνετε υποθέσεις σχετικά με τη διάρκεια της εισόδου.

  • Μην δεχθείτε περισσότερη είσοδο από ό, τι διαθέτετε στα buffer σταθερού μήκους (ή χρησιμοποιημένα προσωρινά buffers).

  • Ελέγξτε το εύρος κάθε αριθμητικής τιμής για να βεβαιωθείτε ότι έχει νόημα.

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

  • Μην μεταβιβάσετε raw εισροή σε άλλη υπηρεσία, όπως διακομιστή βάσης δεδομένων.

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

Λάθος χειρισμού με χαρά

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

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

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

Διατηρήστε ένα αρχείο καταγραφής προγραμμάτων

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

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

Ένα πραγματικό πρόγραμμα παραγωγής περιέχει μεγάλο αριθμό κλήσεων που μοιάζουν με τα παρακάτω:

log (DEBUG, "User% s entered password", sUser);

Αυτό είναι μόνο ένα παράδειγμα. Κάθε πρόγραμμα θα χρειαστεί κάποιο είδος λειτουργίας καταγραφής. Το αν είναι ή όχι το λεγόμενο log () είναι άσχετο.

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

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

  • Συλλέξτε και να τεκμηριώσετε τις απαιτήσεις, συμπεριλαμβανομένων των απαιτήσεων ασφαλείας.

  • Σχεδίαση αναθεώρησης.

  • Προσέχετε σε ένα πρότυπο κωδικοποίησης.

  • Δοκιμή μονάδας μέτρησης.

  • Διεξάγετε επίσημες δοκιμές αποδοχής που βασίζονται στις αρχικές απαιτήσεις.

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

Εφαρμογή ελέγχου καλής έκδοσης

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

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

Έλεγχος ταυτότητας χρηστών

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

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

Διαχείριση απομακρυσμένων περιόδων σύνδεσης

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

Τι μπορεί να κάνει ο προγραμματιστής με ασφάλεια για να αποφύγει αυτή την κατάσταση; Δεν θέλετε να ζητάτε επανειλημμένα από τον χρήστη τον κωδικό πρόσβασής του μόνο για να βεβαιωθείτε ότι η σύνδεση δεν έχει καταστραφεί. Η εναλλακτική λύση είναι να δημιουργηθεί και να διαχειριστεί μια συνεδρία. Κάνετε αυτό κάνοντας το διακομιστή να αποστείλει την απομακρυσμένη εφαρμογή σε ένα session cookie μόλις ο χρήστης έχει πιστοποιήσει με επιτυχία τον εαυτό του.

Ουσιαστικός ο κωδικός σας

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

Η λογική είναι απλή. Όσο πιο εύκολο είναι για έναν χάκερ να καταλάβει πώς λειτουργεί ο κώδικάς σας, τόσο πιο εύκολο θα είναι για τον χάκερ να καταλάβει τις ευπάθειες.

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

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

Υπογράψτε τον κωδικό σας με ένα ψηφιακό πιστοποιητικό

Η υπογραφή κώδικα λειτουργεί δημιουργώντας ένα ασφαλές hash του εκτελέσιμου κώδικα και συνδυάζοντάς το με ένα πιστοποιητικό που εκδίδεται από μια έγκυρη αρχή έκδοσης πιστοποιητικών. Η διαδικασία λειτουργεί ως εξής: Η εταιρεία που δημιουργεί το πρόγραμμα πρέπει πρώτα να εγγραφεί σε μία από τις αρχές πιστοποίησης.

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

Χρησιμοποιήστε ασφαλή κρυπτογράφηση όποτε είναι απαραίτητο

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

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

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

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

C ++ Προγραμματισμός: 10 Anti-Hacker Tips - dummies

Η επιλογή των συντακτών

Πώς να αλλάξετε τη ρύθμιση ισορροπίας λευκού σε ετικέτες Canon EOS 70D

Πώς να αλλάξετε τη ρύθμιση ισορροπίας λευκού σε ετικέτες Canon EOS 70D

Χρησιμοποιώντας το Ο έλεγχος εξισορρόπησης λευκού στο Canon EOS 70D σας μπορεί εύκολα και γρήγορα να διορθώσει προβλήματα χρώματος. Οι διαθέσιμες ρυθμίσεις ισορροπίας λευκού απεικονίζονται με τα σύμβολα που εμφανίζονται στον παρακάτω πίνακα. Μπορείτε να δείτε την τρέχουσα ρύθμιση στην οθόνη Ρυθμίσεις λήψης, όπως φαίνεται στο παρακάτω σχήμα. Για να προσαρμόσετε τη ρύθμιση, έχετε ...

Η επιλογή των συντακτών

Προετοιμασία αντιγράφου TIFF ψηφιακής εικόνας για δημοσίευση - ανδρεικέλες

Προετοιμασία αντιγράφου TIFF ψηφιακής εικόνας για δημοσίευση - ανδρεικέλες

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

Εξάγοντας το περίγραμμα επιλογής του ψηφιακού σας επεξεργαστή εικόνας - ανδρείκελα

Εξάγοντας το περίγραμμα επιλογής του ψηφιακού σας επεξεργαστή εικόνας - ανδρείκελα

Η πρώτη προσπάθεια. Αναμείνετε να βελτιώσετε το περίγραμμα επιλογής σας τουλάχιστον λίγο. Μπορείτε να βελτιώσετε το περίγραμμα σας με διάφορους τρόπους: Αντίστροφη περιγράμματος επιλογής: Απλά χρησιμοποιήστε την εντολή Invert (ή την αντίστοιχη εντολή του προγράμματος). Προσθέστε σε περίγραμμα επιλογής: ...

Επιλογή από τις άκρες της ψηφιακής εικόνας - ανδρείκελα

Επιλογή από τις άκρες της ψηφιακής εικόνας - ανδρείκελα

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

Η επιλογή των συντακτών

Πώς να χρησιμοποιείτε το παράθυρο μητρώου του QuickBooks 2010 - dummies

Πώς να χρησιμοποιείτε το παράθυρο μητρώου του QuickBooks 2010 - dummies

Για να εργαστείτε ευκολότερα με το παράθυρο του Μητρώου και να ελέγξετε τον τρόπο εμφάνισής του: Το κουμπί Μετάβαση: Εμφανίζει το παράθυρο διαλόγου Μετάβαση (Go To). Αυτό το παράθυρο διαλόγου σάς επιτρέπει να αναζητήσετε μια συναλλαγή στο παράθυρο "Εγγραφή". Για παράδειγμα, μπορείτε να αναζητήσετε ...

Πώς να εργάζεστε με έναν υπάρχοντα προϋπολογισμό σε QuickBooks - dummies

Πώς να εργάζεστε με έναν υπάρχοντα προϋπολογισμό σε QuickBooks - dummies

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

Πώς να χρησιμοποιείτε τα κουτιά παραθύρων αναφορών του QuickBooks - dummies

Πώς να χρησιμοποιείτε τα κουτιά παραθύρων αναφορών του QuickBooks - dummies

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