Η ασφάλεια αποτελεί πλέον κύρια ανησυχία μεταξύ των τελικών χρηστών και οι εταιρείες ανάπτυξης λογισμικού αγωνίζονται να καταστήσουν το λογισμικό τους ασφαλέστερο πριν διατεθεί δημοσίως.
Γιώργος Καπανίρης
Executive Director , NSS
www.nss.gr
Καθώς οι αποφάσεις των επιχειρήσεων καθοδηγούνται πλέον από τη νομοθεσία και τους κανονισμούς συμμόρφωσης για τα οικονομικά αρχεία και την ασφάλεια των δεδομένων γενικότερα, πολλές εταιρείες πλέον θέλουν να διασφαλίσουν ότι οι εφαρμογές τρίτων που χρησιμοποιούν πληρούν τις αυστηρές πιστοποιήσεις και όλους τους κανονισμούς ασφαλείας. Οι εφαρμογές που δεν έχουν δοκιμαστεί πλήρως κατά την ανάπτυξή τους καθιστούν τις εταιρείες ευάλωτες και κάνουν τους πελάτες τους να μην αισθάνονται 100% ασφαλείς.
Dynamic Application Security Testing
Τα εργαλεία δυναμικού ελέγχου ασφάλειας εφαρμογών (DAST) είναι ένας από τους καλύτερους τρόπους για να ελεγχθεί μία εφαρμογή για ευπάθειες, κενά ασφαλείας και σφάλματα. Ένα τέτοιο εργαλείο σαρώνει και αναλύει μία διαδικτυακή εφαρμογή ή ένα προϊόν λογισμικού κατά τη διάρκεια της λειτουργίας του με στόχο τον έγκαιρο εντοπισμό ευπαθειών και τρωτών σημείων που θα μπορούσαν να αποτελέσουν αντικείμενο εκμετάλλευσης κάποιου αντίπαλου ή εισβολέα. Αυτός ο «δυναμικός έλεγχος» είναι εξαιρετικά χρήσιμος για τις εταιρείες ανάπτυξης λογισμικού και τους developers καθώς διασφαλίζει τη συμμόρφωση με τα πρότυπα του κλάδου και τη νομοθεσία.
Ένα εξαιρετικό εργαλείο DAST που απευθύνεται σε εταιρείες ανάπτυξης λογισμικού/εφαρμογών για διάφορους τομείς είναι το beSTORM της Beyond Security που ανήκει στο προϊοντικό χαρτοφυλάκιο του γίγαντα της κυβερνοασφάλειας Fortra. Με το beSTORM, οι developers/προγραμματιστές λογισμικού μπορούν να δοκιμάσουν τις εφαρμογές και το λογισμικό τους (π.χ. ιστοσελίδες, APIs και άλλους τύπους δικτυακού ή διαδικτυακού λογισμικού) για κενά ασφαλείας και ευπάθειες (π.χ. SQL injection, Cross-Site Scripting ή XSS και Cross-Site Request Forgery ή CSRF) κατά τη διάρκεια της διαδικασίας ανάπτυξης, όπως γίνεται με τη Διασφάλιση Ποιότητας (QA) σε πολλούς τομείς σήμερα. Δεδομένου ότι η σάρωση και ο έλεγχος πραγματοποιείται αυτοματοποιημένα, οι developers μπορούν να δοκιμάζουν και να ξαναδοκιμάζουν νέες εκδόσεις του λογισμικού τους ανεξάρτητα από το πόσο σύντομος είναι ο κύκλος ανάπτυξής τους.
Το εργαλείο δυναμικού ελέγχου της ασφάλειας εφαρμογών (DAST) beSTORM δοκιμάζει αυτόματα εκατομμύρια, ακόμη και δισεκατομμύρια, συνδυασμούς επιθέσεων.
Το beSTORM σχεδιάστηκε για χρήση σε περιβάλλοντα μηχανικής λογισμικού και απευθύνεται σε προγραμματιστές, ομάδες διασφάλισης ποιότητας και επαγγελματίες ασφαλείας. Το beSTORM οπλίζει τους ρόλους αυτούς με ένα εργαλείο που τους βοηθά να δοκιμάσουν και να «τεστάρουν» της εφαρμογές τους για κενά ασφαλείας και ευπάθειες ενώ βρίσκονται ακόμη στη φάση της ανάπτυξης. Το συγκεκριμένο προϊόν μάλιστα δίνει τη δυνατότητα στις ομάδες ανάπτυξης να προγραμματίσουν δοκιμές ασφαλείας εντός της διαδικασίας του λανσαρίσματος του προϊόντος εξοικονομώντας τους χρόνο για να διορθώσουν τυχόν ζητήματα στον κώδικα.
ο εργαλείο δυναμικού ελέγχου της ασφάλειας εφαρμογών (DAST) beSTORM δοκιμάζει αυτόματα εκατομμύρια, ακόμη και δισεκατομμύρια, συνδυασμούς επιθέσεων. Με αυτόν τον τρόπο διασφαλίζεται η ασφάλεια ενός προϊόντος πριν την κυκλοφορία του, εξοικονομώντας χρόνο και χρήμα (οι επιδιορθώσεις ασφαλείας μπορούν να είναι εξαιρετικά δαπανηρές μετά τη διάθεση/αποστολή του προϊόντος).
Black Box Fuzzer
Το beSTORM πηγαίνει ωστόσο τις λύσεις DAST ένα βήμα παραπέρα καθώς ενσωματώνει επιπλέον ένα εργαλείο «Black Box Fuzzer». Εκτός από το Dynamic Application Security Testing που εκτελεί ολοκληρωμένες, υπολογισμένες δοκιμές, το Black Box Fuzzer επιτίθεται στην εφαρμογή σας με τον ίδιο τρόπο που θα έκανε ένας κυβερνοεγκληματίας. Αυτός ο συνδυασμός καθοδηγούμενου DAST και Black Box Fuzzer είναι που καθιστά το beSTORM ξεχωριστό καθώς αποκαλύπτει γνωστές και άγνωστες αδυναμίες ασφαλείας στον κώδικα. Οι δοκιμές αυτές μάλιστα εκτελούνται χωρίς να υπάρχει πρόσβαση στον πηγαίο κώδικα, αλλά με τον ίδιο τρόπο που ένας κυβερνοεγκληματίας ή μία κυβερνοαπειλή θα επιχειρούσε να παραβιάσει το προϊόν. Επιπλέον, το beSTORM μπορεί να ελέγξει σχεδόν οποιοδήποτε προϊόν λογισμικού (ενσωματώνει πάνω από 250+ προκατασκευασμένα modules και πρωτόκολλα και έχει την επιλογή για προσθήκη κοινών ή προσαρμοσμένων πρωτοκόλλων). Χρησιμοποιώντας το beSTORM, τα τρωτά σημεία ασφαλείας μπορούν να εντοπιστούν και να ιεραρχηθούν για να επιδιορθωθούν εντός του κύκλου ανάπτυξης, επομένως δεν χρειάζεται να θέσετε το προϊόν ή την εφαρμογή σας εκτός σύνδεσης μετά τη κυκλοφορία, κάτι που αναμφισβήτητα εξοικονομεί χρόνο και σε πολλές περιπτώσεις πολλά χρήματα. Η επιδιόρθωση ενός κενού ασφάλειας, μίας ευπάθειας ή ενός σφάλματος κοστίζει λιγότερο κατά το στάδιο της ανάπτυξης παρά μετά τη κυκλοφορία του. Σκεφτείτε πόσα μπορεί να χάσετε, σε χρόνο ή σε χρήματα, από τον χρόνο διακοπής λειτουργίας ή κάποιο πρόστιμο συμμόρφωσης σε περίπτωση που βρεθεί κάποια ευπάθεια μετά τη κυκλοφορία του προϊόντος σας.
Δοκιμάζοντας αυτοματοποιημένα δισεκατομμύρια συνδυασμούς επιθέσεων, το beSTORM διασφαλίζει την ασφάλεια του προϊόντος εξοικονομώντας στις εταιρείες χρόνο και πολλά χρήματα σε κόστη που σχετίζονται με τη επιδιόρθωση κενών ασφαλείας μετά τη διάθεση του. Το beSTORM διαφέρει από τα εργαλεία παλαιότερης γενιάς που χρησιμοποιούν υπογραφές επιθέσεων ή που σαρώνουν τα προϊόντα για να εντοπίσουν ήδη γνωστές ευπάθειες και κενά ασφαλείας. Αυτή η αυτοματοποιημένη διαδικασία εισαγωγής τυχαίων παραμέτρων και δεδομένων στο πρόγραμμα/εφαρμογή (χωρίς να είναι απαραίτητο από τις ομάδες ανάπτυξης να δοκιμάζουν χειροκίνητα κάθε μικρή λειτουργία της εφαρμογής ξεχωριστά) και η επακόλουθη ανάλυση των αποτελεσμάτων για τον εντοπισμό δυνητικά αξιοποιήσιμων -από τους επιτιθέμενους- σφαλμάτων ή κενών ασφαλείας είναι που καθιστά το beSTORM ξεχωριστό.
File Fuzzing
Το beSTORM αποτελεί μία έξυπνη πλατφόρμα fuzzing με ευρεία κάλυψη περισσότερων από 250 modules (περιέχει διάφορα file fuzzing modules όπως ANI, JPEG, TIFF, MKV, ANI κ.ά). Τα εργαλεία fuzzing ή οι fuzzers χρησιμοποιούν μεγάλη ποικιλία τεχνικών για να ανιχνεύσουν ευπάθειες, όπως η εισαγωγή τυχαίων δεδομένων σε μια εφαρμογή για να ελεγχθεί η συμπεριφορά της. Το ενσωματωμένο εργαλείο fuzzing του beSTORM είναι εξαιρετικά προηγμένο και χρησιμοποιείται για την ανίχνευση ευπαθειών που άλλα εργαλεία αδυνατούν να εντοπίσουν. Είναι ικανό να ανιχνεύει ευπάθειες όχι μόνο σε επιφανειακό επίπεδο, αλλά και σε πολυπλοκότερες περιπτώσεις όπως για παράδειγμα σε κρυπτογραφημένες επικοινωνίες, σε κώδικα ή ακόμη και στο πρωτόκολλο επικοινωνίας.
Οι επαγγελματίες του κλάδου της κυβερνοασφάλειας γνωρίζουν για τις επιθέσεις ransomware που ξεκινούν από έναν dropper που κρύβεται στον κώδικα ενός αρχείου PDF, για ευπάθειες όπως η αυθαίρετη εκτέλεση κώδικα σε συσκευές Apple ή για CVEs που έχουν δημοσιευτεί και σχετίζονται με ζητήματα σε πολύ κοινότυπα αρχεία που «ανοίγουν» ένα backdoor για την απομακρυσμένη εκτέλεση κώδικα ή υπερχείλιση buffer. Αν και οι εταιρείες συνήθως αντιμετωπίζουν τέτοιες ευπάθειες, διαθέτοντας για παράδειγμα ενημερώσεις με επιδιορθώσεις στον κώδικα, οι προγραμματιστές οφείλουν να έχουν προχωρήσει σε ελέγχους της ακεραιότητας του λογισμικού τους και της ικανότητας του να αφομοιώνει συγκεκριμένα αρχεία. Για παράδειγμα, αν χρησιμοποιείται σύστημα DLP για την επεξεργασία χιλιάδων αρχείων XLS καθημερινά, θα πρέπει να γίνει έλεγχος ακεραιότητας του DLP καθώς και η ικανότητά του να αντέχει σε μια εξαντλητική δοκιμή. Θα πρέπει να επαληθευτεί ότι η λειτουργία του DLP δεν διακόπτεται κατά τη σάρωση αρχείων XLS με ειδικά προσαρμοσμένη μορφή που έχουν προετοιμαστεί από έναν επιτιθέμενο ή εισβολέα.
Η κύρια διαφορά μεταξύ των εργαλείων ανάλυσης πηγαίου κώδικα και του beSTORM είναι ότι το τελευταίο δεν χρειάζεται τον πηγαίο κώδικα. Το beSTORM ελέγχει το πρωτόκολλο και όχι το προϊόν και επομένως μπορεί να χρησιμοποιηθεί για τη δοκιμή εξαιρετικά περίπλοκων προϊόντων σε μεγάλη κλίμακα. Ένα άλλο βασικό στοιχείο διαφοροποίησης από την ανάλυση πηγαίου κώδικα είναι η ακρίβεια της αναφοράς που παραδίδει: το beSTORM ελέγχει την εφαρμογή εξωτερικά «πυροδοτώντας» πραγματικές επιθέσεις ενώ οι «τρύπες» και τα κενά ασφαλείας και τα σφάλματα αναφέρονται μόνο στην περίπτωση που κάποια από τις επιθέσεις ήταν επιτυχής. Συγκρίνοντας το beSTORM με εργαλεία που εκτελούν συγκεκριμένο αριθμό σεναρίων ή μελετών περίπτωσης, το beSTORM εκτελεί εκατομμύρια ή ακόμα και δισεκατομμύρια -ορισμένες φορές- συνδυασμούς επιθέσεων σε σύγκριση με τις χιλιάδες ή τις δεκάδες χιλιάδες μελέτες περίπτωσης.
Βασικά χαρακτηριστικά
- Fuzzing πραγματικού χρόνου: Δοκιμάζει τα συστήματα όπως ένας επιτιθέμενος, αποκαλύπτει αδυναμίες στον κώδικα και πιστοποιεί την ασφάλεια οποιουδήποτε προϊόντος χωρίς να έχει πρόσβαση στον πηγαίο κώδικα.
- Δοκιμές πλήρους εύρους: Πραγματοποιεί δοκιμές έναντι γνωστών επιθέσεων, άγνωστων μελλοντικών επιθέσεων και γνωστών ευπαθειών. «Μαθαίνει» γρήγορα και πραγματοποιεί δοκιμές σε κοινά ή νέα πρωτόκολλα.
- Αυτόματη σάρωση: Σάρωση για ευπάθειες με on-site ή cloud-based σύστημα.
- Δοκιμές δυαδικής εφαρμογής: Δεν περιορίζεται σε ένα σετ γλωσσών προγραμματισμού ή σε κάποια βιβλιοθήκη συστήματος. Διαθέτει 250+ προκατασκευασμένα πρωτόκολλα και modules με κοινές ή και προσαρμοσμένες δυνατότητες.
- Προσαρτάται σαν πρόγραμμα αποσφαλμάτωσης: Βρίσκει ακριβώς το πού και το πότε εντοπίζονται προβλήματα. Με επιλογή εξαγωγής και δυνατότητα offline δοκιμών.
- Εξαλείφει τα ψευδώς θετικά: Ακριβή αποτελέσματα και εξαγωγή κατανοητών αναφορών για αποσφαλμάτωση.
Εφαρμογές και Οφέλη
Όλες οι εταιρείες ανάπτυξης, ανεξάρτητα από το λογισμικό και την εφαρμογή μπορούν να επωφεληθούν από τις εκπληκτικές δυνατότητες αυτού του εκπληκτικού εργαλείου DAST. Χρησιμοποιείται από κορυφαίες εταιρείες σε διάφορες βιομηχανίες όπως:
Αυτοκινητοβιομηχανία και Αεροπλοΐα (CANbus): Η αυτοκινητοβιομηχανία και η αεροπορική βιομηχανία παράγουν κάθε χρόνο όλο και περισσότερα οχήματα και αεροπλάνα που είναι Διαδικτυακά συνδεδεμένα. Το BeSTORM Black Box Fuzzing λειτουργεί με το πρωτόκολλο CANbus κατά την ανάπτυξη κώδικα για προϊόντα και συστήματα οχημάτων. Η εύρεση αδυναμιών του κώδικα πριν από την κυκλοφορία τέτοιων υψηλού προφίλ προϊόντων στο κοινό συμβάλλει στην προστασία από κυβερνοεπιθέσεις που θα έθεταν σε κίνδυνο καταναλωτές.
Ιατρικές ασύρματες συσκευές (WIFI, Bluetooth): Οι ιατρικές συσκευές, φορητές ή μη, βελτιώνουν την υγειονομική περίθαλψη των ασθενών και βοηθούν τους επαγγελματίες υγείας να παρακολουθούν τις ιατρικές διαδικασίες. Οι συγκεκριμένες συνδεδεμένες συσκευές ελέγχουν και διαχειρίζονται προσωπικές πληροφορίες υγείας ασθενών (PHI). Όταν χρησιμοποιείται στη φάση ανάπτυξης, το DAST Black Box Fuzzing μπορεί να διατηρήσει αυτά τα ευαίσθητα δεδομένα προστατευμένα από κυβερνοεπιθέσεις και ransomware μετά τη δημόσια διάθεση των προϊόντων.
Συσκευές IoT: Στο Διαδίκτυο των Πραγμάτων (IoT) συμπεριλαμβάνεται κάθε προϊόν που μπορεί να συνδεθεί στο Διαδίκτυο. Αυτά τα προϊόντα κυμαίνονται μεταξύ φορετών συσκευών, συσκευών επιτήρησης και ασύρματης δικτύωσης μέχρι μεταφορικά μέσα και είναι σε θέση να ανταλλάσσουν προσωπικά δεδομένα μέσω του Διαδικτύου. Το DAST Black Box Fuzzing μπορεί να βοηθήσει στην εύρεση ευπαθειών και τρωτών σημείων σε συσκευές IoT και να διατηρήσει αυτή την ανταλλαγή ιδιωτικών δεδομένων ασφαλή κατά τη φάση ανάπτυξης κώδικα.
Υποδομές κοινής ωφέλειας:Ορισμένες βιομηχανίες είναι τόσο απαραίτητες που δεν γίνεται σε καμία περίπτωση να σταματήσουν να λειτουργούν. Το νερό, η ηλεκτροδότηση, η υγειονομική περίθαλψη, οι μεταφορές, η επικοινωνία, ακόμη και οι υπηρεσίες τροφίμων έχουν εξαιρετικά μεγάλη σημασία και για αυτό υπάρχουν ακόμα μεγαλύτερες ανάγκες για δοκιμές στην κυβερνοασφάλεια. Η διασφάλιση του κώδικα σε αυτά τα συστήματα βοηθά εξασφαλιστεί ότι οποιαδήποτε κρίσιμης σημασίας υποδομή θα μπορεί να λειτουργεί απρόσκοπτα και απροβλημάτιστα.
Δοκιμές fuzzing σε προσαρμοσμένα / κοινά πρωτόκολλα
Τα κοινά συστήματα, η προσαρμοσμένη κωδικοποίηση και συγκεκριμένα modules λογισμικού μπορούν να δυσκολέψουν το δυναμικό fuzzing κάποιας εφαρμογής. Το BeSTORM σχεδιάστηκε για να λειτουργεί με οποιοδήποτε module ή πρωτόκολλο καθώς διαθέτει περισσότερα από 250+ προκατασκευασμένα module πρωτοκόλλου ενώ επιπλέον περιλαμβάνει και δυνατότητα αυτόματης εκμάθησης. Αν προκύψει ανάγκη για ένα κοινό πρωτόκολλο, μπορεί να προσαρμοστεί ώστε να επικοινωνεί με τη συγκεκριμένη εφαρμογή.
Περισσότερα εργαλεία
Εκτός από το εργαλείο DAST, beSTORM, η Beyond Security της Fortra προσφέρει και τα beSOURCE και beSECURE καθώς και εργαλεία δοκιμών συμμόρφωσης PCI–DSS και αξιολόγησης ευπαθειών για MSPs. Το beSECURE χρησιμοποιεί «ευφυία» μηχανικής εκμάθησης για να διακρίνει οποιαδήποτε απειλή και να ανταποκρίνεται στους σημερινούς κινδύνους στα δίκτυα, στα τερματικά και στα συστήματα σας που βασίζονται στο νέφος. Το beSOURCE από την άλλη είναι ένα εργαλείο στατικού ελέγχου εφαρμογών (SAST) εντοπίζει ευπάθειες και σφάλματα στα αρχικά στάδια του κύκλου ανάπτυξης του λογισμικού με αυτοματοποιημένη σάρωση πηγαίου κώδικα και κλιμακώνεται καθώς προχωρά η ανάπτυξη.