Το προφίλ μας στο Google Plus
2

Ανίχνευση αδυναμιών με το OpenVAS 9

Προς τα τέλη του περασμένου Απριλίου κυκλοφόρησε η πιο πρόσφατη έκδοση του Kali, της δημοφιλούς διανομής Linux για digital forensics και penetration testing. Μεταξύ των ανανεωμένων χαρακτηριστικών του Kali Linux είναι η συμπερίληψη του OpenVAS 9 στα repositories της διανομής.

Το Open Vulnerability Assessment System, εν συντομία OpenVAS, είναι μια ευέλικτη πλατφόρμα για την ανίχνευση και τη διαχείριση αδυναμιών ασφαλείας σε συστήματα. Με το OpenVAS είχαμε ασχοληθεί τρία και πλέον χρόνια πριν, αναπτύσσοντας αναλυτικά άρθρα στο περιοδικό αλλά κι εκτενές video tutorial. Αρκετά έχουν αλλάξει από τότε, ώστε να έχει νόημα να δούμε ξανά το OpenVAS με μια φρέσκια ματιά.

Απαραίτητη προετοιμασία
Όπως είπαμε, θα παίξουμε με το OpenVAS μέσα από το καινούργιο Kali Linux. Από την επίσημη σελίδα download της διανομής επιλέξτε την εκδοχή που προτιμάτε και κατεβάστε τη. Εμείς, π.χ., πήραμε εκείνη με το περιβάλλον γραφικών του GNOME, για συστήματα με επεξεργαστή αρχιτεκτονικής x86-64. Ιδού το σχετικό torrent κι εδώ είναι και το link για direct downloading. Σε κάθε περίπτωση, μετά τη λήψη θα έχετε το ISO image του Kali Linux 2017.1. Αν δεν σκοπεύετε να το εγκαταστήσετε σε εικονικό αλλά σε φυσικό υπολογιστή, τότε προτείνουμε να περάσετε το ISO σε USB stick και να ξεκινήσετε τον υπολογιστή απ’ αυτό.

Η περιγραφή της διαδικασίας εγκατάστασης του Kali ξεφεύγει από τους σκοπούς του παρόντος. Σημειώνουμε μόνο ότι μετά το πέρας της –και σίγουρα πριν στρέψουμε την προσοχή μας στο OpenVAS 9–, καλό είναι να φρεσκάρουμε τα repositories της διανομής και μετά να εφαρμόσουμε τις όποιες διαθέσιμες αναβαθμίσεις:

apt-get update
apt-get upgrade

Αναλόγως του χρόνου που έχει μεσολαβήσει από το προηγούμενο upgrade, η διαδικασία ενδέχεται να ολοκληρωθεί σε δευτερόλεπτα έως αρκετά λεπτά.

Δεν είναι και λίγες οι διαθέσιμες αναβαθμίσεις για την εγκατάσταση του Kali που τρέχουμε. Μετά την ολοκλήρωση της διαδικασίας, προσέξτε για την περίπτωση που έχει αναβαθμιστεί κι ο πυρήνας του λειτουργικού. Αν πράγματι έχει, κάντε μια επανεκκίνηση.

Δεν είναι και λίγες οι διαθέσιμες αναβαθμίσεις για την εγκατάσταση του Kali που τρέχουμε. Μετά την ολοκλήρωση της διαδικασίας, προσέξτε για την περίπτωση που έχει αναβαθμιστεί κι ο πυρήνας του λειτουργικού. Αν πράγματι έχει, κάντε μια επανεκκίνηση.

Εγκατάσταση ΟpenVAS 9 και σύνδεση στο web panel
Όπως αναφέραμε ήδη, η καινούργια έκδοση του OpenVAS βρίσκεται στα αποθετήρια λογισμικού (software repositories) του Kali Linux 2917.1. Για την εγκατάσταση, λοιπόν, αρκεί να πληκτρολογήσουμε:

apt-get install openvas

Το OpenVAS χρειάζεται αρκετά άλλα πακέτα για να λειτουργήσει σωστά. Για παράδειγμα, το συνολικό μέγεθος των πακέτων για τη δική μας εγκατάσταση έφτανε τα 872MB. Όλες αυτές τις εξαρτήσεις (dependencies) τις τακτοποιεί το apt. Από τη μεριά μας δεν έχουμε παρά να δεχτούμε την πρότασή του, για τα πακέτα που πρέπει να εγκατασταθούν.

Το OpenVAS χρειάζεται αρκετά άλλα πακέτα για να λειτουργήσει σωστά. Για παράδειγμα, το συνολικό μέγεθος των πακέτων για τη δική μας εγκατάσταση έφτανε τα 872MB. Όλες αυτές τις εξαρτήσεις (dependencies) τις τακτοποιεί το apt. Από τη μεριά μας δεν έχουμε παρά να δεχτούμε την πρότασή του, για τα πακέτα που πρέπει να εγκατασταθούν.

