Ερευνητές προειδοποιούν ότι κακόβουλα πακέτα Python που ανέβηκαν στο PyPI κρύβουν μολυσμένο λογισμικό και δεν πρόκειται να διορθώσουν τα ενοχλητικά προβλήματα στον κώδικα τους, δηλαδή όχι μόνο δεν θα γίνει αποσφαλμάτωση, αλλά θα μολυνθεί και η συσκευή τους.
Οι προγραμματιστές Python που εργάζονται σε έργα τεχνητής νοημοσύνης, μηχανικής μάθησης και κρυπτογράφησης θα πρέπει να είναι προσεκτικοί σχετικά με τα πακέτα ανοιχτού κώδικα που επιλέγουν, αφού μια εταιρεία ασφαλείας εντόπισε μια μακροχρόνια εκστρατεία τύπου malware που περιλαμβάνει κακόβουλα μολυσμένα πακέτα που έχουν ανέβει στο Python Package Index (PyPI).
Το PyPI είναι ένα αποθετήριο λογισμικού ανοιχτού κώδικα για τη γλώσσα προγραμματισμού Python που επιτρέπει στους προγραμματιστές να βρίσκουν και να εγκαθιστούν λογισμικό που δημιουργείται και μοιράζεται από άλλους στην κοινότητα. Η πολιτική αποδεκτής χρήσης απαγορεύει τη χρήση του αποθετηρίου «ως μέσο παροχής κακόβουλων εκτελέσιμων αρχείων ή ως υποδομής επίθεσης».
Ωστόσο, η εταιρεία ασφαλείας Sonatype είπε ότι ανακάλυψε έναν κακόβουλο κώδικα κρυμμένο σε πακέτο, το οποίο κατεβάζει αυτόματα και εγκαθιστά μολυσμένα αρχεία των Windows τα οποία είναι ικανά για παρακολούθηση, κλοπή δεδομένων, κλοπή κρυπτονομισμάτων και πολλά άλλα. Το πιο ανησυχητικό είναι ότι οι ερευνητές ασφάλειας έχουν συνδέσει το κακόβουλο λογισμικό με παρόμοια πακέτα που προφανώς αποτελούν μέρος μιας ευρύτερης εκστρατείας πολλών μηνών.
Οι μηχανές ανίχνευσης κακόβουλου λογισμικού της εταιρείας επισήμαναν το πρόσφατα δημοσιευμένο πακέτο PyPI που ονομάζεται “pytoileur”. Είχε γίνει λήψη πάνω από 200 φορές από τη δημοσίευση του έως την προηγούμενη ημέρα πριν το καταργήσουν οι διαχειριστές του PyPI.
Το πακέτο περιγράφεται ως “Cool package”. στα μεταδεδομένα του, με την περιγραφή της ιστοσελίδας HTML να το διαφημίζει ως « εργαλείο διαχείρισης API γραμμένο σε Python».
Η αναφορά στο “pystob” υποδηλώνει ότι το πακέτο προσπαθεί να μιμηθεί το νόμιμο πακέτο όπως το “Pyston”. Προφανώς αυτό το κάνει για να ξεγελάσει τους χρήστες ώστε να το κάνουν λήψη και να το χρησιμοποιήσουν, σύμφωνα με τη Sonatype.
Μέσα στο πακέτο, οι ερευνητές ασφαλείας της Sonatype βρήκαν μια εντολή που εκτελούσε ένα base64-κωδικοποιημένο φορτίο που ανακτά ένα κακόβουλο εκτελέσιμο αρχείο από έναν εξωτερικό διακομιστή. Το πακέτο εγκαθιστά επιπλέον ύποπτα εκτελέσιμα αρχεία, τροποποιεί τις ρυθμίσεις του μητρώου των Windows και αναπτύσσει φορτία που έχουν προηγουμένως ταυτοποιηθεί ως λογισμικό κατασκοπείας.
Ένα από τα εκτελέσιμα αρχεία περιείχε δυνατότητες κλοπής πληροφοριών και εξόρυξης κρυπτονομισμάτων μέσω cryptojacking. Το εκτελέσιμο αρχείο προσπαθεί να εξάγει προφίλ χρηστών και δεδομένα αποθηκευμένα σε κοινούς web browsers όπως Google Chrome, Brave και Firefox και συνάμα προσπαθεί να αποκτήσει πρόσβαση σε τοπικά στοιχεία που σχετίζονται με χρηματοοικονομικές και κρυπτονομισματικές υπηρεσίες όπως Binance, Coinbase, Exodus Wallet, PayPal, Payoneer και PaySafeCard.
Η Sonatype εντόπισε επίσης προσπάθειες να πείσουν προγραμματιστές να κατεβάσουν το κακόβουλο πακέτο. Συγκεκριμένα, αναγνώρισε έναν νέο λογαριασμό χρήστη στο Stack Overflow που πρότεινε το πακέτο σε προγραμματιστές που αναζητούσαν βοήθεια για αποσφαλμάτωση, προσφέροντας το κακόβουλο πακέτο ως λύση στο πρόβλημά τους, παρόλο που δεν σχετιζόταν με τις ερωτήσεις που είχαν υποβληθεί.
Οι ερευνητές σημείωσαν ότι το πακέτο πιθανώς αποτελεί μέρος μιας δυναμικής εκστρατείας. Πέρυσι, ένας χρήστης του PyPI -πιθανώς ο ίδιος, όπως ανέφερε η εταιρεία- είχε δημοσιεύσει διάφορα πακέτα με την ίδια σύντομη μεταδεδομένη περιγραφή “Cool package,” και τα οποία χρησιμοποιούσαν παρόμοιες τακτικές.
Πολλά από αυτά παρουσιάζονταν ως “εργαλείο διαχείρισης API γραμμένο σε Python,” αλλά στην πραγματικότητα κατέβαζαν μολυσμένα εκτελέσιμα αρχεία των Windows από URL με παρόμοιες δομές.
Επίσης, βρέθηκαν πακέτα που συνδέονται με αυτήν την καμπάνια, τα οποία φαινόταν να στοχεύουν προγραμματιστές που αναπτύσσουν εφαρμογές τεχνητής νοημοσύνης. Αυτά περιείχαν, ωστόσο, base64-κωδικοποιημένα φορτία κρυμμένα με τη χρήση κενών διαστημάτων – ακριβώς όπως το Pytoileur.
Ένα από αυτά τα πακέτα PyPI κάνει τον σκοπό της καμπάνιας πιο σαφή, καθώς περιέχει αρκετές “μονάδες” γραμμένες σε απλό κώδικα Python. Με ονόματα όπως ‘Clipboard’ και ‘Webcam’, αυτές οι μονάδες είναι σχεδιασμένες για να επιχειρούν, μεταξύ άλλων, την αρπαγή του προχείρου, τη διατήρηση της πρόσβασης, την ανάπτυξη keyloggers, την εξασφάλιση απομακρυσμένης πρόσβασης στην web κάμερα και λήψη στιγμιότυπων οθόνης για τον επιτιθέμενο.
Η Sonatype δήλωσε ότι είχε εντοπίσει περισσότερα από δύο δωδεκάδες ύποπτα πακέτα που πιθανώς συνδέονται με την καμπάνια.
Αυτή η καμπάνια δεν είναι ο μόνος κίνδυνος που αντιμετωπίζουν οι ανυποψίαστοι προγραμματιστές που αναζητούν ένα χρήσιμο πακέτο. Η Sonatype εντόπισε επίσης ένα ξεχωριστό πακέτο PyPI με το όνομα ‘crytic-compilers’. Αυτό είχε όνομα παρόμοιο με μια γνωστή, νόμιμη βιβλιοθήκη Python που χρησιμοποιείται από προγραμματιστές κρυπτονομισμάτων. Το αντίγραφο κατάφερε να επιτύχει 436 λήψεις πριν αποσυρθεί.
Με πονηρό τρόπο, είχε σχεδιαστεί να ταιριάζει με τους αριθμούς έκδοσης της πραγματικής βιβλιοθήκης, η οποία έχει πάνω από 170.000 μηνιαίες λήψεις.
“Ενώ η τελευταία έκδοση της πραγματικής βιβλιοθήκης σταματά στην 0.3.7, η ψεύτικη έκδοση ‘crytic-compilers’ ξεκινά από εκεί και τελειώνει στην 0.3.11 — δίνοντας την εντύπωση ότι πρόκειται για μια νεότερη έκδοση του στοιχείου,” σημείωσε η Sonatype.
Ωστόσο, αντί να βοηθήσει τους προγραμματιστές να ολοκληρώσουν το έργο τους, η ψεύτικη έκδοση προσπαθούσε να αδειάσει τα πορτοφόλια κρυπτονομισμάτων τους.
Τον Φεβρουάριο, το Κέντρο Συντονισμού της Ομάδας Αντιμετώπισης Έκτακτης Ανάγκης Υπολογιστών της Ιαπωνίας προειδοποίησε ότι οι χάκερς της Βόρειας Κορέας είχαν ανεβάσει κακόβουλα πακέτα Python στο PyPI με παρόμοια ονόματα με πακέτα Python που χρησιμοποιούνται για αλγόριθμους κρυπτογράφησης, ελπίζοντας ότι οι προγραμματιστές θα μπέρδευαν τον κακόβουλο κώδικά τους με τον πραγματικό.