Πριν από λίγες ημέρες, ανακοινώθηκε ότι εντοπίστηκαν 11 πακέτα που περιείχαν κακόβουλο κώδικα στον κατάλογο PyPI (Python package index).
Πριν εντοπιστούν τα προβλήματα, τα πακέτα είχαν ληφθεί συνολικά περίπου 38 φορές και αξίζει να σημειωθεί ότι τα εντοπισμένα κακόβουλα πακέτα ξεχωρίζουν για τη χρήση εξελιγμένων μεθόδων για την απόκρυψη καναλιών επικοινωνίας με τους διακομιστές των εισβολέων.
Τα πακέτα που ανακαλύφθηκαν είναι τα εξής:
- σημαντικό πακέτο (6305 λήψεις) e σημαντικό-πακέτο (12897): αυτά τα πακέτα δημιουργήστε μια σύνδεση με έναν εξωτερικό διακομιστή υπό το πρόσχημα της σύνδεσης στο pypi.python.org για την παροχή πρόσβασης φλοιού στο σύστημα (αντίστροφο κέλυφος) και χρησιμοποιήστε το πρόγραμμα trevorc2 για να κρύψετε το κανάλι επικοινωνίας.
- pptest (10001) και ipboards (946): χρησιμοποιούσε το DNS ως κανάλι επικοινωνίας για τη μεταφορά πληροφοριών σχετικά με το σύστημα (στο πρώτο πακέτο, το όνομα κεντρικού υπολογιστή, τον κατάλογο εργασίας, την εσωτερική και εξωτερική IP, στο δεύτερο, το όνομα χρήστη και το όνομα κεντρικού υπολογιστή).
- κουκουβάγια (3285) DiscordSafety (557) και yiffparty (1859) - Προσδιορίστε το διακριτικό υπηρεσίας Discord στο σύστημα και στείλτε το σε έναν εξωτερικό κεντρικό υπολογιστή.
- trrfab (287): Στέλνει το αναγνωριστικό, το όνομα κεντρικού υπολογιστή και το περιεχόμενο του / etc / passwd, / etc / hosts, / home σε έναν εξωτερικό κεντρικό υπολογιστή.
- 10 σεντ 10 (490) - Εγκαταστάθηκε μια αντίστροφη σύνδεση κελύφους με έναν εξωτερικό κεντρικό υπολογιστή.
yandex-yt (4183): έδειξε ένα μήνυμα σχετικά με το παραβιασμένο σύστημα και ανακατευθύνθηκε σε μια σελίδα με πρόσθετες πληροφορίες σχετικά με πρόσθετες ενέργειες, που εκδόθηκε μέσω του nda.ya.ru (api.ya.cc).
Συνεπώς, αναφέρεται ότι πρέπει να δοθεί ιδιαίτερη προσοχή στη μέθοδο πρόσβασης σε εξωτερικούς υπολογιστές που χρησιμοποιούνται στα πακέτα importantpackage και important-package, τα οποία χρησιμοποιούν το δίκτυο παράδοσης περιεχομένου Fastly που χρησιμοποιείται στον κατάλογο PyPI για να αποκρύψουν τη δραστηριότητά τους.
Στην πραγματικότητα, τα αιτήματα στάλθηκαν στον διακομιστή pypi.python.org (συμπεριλαμβανομένου του προσδιορισμού του ονόματος του python.org στο SNI εντός του αιτήματος HTTPS), αλλά το όνομα του διακομιστή που ελέγχεται από τον εισβολέα ορίστηκε στην κεφαλίδα HTTP "Host ». Το δίκτυο παράδοσης περιεχομένου έστειλε ένα παρόμοιο αίτημα στον διακομιστή του εισβολέα, χρησιμοποιώντας τις παραμέτρους της σύνδεσης TLS στο pypi.python.org κατά τη μετάδοση δεδομένων.
Η υποδομή του PyPI υποστηρίζεται από το Fastly Content Delivery Network, το οποίο χρησιμοποιεί τον διαφανή διακομιστή μεσολάβησης της Varnish για την προσωρινή αποθήκευση τυπικών αιτημάτων και χρησιμοποιεί επεξεργασία πιστοποιητικών TLS επιπέδου CDN, αντί για διακομιστές τελικών σημείων, για την προώθηση αιτημάτων HTTPS μέσω του διακομιστή μεσολάβησης. Ανεξάρτητα από τον κεντρικό υπολογιστή προορισμού, τα αιτήματα αποστέλλονται στον διακομιστή μεσολάβησης, ο οποίος προσδιορίζει τον επιθυμητό κεντρικό υπολογιστή από την κεφαλίδα HTTP "Host" και τα ονόματα κεντρικών υπολογιστών τομέα συνδέονται με τυπικές διευθύνσεις IP εξισορρόπησης φόρτου CDN που βρίσκονται σε όλους τους πελάτες Fastly.
Ο διακομιστής των εισβολέων είναι επίσης εγγεγραμμένος στο CDN Fastly , το οποίο προσφέρει δωρεάν πακέτα και επιτρέπει ακόμη και ανώνυμη εγγραφή. Αξίζει να σημειωθεί ότι ένα παρόμοιο σχήμα χρησιμοποιείται για την αποστολή αιτημάτων στο θύμα όταν δημιουργείται ένα "αντίστροφο κέλυφος", αλλά ξεκινά από τον κεντρικό υπολογιστή του εισβολέα. Από έξω, η αλληλεπίδραση με τον διακομιστή του εισβολέα φαίνεται να είναι μια νόμιμη συνεδρία με τον κατάλογο PyPI, κρυπτογραφημένη με το πιστοποιητικό PyPI TLS. Μια παρόμοια τεχνική, γνωστή ως "domain fronting", χρησιμοποιήθηκε προηγουμένως για την ενεργή απόκρυψη του ονόματος κεντρικού υπολογιστή παρακάμπτοντας τα μπλοκ. Αυτό περιελάμβανε τη χρήση της επιλογής HTTPS που παρέχεται από ορισμένα CDN, τον καθορισμό του εικονικού κεντρικού υπολογιστή στο SNI και τη διαβίβαση του ζητούμενου ονόματος κεντρικού υπολογιστή στην κεφαλίδα του κεντρικού υπολογιστή HTTP μέσα σε μια συνεδρία TLS.
Για την απόκρυψη της κακόβουλης δραστηριότητας, χρησιμοποιήθηκε επιπλέον το πακέτο TrevorC2, το οποίο κάνει την αλληλεπίδραση με τον διακομιστή παρόμοια με την κανονική περιήγηση στο web.
Τα πακέτα pptest και ipboards χρησιμοποίησαν μια διαφορετική προσέγγιση για την απόκρυψη δραστηριότητας δικτύου, βασισμένη στην κωδικοποίηση χρήσιμων πληροφοριών σε αιτήματα προς τον διακομιστή DNS. Το κακόβουλο λογισμικό μεταδίδει πληροφορίες εκτελώντας ερωτήματα DNS, στα οποία τα δεδομένα που μεταδίδονται στον διακομιστή εντολών και ελέγχου κωδικοποιούνται χρησιμοποιώντας τη μορφή base64 στο όνομα υποτομέα. Ένας εισβολέας αποδέχεται αυτά τα μηνύματα ελέγχοντας τον διακομιστή DNS του τομέα.
Τέλος, αν ενδιαφέρεστε να μάθετε περισσότερα, μπορείτε να βρείτε τις λεπτομέρειες στον παρακάτω σύνδεσμο.