Όταν η διαδικασία της εγκατάστασης ολοκληρωθεί, πληκτρολογούμε:

openvas-setup

Το εργαλείο openvas-setup α) κατεβάζει μια υπερπληθώρα από Network Vulnerability Tests (NVTs), με βάση τα οποία η πλατφόρμα είναι σε θέση να αναγνωρίζει αδυναμίες, β) δημιουργεί ένα χρήστη με δικαιώματα διαχειριστή (για το OpenVAS, όχι για το Kali), ενώ γ) ξεκινά και τις υπηρεσίες (services) που χρειάζεται το OpenVAS προκειμένου να λειτουργεί σωστά. Έχετε υπόψη ότι ειδικά την πρώτη φορά που θα τρέξετε το openvas-setup, θα χρειαστεί αρκετό χρόνο για να ολοκληρώσει τις εργασίες του. Γενικά, ο χρόνος αυτός είναι πρωτίστως ανάλογος της ταχύτητας της ιντερνετικής σας σύνδεσης. Δευτερευόντως, εξαρτάται από τους πόρους του εικονικού/φυσικού υπολογιστή με το Kali.

Την πρώτη φορά που θα το τρέξουμε, το openvas-setup θα χρειαστεί αρκετό χρόνο πριν ολοκληρώσει τις εργασίες του.

Την πρώτη φορά που θα το τρέξουμε, το openvas-setup θα χρειαστεί αρκετό χρόνο πριν ολοκληρώσει τις εργασίες του.

Αφού το openvas-setup τελειώσει τις δουλειές του, μας δείχνει το password που έχει αντιστοιχίσει στο χρήστη admin. Το συγκεκριμένο συνθηματικό το χρειαζόμαστε προκειμένου να συνδεθούμε στο web panel της πλατφόρμας.

Δεν το λες κι αδύναμο το password που έχει βάλει στο λογαριασμό του χρήστη admin, το openvas-setup. Σημειώστε το κάπου γιατί σε λίγο θα το χρειαστείτε -- αλλά έχετε κι υπόψη ότι μπορείτε να ορίσετε το δικό σας password.

Δεν το λες κι αδύναμο το password που έχει βάλει στο λογαριασμό του χρήστη admin, το openvas-setup. Σημειώστε το κάπου γιατί σε λίγο θα το χρειαστείτε — αλλά έχετε κι υπόψη ότι μπορείτε να ορίσετε το δικό σας password.

Αν το αυτόματα δημιουργημένο password σάς φαίνεται περιττά περίπλοκο –ή τέλος πάντων θέλετε να ορίσετε το δικό σας–, αλλάξτε το με το εργαλείο openvasmd:

openvasmd --user=admin --new-password=eyjafjallajokull

Όπως είπαμε πριν λίγο, το openvas-setup ξεκινά συγκεκριμένες υπηρεσίες που είναι απαραίτητες για τη λειτουργία της πλατφόρμας. Οι υπηρεσίες αυτές είναι οι ακόλουθες τρεις:

  • openvas-manager, υπηρεσία διαχείρισης των user configurations καθώς και των αποτελεσμάτων που παράγουν οι σαρώσεις, πρακτικά στέκεται ανάμεσα σε χρήστες και scanners
  • openvas-scanner, η μηχανή που πραγματοποιεί τα network vulnerability tests
  • greenbone-security-assistant, παρέχει πρόσβαση στον Greenbone Security Assistant, ένα εύχρηστο web panel για το OpenVAS

Αν με το εργαλείο systemctl ζητήσετε να δείτε το status καθεμιάς εκ των προαναφερθέντων υπηρεσιών, θα διαπιστώσετε ότι αν και είναι ενεργή (active ή running) την ίδια στιγμή είναι απενεργοποιημένη (disabled). Δείτε το ακόλουθο screenshot.

Το openvas-setup φροντίζει και ξεκινά τις υπηρεσίες που το OpenVAS χρειάζεται, δεν τις ενεργοποιεί όμως (στην εικόνα φαίνεται μία από τις τρεις υπηρεσίες).

Το openvas-setup φροντίζει και ξεκινά τις υπηρεσίες που το OpenVAS χρειάζεται, δεν τις ενεργοποιεί όμως (στην εικόνα φαίνεται μία από τις τρεις υπηρεσίες).

Περισσότερα για το systemd και τη διαχείριση υπηρεσιών μπορείτε να διαβάσετε στο σχετικό μας άρθρο. Γενικά, δεν υπάρχει λόγος ώστε οι υπηρεσίες openvas-manager, openvas-scanner και greenbone-security-assistant να είναι ενεργοποιημένες — εκτός κι αν πρόκειται να δουλεύετε με το OpenVAS τακτικά. Για την ευκολία μας, πάντως, μετά από κάθε (επαν)εκκίνηση του Kali μπορούμε να ξεκινάμε χειροκίνητα τις τρεις αυτές υπηρεσίες με μία μόνο εντολή:

