Παρά τον ουσιαστικό ρόλο του λογισμικού ανοιχτού κώδικα σε όλο το λογισμικό που κατασκευάζεται σήμερα, είναι πολύ εύκολο για τους κάποιους να κυκλοφορήσουν κακόβουλα πακέτα που επιτίθενται στα συστήματα και στους χρήστες που εκτελούν αυτό το λογισμικό. Σε αντίθεση με τα app store για κινητά που μπορούν να ανιχνεύουν και να απορρίπτουν κακόβουλες συνεισφορές, τα αποθετήρια πακέτων έχουν περιορισμένους πόρους για να ελέγχουν τις χιλιάδες καθημερινές ενημερώσεις και πρέπει να διατηρούν ένα ανοιχτό μοντέλο όπου ο καθένας μπορεί να συνεισφέρει ελεύθερα. Ως αποτέλεσμα, κακόβουλα πακέτα όπως το ua-parser-js και το node-ipc ανεβαίνουν τακτικά σε δημοφιλή αποθετήρια, με μερικές φορές καταστροφικές συνέπειες για τους χρήστες. Η Google, μέλος του Open Source Security Foundation (OpenSSF), είναι περήφανη που υποστηρίζει το έργο Package Analysis του OpenSSF, το οποίο είναι ένα ευπρόσδεκτο βήμα προς τη διασφάλιση των πακέτων ανοιχτού κώδικα από τα οποία εξαρτόμαστε όλοι.
Το πρόγραμμα Package Analysis εκτελεί δυναμική ανάλυση όλων των πακέτων που έχουν μεταφορτωθεί σε δημοφιλή αποθετήρια ανοιχτού κώδικα και καταγράφει τα αποτελέσματα σε έναν πίνακα BigQuery. Ανιχνεύοντας κακόβουλες δραστηριότητες και ειδοποιώντας τους χρήστες για ύποπτη συμπεριφορά πριν επιλέξουν πακέτα, αυτό το πρόγραμμα συμβάλλει σε μια πιο ασφαλή αλυσίδα εφοδιασμού λογισμικού και μεγαλύτερη εμπιστοσύνη στο λογισμικό ανοιχτού κώδικα. Το πρόγραμμα παρέχει επίσης πληροφορίες για τους τύπους κακόβουλων πακέτων που είναι πιο συνηθισμένοι σε κάθε δεδομένη στιγμή, τα οποία μπορούν να καθοδηγήσουν αποφάσεις σχετικά με την καλύτερη προστασία του οικοσυστήματος.
Για να κατανοήσουμε καλύτερα πώς το πρόγραμμα Ανάλυσης Πακέτων συμβάλλει στην ασφάλεια της εφοδιαστικής αλυσίδας, το έργο ανέλυσε τα σχεδόν 200 κακόβουλα πακέτα που καταγρ’αφηκαν σε διάστημα ενός μηνός. Να τι ανακαλύφθηκε:
Αποτελέσματα
Όλα τα σήματα που συλλέγονται δημοσιεύονται στον πίνακα BigQuery . Χρησιμοποιώντας απλά ερωτήματα σε αυτόν τον πίνακα, βρέθηκαν περίπου 200 ουσιαστικά αποτελέσματα από τα πακέτα που μεταφορτώθηκαν στο NPM και στο PyPI σε μια περίοδο λίγο περισσότερο από ένα μήνα. Ακολουθούν μερικά αξιοσημείωτα παραδείγματα, με περισσότερα διαθέσιμα στο αποθετήριο .
PyPI: discordcmd
Αυτό το πακέτο Python θα επιτεθεί στον υπολογιστή-πελάτη της επιφάνειας εργασίας για το Discord στα Windows. Βρέθηκε εντοπίζοντας τα ασυνήθιστα αιτήματα στο raw.githubusercontent.com, το Discord API και το ipinfo.io. Πρώτα, κατέβασε μια κερκόπορτα από το GitHub και την εγκατέστησε στον πελάτη Discord electron.
Στη συνέχεια, εξέτασε διάφορες τοπικές βάσεις δεδομένων για το διακριτικό Discord του χρήστη.
Τέλος, άρπαξε τα δεδομένα που σχετίζονται με το διακριτικό από το Discord API και τα εξήγαγε πίσω σε έναν διακομιστή Discord που ελέγχεται από τον εισβολέα. NPM: @roku-web-core/ajax Κατά την εγκατάσταση, αυτό το πακέτο NPM εκμεταλλεύεται λεπτομέρειες του μηχανήματος στο οποίο λειτουργεί και στη συνέχεια ανοίγει ένα αντίστροφο κέλυφος, επιτρέποντας την απομακρυσμένη εκτέλεση εντολών.
Αυτό το πακέτο ανακαλύφθηκε από τα αιτήματά του σε μια διεύθυνση που ελέγχεται από τους εισβολείς.
Σύγχυση εξάρτησης / Typosquatting Η συντριπτική πλειονότητα των κακόβουλων πακέτων που εντοπίσαμε είναι σύγχυση εξαρτήσεων και typosquatting attacks .Τα πακέτα που βρέθηκαν συνήθως περιέχουν ένα απλό σενάριο που εκτελείται κατά τη διάρκεια μιας εγκατάστασης και καλεί σπίτι με μερικές λεπτομέρειες σχετικά με τον κεντρικό υπολογιστή. Αυτά τα πακέτα είναι πιθανότατα δουλειά ερευνητών ασφαλείας που αναζητούν επιβράβευση σφαλμάτων, καθώς τα περισσότερα δεν εκμεταλλεύονται σημαντικά δεδομένα εκτός από το όνομα του μηχανήματος ή ένα όνομα χρήστη και δεν κάνουν καμία προσπάθεια να συγκαλύψουν τη συμπεριφορά τους.
Αυτές οι επιθέσεις σύγχυσης εξαρτήσεων ανακαλύφθηκαν μέσω των τομέων που χρησιμοποιούσαν, όπως τα burpcollaborator.net, pipedream.com, interact.sh, που χρησιμοποιούνται συνήθως για την αναφορά επιθέσεων. Οι ίδιοι τομείς εμφανίζονται σε άσχετα πακέτα και δεν έχουν εμφανή σύνδεση με τα ίδια τα πακέτα. Πολλά πακέτα χρησιμοποιούσαν επίσης ασυνήθιστους αριθμούς εκδόσεων που ήταν υψηλοί (π.χ. v5.0.0, v99.10.9) για ένα πακέτο χωρίς προηγούμενες εκδόσεις.
Συμπεράσματα
Το σύντομο χρονικό πλαίσιο και η χαμηλή πολυπλοκότητα που απαιτούνται για την εύρεση των παραπάνω αποτελεσμάτων υπογραμμίζουν την πρόκληση που αντιμετωπίζουν τα αποθετήρια πακέτων ανοιχτού κώδικα. Αν και πολλά από τα παραπάνω αποτελέσματα ήταν πιθανότατα έργο ερευνητών ασφαλείας, οποιοδήποτε από αυτά τα πακέτα θα μπορούσε να έχει κάνει πολύ περισσότερα για να βλάψει τα άτυχα θύματα που τα εγκατέστησαν.Αυτά τα αποτελέσματα δείχνουν τη σαφή ανάγκη για περισσότερες επενδύσεις σε πακέτα ελέγχου που δημοσιεύονται, προκειμένου να διατηρούνται οι χρήστες ασφαλείς.
Αυτός είναι ένας αναπτυσσόμενος χώρος και η ύπαρξη ενός ανοιχτού προτύπου για την αναφορά θα βοηθούσε στη συγκέντρωση των αποτελεσμάτων της ανάλυσης και θα προσφέρει στους καταναλωτές ένα αξιόπιστο μέρος για να αξιολογήσουν τα πακέτα που σκέφτονται να χρησιμοποιήσουν. Η δημιουργία ενός ανοιχτού προτύπου θα πρέπει επίσης να ενθαρρύνει τον υγιή ανταγωνισμό, να προωθεί την ενοποίηση και να αυξάνει τη συνολική ασφάλεια των πακέτων ανοιχτού κώδικα. Με την πάροδο του χρόνου ελπίζουμε ότι το πρόγραμμα Package Analysis θα προσφέρει ολοκληρωμένη γνώση σχετικά με τη συμπεριφορά και τις δυνατότητες των πακέτων σε λογισμικό ανοιχτού κώδικα και θα βοηθήσει στην καθοδήγηση των μελλοντικών προσπαθειών που απαιτούνται για να γίνει το οικοσύστημα πιο ασφαλές για όλους. Για να συμμετάσχετε, ανατρέξτε στο GitHub Project και στα Milestones για ευκαιρίες να συνεισφέρετε.
Πηγή άρθρου: https://security.googleblog.com