Προγραμματισμός

Δαγκώματα φιδιών: Προσοχή σε κακόβουλες βιβλιοθήκες Python

Νωρίτερα αυτήν την εβδομάδα, δύο βιβλιοθήκες Python που περιέχουν κακόβουλο κώδικα καταργήθηκαν από το Python Package Index (PyPI), το επίσημο αποθετήριο της Python για πακέτα τρίτων.

Είναι η τελευταία ενσάρκωση ενός προβλήματος που αντιμετωπίζουν πολλές σύγχρονες κοινότητες ανάπτυξης λογισμικού, δημιουργώντας ένα σημαντικό ερώτημα για όλους τους προγραμματιστές που βασίζονται σε λογισμικό ανοιχτού κώδικα: Πώς μπορείτε να κάνετε τους ανθρώπους να συνεισφέρουν τον δικό τους κώδικα σε ένα κοινό αποθετήριο για επαναχρησιμοποίηση , χωρίς αυτά τα repos να γίνουν φορείς για επιθέσεις;

Σε γενικές γραμμές, τα επίσημα αποθετήρια βιβλιοθηκών τρίτων για γλώσσες που λειτουργούν ως έργα ανοιχτού κώδικα, όπως η Python, είναι ασφαλή. Ωστόσο, κακόβουλες εκδόσεις μιας βιβλιοθήκης μπορούν να εξαπλωθούν γρήγορα εάν δεν είναι επιλεγμένες. Και το γεγονός ότι τα περισσότερα τέτοια αποθετήρια γλωσσών επιβλέπονται από εθελοντές σημαίνει ότι μόνο τόσα πολλά μάτια κοιτάζουν και οι συνεισφορές δεν χρειάζονται πάντα τον έλεγχο που απαιτείται.

Τα δύο κακόβουλα πακέτα που αφαιρέθηκαν από το PyPI αυτήν την εβδομάδα χρησιμοποίησαν ένα τέχνασμα που ονομάζεται "typo squatting", δηλαδή επιλέγοντας ονόματα που είναι αρκετά παρόμοια με τα πακέτα που χρησιμοποιούνται συνήθως για να παραλείψουν την ειδοποίηση και που μπορεί να οδηγήσουν σε τυχαία εγκατάσταση εάν κάποιος πληκτρολογήσει λάθος το επιδιωκόμενο όνομα. Προσπάθεια να μεταμφιέσετε ως το dateutil και μέδουσα πακέτα — χρησιμοποιούνται για χειρισμό αντικειμένων χρόνου Python και εκτέλεση αντιστοιχιών κατά προσέγγιση σε συμβολοσειρές, αντίστοιχα — ονομάστηκαν τα κακόβουλα πακέταpython-dateutil και jeIlyfish (με κεφαλαίο I αντί για το πρώτο πεζά L).

Κατά την εγκατάσταση,python-dateutil και jeIlyfish συμπεριφέρθηκε ακριβώς όπως τα πρωτότυπα - εκτός από την απόπειρα κλοπής προσωπικών δεδομένων από τον προγραμματιστή. Paul Ganssle, προγραμματιστής στο dateutil ομάδα, είπε στο ZDNet ότι ο πιθανός λόγος για την επίθεση ήταν να καταλάβει ποια έργα εργάστηκε το θύμα, προκειμένου να ξεκινήσει μεταγενέστερες επιθέσεις σε αυτά τα έργα.

Οι βιβλιοθήκες Python γενικά εμπίπτουν σε δύο στρατόπεδα - τις ενότητες που αποτελούν την τυπική βιβλιοθήκη που αποστέλλεται με το χρόνο εκτέλεσης του Python και πακέτα τρίτων που φιλοξενούνται στο PyPI. Ενώ οι λειτουργικές μονάδες στην τυπική βιβλιοθήκη ελέγχονται στενά και ελέγχονται αυστηρά, το PyPI είναι πολύ πιο ανοιχτό από τη σχεδίαση, επιτρέποντας στην κοινότητα των χρηστών της Python να συνεισφέρει ελεύθερα πακέτα για επαναχρησιμοποίηση.

Στο παρελθόν έχουν βρεθεί κακόβουλα έργα στο PyPI. Σε μία περίπτωση, τα κακόβουλα πακέτα τυπογραφικά καταλάμβαναν το πλαίσιο Django, ένα βασικό στοιχείο ανάπτυξης ιστοσελίδων στην Python. Αλλά το πρόβλημα φαίνεται να αυξάνεται πιο επείγον.

«Ως μέλος της ομάδας ασφαλείας της Python (PSRT) λαμβάνω αναφορές για καταλήψεις τυπογραφικών ή κακόβουλα πακέτα κάθε εβδομάδα», δήλωσε ο Christian Heimes, ένας βασικός προγραμματιστής της Python, στο επίσημο φόρουμ συζητήσεων για την ανάπτυξη της Python. "(Διασκεδαστικό γεγονός: Υπήρχαν τέσσερα νήματα email σχετικά με κακόβουλο περιεχόμενο στο PyPI αυτόν τον μήνα και σήμερα είναι μόλις 4 Δεκεμβρίου.)"

Το Ίδρυμα Λογισμικού Python έχει σχέδια στο τραπέζι για την προστασία του PyPI από την κατάχρηση, αλλά θα χρειαστεί χρόνος για πλήρη ανάπτυξη. Νωρίτερα φέτος, η ομάδα Python παρουσίασε έλεγχο ταυτότητας δύο παραγόντων ως επιλογή για τους χρήστες PyPI που ανεβάζουν πακέτα. Αυτό παρέχει ένα επίπεδο προστασίας για προγραμματιστές που ανεβάζουν στο PyPI, καθιστώντας πιο δύσκολη την παραβίαση των λογαριασμών τους και τη μεταφόρτωση κακόβουλου λογισμικού στο όνομά τους. Αλλά δεν αντιμετωπίζει καταλήψεις τυπογραφικών ή άλλες καταχρήσεις των κοινών.

Άλλες πρωτοβουλίες περιλαμβάνουν την αναζήτηση τρόπων για την αντιστάθμιση αυτών των προβλημάτων με τον αυτοματισμό. Η ομάδα εργασίας στο Python Software Foundation που χειρίζεται τη συσκευασία έχει λάβει επιχορήγηση από το Facebook Research για τη δημιουργία πιο προηγμένων λειτουργιών ασφαλείας PyPI, όπως η κρυπτογραφική υπογραφή πακέτων PyPI και η αυτοματοποιημένη ανίχνευση κακόβουλων μεταφορτώσεων (αντί για χειροκίνητο έλεγχο έντασης εργασίας).

Τα τρίτα μέρη προσφέρουν επίσης κάποια προστασία. Το Reversing Labs, μια ανεξάρτητη εταιρεία ασφαλείας, ανακάλυψε μια επίθεση με βάση το PyPI μετά από μια σάρωση ολόκληρου του αποθετηρίου για ύποπτες μορφές αρχείων. Ωστόσο, η εταιρεία παραδέχεται ότι τέτοιες σαρώσεις δεν αντικαθιστούν τον εσωτερικό έλεγχο. «Για να μειωθεί σημαντικά η πιθανότητα φιλοξενίας κακόβουλου λογισμικού», έγραψε η εταιρεία, «τέτοια αποθετήρια θα επωφεληθούν από τη συνεχή επεξεργασία και μια καλύτερη διαδικασία ελέγχου.»

Η καλύτερη λύση, όπως γνωρίζουν οι προγραμματιστές της Python, πρέπει να προέλθει από μέσα.

$config[zx-auto] not found$config[zx-overlay] not found