openvas-start

Για τη σύνδεση στο web panel του OpenVAS, από έναν web browser αρκεί να επισκεφτούμε τη διεύθυνση https://127.0.0.1:9392. Την πρώτη φορά θα λάβουμε ειδοποίηση για self-signed πιστοποιητικό, δημιουργούμε όμως μια εξαίρεση στον browser και συνεχίζουμε.

Το πιστοποιητικό για το web panel του OpenVAS (Greenbone Security Assistant) είναι self-signed, γι' αυτό κι ο Firefox διαμαρτύρεται. Δημιουργώντας μια εξαίρεση δεν βλέπουμε ξανά ανάλογες ειδοποιήσεις -- τουλάχιστον όχι για το συγκεκριμένο site.

Το πιστοποιητικό για το web panel του OpenVAS (Greenbone Security Assistant) είναι self-signed, γι’ αυτό κι ο Firefox διαμαρτύρεται. Δημιουργώντας μια εξαίρεση δεν βλέπουμε ξανά ανάλογες ειδοποιήσεις — τουλάχιστον όχι για το συγκεκριμένο site.

Μπορούμε τώρα να συνδεθούμε στο web panel — και συγκεκριμένα στο λογαριασμό του χρήστη με username το admin. Το password είναι είτε αυτό που ετοίμασε για εμάς το openvas-setup, είτε εκείνο που ορίσαμε με την εντολή openvasmd. Αφού λοιπόν συνδεθούμε, σίγουρα θα θέλουμε να κάνουμε το πρώτο μας scan για vulnerabilities. Πώς ακριβώς δουλεύουμε;

Κυνήγι αδυναμιών με το OpenVAS 9
Ο καλύτερος τρόπος προκειμένου να μάθουμε το OpenVAS αλλά και να εκτιμήσουμε τις δυνατότητες και τους περιορισμούς του, είναι να δούμε, αναλυτικά και βήμα προς βήμα, πώς σκανάρουμε ένα σύστημα για αδυναμίες. Σε γενικές γραμμές η πρώτη μας δουλειά είναι να ορίσουμε ένα target, μ’ άλλα λόγια ένα ή περισσότερα μηχανήματα που θέλουμε να σκανάρουμε. Μετά τον ορισμό target ορίζουμε κι ένα task, το οποίο χρησιμοποιεί το προαναφερθέν target προκειμένου να τρέξει μια σειρά από network vulnerability tests.

Το OpenVAS κάλλιστα μπορεί και σκανάρει απομακρυσμένα hosts στο Internet, όσο και τοπικά hosts εντός του LAN. Καλό είναι πάντως να μη σκανάρουμε απομακρυσμένα hosts, εκτός κι αν έχουμε πάρει σχετική άδεια από τους υπευθύνους. Ας δούμε λοιπόν πώς ψάχνουμε για αδυναμίες σε ένα host μέσα από το LAN, στο οποίο βρίσκεται και το Kali Linux μας. Ένας γρήγορος κι αξιόπιστος τρόπος για να βρίσκουμε τις διευθύνσεις IP όλων των hosts που είναι ενεργά εντός του LAN, είναι με χρήση του εργαλείου netdiscover:

netdiscover -P -r 192.168.193.0/24

Ανίχνευση ενεργών hosts εντός του τοπικού δικτύου που βρίσκεται το Kali Linux. Τα μηχανήματα του LAN παίρνουν διευθύνσεις IP της μορφής 192.168.193.κάτι.

Ανίχνευση ενεργών hosts εντός του τοπικού δικτύου που βρίσκεται το Kali Linux. Τα μηχανήματα του LAN παίρνουν διευθύνσεις IP της μορφής 192.168.193.κάτι.

Από τα μηχανήματα που εντόπισε το netdiscover, ας σκανάρουμε εκείνο με IP το 192.168.193.235 (τρέχει Linux). Αν στο σημείο αυτό θέλουμε να κάνουμε κι ένα reverse DNS lookup, ώστε να βρούμε το FQDN (Fully Qualified Domain Name) του μηχανήματος-στόχου, αρκεί να πληκτρολογήσουμε:

dig -x 192.168.193.235 +short

Παράδειγμα reverse DNS lookup με το εργαλείο dig. Στο τοπικό μας δίκτυο, το FQDN του 192.168.193.235 είναι olafsvik.colder.is. Παρεμπιπτόντως, το λειτουργικό σύστημα του host είναι κάποια διανομή του Linux.

Παράδειγμα reverse DNS lookup με το εργαλείο dig. Στο τοπικό μας δίκτυο, το FQDN του 192.168.193.235 είναι olafsvik.colder.is. Παρεμπιπτόντως, το λειτουργικό σύστημα του host είναι κάποια διανομή του Linux.

