web application security testing guide
Ποια είναι η διαφορά μεταξύ του σχεδίου δοκιμών και της στρατηγικής δοκιμής
Λόγω του τεράστιου όγκου δεδομένων που αποθηκεύονται σε εφαρμογές Ιστού και της αύξησης του αριθμού των συναλλαγών στον Ιστό, ο σωστός έλεγχος ασφαλείας των Εφαρμογών Ιστού γίνεται πολύ σημαντικός καθημερινά.
Σε αυτό το άρθρο, θα μάθουμε λεπτομερώς σχετικά με τους βασικούς όρους που χρησιμοποιούνται στη Δοκιμή ασφάλειας ιστότοπου και στην προσέγγιση δοκιμών.
Τι θα μάθετε:
- Τι είναι ο έλεγχος ασφαλείας;
- Ορισμένοι βασικοί όροι που χρησιμοποιούνται στη δοκιμή ασφάλειας
- Συνιστώμενα εργαλεία δοκιμής ασφαλείας
- Προσέγγιση δοκιμής ασφαλείας
- Μέθοδοι για τη δοκιμή ασφάλειας Ιστού
- συμπέρασμα
- Συνιστώμενη ανάγνωση
Τι είναι ο έλεγχος ασφαλείας;
Δοκιμή ασφαλείας είναι η διαδικασία που ελέγχει εάν το τα εμπιστευτικά δεδομένα παραμένουν εμπιστευτικά ή όχι (δηλ. δεν εκτίθεται σε άτομα / οντότητες για τις οποίες δεν προορίζεται) και οι χρήστες μπορούν να εκτελούν μόνο εκείνες τις εργασίες για τις οποίες είναι εξουσιοδοτημένοι να εκτελέσουν
Για παράδειγμα, ένας χρήστης δεν πρέπει να μπορεί να αρνηθεί τη λειτουργικότητα του ιστότοπου σε άλλους χρήστες ή ένας χρήστης δεν πρέπει να μπορεί να αλλάξει τη λειτουργικότητα της εφαρμογής Ιστού με ακούσιο τρόπο κ.λπ.
Ορισμένοι βασικοί όροι που χρησιμοποιούνται στη δοκιμή ασφάλειας
Προτού προχωρήσουμε περαιτέρω, θα ήταν χρήσιμο να εξοικειωθούμε με λίγους όρους που χρησιμοποιούνται συχνά στην Δοκιμή ασφάλειας εφαρμογών ιστού:
Τι είναι η «ευπάθεια»;
Αυτή είναι η αδυναμία στην εφαρμογή Ιστού. Η αιτία μιας τέτοιας «αδυναμίας» μπορεί να οφείλεται στα σφάλματα στην εφαρμογή, σε μια ένεση (κωδικός SQL / script) ή στην παρουσία ιών.
Τι είναι το 'Manipulation URL';
Ορισμένες εφαρμογές ιστού κοινοποιούν πρόσθετες πληροφορίες μεταξύ του πελάτη (πρόγραμμα περιήγησης) και του διακομιστή στη διεύθυνση URL. Η αλλαγή ορισμένων πληροφοριών στη διεύθυνση URL μπορεί μερικές φορές να οδηγήσει σε ακούσια συμπεριφορά του διακομιστή και αυτό ονομάζεται ως Διαχείριση URL .
Τι είναι το 'SQL injection';
Αυτή είναι η διαδικασία εισαγωγής δηλώσεων SQL μέσω της διεπαφής χρήστη της εφαρμογής web σε κάποιο ερώτημα που στη συνέχεια εκτελείται από το διακομιστή.
Τι είναι το 'XSS (Cross-Site Scripting)';
Όταν ένας χρήστης εισάγει σενάριο HTML / πελάτη στη διεπαφή χρήστη μιας εφαρμογής ιστού, αυτή η εισαγωγή είναι ορατή σε άλλους χρήστες και ορίζεται ως XSS .
Τι είναι το 'Spoofing';
Καλείται η δημιουργία ιστορικών ιστοσελίδων ή email Πλαστογράφηση .
Συνιστώμενα εργαλεία δοκιμής ασφαλείας
# 1) Acunetix
πώς να χρησιμοποιήσετε τον διακομιστή θεμελίωσης ομάδας
Acunetix είναι ένας σαρωτής ασφαλείας εφαρμογών ιστού από άκρο σε άκρο. Θα δώσει μια εικόνα 360 μοιρών για την ασφάλεια του οργανισμού σας. Είναι ικανό να ανιχνεύσει 6500 τύπους ευπάθειας, όπως SQL injections, XSS και Weak Passwords, κ.λπ. Χρησιμοποιεί προηγμένη τεχνολογία εγγραφής μακροεντολών για σάρωση σύνθετων φορμών πολλαπλών επιπέδων.
Η πλατφόρμα είναι διαισθητική και εύχρηστη. Μπορείτε να προγραμματίσετε και να δώσετε προτεραιότητα στις πλήρεις σαρώσεις καθώς και σταδιακές σαρώσεις. Περιέχει μια ενσωματωμένη λειτουργικότητα διαχείρισης ευπάθειας. Με τη βοήθεια εργαλείων CI όπως το Jenkins, οι νέες κατασκευές μπορούν να σαρωθούν αυτόματα.
=> Δοκιμάστε το Acunetix για ασφάλεια εφαρμογών ιστού
# 2) Kiuwan
Βρείτε και διορθώστε ευπάθειες στον κώδικά σας σε κάθε στάδιο του SDLC.
Κιουάν συμμορφώνεται με τα πιο αυστηρά πρότυπα ασφαλείας, συμπεριλαμβανομένων των OWASP, CWE, SANS 25, HIPPA και άλλων.Ενσωματώστε το Kiuwan στο IDE σας για άμεση ανατροφοδότηση κατά τη διάρκεια της ανάπτυξης. Το Kiuwan υποστηρίζει όλες τις μεγάλες γλώσσες προγραμματισμού και ενσωματώνεται με κορυφαία εργαλεία DevOps.
=> Σαρώστε τον κωδικό σας δωρεάν
Προσέγγιση δοκιμής ασφαλείας
Προκειμένου να εκτελεστεί ένα χρήσιμο τεστ ασφαλείας μιας εφαρμογής ιστού, ο ελεγκτής ασφαλείας θα πρέπει να έχει καλές γνώσεις σχετικά με το πρωτόκολλο HTTP.
Είναι σημαντικό να κατανοήσουμε πώς ο πελάτης (πρόγραμμα περιήγησης) και ο διακομιστής επικοινωνούν χρησιμοποιώντας HTTP.
Επιπλέον, ο υπεύθυνος δοκιμών θα πρέπει τουλάχιστον να γνωρίζει τα βασικά του SQL injection και XSS.
Ας ελπίσουμε ότι ο αριθμός των ελαττωμάτων ασφαλείας που υπάρχουν στην εφαρμογή Ιστού δεν θα είναι υψηλός. Ωστόσο, το να είσαι ικανός να περιγράφει με ακρίβεια όλα τα ελαττώματα ασφαλείας με όλες τις απαιτούμενες λεπτομέρειες σίγουρα θα βοηθήσει.
Μέθοδοι για τη δοκιμή ασφάλειας Ιστού
# 1) Σπάσιμο κωδικού πρόσβασης
Ο έλεγχος ασφαλείας σε ένα Εφαρμογή ιστού μπορεί να ξεκινήσει με το 'Password Cracking'. Για να συνδεθείτε στις ιδιωτικές περιοχές της εφαρμογής, μπορεί κανείς να μαντέψει ένα όνομα χρήστη / κωδικό πρόσβασης ή να χρησιμοποιήσει κάποιο εργαλείο cracker κωδικού πρόσβασης για το ίδιο. Μια λίστα κοινών ονομάτων χρήστη και κωδικών πρόσβασης είναι διαθέσιμη μαζί με προγράμματα κρυπτογράφησης κωδικού πρόσβασης ανοιχτού κώδικα.
Εάν η εφαρμογή ιστού δεν επιβάλλει έναν σύνθετο κωδικό πρόσβασης ( Για παράδειγμα, με αλφάβητα, αριθμό και ειδικούς χαρακτήρες ή με τουλάχιστον έναν απαιτούμενο αριθμό χαρακτήρων), ενδέχεται να μην χρειαστεί πολύς χρόνος για να σπάσει το όνομα χρήστη και τον κωδικό πρόσβασης.
Εάν ένα όνομα χρήστη ή ένας κωδικός πρόσβασης αποθηκεύεται σε cookie χωρίς κρυπτογράφηση, ένας εισβολέας μπορεί να χρησιμοποιήσει διαφορετικές μεθόδους για να κλέψει τα cookie και τις πληροφορίες που είναι αποθηκευμένες στα cookies, όπως όνομα χρήστη και κωδικό πρόσβασης.
Για περισσότερες λεπτομέρειες δείτε ένα άρθρο σχετικά με το ' Δοκιμή cookie ιστότοπου '.
# 2) Χειρισμός URL μέσω μεθόδων HTTP GET
Ένας υπεύθυνος δοκιμών θα πρέπει να ελέγξει εάν η εφαρμογή διαβιβάζει σημαντικές πληροφορίες στη συμβολοσειρά ερωτήματος ή όχι. Αυτό συμβαίνει όταν η εφαρμογή χρησιμοποιεί τη μέθοδο HTTP GET για τη μετάδοση πληροφοριών μεταξύ του πελάτη και του διακομιστή.
Οι πληροφορίες διαβιβάζονται μέσω των παραμέτρων στη συμβολοσειρά ερωτήματος. Ο ελεγκτής μπορεί να τροποποιήσει μια τιμή παραμέτρου στη συμβολοσειρά ερωτήματος για να ελέγξει εάν ο διακομιστής την αποδέχεται.
Μέσω HTTP GET αίτημα οι πληροφορίες χρήστη διαβιβάζονται στον διακομιστή για έλεγχο ταυτότητας ή ανάκτηση δεδομένων. Ο εισβολέας μπορεί να χειριστεί κάθε μεταβλητή εισόδου που μεταβιβάζεται από αυτό το αίτημα GET σε διακομιστή προκειμένου να λάβει τις απαιτούμενες πληροφορίες ή να καταστρέψει τα δεδομένα. Σε τέτοιες συνθήκες, οποιαδήποτε ασυνήθιστη συμπεριφορά από εφαρμογή ή διακομιστή ιστού είναι η πόρτα για να εισέλθει ο εισβολέας σε μια εφαρμογή.
# 3) SQL Injection
Ο επόμενος παράγοντας που πρέπει να ελεγχθεί είναι SQL Injection. Η εισαγωγή μιας μοναδικής προσφοράς (‘) σε οποιοδήποτε πλαίσιο κειμένου πρέπει να απορριφθεί από την εφαρμογή. Αντ 'αυτού, εάν ο ελεγκτής συναντήσει σφάλμα βάσης δεδομένων, αυτό σημαίνει ότι η είσοδος χρήστη εισάγεται σε κάποιο ερώτημα το οποίο στη συνέχεια εκτελείται από μια εφαρμογή. Σε μια τέτοια περίπτωση, η εφαρμογή είναι ευάλωτη σε SQL injection.
Οι επιθέσεις με ένεση SQL είναι πολύ κρίσιμες καθώς ένας εισβολέας μπορεί να λάβει ζωτικές πληροφορίες από τη βάση δεδομένων του διακομιστή. Για να ελέγξετε τα σημεία εισόδου έγχυσης SQL στην εφαρμογή ιστού σας, ανακαλύψτε τον κωδικό από τη βάση κώδικα όπου εκτελούνται απευθείας ερωτήματα MySQL στη βάση δεδομένων, αποδεχόμενοι κάποιες εισόδους χρήστη.
Εάν τα δεδομένα εισαγωγής χρήστη έχουν δημιουργηθεί σε ερωτήματα SQL για να υποβάλουν ερώτημα στη βάση δεδομένων, ένας εισβολέας μπορεί να εισάγει δηλώσεις SQL ή μέρος των δηλώσεων SQL ως εισόδους χρήστη για να εξαγάγει ζωτικές πληροφορίες από μια βάση δεδομένων. Ακόμα κι αν ένας εισβολέας καταφέρει να συντρίψει την εφαρμογή, από το σφάλμα ερωτήματος SQL που εμφανίζεται σε ένα πρόγραμμα περιήγησης, ο εισβολέας μπορεί να πάρει τις πληροφορίες που αναζητά.
Οι ειδικοί χαρακτήρες από τις εισόδους των χρηστών θα πρέπει να αντιμετωπίζονται σωστά / να διαφεύγουν σε τέτοιες περιπτώσεις.
# 4) Σενάριο μεταξύ ιστότοπων (XSS)
Ένας υπεύθυνος δοκιμών θα πρέπει επιπλέον να ελέγξει την εφαρμογή ιστού για XSS (Cross-site scripting). Οποιοδήποτε HTML Για παράδειγμα, ή οποιοδήποτε σενάριο Για παράδειγμα, δεν πρέπει να γίνει αποδεκτή από την αίτηση. Εάν είναι, τότε η εφαρμογή μπορεί να είναι επιρρεπής σε επίθεση από Cross-Site Scripting.
Ο εισβολέας μπορεί να χρησιμοποιήσει αυτήν τη μέθοδο για την εκτέλεση κακόβουλου σεναρίου ή διεύθυνσης URL στο πρόγραμμα περιήγησης του θύματος. Χρησιμοποιώντας δέσμες ενεργειών μεταξύ ιστότοπων, ένας εισβολέας μπορεί να χρησιμοποιήσει σενάρια όπως το JavaScript για να κλέψει cookie χρήστη και πληροφορίες που είναι αποθηκευμένες στα cookie.
Πολλές εφαρμογές ιστού λαμβάνουν μερικές χρήσιμες πληροφορίες και μεταβιβάζουν αυτές τις πληροφορίες σε ορισμένες μεταβλητές από διαφορετικές σελίδες.
Για παράδειγμα, http://www.examplesite.com/index.php?userid=123 &ερώτηση = xyz
Ο εισβολέας μπορεί εύκολα να περάσει κάποια κακόβουλη είσοδο ή ως παράμετρο «& query» που μπορεί να εξερευνήσει σημαντικά δεδομένα χρήστη / διακομιστή στο πρόγραμμα περιήγησης.
Σπουδαίος: Κατά τη διάρκεια του ελέγχου ασφαλείας, ο υπεύθυνος δοκιμών θα πρέπει να είναι πολύ προσεκτικός ώστε να μην τροποποιήσει οποιοδήποτε από τα ακόλουθα:
- Διαμόρφωση της εφαρμογής ή του διακομιστή
- Υπηρεσίες που εκτελούνται στο διακομιστή
- Υφιστάμενα δεδομένα χρήστη ή πελάτη που φιλοξενούνται από την εφαρμογή
Επιπλέον, πρέπει να αποφεύγεται ένας έλεγχος ασφαλείας σε ένα σύστημα παραγωγής.
συμπέρασμα
Ο σκοπός μιας δοκιμής ασφαλείας είναι να ανακαλύψει τα τρωτά σημεία της εφαρμογής ιστού, έτσι ώστε οι προγραμματιστές να μπορούν να αφαιρέσουν αυτές τις ευπάθειες από την εφαρμογή και να κάνουν την εφαρμογή ιστού και τα δεδομένα ασφαλή από οποιαδήποτε μη εξουσιοδοτημένη ενέργεια.
Συνιστώμενη ανάγνωση => Διαφορά μεταξύ SAST / DAST / IAST / RASP
πώς να εκτελείτε αρχεία βάζων στα παράθυρα
Μη διστάσετε να μοιραστείτε τα σχόλια / προτάσεις σας σχετικά με αυτό το άρθρο.
Συνιστώμενη ανάγνωση
- Οδηγός για αρχάριους για δοκιμές διείσδυσης εφαρμογών ιστού
- Δοκιμή ασφαλείας (Ένας πλήρης οδηγός)
- Δοκιμή άλφα και δοκιμή beta (Ένας πλήρης οδηγός)
- Δοκιμή ασφάλειας δικτύου και καλύτερα εργαλεία ασφάλειας δικτύου
- Τα καλύτερα εργαλεία δοκιμής λογισμικού 2021 (QA Test Automation Tools)
- Πλήρης οδηγός δοκιμής επαλήθευσης έκδοσης (BVT Testing)
- Top 4 Εργαλεία δοκιμής ασφαλείας ανοιχτού κώδικα για να δοκιμάσετε την εφαρμογή Ιστού
- Λειτουργική δοκιμή εναντίον μη λειτουργική δοκιμή