Μετάβαση στο κύριο περιεχόμενο

Η "Dirty_Sock" και το packaging system της Canonical

Ένας ερευνητής ανακάλυψε μια νέα ευπάθεια που ονομάζεται "Dirty_Sock" στο REST API για το snapd deamon της Canonical που μπορεί να επιτρέψει στους επιτιθέμενους να αποκτήσουν root access σε μηχανές Linux.



 Για να καταδείξει πώς μπορούν να αξιοποιηθούν αυτές οι ευπάθειες, ο ερευνητής έχει κυκλοφορήσει proof of concepts που χρησιμοποιούν διαφορετικές μεθόδους γιανα πραγματοποιήσουν το privilege escalation.

Το σφάλμα στο REST API που οδηγεί στο privilege escalation 

Κατά την ανάλυση της εγκατάστασης του snapd στο Ubuntu, ο Moberly ανακάλυψε ότι ο deamon χρησιμοποιεί UNIX sockets για να επιτρέπει στους προγραμματιστές να επικοινωνούν μαζί του χρησιμοποιώντας το REST API. 

Καθώς αυτά τα socket τρέχουν κάτω από το περιβάλλον ασφαλείας του root user, άρχισε να ψάχνει για μεθόδους του API που θα μπορούσαν να επωφεληθούν από αυτά τα δικαιώματα και να αυξήσουν τα προνόμια του στο server.


Κατά την ανάλυση του API, ο Moberly ανακάλυψε ότι είναι δυνατό να δημιουργηθεί ένας τοπικός λογαριασμός χρήστη χρησιμοποιώντας την εντολή του API "POST / v2 / create-user" του deamon. Αυτή η εντολή API, ωστόσο, απαιτεί από το πρόγραμμα να έχει άδεια root ή uid = 0, προκειμένου να δημιουργήσει έναν χρήστη.

 Όταν ανέλυσε τον τρόπο με τον οποίο το snapd καθορίζει αν ένας χρήστης έχει δικαιώματα root, είδε ότι δημιουργεί μια συμβολοσειρά που αποτελείται από το pid, το uid του προγράμματος που είναι συνδεδεμένο στο sοcket , το path του socket και το remoteAddr. Για παράδειγμα, μια σύνθετη συμβολοσειρά θα είναι κάπως έτσι: pid=5127;uid=1000;socket=/run/snapd.socket;@ . 

Κάθε τμήμα αυτής της συμβολοσειράς διαιρείται στο ";" και αντιστοιχείται σε διάφορες μεταβλητές. Χρησιμοποιώντας το παραπάνω παράδειγμα, η μεταβλητή uid θα οριστεί στο 1000 και όχι στο 0 και έτσι δεν θα είναι σε θέση να εκτελέσει την εντολή δημιουργίας-χρήστη, καθώς όπως προαναφέραμε χρειάζεται root access (uid =0) .

Ωστόσο, ο Moberly έμαθε ότι το τμήμα @ της συμβολοσειράς αντιπροσωπεύει το RemoteAddr του socket με το οποίο επικοινωνεί το snapd.

Αυτό του επέτρεψε να δημιουργήσει ένα socket που περιέχει: uid = 0; στο όνομά του, όπως φαίνεται παρακάτω, που θα αντικαταστήσει τότε το uid όταν η συμβολοσειρά περάσει.



Όπως μπορείτε να δείτε παρακάτω, όταν τρέχετε τον παραπάνω κώδικα η σειρά @ έχει αντικατασταθεί από το uid = 0;


Όταν το snapd αναλύει τη συμβολοσειρά, καθώς το uid = 0 είναι το τελευταίο μέρος, θα αντικαταστήσει το προηγούμενο uid και θα ξεγελάσει το snapd να σκεφτεί ότι καλείται από τον χρήστη root και θα επιτρέπει σε έναν τοπικό χρήστη να δημιουργηθεί.











Σχόλια

Δημοφιλείς αναρτήσεις από αυτό το ιστολόγιο

Ο αδύναμος κρίκος στη κυβερνοασφάλεια είναι το IoT

Για να μιλήσουμε για την ασφάλεια του Internet of Things θα ήταν καλό να δώσουμε μια ταυτότητα σε αυτή την έννοια. Σύφμωνα με τη WIkipedia λοιπόν:  " Το  Διαδίκτυο των πραγμάτων  ή  Ίντερνετ των πραγμάτων  ( αγγλικά :  Internet of things ) αποτελεί το δίκτυο επικοινωνίας πληθώρας συσκευών, οικιακών συσκευών, αυτοκινήτων καθώς και κάθε αντικειμένου που ενσωματώνει ηλεκτρονικά μέσα, λογισμικό, αισθητήρες και συνδεσιμότητα σε δίκτυο ώστε να επιτρέπετε η σύνδεση και η ανταλλαγή δεδομένων."  Ποιος είμαι εγώ λοιπόν για να διαφωνήσω με τη Wikipedia ?  Στα μάτια ενός προγραμματιστή εφαρμογών για το IoT επρόκειται για αυτό το συγκεκριμένο δίκτυο από εκατομύρρια κόμβους οι οποίοι αξιοποιούν τη μια ή την άλλη τεχνολογία για να συλλέξουν δεδομένα σχετικά με διάφρες συνθήκες. Κατόπιν, τα δεδομένα είτε επεξεργάζονται τοπικά και δίνουν αποτέλεσμα , πάντα όμως μοιραζόμενα τη συλλογή στοιχείων με το cloud είτε αποστέλλουν τα δεδομένα στο δεύτερο και περιμένοντας να κάνει αυτό

Γιατί αυτές οι διαφημίσεις της Apple είναι ανεκτίμητης αξίας

Οι διαφημίσεις της Apple είχαν πάντα κάτι το εξωτικό . Είτε αυτό ήταν τα καλογυρισμένα πλάνα από ειδυλιακές τοποθεσίες - βαφτισμένα "Shot on iPhone" - είτε τα πανέμορφα render των συσκευών της.  Όμως, σαν γενιά η οποία έζησε την άνοδο των smartphones από το τίποτα και το πρώτο λειτουργικό σύστημα που χρησιμοποιήσαμε δεν είχε περίεργα aero effects και γλυκά animations θυμόμαστε εκείνες τις διαφημίσεις που μας έκαναν να μισήσουμε ή να αγαπήσουμε την Apple και το Mac . Έτσι δεν είναι;

Τα καλύτερα τραγούδια για τις γλώσσες προγραμματισμού

Στο διαδίκτυο κυκλοφορούν δεκάδες χιουμοριστικά βίντεοκλιπ με τραγούδια-παρωδίες που έχουν δημιουργηθεί για να εξυμνήσουν ή να θίξουν τα κακώς κείμενα διάφορων γλωσσών προγραμματισμού. Στην παρακάτω λίστα δείτε ποια θεωρούμε εμείς τα πιο αξιόλογα!  Python  Java  C  Το general ;)