Στρέφουμε την προσοχή μας στο web panel του OpenVAS. Φτιάχνουμε ένα νέο target επιλέγοντας Configuration / Targets. Στη σελίδα που εμφανίζεται κάνουμε κλικ στο γαλάζιο εικονίδιο με το λευκό αστερίσκο, πάνω αριστερά. Παρουσιάζεται τότε ένα pop-up με όνομα New Target. Δείτε τα δύο screenshots που ακολουθούν, διαβάστε και τις αντίστοιχες περιγραφές.

Για το νέο μας στόχο πληκτρολογούμε ένα όνομα, καθώς και μια κατάλληλη περιγραφή (1). Στην περιοχή Hosts, από κάτω, αφήνουμε επιλεγμένο το Manual και στη θυρίδα δεξιά γράφουμε τη διεύθυνση IP του στόχου (2). Παρατηρήστε ότι υπάρχει δυνατότητα καθορισμού πολλών στόχων μαζί, οι διευθύνσεις των οποίων παρατίθενται σε αρχείο (βλ. From file). Για την πρώτη μας δοκιμή, τέλος, στις παραμέτρους Port List και Alive Test αφήνουμε τις προεπιλεγμένες τιμές (3). Ο καθορισμός του στόχου ολοκληρώνεται με ένα κλικ στο κουμπί Create, κάτω δεξιά.

Για το νέο μας στόχο πληκτρολογούμε ένα όνομα, καθώς και μια κατάλληλη περιγραφή (1). Στην περιοχή Hosts, από κάτω, αφήνουμε επιλεγμένο το Manual και στη θυρίδα δεξιά γράφουμε τη διεύθυνση IP του στόχου (2). Παρατηρήστε ότι υπάρχει δυνατότητα καθορισμού πολλών στόχων μαζί, οι διευθύνσεις των οποίων παρατίθενται σε αρχείο (βλ. From file). Για την πρώτη μας δοκιμή, τέλος, στις παραμέτρους Port List και Alive Test αφήνουμε τις προεπιλεγμένες τιμές (3). Ο καθορισμός του στόχου ολοκληρώνεται με ένα κλικ στο κουμπί Create, κάτω δεξιά.

Ιδού οι στόχοι που έχουμε καθορίσει. Εντάξει, προς το παρόν έχουμε μόνον έναν.

Ιδού οι στόχοι που έχουμε καθορίσει. Εντάξει, προς το παρόν έχουμε μόνον έναν.

Μετά τον ορισμό target έχουμε να ορίσουμε κι ένα task που θα αφορά στο target. Στο web panel του OpenVAS επιλέγουμε Scans / Tasks. Εμφανίζεται ένα πληροφοριακό pop-up, το οποίο παραμένει για δέκα δευτερόλεπτα (δεν χρειάζεται φυσικά να περιμένουμε, πατάμε στο [x] πάνω δεξιά και το κλείνουμε). Για άλλη μια φορά πατάμε στο εικονίδιο με τον αστερίσκο, πάνω αριστερά. Δείτε τα επόμενα screenshots.

Για τη νέα μας εργασία πληκτρολογούμε ένα χαρακτηριστικό όνομα και μια περιγραφή (1). Στο πεδίο Scan Targets επιλέγουμε το στόχο ή τους στόχους στους οποίους αφορά η εργασία (2). Προς το παρόν διαθέτουμε έναν μόνο στόχο -- και στο πλαίσιο της παρουσίασής μας τον έχουμε ονομάσει olafsvik. Για όλες τις άλλες παραμέτρους αφήνουμε τις προκαθορισμένες τιμές. Σκρολάρουμε λίγο προς τα κάτω, ώστε να δούμε και τα υπόλοιπα περιεχόμενα του παραθύρου New Task.

Για τη νέα μας εργασία πληκτρολογούμε ένα χαρακτηριστικό όνομα και μια περιγραφή (1). Στο πεδίο Scan Targets επιλέγουμε το στόχο ή τους στόχους στους οποίους αφορά η εργασία (2). Προς το παρόν διαθέτουμε έναν μόνο στόχο — και στο πλαίσιο της παρουσίασής μας τον έχουμε ονομάσει olafsvik. Για όλες τις άλλες παραμέτρους αφήνουμε τις προκαθορισμένες τιμές. Σκρολάρουμε λίγο προς τα κάτω, ώστε να δούμε και τα υπόλοιπα περιεχόμενα του παραθύρου New Task.

Δείτε λίγο τις τιμές που επιδέχονται οι παράμετροι Scanner και Scan Config. Για αρχή, πάντως, μπορείτε να αφήσετε τις προεπιλεγμένες. Η νέα εργασία δημιουργείται με ένα κλικ στο κουμπί Create, κάτω δεξιά.

