elena_k_87 Δημοσιεύτηκε Δεκέμβριος 3, 2008 #1 Δημοσιεύτηκε Δεκέμβριος 3, 2008 ψάχνω πληροφορίες σχετικά με τις τρωτότητες των virtual υποδομών σε σχέση με λειτουργικό. Συγκεκριμένα έχω εγκαταστήσει το vmware workstation και προσπαθώ να βρω κενά ασφαλείας μεταξύ ενός εικονικού λειτουργικού που έχω δημιουργήσει και των windows.
Jaco Δεκέμβριος 3, 2008 #2 Δεκέμβριος 3, 2008 Τι εννοείς όταν λες κενό ασφαλείας...?Θέλει ένα ξεκαθάρισμα, γιατί ένα virtual machine δεν μπορεί να έχει ουσιαστικά κενό ασφαλείας με τον host του, γιατί κενό ασφαλείας είναι ο ίδιος ο host και το λογισμικό που κάνει το virtualization, οπότε προς τα πίσω κενό δεν υπάρχει, μόνο προς τα εμπρός... εκεί το πράγμα πάει περισσότερο σε bug του vmware, καθώς το vm είναι πλήρως sandboxed μέσα σε αυτό... η μοναδική τώρα πρόσβαση/επαφή του vm με το pc και το λειτουργικό είναι τα εικονικά interfaces που δημιουργούν οι drivers του vmware σε ring0 πλεον επίπεδο και στην ουσία κάνουν clone τους υπάρχοντες drivers, με την διαφορά ότι τους δηλώνουν σαν interfaces που τα αναγνωρίζει το vmware σαν default... στο επίπεδο αυτό μπορεί να γίνει ζημιά, αλλά το θέμα είναι αν θες να προκαλέσεις την ζημιά ή θες να ανακαλύψεις το bug στους drivers... όπως και να έχει θα πρέπει να αναλύσεις τους drivers για να το δεις αυτό, διαδικασία μάλλον επίπονη και χρονοβόρα...επίσης το sharing που κάνει μεταξύ φακέλων είναι μια δίοδος πάλι πίσω προς το λειτουργικό, αλλά στην περίπτωση αυτή δεν υπάρχουν drivers χαμηλού επιπέδου, αλλά το αναλαμβάνει πλήρως το ίδιο το vmware με ότι αυτό σημαίνει και επίσης αυτός είναι κώδικας στον οποίο δεν μπορείς να έχεις πρόσβαση, αλλά βρίσκεις τα vulnerabilities με την μέθοδο trial & error...Αν και δεν είμαι ειδήμον επί του θέματος ίσως αν εξηγήσεις λίγο πιο πρακτικά τι ακριβώς θέλεις να μπορέσω να βοηθήσω περισσότερο...
elena_k_87 Δεκέμβριος 3, 2008 Author #3 Δεκέμβριος 3, 2008 ουσιαστικά θέλω να επέμβω, να βρω τα κενά ασφαλείας και να δημιουργήσω πρόβλημα. το ξέρω ότι ειναι μια χρονοβόρα διαδικασία (έτσι κι αλλιώς για έρευνα το κάνω). σκεφτόμουν απλά μήπως μπορούσα να δημιουργήσω κάποια εντολή που θα πειράζει τους drivers ή που θα αλλάζει τις παραμέτρους που πιάνει η μνήμη του εικ. λειτουργικού με αποτέλεσμα να γίνει υπερχείληση. Γενικά δεν ψάχνω κάποιον να μου λύσει το πρόβλημα. Μια γενική συζήτηση θα με βοηθήσει αρκετά. Αν σκεφτείς ή έχεις κάποιο link κάτι που φαντάζεσαι ότι θα μου είναι χρήσιμο στείλτο. Ευχαριστώ για το ενδιαφέρον.:thank_you2:
jpavly Δεκέμβριος 3, 2008 #4 Δεκέμβριος 3, 2008 Θα σου έλεγα να ρίξεις μία ματιά στο Google για vmware security best practices και λοιπά συναφή. Πιστεύω ότι αν μελετήσεις λίγο τι προτείνεται να κλειδώνεται ότι θα βρεις κάποιες "τρύπες" να ξεκινήσεις.
Jaco Δεκέμβριος 3, 2008 #5 Δεκέμβριος 3, 2008 1. Συμφωνώ με τον προλαλήσαντα, γούγλης rulez... 2. Η πρακτική του "memory edit" που αναφέρεις δεν είναι vulnerability, είναι attack... αν θες μπορείς να δοκιμάσεις κάποιους memory editors, αλλά με το να πειράζεις την μνήμη από τα processes προκαλείς πρόβλημα, όπως θα προκαλούσες και σε οποιοδήποτε λογισμικό, αυτό δεν λέει κάτι και δεν βρίσκεις έτσι τα προβλήματά/κενά του...3. μεταξύ μας, όπως ανάφερα πριν, για να παίζεις στα σίγουρα να ξέρεις ότι οι drivers είναι το μοναδικό σίγουρο και 100% μέρος που θα βρεις κενά, αλλά η ανίχνευση τους είναι ορισμένες φορές δυσκολότερη από το να γράφεις τον ίδιο driver... δες εδώ ένα παράδειγμα... το συγκεκριμένο για να το αναπαραγάγεις θα πρέπει να ξέρεις τουλάχιστον c/c++ και να πας να δημιουργήσεις ένα i/o control (με την ioctl ή winioctl) και στα arguments για το buffering να του περάσεις σαν definition την METHOD_NEITHER... με το control αυτό να ανοίξεις ένα file descriptor στο "\\.\hgfs" του driver "hgfs.sys"... έτσι ανοίγεις μια δίοδο και μπορείς να περάσεις διευθύνσεις του kernel του host λειτουργικού σαν arguments στον driver... wtf δηλαδή και who tf το βρήκε αυτό το πράγμα...με αυτή τη λογική (??) θα πρέπει να δουλέψεις... απλά πράγματα δηλαδή... απορώ με αυτούς που το κάνουν για δουλειά αυτό το πράγμα...
elena_k_87 Δεκέμβριος 5, 2008 Author #6 Δεκέμβριος 5, 2008 Έχω γνώσεις c++ βέβαια όχι σε τέτοιο επίπεδο αλλά δεν μου είναι δύσκολο να το μελετήσω. Μια διευκρίνηση θέλω να κάνω: Δεν ψάχνω με το ζόρι να βρω κενά ασφαλείας, μπορεί και να μην βρω κανένα. Απλά θέλω να χρησιμοποιήσω κάποιες μεθόδους που πιστεύω ότι θα μου δώσουν κάποιο αποτέλεσμα. Η απάντηση που θα βρω μπορεί να μην είναι αυτή που θέλω, αλλά και πάλι θα έχω κάνει έρευνα. Ο στόχος μου ουσιαστικά είναι να κάνω την έρευνά μου και όχι τόσο το να βρω λύση. Θα μελετήσω αυτά που μου είπατε και θα σας πω. Αν πάλι σας κατέβει καμιά καινούρια ιδέα θα χαρώ πολυ να την ακούσω. Τέλος (για να συνεχίσω και λίγο την κουβέντα) θεωρώ ότι αν πειράξω τη μνήμη και δημιουργήσω πρόβλημα τότε θα υπάρχει κενό ασφαλείας. Όπως ξέρουμε τα εικ. λειτουργικά έχουν ας πούμε ένα στρώμα που τα εμποδίζει να επικοινωνούν με τα υπόλοιπα εκ. λειτουργικά αλλά και με το κεντρικό. το κάθε virtual λειτουργικό σου δίνει κάποια όρια για το πόση μνήμη θα χρησιμοποιήσεις. Αν ξεπεράσω εγώ αυτα τα όρια και δημιουργήσω υπερχείληση τότε θα κάνω το σύστημά μου τρωτό. Και κάτι ακόμα: δεν θέλω να μπλέξω με την φυσική κάρτα δηλ. να δημιουργήσω έναν host και να επιτεθώ από εκεί. Δεν ξέρω αν έγινα κατανοητή, είπα και τόσα πολλά πράγματα... Anyway.. Ευχαριστώ
elena_k_87 Δεκέμβριος 19, 2008 Author #7 Δεκέμβριος 19, 2008 Εκτός από το να επέμβω στον ίδιο τον driver υπάρχει και μια άλλη προσέγγηση. Μπορώ να προσεγγήσω δικτυακά , δηλαδή μέσω TCP,UDP port, protocol banner κτλ και να δω αν υπάρχει ένα vm και αν μπορει αυτό να αποτελέσει μια δίοδο στο να βρω ένα κενό ασφαλείας. Θέλω επίσης να μελετήσω τη μνήμη του host system που αφορά τις vm. Από που πρέπει να αρχίσω. Υπάρχει κάποιο site με σχετικές πληροφορίες? Θα ήθελα να κάνετε κάποια σχόλια αν θέλετε για όλα αυτά που είπα πιο πάνω και να μου πείτε τη γνώμη σας.
darkCount Δεκέμβριος 19, 2008 #8 Δεκέμβριος 19, 2008 Κάποια στιγμή είχα γράψει ένα κατεβατό αλλά κόλλησε ο Φίφης και τα έχασα. Μετά φυσικά δεν θυμόμουν τι είχα γράψει οπότε το παίρνω από την αρχή.βασικά για ποιο προϊόν μιλάμε? Ανέφερες Vmware.Μιλάμε για VMs που τρέχουν σε ESX? ESXi? Workstation? Server? Player?Διαφορετικές συμπεριφορές και διαφορετικές ιδιότητες στις περισσότερες περιπτώσεις.Το δικτυακά που λες δεν το πολυκαταλαβαίνω να σου πω την αλήθεια. Βασικά αντιμετώπισε το VM σαν να ήταν Physical computer. Αν μπορείς να κάνεις κάτι σε έναν υπολογιστή δικτυακά που να τον κατεβάσει, θα κατεβάσει και ενα VM. Απλό.Πιθανότατα όμως εσύ θέλεις να κάνεις κάτι σε ένα VM και να κατεβάσεις τον Host. Σωστά?Πάνω σε αυτό θα σου πρότεινα να ψάξεις για τον Balloon driver. Συναντάται στον ESX και είναι ένας "έξυπνος" τρόπος να διαχειρίζεται την μνήμη όταν τελιώνουν τα resources του host.Επίσης στον ESX υπάρχει η δυνατητα να δίνει στα VM του περισσότερη μνήμη από όση έχει φυσικά. Υπό normal συνθήκες κάτι τέτοιο δεν είναι δυνατό.Υπάρχει όμως ένα κομμάτι κώδικα που βρίσκει ίχνη στην μνήμη από τα διάφορα VM που είναι κοινά και χρησιμοποιεί το ίδιο κομμάτι μνήμης για όλα.Συνήθως χρειάζεται να VM να τρέχουν το ίδιο λειτουργικό (server 2003 πχ) αλλά έχει παρατηρηθεί εκτενής χρήση ακόμα και μεταξύ linux και windows guest συστημάτων.θα σου έλεγα να κοιτάξεις τα Whitepapers της VMware kai φυσικά google για περισσότερα
elena_k_87 Δεκέμβριος 21, 2008 Author #9 Δεκέμβριος 21, 2008 ok, thanx. Θα το κοιτάξω. δουλεύω με vmware workstation. Οι guest που θα χρησιμοποιώ θα είναι ίδιοι οπότε δεν με ενδιαφέρει, προς το παρόν, να ασχολούμε με διαφορετικούς. Τη δυνατότητα που έχει ο esx να διαχειρίζεται τη μνήμη με τέτοιο τρόπο την έχει και στο workstation ή κάτι αντίστοιχο? Με ενδιαφέρει πάρα πολυ ο συγκεκριμένος τρόπος επέμβασης στο σύστημα.
darkCount Δεκέμβριος 21, 2008 #10 Δεκέμβριος 21, 2008 Είμαι 99% σίγουρος ότι ο balloon driver υπάρχει μόνο στον esx. Επίσης το sharing κοινών τοποθεσιών μνήμης μεταξύ πολλών guest OS το ίδιο.θα το κοιτάξω τη Δευτέρα και θα σου πω...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.