secure coding guidelines
Αυτό το σεμινάριο εξηγεί την ασφαλή κωδικοποίηση, τον τρόπο αποφυγής ευπάθειας που σχετίζονται με την ασφάλεια και παρέχει οδηγίες κωδικοποίησης και λίστα ελέγχου για πρακτικές ασφαλούς κωδικοποίησης:
Για να έχει ενσωματωμένη ασφάλεια στο λογισμικό και να εφαρμόζει τις Οδηγίες ασφαλούς κωδικοποίησης και τις βέλτιστες πρακτικές, ολόκληρος ο οργανισμός μαζί με την ομάδα που έχει προσδιοριστεί ότι εργάζεται για την επιδιωκόμενη ανάπτυξη εφαρμογών πρέπει να εξετάσει ορισμένες πτυχές.
Εδώ, θα συζητήσουμε εκείνες τις πτυχές που βοηθούν στην ανάπτυξη ενός ασφαλούς λογισμικού.
Είναι τόσο απλό, εάν ένας προγραμματιστής δεν γνωρίζει τι σημαίνει «Ασφάλεια για το λογισμικό» και πώς ένας χάκερ μπορεί να χαράξει το λογισμικό του, να το ελέγξει και να προσπαθήσει να το εκμεταλλευτεί, τότε είναι απλώς αδύνατο να κωδικοποιηθεί ένα ασφαλές λογισμικό. Έτσι, ο προγραμματιστής πρέπει πρώτα να κατανοήσει τη σημασία του Secure Coding.
Τι θα μάθετε:
- Τι είναι η ασφαλής κωδικοποίηση;
- Οδηγίες ασφαλούς κωδικοποίησης
- Λίστα ελέγχου για πρακτικές ασφαλούς κώδικα
- συμπέρασμα
Τι είναι η ασφαλής κωδικοποίηση;
Η ασφαλής κωδικοποίηση είναι ο σχεδιασμός και η ανάπτυξη λογισμικού από αποφεύγοντας τις αδυναμίες που οδηγούν σε θέματα ευπάθειας που σχετίζονται με την ασφάλεια, τηρώντας τα καθορισμένα πρότυπα ασφαλείας και τις βέλτιστες πρακτικές του κλάδου.
Το πρώτο ερώτημα που προκύπτει στο μυαλό όλων είναι «Πόση ασφάλεια απαιτείται για το λογισμικό μας» ή Πότε μπορούμε να πούμε ότι το λογισμικό μας είναι ασφαλές; και Ποια είναι αυτά τα πρότυπα ασφαλείας ;
Οι απάτες και οι απειλές ασφαλείας αυξάνονται μέρα με τη μέρα και βλέπουμε νέες ποικιλίες και τρόπους εισβολής, ακόμη και στο λεγόμενο πιο ασφαλές λογισμικό.
πώς να αντιγράψετε έναν πίνακα σε Java
Πρόσφατα ακούσαμε ότι το πρόγραμμα AIDADhar του UIDAI παραβιάστηκε για προσωπικά δεδομένα. Ως εκ τούτου, είναι πραγματικά δύσκολο να γνωρίζουμε πόση ασφάλεια απαιτείται για το λογισμικό και ποια είναι τα πρότυπα ασφαλείας, εκτός εάν κατανοήσουμε τις απειλές που ενέχει το λογισμικό και τις δώσουμε προτεραιότητα βάσει των κινδύνων για την επιχείρηση.
Ίσως είναι δύσκολο να παρέχετε 100% προστασία ασφαλείας στο λογισμικό, αλλά εάν η Ομάδα Προγράμματος αναλύσει το Κίνδυνοι και κινητές αξίες που εμπλέκονται στο λογισμικό τους, δηλ. πιθανές απειλές και εάν η ομάδα μπορεί να φροντίσει για τον μετριασμό αυτών των κινδύνων, τότε θα ήταν καλό από το σημείο ασφαλείας της εφαρμογής.
Έτσι, το πρώτο καθήκον για την ομάδα είναι να εντοπίσει και να αναλύσει τους κινδύνους και τις αξίες που εμπλέκονται στην εφαρμογή τους και να κατανοήσει τις πιθανές επιλογές μετριασμού και να υιοθετήσει ανάλογα την καλύτερη επιλογή.
Έτσι, μόλις εντοπίστηκαν οι δέκα κορυφαίες ευπάθειες ταξινομούν σχεδόν όλες τις επιθέσεις που είναι πιθανό να αντιμετωπίσει ένα πρόγραμμα. Αυτό θα βοηθήσει να κατανοήσουμε τις απειλές και να δώσουμε προτεραιότητα στις προσπάθειες ασφάλειας και ανάπτυξης περισσότερο προς την πρόληψη παρά τον μετριασμό.
Π.χ. Ενώ σχεδιάζουμε να αναπτύξουμε μια εφαρμογή που σχετίζεται με την υγειονομική περίθαλψη, η οποία χειρίζεται και αποθηκεύει τα δεδομένα υγείας του ατόμου και τα προσωπικά του στοιχεία, ο κορυφαίος κίνδυνος ασφάλειας για την εφαρμογή είναι να κλέψει τα προσωπικά δεδομένα υγείας.
Μείωση κινδύνου
Για τον μετριασμό του κινδύνου,
- Η εφαρμογή της ασφάλειας για πρόσβαση σε δεδομένα από μη εξουσιοδοτημένο χρήστη πρέπει να αντιμετωπιστεί με σωστό έλεγχο ταυτότητας και εξουσιοδότηση (ισχυρές εφαρμογές πολιτικής κωδικού πρόσβασης, έλεγχος ταυτότητας 2 παραγόντων).
- Πρέπει να ληφθεί μέριμνα για να διασφαλιστεί ότι δεν υπάρχει διαρροή δεδομένων κατά τη μετάδοση δεδομένων από μια πηγή σε άλλη πηγή με την εφαρμογή ασφαλών καναλιών (HTTPS) μετάδοσης δεδομένων και την εφαρμογή κρυπτογράφησης δεδομένων κατά τη μεταφορά.
- Η παραβίαση ή κλοπή δεδομένων σε κατάσταση ηρεμίας είναι επίσης μια άλλη πιθανότητα. Ως εκ τούτου, η αποθήκευση δεδομένων προσωπικής υγείας (Χρήση κρυπτογράφησης) είναι πολύ σημαντική.
Πριν πάτε στο 'Secure Coding Standard', είναι πάντα καλύτερο για ολόκληρη την ομάδα του προγράμματος να έχει «Συνεδρία ευαισθητοποίησης για την ασφάλεια» και να συζητήσουμε και να προβληματιστούμε σχετικά με,
- Η απαίτηση ασφάλειας για το συγκεκριμένο προϊόν τους.
- Πιθανά οφέλη που θα είχε ένας χάκερ χάνοντας το σύστημά τους.
- Πιθανοί τρόποι και μέσα συμβιβασμών ασφαλείας της εφαρμογής τους.
- Οι κοινές πρακτικές ασφάλειας ακολουθήθηκαν σε παρόμοιο κλάδο και τομέα.
- Κατανόηση των τυπικών ζητημάτων ασφαλείας των αντίστοιχων προγραμμάτων τους.
Βοηθά επίσης την ομάδα να χειριστεί καλύτερα, αν μπορεί να καταλάβει το Πηγές των τρωτών σημείων ότι μπορεί να αντιμετωπίσει το λογισμικό τους και τους λόγους για τους οποίους έχει δημιουργηθεί το λογισμικό Κακή / Ανεπαρκής Ασφάλεια .
Λόγοι για ανεπαρκή εφαρμογή ασφάλειας
Γενικά, οι ακόλουθοι είναι μερικοί λόγοι για ανεπαρκή εφαρμογή ασφαλείας στην εφαρμογή.
- Προτεραιότητα δίνεται για λειτουργική απελευθέρωση παρά για θέματα ασφάλειας.
- Αγνοία ή μη επίγνωση σχετικά με την ασφάλεια λογισμικού και τους χάκερ.
- Δεν υπάρχει αρκετή σαφήνεια στο Πρόγραμμα ή στον ίδιο τον Σχεδιασμό Λογισμικού.
- Η πολυπλοκότητα του προγράμματος.
- Δεν υπάρχουν αρκετά δεδομένα, πληροφορίες σχετικά με το ζωντανό σύστημα όπου θα αναπτυχθεί.
- Δεν εξετάζεται η ασφάλεια στις φάσεις SDLC.
- Ανεπαρκής γνώση και κατανόηση των ιδιαιτεροτήτων της γλώσσας που χρησιμοποιείται στο λογισμικό.
- Δεν υπάρχουν αρκετές γνώσεις στην ομάδα και τους προγραμματιστές σχετικά με τις Οδηγίες κωδικοποίησης ασφαλείας.
Γνωρίζουμε ότι δεν είναι ότι όλοι οι προγραμματιστές και οι υπεύθυνοι δοκιμών γνωρίζουν την ασφάλεια μιας εφαρμογής και ενδέχεται να μην έχουν εις βάθος κατανόηση των τρωτών σημείων ασφαλείας και των εκμεταλλεύσεων, ειδικά για την εφαρμογή στην οποία εργάζονται. Γενικά, θα είναι εξοικειωμένοι με, «Πώς να κωδικοποιήσετε λειτουργικά» αλλά δεν γνωρίζουν όλοι «πώς να κωδικοποιήσετε με ασφάλεια».
Ως εκ τούτου, η πολύ σημαντική πτυχή για τον οργανισμό να υιοθετήσει ασφαλείς πρακτικές κωδικοποίησης στο λογισμικό τους είναι πρώτα «Εκπαίδευση ανθρώπων» . Έτσι, η εκπαίδευση της ομάδας τους σε θέματα ασφαλούς κωδικοποίησης, βέλτιστες πρακτικές κωδικοποίησης ασφάλειας και τη χρήση του σωστού εργαλείου είναι πολύ σημαντική.
Η πιο σημαντική Αρχή Σχεδιασμού της Ασφάλειας Λογισμικού είναι να «Εφαρμογή ασφάλειας βάσει σχεδίασης και προεπιλογής» .
Οδηγίες ασφαλούς κωδικοποίησης
Για την επίτευξη ασφάλειας, είναι πολύ σημαντικό να έχουμε ένα «Πρότυπο ασφαλούς κωδικοποίησης» ταυτοποιήθηκε για ένα πρόγραμμα στην αρχή της ανάπτυξης εφαρμογών και αυτό βοηθά την ομάδα στη φροντίδα των ασφαλών προεπιλογών για το λογισμικό και βοηθά στην προστασία του από τις επιθέσεις.
Είναι σημαντικό να διασφαλιστεί ότι ολόκληρη η ομάδα είναι Ισχύει για συμμόρφωση με αυτό το Πρότυπο , ανεξάρτητα από τη γλώσσα κωδικοποίησης και τα εργαλεία που χρησιμοποιούν στο πρόγραμμα.
Παρακάτω παρατίθενται μερικά παραδείγματα που πρέπει να εφαρμοστούν από προεπιλογή στον σχεδιασμό ασφαλούς κώδικα:
τι σημαίνει αναντιστοιχία κλειδιού ασφαλείας δικτύου
- Η πρόσβαση πρέπει να περιορίζεται μόνο σε χρήστες με έλεγχο ταυτότητας και ο έλεγχος ταυτότητας πρέπει να εφαρμόζεται σε κάθε επίπεδο.
- Τα κανάλια επικοινωνίας πρέπει να κρυπτογραφηθούν για την προστασία των διακριτικών ελέγχου ταυτότητας.
- Όλα τα κλειδιά, οι κωδικοί πρόσβασης και τα πιστοποιητικά πρέπει να αποθηκεύονται και να προστατεύονται σωστά.
- Η κρυπτογράφηση αρχείων, η κρυπτογράφηση βάσης δεδομένων και η κρυπτογράφηση στοιχείων δεδομένων πρέπει να εφαρμοστούν.
Επιλογή γλώσσας για ασφαλή κωδικοποίηση
Η επιλογή γλώσσας για κωδικοποίηση ενδέχεται να μην εξαρτάται από την ασφαλή κωδικοποίηση. Δεν υπάρχει τίποτα συγκεκριμένο ως ασφαλής ή μη ασφαλής γλώσσα για την κωδικοποίηση για την κατασκευή ενός ασφαλούς λογισμικού.
Είναι ακριβώς πώς χρησιμοποιούμε μια γλώσσα προγραμματισμού για τη δημιουργία του λογισμικού και πόση σε βάθος γνώση έχει ο προγραμματιστής σχετικά με τη γλώσσα κωδικοποίησης στην εφαρμογή πτυχών ασφάλειας.
Ωστόσο, διευκρινίζεται ότι, ωστόσο Τα πρότυπα ασφαλούς κωδικοποίησης είναι ανεξάρτητα από την επιλογή της γλώσσας, οι βέλτιστες πρακτικές ασφαλούς κώδικα εξαρτώνται από τη γλώσσα, εξαρτώνται από την πλατφόρμα και εξαρτώνται από την εφαρμογή .
Έτσι, για να έχετε έναν Ασφαλή Κώδικα, είναι σημαντικό για τον Προγραμματιστή να έχει σε βάθος γνώση της γλώσσας που χρησιμοποιείται στο πρόγραμμα, έτσι ώστε οι βέλτιστες πρακτικές ασφάλειας να μπορούν να εφαρμοστούν εύκολα.
Παράδειγμα:
- Η πιθανότητα ευπάθειας υπερχείλισης buffer διαφέρει από γλώσσα σε γλώσσα, αλλά τα C, C ++ και Assembly είναι πιο ευαίσθητα λόγω των παρωχημένων δυνατοτήτων διαχείρισης μνήμης. Αρκετές τυπικές λειτουργίες C lib, όπως strcpy () και memcpy (), είναι ευάλωτες σε επιθέσεις buffer-overflow. Λανθασμένη χρήση αυτών των λειτουργιών, αντιγράφοντας ένα buffer προέλευσης που είναι πολύ μεγάλο για να χωρέσει στο buffer προορισμού οδηγεί σε buffer-overflow.
- Το κοινό πρόβλημα σε εφαρμογές web που βασίζονται σε Java είναι οι πιθανές διαρροές πόρων που μπορούν να προκύψουν λόγω ανοικτών πόρων συστήματος, όπως συνδέσεις αρχείων, υποδοχών και βάσεων δεδομένων.
Η επόμενη πτυχή της ασφάλειας είναι το εργαλεία που θα χρησιμοποιηθούν στο Πρόγραμμα εφαρμογών για τη βελτιστοποίηση της ασφάλειας, χρησιμοποιώντας εργαλεία όπως Ολοκληρωμένα περιβάλλοντα ανάπτυξης θα είναι πιο επωφελής καθώς παρέχουν πολλά Ειδοποιήσεις στους χρήστες και να δώσετε προσοχή σε αυτές τις ειδοποιήσεις για να δοκιμάσετε και να βελτιώσετε την ποιότητα του λογισμικού.
- Η ενσωμάτωση εμπορικών ή ανοιχτών πηγών βιβλιοθηκών / προσθηκών όπως το Eclipse, το Spring Tool Suite, το RAD με το IDE βοηθά τους προγραμματιστές να γράφουν ασφαλή κώδικα εντοπίζοντας και εντοπίζοντας δυνητικά ευάλωτο κώδικα και παρέχει ειδοποιήσεις για ευρήματα που σχετίζονται με κακόβουλη εκτέλεση αρχείων, διαρροή πληροφοριών και ακατάλληλος χειρισμός σφαλμάτων.
Είναι επίσης απαραίτητο να χρησιμοποιήσετε το Στατικοί και δυναμικοί αναλυτές για τη βελτίωση των πτυχών ασφάλειας του λογισμικού. Γενικά, οι στατικοί αναλυτές είναι βελτιστοποιημένοι για συγκεκριμένους τύπους σφαλμάτων, οπότε καταλήγουν να βρουν μεγάλο αριθμό ψευδών θετικών ενώ εντοπίζουν συγκεκριμένα σφάλματα. Μερικές φορές υπάρχουν πιθανότητες να χάσουν και τα πραγματικά λάθη.
Ως εκ τούτου, συνιστάται η χρήση πολλαπλοί στατικοί αναλυτές για καλύτερη κάλυψη διαφόρων τύπων λαθών και για την αποφυγή πολλών ψευδών θετικών. Κατά καιρούς, συνιστάται επίσης η εκτέλεση χειροκίνητη δοκιμή προς την εξάλειψη ψευδών θετικών .
Ασφαλείς κανόνες κωδικοποίησης και συστάσεις
Θα ήταν καλό για το Πρόγραμμα να ορίσει ένα σύνολο «Κανόνες και συστάσεις ασφαλούς κωδικοποίησης» στον οποίο ο πηγαίος κώδικας μπορεί να αξιολογηθεί για συμμόρφωση, έτσι ώστε οι υπεύθυνοι δοκιμών να μπορούν να πραγματοποιήσουν το «Δοκιμή συμμόρφωσης συμμόρφωσης» για καθένα από αυτά τα ασφαλή πρότυπα κωδικοποίησης.
Ως εκ τούτου, ο κωδικός ασφαλείας μπορεί να πιστοποιηθεί ως Συμμορφωτικός ή Μη Συμμορφωτικός χρησιμοποιώντας αυτούς τους κανόνες έναντι του καθορισμένου σημείου αναφοράς.
Λίγοι από τους κανόνες που αναφέρονται παρακάτω μπορούν να χρησιμοποιηθούν για τον έλεγχο παραβιάσεων ασφαλείας:
- Τα αρχεία πρέπει να κλείσουν όταν δεν χρειάζονται πλέον.
- Όποτε περνά μια δομή πέρα από ένα όριο, πρέπει να αποφεύγεται η διαρροή πληροφοριών.
- Τα αντικείμενα πρέπει να δηλώνονται με κατάλληλη διάρκεια αποθήκευσης.
Επομένως, πρέπει να σχεδιαστούν και να διεξαχθούν δοκιμαστικές θήκες για την επαλήθευση αυτών των κανόνων για τον έλεγχο της συμμόρφωσης. Αναγνωρίζεται επίσης ότι οι περισσότερες από τις ευπάθειες οφείλονται σε τυπικά κοινά λάθη προγραμματισμού.
Ως εκ τούτου, ο Προγραμματιστής πρέπει να κατανοήσει «Ασφαλής μέθοδος κωδικοποίησης» , ενώ μαθαίνουν επίσης τις βέλτιστες πρακτικές της Ασφαλούς κωδικοποίησης. Είναι ιδανικό να συγκεντρώσετε τα πιο συνηθισμένα σφάλματα προγραμματισμού που συμβάλλουν στις ευπάθειες ασφαλείας της εφαρμογής τους, ώστε να μπορούν να ληφθούν υπόψη κατά την κωδικοποίηση.
Τέτοια τυπικά σφάλματα προγραμματισμού συνεισφέρονται κυρίως από υπερχείλιση buffer, scripting μεταξύ ιστότοπων και ελαττώματα έγχυσης.
Μερικές από τις τυπικές ευπάθειες προγραμματισμού περιλαμβάνουν,
- SQL Injection (Ακατάλληλη εξουδετέρωση ειδικών στοιχείων που χρησιμοποιούνται σε μια εντολή SQL).
- Ακέραια υπερχείλιση.
- Υπερχείλιση buffer (Buffer Copy χωρίς έλεγχο του μεγέθους εισόδου).
- Μη ελεγχόμενη συμβολοσειρά μορφής.
- Λείπει έλεγχος ταυτότητας και εξουσιοδότηση (Λανθασμένη εξουσιοδότηση).
- Ευαίσθητη έκθεση δεδομένων.
- Ακατάλληλος χειρισμός σφαλμάτων.
Μερικά από αυτά τα σφάλματα μπορεί να οδηγήσουν σε σφάλμα συστήματος, απρόβλεπτη πρόσβαση στο σύστημα και τον έλεγχο του λογισμικού που χάθηκε στους χάκερ.
Κοινά σφάλματα προγραμματισμού που πρέπει να αποφεύγονται
Λίγα κοινά σφάλματα προγραμματισμού που πρέπει να αποφεύγονται παρατίθενται παρακάτω:
- Ακατάλληλη εξουδετέρωση ειδικών στοιχείων που χρησιμοποιούνται σε μια εντολή SQL («SQL Injection»).
- Αντιγραφή Buffer χωρίς έλεγχο του μεγέθους της εισαγωγής (‘Classic Buffer Overflow’).
- Λείπει έλεγχος ταυτότητας για κρίσιμη λειτουργία.
- Λείπει ή εσφαλμένη εξουσιοδότηση.
- Χρήση διαπιστευτηρίων με σκληρή κωδικοποίηση.
- Λείπει κρυπτογράφηση ευαίσθητων δεδομένων.
- Απεριόριστη μεταφόρτωση αρχείου με επικίνδυνο τύπο.
- Εξάρτηση από μη αξιόπιστες εισόδους σε απόφαση ασφαλείας.
- Εκτέλεση με περιττά δικαιώματα.
- Συλλογή αιτήσεων μεταξύ ιστότοπων (CSRF).
- Λήψη κώδικα χωρίς έλεγχο ακεραιότητας.
- Λανθασμένος υπολογισμός του μεγέθους του buffer.
- Ακατάλληλος περιορισμός υπερβολικών προσπαθειών ελέγχου ταυτότητας.
- Ανακατεύθυνση διεύθυνσης URL σε μη αξιόπιστο ιστότοπο ('Άνοιγμα ανακατεύθυνσης').
- Μη ελεγχόμενη συμβολοσειρά μορφής.
- Χρήση ενός μονόδρομου κατακερματισμού χωρίς αλάτι.
Λίστα ελέγχου για πρακτικές ασφαλούς κώδικα
Τέλος, αλλά όχι λιγότερο σημαντικό, αφού λάβουμε υπόψη όλα τα παραπάνω σημεία των ασφαλών πτυχών Ανάπτυξης Λογισμικού, οι Προγραμματιστές πρέπει να ακολουθήσουν το Δημιουργήθηκε λίστα ελέγχου για τις πρακτικές ασφαλούς κώδικα για να διασφαλιστεί ότι δεν θα χάσετε τα πράγματα. Παρακάτω αναφέρονται μερικές αλλά όχι εξαντλητικές λίστες.
Επικύρωση εισαγωγής:
- Μην εμπιστεύεστε την είσοδο, εξετάστε το ενδεχόμενο κεντρικής επικύρωσης εισόδου.
- Μην βασίζεστε στην επικύρωση από την πλευρά του πελάτη.
- Να είστε προσεκτικοί με ζητήματα κανονικοποίησης.
- Περιορισμός, απόρριψη και απολύμανση εισόδου. Επικύρωση για τύπο, μήκος, μορφή και εύρος.
Αυθεντικοποίηση:
- Διαχωρισμός ιστότοπου από ανώνυμη, αναγνωρισμένη και επικυρωμένη περιοχή.
- Χρησιμοποιήστε ισχυρούς κωδικούς πρόσβασης.
- Υποστήριξη περιόδων λήξης κωδικού πρόσβασης και απενεργοποίησης λογαριασμού.
- Μην αποθηκεύετε διαπιστευτήρια (χρησιμοποιήστε κατακερματισμούς μονής κατεύθυνσης με αλάτι).
- Κρυπτογράφηση καναλιών επικοινωνίας για την προστασία διακριτικών ελέγχου ταυτότητας.
- Περάστε τα cookies ελέγχου ταυτότητας με φόρμες μόνο μέσω συνδέσεων HTTPS.
Εξουσιοδότηση:
- Χρησιμοποιήστε λιγότερο προνομιούχους λογαριασμούς.
- Εξετάστε τη λεπτομέρεια εξουσιοδότησης.
- Επιβολή διαχωρισμού προνομίων.
- Περιορίστε την πρόσβαση των χρηστών σε πόρους σε επίπεδο συστήματος.
- Χρησιμοποιήστε το πρωτόκολλο OAuth 2.0 για έλεγχο ταυτότητας και εξουσιοδότηση.
- Επικύρωση API μεταφοράς.
- Επιτρεπόμενες μέθοδοι στη λίστα επιτρεπόμενων.
- Προστατέψτε προνομιακές ενέργειες και ευαίσθητες συλλογές πόρων.
- Προστασία από πλαστογράφηση πόρων μεταξύ ιστότοπων (CSRF).
Διαχείριση συνεδρίας:
συγχώνευση κωδικού ταξινόμησης c ++
- Δημιουργήστε ένα αναγνωριστικό περιόδου σύνδεσης στο διακομιστή.
- Τερματίστε τη συνεδρία με το Logoff.
- Δημιουργήστε μια νέα συνεδρία για τον επαναληπτικό έλεγχο ταυτότητας.
- Ορίστε το χαρακτηριστικό «ασφαλές» για cookie που μεταδίδονται μέσω TLS.
Κρυπτογράφηση:
- Χρησιμοποιήστε κρυπτογραφία ενώ «Δεδομένα υπό διαμετακόμιση, Δεδομένα σε αποθήκευση, Δεδομένα σε κίνηση, Ακεραιότητα μηνυμάτων».
- Μην αναπτύσσετε το δικό σας. Χρησιμοποιήστε δοκιμασμένες και δοκιμασμένες δυνατότητες πλατφόρμας.
- Κρατήστε τα μη κρυπτογραφημένα δεδομένα κοντά στον αλγόριθμο.
- Χρησιμοποιήστε τον σωστό αλγόριθμο και το μέγεθος κλειδιού.
- Αποφύγετε τη διαχείριση κλειδιών (χρησιμοποιήστε DPAPI).
- Περιστρέψτε τα κλειδιά σας περιοδικά.
- Αποθηκεύστε τα κλειδιά σε περιορισμένη τοποθεσία.
Καταγραφή και έλεγχος:
- Προσδιορίστε κακόβουλη συμπεριφορά.
- Μάθετε πώς φαίνεται η καλή κυκλοφορία.
- Έλεγχος και καταγραφή δραστηριότητας μέσω όλων των επιπέδων εφαρμογής.
- Ασφαλής πρόσβαση σε αρχεία καταγραφής.
- Δημιουργήστε αντίγραφα ασφαλείας και αναλύστε τακτικά τα αρχεία καταγραφής.
Κωδικοποίηση εξόδου:
- Επικύρωση εισόδου μεταφοράς (XML, JSON….).
- Χρησιμοποιήστε παραμερισμένο ερώτημα.
- Εκτελέστε «Επικύρωση σχήματος».
- Πραγματοποίηση κωδικοποίησης (XML, JSON ..).
- Αποστολή κεφαλίδων ασφαλείας.
Αναφορά: ' Λίστα ελέγχου πρακτικών ασφαλούς κωδικοποίησης OWASP (Με λίγα λόγια, Λίστα ελέγχου SCP) '
Πίνακας Περίληψη της λίστας ελέγχου ασφαλούς κωδικοποίησης
Ο παρακάτω πίνακας συνοψίζει το «Πράγματα που πρέπει να θυμάστε για ασφαλή κώδικα» μιας εφαρμογής.
# | Τι? |
---|---|
7 | Για να διασφαλιστεί ότι ολόκληρη η ομάδα είναι υποχρεωμένη να συμμορφώνεται με το πρότυπο ασφαλούς κωδικοποίησης. |
ένας | Για να καταλάβετε με σαφήνεια, 'Τι είναι ο ασφαλής κώδικας'; |
δύο | Να κατανοήσουμε τα κοινά «Πηγές των ευπαθών σημείων». |
3 | Να διεξαγάγει «Συνάντηση Ευαισθητοποίησης Ασφάλειας» στην ομάδα. |
4 | Για τον εντοπισμό και την ανάλυση των «Κινδύνων και Αξιών» που εμπλέκονται στην εφαρμογή και των μεθόδων «Περιορισμός». |
5 | Να «εκπαιδεύσει την ομάδα» σχετικά με τα πρότυπα ασφαλούς κωδικοποίησης, τις βέλτιστες πρακτικές και τις οδηγίες. |
6 | Για να ορίσετε 'Ασφαλές πρότυπο κωδικοποίησης' |
8 | Να χρησιμοποιήσετε τη 'Εύκολη εφαρμογή της γλώσσας' και να έχετε 'σε βάθος γνώση' αυτής. |
9 | Για να χρησιμοποιήσετε εργαλεία IDE (Ολοκληρωμένο Περιβάλλον Ανάπτυξης) |
10 | Χρήση των «Στατικών και Δυναμικών αναλυτών» και «πολλαπλών Στατικών Αναλυτών» για την εξάλειψη των «Ψευδών Θετικών» |
έντεκα | Για να πραγματοποιήσετε «Μη αυτόματη δοκιμή» όπου απαιτείται για τον εντοπισμό του σφάλματος, χάστε τα. |
12 | Για να ορίσετε ένα σύνολο «Κανόνες και προτάσεις ασφαλούς κωδικοποίησης» |
13 | Να πραγματοποιήσετε «Δοκιμή συμμόρφωσης συμμόρφωσης» για τους καθορισμένους κανόνες. |
14 | Να κατανοήσουμε την 'Μη ασφαλή μέθοδο κωδικοποίησης' και να συλλέξουμε 'Κοινά σφάλματα προγραμματισμού'. |
δεκαπέντε | Για να ακολουθήσετε αυστηρά τη λίστα ελέγχου SCP |
συμπέρασμα
Ελπίζουμε ότι αυτό το σεμινάριο θα είναι ο καλύτερος οδηγός σας για τη διασφάλιση της ασφάλειας λογισμικού.
Οι οδηγίες κωδικοποίησης για την ασφαλή ανάπτυξη λογισμικού παρατίθενται εδώ με απλούς όρους με παραδείγματα για την εύκολη κατανόηση της ιδέας.
Καλή ανάγνωση !!
Συνιστώμενη ανάγνωση
- Δοκιμή ασφαλείας (Ένας πλήρης οδηγός)
- Κορυφαίες 30 καλύτερες εταιρείες ασφάλειας στον κυβερνοχώρο το 2021 (Μικρές έως επιχειρήσεις)
- Βασικά στοιχεία προγραμματισμού υπολογιστών για αρχάριους | Εκμάθηση κωδικοποίησης
- Κορυφαίοι 15 καλύτεροι δωρεάν επεξεργαστές κώδικα για τέλεια εμπειρία κωδικοποίησης
- Εκμάθηση δοκιμών SQL Injection (Παράδειγμα και πρόληψη της επίθεσης SQL Injection)
- Οι προγραμματιστές δεν είναι καλοί ελεγκτές. Τι λες?
- Μορφή και οδηγίες εξέτασης του Ιδρύματος ISTQB για επίλυση εγγράφων
- Οδηγίες δοκιμής ασφάλειας εφαρμογών για κινητά