Δείτε λίγο τις τιμές που επιδέχονται οι παράμετροι Scanner και Scan Config. Για αρχή, πάντως, μπορείτε να αφήσετε τις προεπιλεγμένες. Η νέα εργασία δημιουργείται με ένα κλικ στο κουμπί Create, κάτω δεξιά.

Το πρώτο μας task, το οποίο αφορά σε target με έναν μόνο host, είναι έτοιμο! Για να ξεκινήσει αρκεί ένα κλικ στο πράσινο κουμπάκι "play", στα δεξιά της γραμμής.

Το πρώτο μας task, το οποίο αφορά σε target με έναν μόνο host, είναι έτοιμο! Για να ξεκινήσει αρκεί ένα κλικ στο πράσινο κουμπάκι “play”, στα δεξιά της γραμμής.

Παρεμπιπτόντως, αξίζει να αλλάξουμε την τιμή στο λευκό πεδίο που βρίσκεται στην πάνω οριζόντια, πράσινη μπάρα, του Greenbone Security Assistant. Εμείς, π.χ., έχουμε βάλει εκεί την τιμή Refresh every 30 Sec., ώστε κάθε 30 δευτερόλεπτα να ανανεώνονται τα περιεχόμενα της σελίδας κι έτσι να παρακολουθούμε –σχεδόν ζωντανά– την πρόοδο του task ή των tasks που έχουμε ξεκινήσει. Όση ώρα διαρκεί το scanning, αν θέλουμε μπορούμε να εξερευνήσουμε άλλες σελίδες του web panel. Το task θα εκτελείται στο background — μάλιστα ακόμη κι αν αποσυνδεθούμε από τον Security Assistant. Για να τσεκάρουμε αν έχει ολοκληρωθεί η διαδικασία ή πώς προχωρά, τέλος πάντων, επιλέγουμε Scans / Tasks. Όταν το scanning τελειώνει, στη στήλη Status και στη γραμμή του αντίστοιχου task βλέπουμε μια γαλάζια μπάρα που γράφει Done. Με κλικ πάνω της εμφανίζονται τα αποτελέσματα του task. Δείτε τα screenshots που ακολουθούν, διαβάστε και τις αντίστοιχες περιγραφές.

Ο έλεγχος του olafsvik.colder.is για αδυναμίες ολοκληρώθηκε. Στη στήλη Severity το score είναι 4.3, γεγονός που μας προϊδεάζει για κάποια ζητήματα ασφαλείας. Τα αποτελέσματα του ελέγχου τα βλέπουμε με ένα κλικ πάνω στο Done, στη στήλη Status.

Ο έλεγχος του olafsvik.colder.is για αδυναμίες ολοκληρώθηκε. Στη στήλη Severity το score είναι 4.3, γεγονός που μας προϊδεάζει για κάποια ζητήματα ασφαλείας. Τα αποτελέσματα του ελέγχου τα βλέπουμε με ένα κλικ πάνω στο Done, στη στήλη Status.

Ιδού η σύντομη λίστα με τα προβλήματα ασφαλείας που αφορούν στο olafsvik. Το σοβαρότερο απ' όλα αφορά στην υπηρεσία SSH και συγκεκριμένα στους χρησιμοποιούμενους αλγόριθμους κρυπτογράφησης, οι οποίοι θα μπορούσαν να είναι ισχυρότεροι.

Ιδού η σύντομη λίστα με τα προβλήματα ασφαλείας που αφορούν στο olafsvik. Το σοβαρότερο απ’ όλα αφορά στην υπηρεσία SSH και συγκεκριμένα στους χρησιμοποιούμενους αλγόριθμους κρυπτογράφησης, οι οποίοι θα μπορούσαν να είναι ισχυρότεροι.

Αν θέλουμε όλα τα αποτελέσματα ενός task, ακόμη και τα πληροφοριακά μηνύματα που απλά καταγράφονται στο log, τότε επιλέγουμε Scans / Reports και κάνουμε κλικ στο όνομα του task. Στη νέα σελίδα που εμφανίζεται πατάμε πάνω στον αριθμό στα δεξιά της γραμμής Results. Παρατηρήστε ότι τα αποτελέσματα μπορούμε να τα ταξινομούμε με βάση το Severity. Χρήσιμα είναι και τα γραφήματα στο πάνω μέρος της σελίδας, καθώς και το word cloud. Πράγματι, με μια ματιά βλέπουμε πόσο κρίσιμη είναι η κατάσταση, καθώς και σε τι αφορούν τα όποια προβλήματα έχουν εντοπιστεί.

