Δημοσιεύτηκε ένας αναλυτής που εντόπισε 200 κακόβουλα πακέτα σε NPM και PyPI

Το OpenSSF (Open Source Security Foundation), που δημιουργήθηκε από το Linux Foundation και στόχευε στη βελτίωση της ασφάλειας του λογισμικού ανοιχτού κώδικα, παρουσίασε το ανοιχτό έργο Package Analysis, το οποίο αναπτύσσει ένα σύστημα για την ανάλυση της παρουσίας κακόβουλου κώδικα σε πακέτα. Ο κώδικας του έργου είναι γραμμένος στο Go και διανέμεται με την άδεια Apache 2.0. Μια προκαταρκτική σάρωση των αποθετηρίων NPM και PyPI με τη χρήση των προτεινόμενων εργαλείων μας επέτρεψε να εντοπίσουμε περισσότερα από 200 μη ανιχνευμένα στο παρελθόν κακόβουλα πακέτα.

Το μεγαλύτερο μέρος των εντοπισμένων προβληματικών πακέτων χειραγωγούν τη διασταύρωση ονομάτων με εσωτερικές μη δημόσιες εξαρτήσεις έργων (επίθεση σύγχυσης εξάρτησης) ή χρησιμοποιούν μεθόδους typosquatting (αναθέτοντας ονόματα παρόμοια με τα ονόματα δημοφιλών βιβλιοθηκών) και καλούν σενάρια που έχουν πρόσβαση σε εξωτερικούς κεντρικούς υπολογιστές κατά τη διάρκεια τη διαδικασία εγκατάστασης. Σύμφωνα με τους προγραμματιστές του Package Analysis, τα περισσότερα από τα προβληματικά πακέτα που εντοπίστηκαν πιθανότατα δημιουργήθηκαν από ερευνητές ασφαλείας που συμμετέχουν σε προγράμματα bounty bug, καθώς τα δεδομένα που αποστέλλονται περιορίζονται στο όνομα χρήστη και συστήματος και οι ενέργειες εκτελούνται ρητά, χωρίς προσπάθειες κρύβουν τη συμπεριφορά τους.

Τα πακέτα με κακόβουλη δραστηριότητα περιλαμβάνουν:

  • Το πακέτο PyPI discordcmd, το οποίο καταγράφει την αποστολή άτυπων αιτημάτων στο raw.githubusercontent.com, το Discord API και το ipinfo.io. Το καθορισμένο πακέτο κατέβασε τον κώδικα backdoor από το GitHub και τον εγκατέστησε στον κατάλογο πελάτη Discord των Windows, μετά από τον οποίο ξεκίνησε τη διαδικασία αναζήτησης διακριτικών Discord στο σύστημα αρχείων και αποστολής τους σε έναν εξωτερικό διακομιστή Discord που ελέγχεται από τους εισβολείς.
  • Το πακέτο NPM Colorss προσπάθησε επίσης να στείλει διακριτικά από έναν λογαριασμό Discord σε έναν εξωτερικό διακομιστή.
  • Πακέτο NPM @roku-web-core/ajax - κατά τη διαδικασία εγκατάστασης έστειλε δεδομένα σχετικά με το σύστημα και ξεκίνησε έναν χειριστή (αντίστροφο κέλυφος) που δεχόταν εξωτερικές συνδέσεις και εκκινούσε εντολές.
  • Πακέτο PyPI secrevthree - ξεκίνησε ένα αντίστροφο κέλυφος κατά την εισαγωγή μιας συγκεκριμένης λειτουργικής μονάδας.
  • Πακέτο NPM random-vouchercode-generator - μετά την εισαγωγή της βιβλιοθήκης, έστειλε ένα αίτημα σε έναν εξωτερικό διακομιστή, ο οποίος επέστρεψε την εντολή και την ώρα που έπρεπε να εκτελεστεί.

Το έργο της Ανάλυσης Πακέτων καταλήγει στην ανάλυση πακέτων κώδικα στον πηγαίο κώδικα για τη δημιουργία συνδέσεων δικτύου, την πρόσβαση σε αρχεία και την εκτέλεση εντολών. Επιπλέον, οι αλλαγές στην κατάσταση των πακέτων παρακολουθούνται για να προσδιοριστεί η προσθήκη κακόβουλων ενθέτων σε μία από τις εκδόσεις του αρχικά αβλαβούς λογισμικού. Για την παρακολούθηση της εμφάνισης νέων πακέτων στα αποθετήρια και την πραγματοποίηση αλλαγών σε πακέτα που έχουν δημοσιευτεί στο παρελθόν, χρησιμοποιείται η εργαλειοθήκη Package Feeds, η οποία ενοποιεί την εργασία με τα αποθετήρια NPM, PyPI, Go, RubyGems, Packagist, NuGet και Crate.

Η Ανάλυση πακέτου περιλαμβάνει τρία βασικά στοιχεία που μπορούν να χρησιμοποιηθούν τόσο σε συνδυασμό όσο και χωριστά:

  • Προγραμματιστής για την έναρξη εργασιών ανάλυσης πακέτων με βάση τα δεδομένα από τις ροές πακέτων.
  • Ένας αναλυτής που εξετάζει άμεσα ένα πακέτο και αξιολογεί τη συμπεριφορά του χρησιμοποιώντας τεχνικές στατικής ανάλυσης και δυναμικής ανίχνευσης. Η δοκιμή πραγματοποιείται σε απομονωμένο περιβάλλον.
  • Ένας φορτωτής που τοποθετεί τα αποτελέσματα της δοκιμής στον χώρο αποθήκευσης BigQuery.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο