Επίθεση τυπογραφικού κατασκήνωσης
Φαίνεται ότι όλα τα μέτρα ασφαλείας στα οποία έχουν εργαστεί στο αποθετήριο πακέτων Python PyPI (Python Package Index) δεν ήταν πολύ αποτελεσματικά, καθώς παρόλο που ανάγκασαν τους χρήστες να χρησιμοποιούν έλεγχο ταυτότητας δύο παραγόντων και εφάρμοσαν μέτρα ασφαλείας για να αποτρέψουν όσο το δυνατόν περισσότερο την εισαγωγή κακόβουλων πακέτων, εξακολουθούν να αντιμετωπίζουν μεγάλο αριθμό προβλημάτων με αυτό.
Και ένα από τα μεγάλα προβλήματα που μαστίζει το NPM είναι η κατάφωρη φόρτωση κακόβουλων πακέτων, το οποίο είναι ένα πρόβλημα που είχε τα τελευταία χρόνια και δεν κατάφερε να εξαλείψει και ο λόγος που το αναφέρουμε είναι ότι αυτή η κατάσταση είναι ίδια με την PyPi αντιμετωπίζει, αν και σε μικρότερο βαθμό, αφού έχουν γίνει προσπάθειες να εφαρμοστούν διάφορα φίλτρα ασφαλείας και αναφέρω την προσπάθεια γιατί συνεχίζουν να εμφανίζονται κακόβουλα πακέτα.
Ο λόγος για την αναφορά αυτού είναι ότι πρόσφατα επιβλήθηκε προσωρινή απαγόρευση στις εγγραφές νέων χρηστών και στη δημιουργία νέων έργων στο αποθετήριο πακέτων Python PyPI λόγω μιας συνεχιζόμενης αυτοματοποιημένης επίθεσης που οδήγησε σε μαζική λήψη κακόβουλων πακέτων. Αυτό το μέτρο ελήφθη μετά την μεταφόρτωση 566 πακέτων που περιείχαν κακόβουλο κώδικα, ο οποίος μιμούνταν το στυλ 16 δημοφιλών βιβλιοθηκών Python , στο αποθετήριο στις 26 και 27 Μαρτίου.
Τα ονόματα αυτών των κακόβουλων πακέτων σχηματίζονται χρησιμοποιώντας τεχνικές typosquatting, οι οποίες περιλαμβάνουν την ανάθεση παρόμοιων ονομάτων με μικρές μόνο διαφορές σε μεμονωμένους χαρακτήρες. Για παράδειγμα, χρησιμοποιούνται ονόματα όπως "temsorflow" αντί για "tensorflow", "requests" αντί για "requests" και "asyincio" αντί για "asyncio". Αυτές οι επιθέσεις εκμεταλλεύονται την απόσπαση της προσοχής των χρηστών, καθώς οι χρήστες ενδέχεται να κάνουν τυπογραφικά λάθη κατά την αναζήτηση ή την παρακολούθηση συνδέσμων σε φόρουμ και chat rooms όπου οι εισβολείς αφήνουν παραπλανητικές οδηγίες.
Τα κακόβουλα πακέτα βασίζονται σε κώδικα από νόμιμες βιβλιοθήκες και περιλαμβάνουν αλλαγές που εγκαθιστούν κακόβουλο λογισμικό στο σύστημα. Αυτό το κακόβουλο λογισμικό αναζητά και αποστέλλει ευαίσθητα δεδομένα και αρχεία, όπως κωδικούς πρόσβασης, κλειδιά πρόσβασης, πορτοφόλια κρυπτονομισμάτων, διακριτικά και cookies περιόδου σύνδεσης. Ο κακόβουλος κώδικας είναι ενσωματωμένος στο αρχείο setup.py, το οποίο εκτελείται κατά την εγκατάσταση του πακέτου και, όταν ενεργοποιηθεί, κατεβάζει κακόβουλα στοιχεία από έναν εξωτερικό διακομιστή.
Αυτή η αυτοματοποιημένη επίθεση typosquat πραγματοποιήθηκε σε λίγες ώρες σε μερικές γρήγορες εκρήξεις, κυκλοφόρησε πάνω από 500 πακέτα και στόχευσε 16 δημοφιλή πακέτα PyPI. Αν και η γρήγορη και δυναμική απάντηση του PyPI σίγουρα βοήθησε στον μετριασμό των συνεπειών αυτής της επίθεσης, αξίζει να σημειωθεί ότι δεν είναι όλα τα οικοσυστήματα τόσο γρήγορα και αποτελεσματικά στην αντιμετώπιση μιας τέτοιας επίθεσης.
Η επίθεση στο αποθετήριο PyPI ήταν αρκετά εκτεταμένη και επηρέασε αρκετές δημοφιλείς βιβλιοθήκες Python . Οι επιτιθέμενοι κατάφεραν να κατεβάσουν κακόβουλες παραλλαγές πακέτων όπως TensorFlow, BeautifulSoup, PyGame, SimpleJson, Matplotlib, PyTorch, CustomTKInter, Selenium, Dramaturgo, Asincio και Request. Επιπλέον, εντοπίστηκαν μεμονωμένες περιπτώσεις πλαστογραφημένων βιβλιοθηκών όπως py-cord, colorama, capmonstercloudclient, pillow και bip-utils.
Όσον αφορά την επίθεση στην κοινότητα Top.gg, ο εισβολέας παραβίασε τον λογαριασμό GitHub ενός από τους προγραμματιστές, επιτρέποντάς του να κλέβει τα cookies του προγράμματος περιήγησης και να κάνει κακόβουλες αλλαγές.
Τρία κακόβουλα πακέτα προστέθηκαν στο αποθετήριο PyPI και καταχωρήθηκαν ψεύτικοι τομείς για τη διανομή εξαρτήσεων από κακόβουλα πακέτα. Μέσω ενός χακαρισμένου λογαριασμού, έγινε μια αλλαγή στο αποθετήριο GitHub του έργου Top.gg, όπου προστέθηκε ένα αρχείο requires.txt που περιείχε σύνδεσμο προς έναν κακόβουλο κλώνο του πακέτου "colorama" που φιλοξενείται σε έναν ψεύτικο τομέα. Ο στόχος ήταν να εξαπατηθούν οι προγραμματιστές να κατεβάσουν την κακόβουλη έκδοση του πακέτου, καθώς ο πλαστός τομέας έμοιαζε με τον νόμιμο τομέα που χρησιμοποιείται για τη λήψη πακέτων από το PyPI.
Αυτές οι επιθέσεις υπογραμμίζουν τη σημασία της ασφάλειας στα αποθετήρια πακέτων και την ανάγκη για τους χρήστες και τους προγραμματιστές να είναι σε εγρήγορση σε πιθανές απόπειρες διακυβεύματος της ασφάλειας και λήψης κακόβουλου λογισμικού.
Αν ενδιαφέρεστε να μάθετε περισσότερα, μπορείτε να βρείτε τις λεπτομέρειες στον παρακάτω σύνδεσμο.