Acunetix. 7 βέλτιστες πρακτικές ασφάλειας διαδικτυακών εφαρμογών
Δεν είναι δυνατόν να βασίζεστε μόνο στα προϊόντα ασφαλείας για να διατηρήσετε την καλύτερη δυνατή στάση ασφαλείας και να προστατέψετε τα ευαίσθητα δεδομένα σας από κυβερνοεπιθέσεις. Παρακάτω, θα βρείτε μία λίστα με επτά βασικά στοιχεία (βέλτιστες πρακτικές) που πιστεύουμε ότι πρέπει να λάβετε υπόψη στην στρατηγική ασφαλείας διαδικτυακών εφαρμογών σας.
1.Συμπεριλάβετε τους πάντες στις πρακτικές ασφαλείας
Ορισμένες επιχειρήσεις εξακολουθούν να πιστεύουν ότι η ασφάλεια αφορά μόνο μια εξειδικευμένη ομάδα. Όμως στο σημερινό επιχειρησιακό περιβάλλον, αυτή η προσέγγιση δεν είναι βιώσιμη:
- Το αυξανόμενο χάσμα δεξιοτήτων στην κυβερνοασφάλεια σημαίνει ότι οι ομάδες ασφαλείας δεν μπορούν να συμβαδίσουν με τον ρυθμό ανάπτυξης των επιχειρήσεων.
- Μια αποκλειστική/ εξειδικευμένη ομάδα ασφάλειας ουσιαστικά παρεμποδίζει τις διαδικασίες ανάπτυξης.
- Αν η ασφάλεια είναι «αντιδραστική» (reactive) και όχι προληπτική (proactive), θα υπάρχουν περισσότερα ζητήματα που πρέπει να διαχειριστεί η ομάδα ασφαλείας.
Η βέλτιστη πρακτική σήμερα για την ανάπτυξη ασφαλούς λογισμικού ονομάζεται SecDevOps. Αυτή η προσέγγιση, η οποία πηγαίνει πέρα από το DevSecOps, υποθέτει ότι κάθε άτομο που εμπλέκεται στην ανάπτυξη διαδικτυακών εφαρμογών (και σε οποιαδήποτε άλλη ανάπτυξη εφαρμογών) είναι κατά κάποιο τρόπο υπεύθυνο και για την ασφάλεια τους. Οι προγραμματιστές γνωρίζουν πως να γράφουν ασφαλή κώδικα. Οι μηχανικοί QA γνωρίζουν πως να εφαρμόζουν πολιτικές ασφαλείας στις δοκιμές τους. Όλη η διοικητική ομάδα και τα στελέχη έχουν την ασφάλεια κατά νου πριν τη λήψη σημαντικών αποφάσεων.
Μια αποτελεσματική ασφαλής προσέγγιση DevOps απαιτεί πολλή γνώση και εκπαίδευση. Όλοι πρέπει να γνωρίζουν τις απειλές και τους κινδύνους για την ασφάλεια, να κατανοούν τις πιθανές ευπάθειες εφαρμογών και να αισθάνονται υπεύθυνοι για την ασφάλεια. Αν και αυτό απαιτεί πολύ χρόνο και έργο, αποδεικνύεται ότι η επένδυση αποδίδει καθώς αναπτύσσονται κορυφαίες ασφαλείς εφαρμογές.
2.Υιοθετήστε ένα πλαίσιο κυβερνοασφάλειας
Η κυβερνοασφάλεια είναι πολύ περίπλοκη και απαιτεί μια καλά οργανωμένη προσέγγιση. Είναι εύκολο να ξεχάσετε ορισμένες πτυχές και εξίσου εύκολο να δημιουργηθεί χάος. Αυτός είναι ο λόγος για τον οποίο πολλοί οργανισμοί βασίζουν τη στρατηγική ασφαλείας τους σε ένα επιλεγμένο πλαίσιο κυβερνοασφάλειας.
Το πλαίσιο κυβερνοασφάλειας είναι μια στρατηγική προσέγγιση που αρχίζει με τη λεπτομερή έρευνα των κινδύνων ασφαλείας και περιλαμβάνει δραστηριότητες όπως η ανάπτυξη ενός σχεδίου ανταπόκρισης κυβερνοσυμβάντων παράλληλα με μία κατάλληλη λίστα ελέγχου ασφάλειας εφαρμογών. Όσο μεγαλύτερος είναι ο οργανισμός, τόσο περισσότερο χρειάζεται να ακολουθηθεί μία τέτοια στρατηγική προσέγγιση.
Ένα άλλο πλεονέκτημα της υιοθέτησης ενός πλαισίου κυβερνοασφάλειας είναι το γεγονός ότι όλη η κυβερνοασφάλεια είναι διασυνδεδεμένη και η διαδικτυακή ασφάλεια δεν γίνεται να αντιμετωπίζεται ως ξεχωριστό ζήτημα.
3.Αυτοματοποιήστε και ενσωματώστε εργαλεία ασφαλείας
Στο παρελθόν, οι ομάδες ασφαλείας πραγματοποιούσαν χειροκίνητες δοκιμές ασφάλειας εφαρμογών χρησιμοποιώντας εξειδικευμένες λύσεις ασφαλείας. Για παράδειγμα, ένας ερευνητής ασφαλείας θα χρησιμοποιούσε πρώτα έναν απλό σαρωτή ευπάθειας και στη συνέχεια θα πραγματοποιούσε χειροκίνητα πρόσθετες δοκιμές διείσδυσης χρησιμοποιώντας εργαλεία ανοιχτού κώδικα. Στο σημερινό τοπίο της ασφάλειας όμως μια τέτοια προσέγγιση δεν είναι η βέλτιστη. Όπως συμβαίνει ακριβώς και στην υπόλοιπη βιομηχανία πληροφορικής, οι αποτελεσματικότερες διαδικασίες ασφάλειας πληροφορικής βασίζονται στην αυτοματοποίηση και στην ενσωμάτωση.
Πολλά εργαλεία ασφαλείας έχουν πλέον αναπτυχθεί με γνώμονα μία τέτοια αυτοματοποίηση και ενσωμάτωση. Για παράδειγμα, οι επαγγελματικής κλάσης σαρωτές ευπάθειας αναπτύχθηκαν με στόχο να ενσωματωθούν με άλλα συστήματα, όπως με πλατφόρμες CI/CD και ιχνηλάτες ζητημάτων (issue trackers). Υπάρχουν πολλά πλεονεκτήματα σε μια τέτοια προσέγγιση:
- Όσο λιγότερη είναι η χειροκίνητη εργασία, τόσο μικρότερα τα περιθώρια σφάλματος. Αν οι διαδικασίες ασφαλείας αυτοματοποιηθούν και ενσωματωθούν, δεν θα είναι δυνατόν για κάποιον, για να αναφέρουμε ένα παράδειγμα, να ξεχάσει τη σάρωση μιας διαδικτυακής εφαρμογής πριν από τη διάθεση/ δημοσίευση της.
- Αν η ασφάλεια ενσωματωθεί στον κύκλο ζωής ανάπτυξης λογισμικού (SDLC) τα όποια ζητήματα και σφάλματα θα μπορούν να ανακαλυφθούν και να εξαλειφθούν πολύ νωρίτερα. Και κάτι τέτοιο με τη σειρά του εξοικονομεί σημαντικό χρόνο ενώ καθιστά την αποκατάσταση απλούστερη διαδικασία.
- Αν τα εργαλεία ασφαλείας μπορούν να λειτουργούν μαζί με άλλες λύσεις που χρησιμοποιούνται στην ανάπτυξη λογισμικού, όπως είναι οι ιχνηλάτες ζητημάτων, τα ζητήματα ασφάλειας θα είναι δυνατόν να διευθετηθούν ή να αντιμετωπιστούν όπως οποιοδήποτε άλλο ζήτημα. Οι μηχανικοί και οι διευθυντές δεν χάνουν τον χρόνο τους μαθαίνοντας και χρησιμοποιώντας ξεχωριστά εργαλεία για λόγους ασφαλείας.
4.Ακολουθήστε πρακτικές ανάπτυξης ασφαλούς λογισμικού
Υπάρχουν δύο βασικές πτυχές για την ανάπτυξη ασφαλούς λογισμικού:
- Πρακτικές που σας βοηθούν να κάνετε λιγότερα λάθη κατά τη σύνταξη κώδικα εφαρμογής
- Πρακτικές που σας βοηθούν να ανιχνεύετε και να εξαλείφετε λάθη νωρίτερα
Στην πρώτη περίπτωση, οι προγραμματιστές λογισμικού πρέπει να εκπαιδεύονται για τυχόν προβλήματα ασφάλειας. Θα πρέπει να έχουν κατανοήσει τις ενέσεις SQL, το cross-site scripting (XSS), το cross-site source forgery (CSRF) καθώς και άλλες ευπάθειες και ζητήματα εσφαλμένης διαμόρφωσης, σαν αυτά που αναφέρονται στο OWASP Top 10. Πρέπει επίσης να γνωρίζουν τεχνικές ασφαλούς κωδικοποίησης, οι οποίες απαιτούνται για να προλαμβάνονται τέτοιες ευπάθειες, όπως για παράδειγμα οφείλουν να γνωρίζουν πως να προλαμβάνουν ή να αποτρέπουν τις ενέσεις SQL.
Στη δεύτερη περίπτωση, αυτό που θα σας βοηθήσει πρωτίστως είναι η σάρωση για ευπάθειες ασφαλείας όσο το δυνατόν νωρίτερα στον κύκλο ζωής της ανάπτυξης. Αν ενσωματώσετε εργαλεία ασφαλείας στις ροές εργασίας DevOps, μόλις ο προγραμματιστής «καταθέσει» μία νέα ή ενημερωμένη λειτουργικότητα, θα ενημερωθεί για τυχόν ευπάθειες στο commit. Και επειδή κάτι τέτοιο γίνεται αμέσως, η επιδιόρθωση τέτοιων ευπαθειών είναι αρκετά απλούστερη επειδή πολύ απλά ο κώδικας πάνω στον οποίο εργαζόταν ο προγραμματιστής είναι ακόμα «φρέσκος» στη μνήμη του. Αυτή η προσέγγιση επίσης εγγυάται ότι ο προγραμματιστής μπορεί να διορθώσει τον δικό του κώδικα και δεν χάνει χρόνο προσπαθώντας να κατανοήσει τον κώδικα που έχει γράψει κάποιος άλλος πριν από καιρό.
5.Χρησιμοποιήστε ποικίλα μέτρα ασφαλείας
Υπάρχουν πολλές πτυχές στη διαδικτυακή ασφάλεια και δεν υπάρχει ένα εργαλείο που να μπορεί να εγγυηθεί την ολοκληρωτική ασφάλεια. Το βασικό εργαλείο για την ασφάλεια των διαδικτυακών εφαρμογών είναι ο σαρωτής ευπάθειας. Παρόλα αυτά, ακόμη και ο καλύτερος σαρωτής ευπάθειας δεν είναι δυνατόν να ανιχνεύσει όλες τις ευπάθειες, όπως λογικά σφάλματα ή να παρακάμψει σύνθετα σχήματα ελέγχου πρόσβασης/ελέγχου ταυτότητας χωρίς την ανθρώπινη παρέμβαση.
Η σάρωση ευπάθειας δεν πρέπει να αντιμετωπίζεται ως κάτι που μπορεί να αντικαταστήσει τις δοκιμές διείσδυσης. Επίσης, για να διασφαλιστεί πλήρως η ασφάλεια των web servers θα πρέπει η σάρωση ευπάθειας να συνδυάζεται με τη σάρωση δικτύου. Ευτυχώς, ορισμένοι σαρωτές ευπάθειας ενσωματώνονται με σαρωτές δικτυακής ασφαλείας και επομένως μπορείτε να διαχειριστείτε αυτές τις δύο δραστηριότητες μαζί.
Πέρα από τους σαρωτές ευπάθειας που βασίζονται σε τεχνολογίες DAST ή IAST, πολλές επιχειρήσεις επιλέγουν να χρησιμοποιήσουν επιπλέον ένα εργαλείο SAST (για ανάλυση πηγαίου κώδικα) στα αρχικά στάδια, όπως για παράδειγμα στις ροές εργασίας SecDevOps ή και σε προηγούμενο στάδιο, στα μηχανήματα των προγραμματιστών. Ένα τέτοιο εργαλείο αποτελεί μία ιδιαίτερα χρήσιμη προσθήκη, ωστόσο λόγω των περιορισμών του (όπως η αδυναμία προστασίας στοιχείων τρίτου μέρους) δεν μπορεί να αντικαταστήσει ένα εργαλείο DAST.
Ορισμένες επιχειρήσεις πιστεύουν ότι ο καλύτερος τρόπος για να προστατευτούν από τις διαδικτυακές απειλές είναι η χρήση ενός τείχους προστασίας διαδικτυακών εφαρμογών (WAF). Ωστόσο, ένα WAF είναι απλώς μία… γάζα που εξαλείφει πιθανούς φορείς επίθεσης. Την ώρα που ένα WAF αποτελεί σημαντικό τμήμα μίας ολοκληρωμένης σουίτας ασφαλείας για μία επιχείρηση και ο καλύτερος τρόπος για την διαχείριση ευπαθειών μηδενικής ημέρας μέσω virtual patching εντούτοις δεν πρέπει να αντιμετωπίζεται ως η πλέον σημαντική γραμμή άμυνας.
Εν κατακλείδι, θα πρέπει να χρησιμοποιείτε ποικιλία μέτρων ασφαλείας, αλλά δεν πρέπει να υποθέσετε ότι η αγορά τους και η παραχώρησή τους στην ομάδα ασφαλείας σας θα λύσει όλα τα προβλήματα. Τα μέτρα ασφαλείας πρέπει να ενσωματωθούν σε ολόκληρο το περιβάλλον σας και να αυτοματοποιηθούν στο μέγιστο δυνατό. Επενδύσατε σε αυτά για να ελαφρύνουν τον φόρτο εργασίας της ομάδας ασφαλείας σας και όχι για να τον αυξήσουν.
6.Εκτελέστε ασκήσεις ασφαλείας
Ένας από τους καλύτερους τρόπους για να ελέγξετε αν οι ευαίσθητες πληροφορίες σας είναι ασφαλείς είναι να εκτελέσετε ψευδοεπιθέσεις. Αυτή είναι άλλωστε και η βάση της λογικής πίσω από τις δοκιμές διείσδυσης αν και οι δοκιμές διείσδυσης είναι απλώς σημειακοί έλεγχοι. Για να αξιολογείτε ανελλιπώς και πλήρως τη στάση ασφαλείας σας, δεν υπάρχει καλύτερος τρόπος από το να εκτελείτε διαρκώς ασκήσεις ασφαλείας, όπως εκστρατείες «κόκκινης ομάδας εναντίον μπλε ομάδας».
Η ιδέα πίσω από την κόκκινη ομάδα είναι η πρόσληψη ενός εξωτερικού οργανισμού που προσπαθεί διαρκώς να αμφισβητήσει την ασφάλεια σας και η δημιουργία μίας τοπικής ομάδας που είναι υπεύθυνη για να αποτρέψει και να αναχαιτίσει τέτοιες προσπάθειες. Υπάρχουν πολλά πλεονεκτήματα σε αυτήν την προσέγγιση. Η διαρκής άσκηση εξασφαλίζει την ετοιμότητα της επιχείρησης σας στην περίπτωση κάποιας κανονικής επίθεσης. Επιπλέον ενισχύει γενικότερα την ευαισθητοποίηση σε ζητήματα ασφαλείας καθώς η μπλε ομάδα περιλαμβάνει περισσότερα από μία εξειδικευμένη ομάδα ασφαλείας.
Μία κόκκινη ομάδα δεν επιχειρεί απλώς να αξιοποιήσει τις ευπάθειες ασφαλείας. Συχνά εκτελεί διαφορετικούς τύπους ψευδοεπιθέσεων (συμπεριλαμβανομένου phishing, τεχνικών κοινωνικής μηχανικής, επιθέσεων DDoS και άλλων) για να σας βοηθήσει να προστατευτείτε από τις πραγματικές επιθέσεις. Ένα ακόμη πρόσθετο πλεονέκτημα είναι επίσης η συνειδητοποίηση του τρόπου που τα διαφορετικά στοιχεία ασφαλείας αλληλοεπιδρούν μεταξύ τους και δεν μπορούν να αντιμετωπίζονται ξεχωριστά.
7.Διατηρήστε ένα πρόγραμμα ανταμοιβής
Πολλοί κορυφαίοι επαγγελματίες ασφάλειας προτιμούν να εργάζονται ως ελεύθεροι επαγγελματίες αντί να εργάζονται υπό καθεστώς πλήρους απασχόλησης σε επιχειρήσεις. Η απώλεια τέτοιας εξαιρετικής τεχνογνωσίας και εμπειρογνωμοσύνης είναι τεράστια σπατάλη. Η επιχείρησή σας μπορεί να αξιοποιήσει αυτούς τους πολύτιμους πόρους δημιουργώντας ένα πρόγραμμα ανταμοιβής (bounty program).
Αν και ορισμένες επιχειρήσεις ενδέχεται να εκλάβουν ένα πρόγραμμα ανταμοιβής ως μια επικίνδυνη επένδυση, θα διαπιστώσουν σύντομα τα οφέλη της. Ένα τέτοιο πρόγραμμα, αυξάνει τον σεβασμό της κοινότητας των χάκερς στην εταιρεία/ μάρκα σας και κατά συνέπεια τον τρόπο που αντιλαμβάνονται όλοι το brand σας. Αν έχετε ένα πρόγραμμα ανταμοιβής και αντιμετωπίζετε με δίκαιο τρόπο τους ανεξάρτητους εμπειρογνώμονες ασφάλειας, τότε θα σας αντιμετωπίζουν ως μία ώριμη και υπερήφανη επιχείρηση για τη στάση ασφαλείας σας. Μπορείτε να ενισχύσετε αυτήν την αντίληψη μάλιστα αποκαλύπτοντας δημοσίως τις απολαβές του προγράμματος ανταμοιβής και ανταλλάσσοντας υπεύθυνα πληροφορίες για τυχόν ανακαλύψεις ευπαθειών και παραβιάσεις δεδομένων.
Πηγή: Acunetix