Αν θέλουμε όλα τα αποτελέσματα ενός task, ακόμη και τα πληροφοριακά μηνύματα που απλά καταγράφονται στο log, τότε επιλέγουμε Scans / Reports και κάνουμε κλικ στο όνομα του task. Στη νέα σελίδα που εμφανίζεται πατάμε πάνω στον αριθμό στα δεξιά της γραμμής Results. Παρατηρήστε ότι τα αποτελέσματα μπορούμε να τα ταξινομούμε με βάση το Severity. Χρήσιμα είναι και τα γραφήματα στο πάνω μέρος της σελίδας, καθώς και το word cloud. Πράγματι, με μια ματιά βλέπουμε πόσο κρίσιμη είναι η κατάσταση, καθώς και σε τι αφορούν τα όποια προβλήματα έχουν εντοπιστεί.

Με κλικ σε μια οποιαδήποτε καταχώρηση της στήλης Vulnerability φορτώνει μια νέα σελίδα, με πολλές περισσότερες πληροφορίες για την αντίστοιχη αδυναμία καθώς και με προτάσεις για την αντιμετώπισή της. Στο screenshot βλέπουμε τους αδύναμους αλγορίθμους κρυπτογράφησης που υποστηρίζει ο SSH server του στόχου, καθώς κι έναν --προφανή, για τη συγκεκριμένη περίπτωση-- τρόπο αντιμετώπισης του προβλήματος.

Με κλικ σε μια οποιαδήποτε καταχώρηση της στήλης Vulnerability φορτώνει μια νέα σελίδα, με πολλές περισσότερες πληροφορίες για την αντίστοιχη αδυναμία καθώς και με προτάσεις για την αντιμετώπισή της. Στο screenshot βλέπουμε τους αδύναμους αλγορίθμους κρυπτογράφησης που υποστηρίζει ο SSH server του στόχου, καθώς κι έναν –προφανή, για τη συγκεκριμένη περίπτωση– τρόπο αντιμετώπισης του προβλήματος.

Ιδού κι ένα παράδειγμα αδυναμίας χαμηλού ρίσκου, η οποία αφορά στα λεγόμενα TCP timestamps. Εξαιτίας τους είναι δυνατόν να υπολογιστεί ο χρόνος κατά τον οποίο ο στόχος είναι ενεργός (uptime). Σε κάποια σενάρια δεν θέλουμε να συνάγεται αυτή η πληροφορία, οπότε η λύση είναι να απενεργοποιήσουμε τα TCP timestamps. Στο πλαίσιο Solution περιγράφεται το τι πρέπει να κάνουμε αν το μηχάνημα τρέχει Linux ή Windows.

Ιδού κι ένα παράδειγμα αδυναμίας χαμηλού ρίσκου, η οποία αφορά στα λεγόμενα TCP timestamps. Εξαιτίας τους είναι δυνατόν να υπολογιστεί ο χρόνος κατά τον οποίο ο στόχος είναι ενεργός (uptime). Σε κάποια σενάρια δεν θέλουμε να συνάγεται αυτή η πληροφορία, οπότε η λύση είναι να απενεργοποιήσουμε τα TCP timestamps. Στο πλαίσιο Solution περιγράφεται το τι πρέπει να κάνουμε αν το μηχάνημα τρέχει Linux ή Windows.

Είναι τα πράγματα χειρότερα απ’ όσο δείχνουν;
Στην πραγματική ζωή συχνά είναι, άρα ίσως να ‘ναι και στο τεχνολογικό σύμπαν. Μπορεί βέβαια να κάνουμε λάθος, αλλά γιατί ν’ αναρωτιόμαστε; Προτείνουμε να δοκιμάσουμε και μετά ο καθένας ας βγάλει τα δικά του συμπεράσματα. Στη συγκεκριμένη περίπτωση, λοιπόν, λέμε να σκανάρουμε ξανά το olafsvik.colder.is για αδυναμίες, αυτή τη φορά όμως με τη γνώση των credentials ενός απλού χρήστη του συστήματος, χωρίς δικαιώματα root. Για το παράδειγμα που εξετάζουμε, στο σύστημα-στόχο υπάρχει ένας λογαριασμός απλού χρήστη με username το guest και password το supersecret. Ο χρήστης αυτός έχει απομακρυσμένη πρόσβαση στο μηχάνημα μέσω SSH, αλλά και το δικαίωμα να στέλνει και να παίρνει αρχεία μέσω της SAMBA. Σε κάθε περίπτωση, στην αντίστοιχη υπηρεσία συνδέεται με τα credentials που μόλις παραθέσαμε.

