Ερευνητές κυβερνοασφάλειας ανακάλυψαν έως και 11 κακόβουλα πακέτα Python που έχουν ληφθεί σωρευτικά περισσότερες από 41.000 φορές από το αποθετήριο Python Package Index (PyPI) και θα μπορούσαν να χρησιμοποιηθούν για να κλέψουν διακριτικά πρόσβασης Discord, κωδικούς πρόσβασης αλλά ακόμη να κάνουν stage dependency confusion επιθέσεις.
Τα πακέτα Python έχουν αφαιρεθεί από το αποθετήριο μετά από υπεύθυνη αποκάλυψη από την εταιρεία DevOps JFrog —
- importantpackage / important-package
- pptest
- ipboards
- owlmoon
- DiscordSafety
- trrfab
- 10Cent10 / 10Cent11
- yandex-yt
- yiffparty
Δύο από τα πακέτα (“importantpackage”, “10Cent10” και οι παραλλαγές τους) βρέθηκαν να αποκτούν ένα αντίστροφο shell στο παραβιασμένο μηχάνημα, δίνοντας στον εισβολέα τον πλήρη έλεγχο ενός μολυσμένου μηχανήματος. Δύο άλλα πακέτα “ipboards” και “trrfab” μεταμφιέζονται ως νόμιμες εξαρτήσεις που έχουν σχεδιαστεί για να εισάγονται αυτόματα εκμεταλλευόμενες μια τεχνική που ονομάζεται σύγχυση confusion ή namespace confusion.
Σε αντίθεση με τις επιθέσεις typosquatting, όπου ένας κακόβουλος παράγοντας εσκεμμένα δημοσιεύει πακέτα με ανορθόγραφα ονόματα δημοφιλών παραλλαγών, το dependency confusion λειτουργεί μεταφορτώνοντας δηλητηριασμένα στοιχεία με ονόματα που είναι ίδια με τα νόμιμα εσωτερικά ιδιωτικά πακέτα, αλλά με υψηλότερη έκδοση και μεταφορτώνονται σε δημόσια αποθετήρια, αποτελεσματικά αναγκάζοντας τον διαχειριστή πακέτων του στόχου να πραγματοποιήσει λήψη και εγκατάσταση της κακόβουλης μονάδας.
Το “σημαντικό πακέτο” εξάρτησης ξεχωρίζει επίσης για τον νέο μηχανισμό διείσδυσης για την αποφυγή ανίχνευσης βάσει δικτύου, ο οποίος περιλαμβάνει τη χρήση του δικτύου παράδοσης περιεχομένου (CDN) της Fastly για να κρύψει τις επικοινωνίες του με τον διακομιστή που ελέγχεται από τον εισβολέα ως επικοινωνία με το pypi[.]org.
Ο κακόβουλος κώδικας “προκαλεί την αποστολή ενός αιτήματος HTTPS στο pypi.python[.]org (το οποίο δεν διακρίνεται από ένα νόμιμο αίτημα στο PyPI), το οποίο αργότερα αναδρομολογείται από το CDN ως αίτημα HTTP στο [command-and-control ] διακομιστή», εξήγησαν οι ερευνητές του JFrog Andrey Polkovnychenko και Shachar Menashe σε μια έκθεση που δημοσιεύθηκε την Πέμπτη.
Τέλος, τόσο τα “ipboards” και ένα πέμπτο πακέτο με το όνομα “pptest” ανακαλύφθηκαν χρησιμοποιώντας το DNS ως μέθοδο εξαγωγής δεδομένων, βασιζόμενη σε αιτήματα DNS ως κανάλι επικοινωνίας μεταξύ του μηχανήματος-θύματος και του απομακρυσμένου διακομιστή. Ο JFrog είπε ότι είναι η πρώτη φορά που η τεχνική εντοπίζεται σε κακόβουλο λογισμικό που έχει ανέβει στο PyPI.
Οι προσπάθειες στόχευσης δημοφιλών μητρώων κώδικα όπως το μητρώο JavaScript του Node Package Manager (NPM), το PyPI και το RubyGems έχουν γίνει συνηθισμένες και αποτελούν ένα νέο σύνορο για μια σειρά επιθέσεων.
«Οι διαχειριστές πακέτων είναι ένας αυξανόμενος και ισχυρός φορέας για την ακούσια εγκατάσταση κακόβουλου κώδικα και […] οι εισβολείς γίνονται πιο εξελιγμένοι στην προσέγγισή τους», δήλωσε ο Menashe, ανώτερος διευθυντής έρευνας του JFrog. “Οι προηγμένες τεχνικές αποφυγής που χρησιμοποιούνται σε αυτά τα πακέτα κακόβουλου λογισμικού, όπως η νέα εκκένωση ή ακόμα και η διοχέτευση σήραγγας DNS σηματοδοτούν μια ανησυχητική τάση ότι οι εισβολείς γίνονται πιο κρυφοί στις επιθέσεις τους σε λογισμικό ανοιχτού κώδικα.”
Πράγματι, αφού τουλάχιστον τρεις λογαριασμοί προγραμματιστών NPM παραβιάστηκαν από χάκερς για την εισαγωγή κακόβουλου κώδικα σε δημοφιλή πακέτα “ua-parser-js”, “coa” και “rc”, το GitHub νωρίτερα αυτή την εβδομάδα περιέγραψε σχέδια για να ενισχύσει την ασφάλεια του Μητρώο NPM απαιτώντας έλεγχο ταυτότητας δύο παραγόντων (2FA) για συντηρητές και διαχειριστές από το πρώτο τρίμηνο του 2022.
Η ανάπτυξη έρχεται επίσης καθώς η πλατφόρμα ανάπτυξης λογισμικού και ελέγχου εκδόσεων αποκάλυψε ότι αντιμετώπισε πολλαπλά ελαττώματα στο μητρώο NPM που θα μπορούσαν να διαρρεύσουν τα ονόματα των ιδιωτικών πακέτων και να επιτρέψουν στους εισβολείς να παρακάμψουν τον έλεγχο ταυτότητας και να δημοσιεύσουν εκδόσεις οποιουδήποτε πακέτου χωρίς να απαιτείται εξουσιοδότηση.