Η ολοκληρωμένη ασφάλεια διαδικτυακών εφαρμογών δεν είναι δυνατό να επιτευχθεί για έναν οργανισμό ή επιχείρηση με τη χρήση ενός μόνο σαρωτή ευπαθειών. Είναι απαραίτητο να επιλέξετε τα κατάλληλα εργαλεία για να δημιουργήσετε μία ολοκληρωμένη και επεκτάσιμη επιχειρησιακή διαδικασία διαδικτυακής ασφάλειας.
Γιώργος Κουϊμηντζής
Εμπορικός Διευθυντής
NSS – www.nss.gr
Η NSS, Value Added Distributor λύσεων αιχμής στον τομέα της πληροφορικής, μας εξηγεί με απλά βήματα, ποια είναι τα θεμέλια και πως δημιουργούμε μία επιχειρησιακή διαδικασία διαδικτυακής ασφάλειας βασισμένη στα δύο προϊόντα της Invicti, Netsparker και Accunetix.
Τα θεμέλια της Επιχειρησιακής Διαδικτυακής Ασφάλειας
Το εύρος των προκλήσεων που σχετίζονται με την διαδικτυακή ασφάλεια αυξάνεται εκθετικά σε συνάρτηση με το μέγεθος της επιχείρησης σας. Ο βασικός λόγος δεν είναι ο αριθμός των στοιχείων που απαιτούν την επίβλεψη σας αλλά η πολυπλοκότητα της δομής. Σε μία μεγάλη επιχείρηση, είναι ευκολότερο να ξεφύγει κάποιο «ζήτημα» από τους ελέγχους ασφάλειας. Και σε μία μεγάλη επιχείρηση ακόμα και ένα μικρό ζήτημα μπορεί να έχει εκθετικά μεγαλύτερες συνέπειες.
ΟΤΑΝ ΣΧΕΔΙΑΖΕΤΕ ΤΟ ΣΥΣΤΗΜΑΣ ΑΣΦΑΛΕΙΑΣ ΣΑΣ, ΘΕΛΕΤΕ ΝΑ ΕΙΝΑΙ ΔΙΕΞΟΔΙΚΟ, ΑΞΙΟΠΙΣΤΟ, ΑΠΟΔΟΤΙΚΟ, ΑΠΑΡΑΚΑΜΠΤΟ ΚΑΙ ΔΙΑΧΕΙΡΙΖΟΜΕΝΟ
Διεξοδικό: Ανακάλυψη Διαδικτυακών Στοιχείων (Web Asset Discovery)
Μία αποτελεσματική επιχειρησιακή διαδικασία διαδικτυακής ασφάλειας πρέπει να περιλαμβάνει δραστηριότητες ή ενέργειες που σας επιτρέπουν να εντοπίζετε καθετί που χρειάζεται προστασία. Είναι απαραίτητο να ανακαλύπτετε αυτόματα και αδιάκοπα όλα τα νέα σας επιχειρησιακά διαδικτυακά στοιχεία αμέσως μόλις εμφανιστούν. Καμία χειροκίνητη διαδικασία δεν μπορεί να είναι τόσο διεξοδική – είναι απαραίτητο να έχετε το κατάλληλο εργαλείο για να αναλάβει δράση εκ μέρους σας. Και ένα τέτοιο εργαλείο πρέπει επίσης να είναι αδύνατο να παρακαμφθεί.
Αξιόπιστο: Μηδενικοί Ψευδείς Συναγερμοί (Zero False Alarms)
Ένας σαρωτής ασφάλειας ιστοσελίδων λειτουργεί όπως περίπου ένας ερευνητής. Επομένως περιμένετε να αποφέρει αποτελέσματα για κάθε πιθανή ευπάθεια και επίσης περιμένετε να αποφέρει μηδενικά αποτελέσματα που αποδεικνύονται ψευδείς ή λανθασμένοι συναγερμοί. Ένας ψευδής συναγερμός μπορεί να σας κοστίσει περισσότερα από ένα μικρό πρόβλημα ασφάλειας που απλώς παραβλέψατε.
Αποδοτικό: Αυτοματοποιημένη Διαδικασία Διαχείρισης Ζητημάτων
Ένα σύστημα διαδικτυακής ασφάλειας επιχειρησιακής κλάσης πρέπει να αυτοματοποιεί τις διαδικασίες ανακάλυψης, αναφορών και αποκατάστασης. Όταν ανακαλύπτεται μία ευπάθεια, το σύστημα πρέπει να δημιουργεί ένα ζήτημα (issue) στο πρόγραμμα εντοπισμού ζητημάτων και να το διαβιβάζει στο προκαθορισμένο άτομο ή ομάδα. Όταν ένα ζήτημα αναφέρεται ως ολοκληρωμένο / κλεισμένο στο σύστημα εντοπισμού ζητημάτων, το σύστημα επίσης θα πρέπει να επαληθεύει ότι δεν υφίσταται πια η συγκεκριμένη ευπάθεια. Αν συνεχίσει να υφίσταται τότε το σύστημα θα πρέπει να «ξανανοίξει» το ζήτημα.
Απαράκαμπτο: Προγραμματισμός και Διαρκή Ενσωμάτωση
Για να διαχειριστούν περίπλοκες διαδικασίες ανάπτυξης, οι περισσότερες επιχειρήσεις χρησιμοποιούν συχνά λύσεις διαρκούς ενσωμάτωσης (CI, Continuous Integration). Αυτές οι λύσεις μπορούν να αυτοματοποιήσουν την διαδικασία compiling, το deployment και πολλές άλλες εργασίες ενώ επιπλέον μπορούν να βοηθήσουν και στην αυτοματοποίηση της σάρωσης ευπαθειών. Αν ενσωματώσετε τον επιχειρησιακής κλάσης σαρωτή διαδικτυακών ευπαθειών σας με ένα σύστημα CI τότε κάθε φορά που ένας προγραμματιστής υποβάλλει ένα commit νέου κώδικα και ολοκληρωθεί η διαδικασία του compiling, τότε ο σαρωτής θα ελέγξει τον κώδικα για ευπάθειες.
Διαχειριζόμενο: Επιχειρησιακής-κλάσης Ορατότητα και Δημιουργία Αναφορών
Οι περισσότεροι σαρωτές διαδικτυακών ευπαθειών σχεδιάστηκαν για να χρησιμοποιούνται από ελεγκτές διείσδυσης και απευθύνονται σε μικρότερες επιχειρήσεις. Η κονσόλα και το σύστημα αναφορών της Invicti σχεδιάστηκε με γνώμονα τους διαχειριστές και τα στελέχη επιχειρήσεων. Η Invicti περιλαμβάνει επίσης εξειδικευμένες αναφορές συμμόρφωσης για όλα τα βασικά στάνταρντ συμμόρφωσης ασφάλειας.
Δημιουργώντας μία Επιχειρησιακή Διαδικασία Διαδικτυακής Ασφάλειας
Το παρακάτω είναι ένα παράδειγμα μίας δοκιμασμένης διαδικασίας επιχειρησιακής διαδικτυακής ασφάλειας με βάση τις βέλτιστες πρακτικές. Το συγκεκριμένο παράδειγμα είναι αποτέλεσμα πολλών χρόνων εμπειρίας στη δημιουργία επιχειρησιακών διαδικασιών διαδικτυακής ασφάλειας και χρησιμοποιεί ως κεντρικό εργαλείο επιλογής το Invicti Netsparker Enterprise. Βεβαίως, το συγκεκριμένο παράδειγμα ενδέχεται να μην εναρμονίζεται ακριβώς με την οργάνωση της επιχείρησης σας ή τις εργασιακές πρακτικές σας. Απλώς λάβετε το υπόψη σας ως βάση και προσαρμόστε το στις ιδιαίτερες ανάγκες και απαιτήσεις σας. Αν χρειάζεστε περισσότερες πληροφορίες σχετικές με τις εμπειρίες μας στον σχεδιασμό τέτοιων διαδικασιών ή χρειάζεστε βοήθεια στην δημιουργία των δικών σας εξειδικευμένων διαδικασιών, αρκεί να επικοινωνήσετε μαζί μας.
Βήμα 1ο: Εντοπισμός Διαδικτυακών Παγίων – Μπορείτε να χρησιμοποιήσετε τα προϊόντα της Invicti για να ανακαλύψετε άμεσα τα διαδικτυακά σας πάγια (web assets) χωρίς να απαιτείται οποιαδήποτε άλλη εγκατάσταση ή διαμόρφωση. Το μόνο που χρειάζεται να κάνετε είναι να παραχωρήσετε οποιονδήποτε από τους παρακάτω τύπους πληροφορίας: δεύτερου επιπέδου domains, ονομασίες οργανισμού ή εύρη διευθύνσεων IP.
Βήμα 2ο: Δημιουργήστε Λογικές Ομάδες – Το κλειδί για τη διαχείριση μεγάλου αριθμού στοιχείων είναι η αποδοτική/ αποτελεσματική ομαδοποίηση. Το εργαλείο αυτό χρησιμοποιεί την ιδέα των λογικών ομάδων (logical groups) που είναι παρόμοιες με τις ετικέτες (tags). Οι ομάδες χρησιμοποιούνται για την ανάθεση ευθυνών, την προτεραιοποίηση, τον προγραμματισμό, την δημιουργία αναφορών και άλλα. Ένα μοναδικό στοιχείο μπορεί να αποτελεί μέρος όσων ομάδων θέλετε. Αφού δημιουργήσετε ομάδες, μπορείτε να προχωρήσετε άμεσα στην προσθήκη των ανακαλυφθέντων και εισαγόμενων στοιχείων στις ομάδες όπως απαιτείται.
Βήμα 3ο: Προσθήκη Χρηστών και Δικαιώματα – Σε έναν οργανισμό, πολλά μέρη έχουν διαφορετικά επίπεδα ενδιαφέροντος στο κομμάτι της ασφάλειας διαδικτυακών στοιχείων. Ενδεχομένως άλλες ομάδες να έχουν περιορισμένη πρόσβαση σε ορισμένα πεδία πληροφορίας. Τα προϊόντα της Invicti σχεδιάστηκαν για να χρησιμοποιούνται από όλα τα ενδιαφερόμενα μέρη: από διευθυντικά στελέχη (π.χ. CEO, CTO), από το τμήμα ασφάλειας (π.χ. CSO, μηχανικούς ασφάλειας, ελεγκτές διείσδυσης), από το τμήμα ανάπτυξης (π.χ. από τους ιδιοκτήτες του προϊόντος, από ιδιοκτήτες υπηρεσιών, από project managers, developers) και άλλους. Η βέλτιστη πρακτική είναι η συμμετοχή όλων στην διαδικασία ασφάλειας.
Βήμα 4ο: Δημιουργία Αποθεματικού – Όταν ολοκληρωθούν τα παραπάνω βήματα, η επιχείρηση θα είναι σε θέση να δημιουργήσει το δικό της καταγεγραμμένο αποθεματικό (inventory) με όσα στοιχεία ανακαλύφθηκαν στο δίκτυο, εκχωρώντας τα σε επιλεγμένες ομάδες χρηστών με τα απαραίτητα δικαιώματα. Μπορεί παράλληλα, να προσθέσει ή να εισάγει επιπλέον στοιχεία ώστε να διασφαλιστεί ότι η οποιαδήποτε ευπάθεια παρακολουθείτε από τον υπεύθυνο χρήστη που θα είναι και το μοναδικό σημείο επαφής που θα διαχειρίζεται τις ενέργειες που συνδέονται με το κάθε συμβάν.
Βήμα 5ο: Ενοποίηση με το Πρόγραμμα Παρακολούθησης Ζητημάτων – Σε έναν οργανισμό, κάθε νέα λύση λογισμικού στην οποία έχουν πρόσβαση πολλοί χρήστες ενδέχεται να αυξήσει σημαντικά το κόστος σε πόρους. Για να εξορθολογήσετε και να απλοποιήσετε τις διαδικασίες, θα πρέπει να είστε σε θέση να χρησιμοποιήσετε λογισμικό που όλοι τους ήδη γνωρίζουν και χρησιμοποιούν. Επομένως, ένας σαρωτής ευπαθειών που λειτουργεί αυτόνομα με το δικό του interface δεν είναι επαρκής αφού είναι αναγκαία η αμφίδρομη επικοινωνία του με σύστημα διαχείρισης ζητημάτων (issue management). Τα ζητήματα που εντοπίζονται πρέπει να προστίθενται αυτόματα στο σύστημα παρακολούθησης ζητημάτων και να γίνεται συχνά επανεξέταση των ζητημάτων που έχουν επιλυθεί στο παρελθόν.
Βήμα 6ο: Προγραμματισμός Σαρώσεων – Μία επιχείρηση μπορεί να διαθέτει εκατοντάδες ή ακόμα και χιλιάδες ιστοσελίδες και διαδικτυακές εφαρμογές. Αν κάθε μία από αυτές έπρεπε να σαρώνεται και να ελέγχεται σε καθημερινή βάση θα απαιτούνταν πολλοί υπολογιστικοί πόροι. Ακριβώς για αυτό το λόγο, πολλοί διαχειριστές ασφάλειας προγραμματίζουν τις σαρώσεις βάσει ποικίλων παραγόντων. Για παράδειγμα, ένα σύστημα e-commerce (ηλεκτρονικού εμπορίου) που χρησιμοποιείται από χιλιάδες πελάτες και περιέχει πολλά προσωπικά δεδομένα θα πρέπει να σαρώνεται πολύ συχνά. Αν ωστόσο πρόκειται για μία καθαρά διαφημιστική ιστοσελίδα που φιλοξενείται σε ξεχωριστό χώρο ενδέχεται να απαιτεί μόνο εβδομαδιαίες σαρώσεις απλώς για να εξασφαλιστεί ότι δεν έχει πέσει θύμα παραμόρφωσης (deface) ή δεν έχει πέσει στον έλεγχο κυβερνοεγκληματιών (hackers).
Βήμα 7ο: Συμπεριλαμβάνονται στο SDLC – Ο πρωταρχικός σκοπός των προγραμματισμένων σαρώσεων είναι για να βεβαιωθείτε ότι δεν υπάρχουν ευπάθειες, για παράδειγμα, εξαιτίας προβλημάτων που βρίσκονται στο λογισμικό τρίτων. Οι προγραμματισμένες σαρώσεις επίσης λειτουργούν και σαν τη τελευταία γραμμή άμυνας για τις δικές σας εφαρμογές. Παρόλα αυτά, η πρώτη γραμμή άμυνας σας ενάντια στις ευπάθειες θα πρέπει να ξεκινήσει προτού ο κώδικας εισέλθει σε φάση παραγωγής, αρκετά νωρίτερα δηλαδή. Για να εξαλείψετε ζητήματα ασφάλειας το ταχύτερο δυνατόν, είναι απαραίτητο να διασφαλίσετε ότι κάθε κομμάτι κώδικα που φτάνει μέχρι το αποθετήριο έχει γίνει compile και έχει σαρωθεί για ευπάθειες. Ένα commit κώδικα δεν θα πρέπει να υποβάλλεται αν δεν έχει σαρωθεί πρώτα και έχει κριθεί ότι είναι ασφαλές.
Ο καλύτερος τρόπος για να πετύχετε κάτι τέτοιο είναι να ενσωματώσετε τον σαρωτή ασφάλειας σας με την αυτοματοποιημένη λύση CI (Continuous Integration) που έχετε στη διάθεση σας. Και το σημαντικότερο, όταν ο developer σας προχωρήσει σε οποιοδήποτε commit (ο κώδικας αποτελείται από μία σειρά commits σε χρονολογική σειρά) στο αποθετήριο, ενεργοποιείται η διαδικασία συνεχούς ενσωμάτωσης/ ενοποίησης. Αυτή η διαδικασία περιλαμβάνει επίσης το compiling της εφαρμογής για να εξασφαλιστεί ότι δεν υπάρχουν σφάλματα. Αυτό το στάδιο επίσης πρέπει να περιλαμβάνει μία σάρωση ευπαθειών ασφάλειας. Και όπως η διακλάδωση χαρακτηριστικών δεν μπορεί να συγχωνευτεί αν δεν γίνει compile, δεν θα πρέπει να συγχωνευτεί και στην περίπτωση που ο σαρωτής εντοπίσει κρίσιμης σημασίας ευπάθειες. Τα προϊόντα της Invicti υποστηρίζουν αυτόν τον τύπο ενοποίησης/ ενσωμάτωσης και μπορεί να λειτουργήσει σε συνδυασμό με τον ανιχνευτή ζητημάτων/ προβλημάτων σε μία εγκατάσταση SDLC.
Αυτό σημαίνει ότι μπορείτε αυτομάτως να δημιουργήσετε ζητήματα και να τα αναθέσετε στον κατάλληλο χρήση, όπως για παράδειγμα σε εκείνον που εναπόθεσε το commit, στον υπεύθυνο προγραμματιστή για τα προβλήματα (bugs) κ.ά. Στην περίπτωση των ευπαθειών που δεν είναι κρίσιμης σημασίας, είναι στην διακριτική σας ευχέρεια το πως να αντιμετωπίσετε τα ζητήματα (αντί να απορρίψετε το commit).