Τώρα, στο OpenVAS έχουμε τη δυνατότητα να δημιουργούμε credentials της μορφής username/password κι ένα ή περισσότερα από αυτά τα ζεύγη να τα αντιστοιχίζουμε σε έναν ή σε περισσότερους στόχους. Μετά φτιάχνουμε αντίστοιχα tasks τα οποία και τρέχουμε, πραγματοποιώντας security scans κατά τα οποία επιτυγχάνονται συνδέσεις σε user accounts των στόχων. Κατ’ αυτόν τον τρόπο το OpenVAS συλλέγει πολλές περισσότερες πληροφορίες για λειτουργικά συστήματα και υπηρεσίες, έτσι τα reports που παράγει είναι πολύ περισσότερο αναλυτικά. Για να δούμε, λοιπόν, τι περισσότερο θα μπορέσουμε –αν μπορέσουμε– να βρούμε για το olafsvik, το στόχο του παραδείγματός μας. Εργαζόμαστε ως ακολούθως.

  • Από το web panel του OpenVAS επιλέγουμε Configuration / Credentials.
  • Στη σελίδα που εμφανίζεται κάνουμε κλικ στο γαλάζιο κουτάκι με τον αστερίσκο, πάνω αριστερά (New Credential).
  • Στο νέο παράθυρο που παρουσιάζεται δίνουμε το username (guest) και το password (supersecret) του χρήστη στο οlafsvik.

Ορισμός των credentials, δηλαδή του username και του password, του χρήστη guest στο μηχάνημα-στόχο.

Ορισμός των credentials, δηλαδή του username και του password, του χρήστη guest στο μηχάνημα-στόχο.

Ιδού τα credentials που έως τώρα γνωρίζει το OpenVAS.

Ιδού τα credentials που έως τώρα γνωρίζει το OpenVAS.

  • Πάντα στο web panel του OpenVAS, δίνουμε Configuration / Targets.
  • Για άλλη μια φορά πατάμε στο γαλάζιο κουτάκι με τον αστερίσκο, πάνω αριστερά (New Target).
  • Στο παράθυρο που εμφανίζεται ορίζουμε, κατά τα γνωστά, νέο στόχο που περιλαμβάνει ένα μόνο μηχάνημα, με IP αυτό του olafsvik. Δεν ξεχνάμε να υποδείξουμε τα credentials για τις συνδέσεις SSH και SMB (SAMBA). Ειδικά για το SSH παρατηρήστε ότι υπάρχει το προκαθορισμένο port, δηλαδή το 22. Αν στο συγκεκριμένο στόχο η υπηρεσία του OpenSSH ακούει από άλλο port, το καθορίζουμε εδώ.

Ορισμός νέου target που περιλαμβάνει ένα μόνο μηχάνημα (με IP το 192.168.193.235), καθώς και τα credentials ενός (απλού) χρήστη του συστήματος-στόχου. Τα στοιχεία σύνδεσης είναι ίδια τόσο για συνδέσεις SSH, όσο και για συνδέσεις μέσω SMB (Samba).

Ορισμός νέου target που περιλαμβάνει ένα μόνο μηχάνημα (με IP το 192.168.193.235), καθώς και τα credentials ενός (απλού) χρήστη του συστήματος-στόχου. Τα στοιχεία σύνδεσης είναι ίδια τόσο για συνδέσεις SSH, όσο και για συνδέσεις μέσω SMB (Samba).

Οι στόχοι που έχουμε ορίσει έως τώρα. Δείτε, παρεμπιπτόντως, εκείνον με το μηχάνημα που έχει IP τo 192.168.178.24, το οποίο βρίσκεται σε άλλο τοπικό δίκτυο και τρέχει Windows 7. Στο προκείμενο, παρατηρήστε ότι για το νέο στόχο του olafsvik υπάρχουν πλέον και τα credentials για συνδέσεις στις υπηρεσίες SSH και SMB.

Οι στόχοι που έχουμε ορίσει έως τώρα. Δείτε, παρεμπιπτόντως, εκείνον με το μηχάνημα που έχει IP τo 192.168.178.24, το οποίο βρίσκεται σε άλλο τοπικό δίκτυο και τρέχει Windows 7. Στο προκείμενο, παρατηρήστε ότι για το νέο στόχο του olafsvik υπάρχουν πλέον και τα credentials για συνδέσεις στις υπηρεσίες SSH και SMB.

Μένει τώρα να ορίσουμε ένα καινούργιο task, το οποίο θα αφορά στο στόχο που μόλις δημιουργήσαμε. Δίνουμε Scans / Tasks, πατάμε στο γαλάζιο κουμπάκι με τον αστερίσκο και φτιάχνουμε το νέο μας task κατά τα γνωστά.

Kατά τη δημιουργία νέου task φροντίζουμε ώστε να υποδείξουμε το target με τα credentials, δηλαδή αυτό που καθορίσαμε πριν λίγο.

Kατά τη δημιουργία νέου task φροντίζουμε ώστε να υποδείξουμε το target με τα credentials, δηλαδή αυτό που καθορίσαμε πριν λίγο.

