Εντοπίστηκε μια ευπάθεια στο APT που σας επιτρέπει να αντικαταστήσετε ένα πακέτο με δυνατότητα λήψης

τρωτότητα

Έχει αναγνωριστεί μια ευπάθεια στον διαχειριστή πακέτων APT (CVE-2019-3462), τι επιτρέπει σε έναν εισβολέα να ξεκινήσει μια πλαστογράφηση του εγκατεστημένου πακέτου αν ο εισβολέας έχει τον έλεγχο του καθρέφτη αποθετηρίου ή μπορεί να διαταράξει την κυκλοφορία διέλευσης μεταξύ του χρήστη και του αποθετηρίου (επίθεση MITM).

Το πρόβλημα εντοπίστηκε από τον ερευνητή ασφαλείας Max Justicz, γνωστό για τον εντοπισμό τρωτών σημείων στον διαχειριστή πακέτων APK (Alpine) και στα αποθετήρια Packagist, NPM και RubyGems.

το πρόβλημα Αυτό οφείλεται σε εσφαλμένη επαλήθευση των πεδίων στον κώδικα επεξεργασίας ανακατεύθυνσης HTTP.

Ποιο είναι το πρόβλημα?

Αυτή η ευπάθεια επιτρέπει σε έναν εισβολέα να αντικαταστήσει το δικό του περιεχόμενο στα δεδομένα που μεταδίδονται εντός της περιόδου σύνδεσης HTTP (Το Debian και το Ubuntu χρησιμοποιούν HTTP και όχι HTTPS για πρόσβαση στο αποθετήριο, με την προϋπόθεση ότι η ψηφιακή υπογραφή είναι επαρκής με αντίστοιχα μεταδεδομένα και μέγεθος πακέτου.)

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

Μέσω της συμπερίληψης στο κακόβουλο πακέτο σεναρίων που ξεκίνησε κατά την εγκατάσταση, ένας εισβολέας μπορεί να επιτύχει την εκτέλεση του κωδικού του σε ένα σύστημα με δικαιώματα root.

Για τη λήψη δεδομένων από το αποθετήριο, το APT ξεκινά μια θυγατρική διαδικασία με την εφαρμογή μιας συγκεκριμένης μεταφοράς και οργανώνει την αλληλεπίδραση με αυτήν τη διαδικασία χρησιμοποιώντας ένα απλό πρωτόκολλο κειμένου με τη διαίρεση των εντολών από μια κενή γραμμή.

Πώς εντοπίζω το πρόβλημα;

Η ουσία του προβλήματος είναι ότι ο χειριστής μεταφοράς HTTP, όταν λάβει μια απάντηση από το διακομιστή HTTP με την κεφαλίδα "Τοποθεσία:", ζητά επιβεβαίωση της ανακατεύθυνσης από την κύρια διαδικασία.

Μεταφορά πλήρως του περιεχομένου αυτής της κεφαλίδας. Λόγω της έλλειψης καθαριότητας των ειδικών χαρακτήρων που μεταδίδονται, ένας εισβολέας μπορεί να καθορίσει μια αλλαγή γραμμής στο πεδίο "Τοποθεσία:"

Δεδομένου ότι αυτή η τιμή θα αποκωδικοποιηθεί και θα μεταδοθεί μέσω του καναλιού επικοινωνίας με την κύρια διαδικασία, ο εισβολέας μπορεί να προσομοιώσει μια διαφορετική απόκριση από το χειριστή μεταφοράς HTTP και να αντικαταστήσει το πλαστό μπλοκ URI 201.

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

Ο υπολογισμός των κατακερματισμών για τα ληφθέντα αρχεία αντιμετωπίζεται και η κύρια διαδικασία ελέγχει απλά αυτά τα δεδομένα με κατακερματισμούς από τη βάση δεδομένων των υπογεγραμμένων πακέτων.

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

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

Η λήψη ενός κακόβουλου πακέτου γίνεται προσαρτώντας το πακέτο στο αρχείο Release.gpg, κατά τη μεταφορά.

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

Κατά τη λήψη δεδομένων, το apt απενεργοποιεί τις διαδικασίες εργαζομένων που ειδικεύονται στα διάφορα πρωτόκολλα που θα χρησιμοποιηθούν για τη μεταφορά δεδομένων.

Στη συνέχεια, η κύρια διαδικασία επικοινωνεί με αυτούς τους εργαζόμενους μέσω του stdin / stdout για να τους πει τι να κατεβάσει και πού να το τοποθετήσει στο σύστημα αρχείων χρησιμοποιώντας ένα πρωτόκολλο που μοιάζει λίγο με HTTP.

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

Όταν ο διακομιστής HTTP αποκρίνεται με ανακατεύθυνση, η διαδικασία εργαζόμενου επιστρέφει 103 ανακατεύθυνση αντί 201 URI Done, και η κύρια διαδικασία χρησιμοποιεί αυτήν την απάντηση για να καταλάβει ποιος πόρος θα ζητήσει στη συνέχεια.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.