Το νέο task είναι έτοιμο και μπορούμε να το τρέξουμε (κλικ στο πράσινο τετραγωνάκι με το σύμβολο του 'play'). Σίγουρα εξάλλου θα προσέξατε το υψηλό Severity εκείνου του άλλου task, για το μηχάνημα με τα Windows 7. Δεν φαίνεται εδώ, σας λέμε όμως ότι η υπηρεσία διαμοίρασης αρχείων ανέβασε τόσο πολύ το score. Tο σύστημα είναι για αρκετό καιρό χωρίς ενημερώσεις ασφαλείας κι αυτή τη στιγμή εμφανίζεται ευπαθές ως προς πολύ συγκεκριμένα είδη επιθέσεων.

Το νέο task είναι έτοιμο και μπορούμε να το τρέξουμε (κλικ στο πράσινο τετραγωνάκι με το σύμβολο του ‘play’). Σίγουρα εξάλλου θα προσέξατε το υψηλό Severity εκείνου του άλλου task, για το μηχάνημα με τα Windows 7. Δεν φαίνεται εδώ, σας λέμε όμως ότι η υπηρεσία διαμοίρασης αρχείων ανέβασε τόσο πολύ το score. Tο σύστημα είναι για αρκετό καιρό χωρίς ενημερώσεις ασφαλείας κι αυτή τη στιγμή εμφανίζεται ευπαθές ως προς πολύ συγκεκριμένα είδη επιθέσεων.

Το νέο task για το scanning του olafsvik.colder.is –με γνωστά τα credentials για σύνδεση στις υπηρεσίες SSH και SMB– θα χρειαστεί αρκετό πριν ολοκληρωθεί. Μετά το πέρας της διαδικασίας διαπιστώνουμε ότι το Severity score του olafsvik είναι 10, δηλαδή μεγαλύτερο ακόμη κι από το πολύ υψηλό Severity που έχει το unpatched σύστημα με τα Windows 7. Δείτε περισσότερα στα δύο screenshots που ακολουθούν, διαβάστε και τις αντίστοιχες περιγραφές. Επίσης: Πειραματιστείτε και χαρείτε το OpenVAS, τον νέο σας αγαπημένο vulnerability scanner.

Το δεύτερο vulnerability scanning του olafsvik έχει ολοκληρωθεί. Αυτή τη φορά γνωρίζαμε τα credentials ενός απλού χρήστη του συστήματος-στόχου, έτσι το OpenVAS είχε τη δυνατότητα να τρέξει περισσότερα tests (μέσω SSH και SMB). Τα αποτελέσματα δεν χρειάζονται ιδιαίτερο σχολιασμό: έχουμε νέο πρωταθλητή -- δυστυχώς με την κακή έννοια :/

Το δεύτερο vulnerability scanning του olafsvik έχει ολοκληρωθεί. Αυτή τη φορά γνωρίζαμε τα credentials ενός απλού χρήστη του συστήματος-στόχου, έτσι το OpenVAS είχε τη δυνατότητα να τρέξει περισσότερα tests (μέσω SSH και SMB). Τα αποτελέσματα δεν χρειάζονται ιδιαίτερο σχολιασμό: έχουμε νέο πρωταθλητή — δυστυχώς με την κακή έννοια :/

Μεταξύ των προβλημάτων ασφαλείας που εντόπισε το OpenVAS στο υπό εξέταση σύστημα, συγκαταλέγονται αδυναμίες στον πυρήνα (kernel), στο BASH shell, στη βιβλιοθήκη glibc, στο bind αλλά και στην υπηρεσία του NTP. Όρεξη να έχουμε να διαβάζουμε λεπτομέρειες για τα vulnerabilities -- αλλά και τρόπους αντιμετώπισής τους.

Μεταξύ των προβλημάτων ασφαλείας που εντόπισε το OpenVAS στο υπό εξέταση σύστημα, συγκαταλέγονται αδυναμίες στον πυρήνα (kernel), στο BASH shell, στη βιβλιοθήκη glibc, στο bind αλλά και στην υπηρεσία του NTP. Όρεξη να έχουμε να διαβάζουμε λεπτομέρειες για τα vulnerabilities — αλλά και τρόπους αντιμετώπισής τους.

2 Responses to “Ανίχνευση αδυναμιών με το OpenVAS 9”

  1. don | 22/05/2017 at 22:34

    SubZraw….Ωραίο άρθρο…. Να μην κάνετε ένα πάλι 6 μίνες να γράψετε !!!

  2. sotiris stilianos | 24/05/2017 at 14:38

    Χρήστο εξαιρετικό το άρθρο σου. Ήδη το έχω ενσωματώσει στην διανομή που έχω κατεβάσει και έχω ξεκινήσει τις δοκιμές στο δίκτυο της εταιρείας που εργάζομαι…
    iso 27001 είναι αυτό. δεν το ρισκάρω να το χάσω…

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

Αρχείο δημοσιεύσεων