PyTorch: Η εργαλειοθήκη μηχανικής μάθησης προστέθηκε από τα Χριστούγεννα έως την Πρωτοχρονιά PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

PyTorch: Κιτ εργαλείων Μηχανικής Μάθησης από τα Χριστούγεννα έως την Πρωτοχρονιά

Το PyTorch είναι ένα από τα πιο δημοφιλή και ευρέως χρησιμοποιούμενα εργαλεία μηχανικής εκμάθησης εκεί έξω.

(Δεν πρόκειται να επικεντρωθούμε στο πού βρίσκεται στο leaderboard της τεχνητής νοημοσύνης – όπως συμβαίνει με πολλά ευρέως χρησιμοποιούμενα εργαλεία ανοιχτού κώδικα σε έναν ανταγωνιστικό τομέα, η απάντηση φαίνεται να εξαρτάται από το ποιον ρωτάτε και ποια εργαλειοθήκη τυχαίνει να χρησιμοποιούν τους εαυτούς τους.)

Αρχικά αναπτύχθηκε και κυκλοφόρησε ως έργο ανοιχτού κώδικα από το Facebook, τώρα Meta, το λογισμικό παραδόθηκε στο Linux Foundation στα τέλη του 2022, το οποίο το τρέχει τώρα υπό την αιγίδα του PyTorch Foundation.

Δυστυχώς, το έργο διακυβεύτηκε μέσω επίθεσης στην εφοδιαστική αλυσίδα κατά την περίοδο των διακοπών στο τέλος του 2022, μεταξύ της ημέρας των Χριστουγέννων [2022-12-25] και της ημέρας πριν από την παραμονή της Πρωτοχρονιάς [2022-12-30].

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

Το όνομα torchtriton επιλέχθηκε έτσι ώστε να ταιριάζει με το όνομα ενός πακέτου στο ίδιο το σύστημα PyTorch, οδηγώντας σε μια επικίνδυνη κατάσταση εξηγείται από την ομάδα PyTorch (η έμφαση μας) ως εξής:

[A] κακόβουλο πακέτο εξάρτησης (torchtriton) […] μεταφορτώθηκε στο αποθετήριο κώδικα Python Package Index (PyPI) με το ίδιο όνομα πακέτου με αυτό που αποστέλλουμε στο ευρετήριο νυχτερινών πακέτων PyTorch. Δεδομένου ότι ο δείκτης PyPI έχει προτεραιότητα, Αυτό το κακόβουλο πακέτο εγκαταστάθηκε αντί της έκδοσης από το επίσημο αποθετήριο μας. Αυτό το σχέδιο επιτρέπει σε κάποιον να καταχωρήσει ένα πακέτο με το ίδιο όνομα με αυτό που υπάρχει σε ευρετήριο τρίτου μέρους και pip θα εγκαταστήσει την έκδοσή τους από προεπιλογή.

Το πρόγραμμα pip, παρεμπιπτόντως, παλιά ήταν γνωστό ως pyinstall, και είναι προφανώς ένα επαναλαμβανόμενο αστείο που είναι συντομογραφία pip installs packages. Παρά το αρχικό του όνομα, δεν προορίζεται για την εγκατάσταση της ίδιας της Python – είναι ο τυπικός τρόπος για τους χρήστες της Python να διαχειρίζονται βιβλιοθήκες λογισμικού και εφαρμογές που είναι γραμμένες σε Python, όπως το PyTorch και πολλά άλλα δημοφιλή εργαλεία.

Καταποντισμένος από ένα κόλπο της εφοδιαστικής αλυσίδας

Όποιος είχε την ατυχία να εγκαταστήσει την pwned έκδοση του PyTorch κατά τη διάρκεια της επικίνδυνης περιόδου σχεδόν σίγουρα κατέληξε με κακόβουλο λογισμικό κλοπής δεδομένων που εμφυτεύεται στον υπολογιστή του.

Σύμφωνα με το σύντομο αλλά χρήσιμο του ίδιου του PyTorch ανάλυση του κακόβουλου λογισμικού, οι εισβολείς έκλεψαν μερικά, τα περισσότερα ή όλα τα ακόλουθα σημαντικά δεδομένα από μολυσμένα συστήματα:

  • Πληροφορίες συστήματος, συμπεριλαμβανομένου του ονόματος κεντρικού υπολογιστή, του ονόματος χρήστη, των γνωστών χρηστών στο σύστημα και του περιεχομένου όλων των μεταβλητών περιβάλλοντος του συστήματος. Οι μεταβλητές περιβάλλοντος είναι ένας τρόπος παροχής δεδομένων εισόδου μόνο μνήμης στα οποία μπορούν να έχουν πρόσβαση τα προγράμματα κατά την εκκίνηση, συχνά συμπεριλαμβανομένων δεδομένων που δεν υποτίθεται ότι έχουν αποθηκευτεί στο δίσκο, όπως κρυπτογραφικά κλειδιά και διακριτικά ελέγχου ταυτότητας που παρέχουν πρόσβαση σε υπηρεσίες που βασίζονται σε σύννεφο. Η λίστα των γνωστών χρηστών εξάγεται από /etc/passwd, το οποίο, ευτυχώς, στην πραγματικότητα δεν περιέχει κωδικούς πρόσβασης ή κατακερματισμούς κωδικών πρόσβασης.
  • Η τοπική σας διαμόρφωση Git. Αυτό είναι κλεμμένο από $HOME/.gitconfig, και συνήθως περιέχει χρήσιμες πληροφορίες σχετικά με την προσωπική ρύθμιση οποιουδήποτε χρησιμοποιεί το δημοφιλές σύστημα διαχείρισης πηγαίου κώδικα Git.
  • Τα κλειδιά SSH σας. Αυτά είναι κλεμμένα από τον κατάλογο $HOME/.ssh. Τα κλειδιά SSH περιλαμβάνουν συνήθως τα ιδιωτικά κλειδιά που χρησιμοποιούνται για ασφαλή σύνδεση μέσω SSH (ασφαλές κέλυφος) ή χρήση SCP (ασφαλές αντίγραφο) σε άλλους διακομιστές στα δικά σας δίκτυα ή στο cloud. Πολλοί προγραμματιστές διατηρούν τουλάχιστον μερικά από τα ιδιωτικά τους κλειδιά μη κρυπτογραφημένα, έτσι ώστε τα σενάρια και τα εργαλεία λογισμικού που χρησιμοποιούν να μπορούν να συνδέονται αυτόματα σε απομακρυσμένα συστήματα χωρίς να κάνουν παύση για να ζητούν κωδικό πρόσβασης ή κλειδί ασφαλείας υλικού κάθε φορά.
  • Τα πρώτα 1000 άλλα αρχεία στον αρχικό σας κατάλογο είναι μικρότερα από 100 kilobyte σε μέγεθος. Η περιγραφή κακόβουλου λογισμικού PyTorch δεν αναφέρει πώς υπολογίζεται η "πρώτη λίστα αρχείων 1000". Το περιεχόμενο και η σειρά των καταχωρίσεων αρχείων εξαρτάται από το αν η λίστα είναι ταξινομημένη αλφαβητικά. εάν επισκέπτονται υποκαταλόγους πριν, κατά τη διάρκεια ή μετά την επεξεργασία των αρχείων σε οποιονδήποτε κατάλογο· εάν περιλαμβάνονται κρυφά αρχεία. και εάν χρησιμοποιείται κάποια τυχαιότητα στον κώδικα που διασχίζει τους καταλόγους. Θα πρέπει πιθανώς να υποθέσετε ότι τυχόν αρχεία κάτω από το όριο μεγέθους θα μπορούσαν να είναι αυτά που καταλήγουν να κλαπούν.

Σε αυτό το σημείο, θα αναφέρουμε τα καλά νέα: μόνο εκείνοι που πήραν τη λεγόμενη «νυχτερινή» ή πειραματική έκδοση του λογισμικού κινδύνευαν. (Το όνομα "nightly" προέρχεται από το γεγονός ότι είναι η πιο πρόσφατη έκδοση, που συνήθως δημιουργείται αυτόματα στο τέλος κάθε εργάσιμης ημέρας.)

Οι περισσότεροι χρήστες του PyTorch πιθανότατα θα τηρήσουν τη λεγόμενη «σταθερή» έκδοση, η οποία δεν επηρεάστηκε από αυτή την επίθεση.

Επίσης, από την αναφορά του PyTorch φαίνεται ότι το εκτελέσιμο αρχείο κακόβουλου λογισμικού Triton στόχευε ειδικά περιβάλλοντα Linux 64-bit.

Επομένως, υποθέτουμε ότι αυτό το κακόβουλο πρόγραμμα θα εκτελούνταν μόνο σε υπολογιστές με Windows εάν ήταν εγκατεστημένο το υποσύστημα Windows για Linux (WSL).

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

Κλοπή δεδομένων DNS

Περιέργως, το κακόβουλο λογισμικό Triton δεν εκμεταλλεύεται τα δεδομένα του (ο όρος μιλιταριστικής ορολογίας που αρέσει να χρησιμοποιεί η βιομηχανία της κυβερνοασφάλειας αντί για κλοπή or αντιγραφή παράνομα) χρησιμοποιώντας HTTP, HTTPS, SSH ή οποιοδήποτε άλλο πρωτόκολλο υψηλού επιπέδου.

Αντίθετα, κρυπτογραφεί και κωδικοποιεί τα δεδομένα που θέλει να κλέψει σε μια ακολουθία με «ονόματα διακομιστών» που ανήκουν σε ένα όνομα τομέα που ελέγχεται από τους εγκληματίες.

Αυτό σημαίνει ότι, κάνοντας μια ακολουθία αναζητήσεων DNS, οι απατεώνες μπορούν να αποσπάσουν κρυφά μια μικρή ποσότητα δεδομένων σε κάθε ψεύτικο αίτημα.

Αυτό είναι το ίδιο κόλπο που χρησιμοποιήθηκε από Χάκερ Log4Shell στα τέλη του 2021, ο οποίος διέρρευσε κλειδιά κρυπτογράφησης πραγματοποιώντας αναζητήσεις DNS για «διακομιστές» με «ονόματα» που απλώς έτυχε να είναι η τιμή του μυστικού κλειδιού πρόσβασης AWS, που λεηλατήθηκε από μια μεταβλητή περιβάλλοντος στη μνήμη.

Έτσι, αυτό που έμοιαζε με μια αθώα, αν και άσκοπη, αναζήτηση DNS για έναν «διακομιστή» όπως π.χ S3CR3TPA55W0RD.DODGY.EXAMPLE θα διέρρευε αθόρυβα το κλειδί πρόσβασής σας υπό το πρόσχημα μιας απλής αναζήτησης που κατευθύνεται στον επίσημο διακομιστή DNS που αναφέρεται για το DODGY.EXAMPLE τομέα.


LIVE DEMO LOG4SHELL ΕΞΗΓΗΣΗ ΔΕΔΟΜΕΝΩΝ EXFILTRATION ΜΕΣΩ DNS

[Ενσωματωμένο περιεχόμενο]

Εάν δεν μπορείτε να διαβάσετε καθαρά το κείμενο εδώ, δοκιμάστε να χρησιμοποιήσετε τη λειτουργία πλήρους οθόνης ή παρακολουθήστε απευθείας στο YouTube.
Κάντε κλικ στο γρανάζι στο πρόγραμμα αναπαραγωγής βίντεο για να επιταχύνετε την αναπαραγωγή ή για να ενεργοποιήσετε τους υπότιτλους.


Αν οι απατεώνες κατέχουν τον τομέα DODGY.EXAMPLE, μπορούν να πουν στον κόσμο με ποιον διακομιστή DNS να συνδεθεί όταν κάνουν αυτές τις αναζητήσεις.

Το πιο σημαντικό, ακόμη και δίκτυα που φιλτράρουν αυστηρά τις συνδέσεις δικτύου που βασίζονται σε TCP χρησιμοποιώντας HTTP, SSH και άλλα πρωτόκολλα κοινής χρήσης δεδομένων υψηλού επιπέδου…

…μερικές φορές μην φιλτράρετε καθόλου τις συνδέσεις δικτύου που βασίζονται σε UDP που χρησιμοποιούνται για αναζητήσεις DNS.

Το μόνο μειονέκτημα για τους απατεώνες είναι ότι τα αιτήματα DNS έχουν μάλλον περιορισμένο μέγεθος.

Τα ονόματα μεμονωμένων διακομιστών περιορίζονται σε 64 χαρακτήρες από ένα σύνολο 37 (Α-Ω, 0-9 και το σύμβολο παύλας ή παύλας) και πολλά δίκτυα περιορίζουν τα μεμονωμένα πακέτα DNS, συμπεριλαμβανομένων όλων των εσώκλειστων αιτημάτων, κεφαλίδων και μεταδεδομένων, σε μόλις 512 byte το καθένα.

Υποθέτουμε ότι αυτός είναι ο λόγος για τον οποίο το κακόβουλο λογισμικό σε αυτήν την περίπτωση ξεκίνησε αναζητώντας τα ιδιωτικά κλειδιά σας και στη συνέχεια περιορίστηκε σε το πολύ 1000 αρχεία, το καθένα μικρότερο από 100,000 byte.

Με αυτόν τον τρόπο, οι απατεώνες μπορούν να κλέψουν πολλά ιδιωτικά δεδομένα, ιδίως συμπεριλαμβανομένων των κλειδιών πρόσβασης διακομιστή, χωρίς να δημιουργήσουν έναν αδιαχειρίστως μεγάλο αριθμό αναζητήσεων DNS.

Ένας ασυνήθιστα μεγάλος αριθμός κοιτασμάτων DNS μπορεί να γίνει αντιληπτός για συνήθεις λειτουργικούς λόγους, ακόμη και αν δεν υπάρχει έλεγχος που εφαρμόζεται ειδικά για σκοπούς κυβερνοασφάλειας.

Τι να κάνω;

Η PyTorch έχει ήδη λάβει μέτρα για να τερματίσει αυτήν την επίθεση, οπότε αν δεν έχετε χτυπηθεί ακόμα, είναι σχεδόν βέβαιο ότι δεν θα χτυπηθείτε τώρα, επειδή το κακόβουλο torchtriton Το πακέτο στο PyPI έχει αντικατασταθεί με ένα σκόπιμα "άχαρο", κενό πακέτο με το ίδιο όνομα.

Αυτό σημαίνει ότι οποιοδήποτε άτομο, ή οποιοδήποτε λογισμικό, που προσπάθησε να εγκαταστήσει torchtriton από το PyPI μετά το 2022-12-30T08:38:06Z, είτε κατά λάθος είτε από σχεδιασμό, δεν θα λάμβανε το κακόβουλο λογισμικό.

Το απατεώνα πακέτο PyPI μετά από παρέμβαση της PyTorch.

Η PyTorch δημοσίευσε μια εύχρηστη λίστα με IoC, ή δείκτες συμβιβασμού, που μπορείτε να αναζητήσετε στο δίκτυό σας.

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

Σύμφωνα με το PyTorch:

  • Το κακόβουλο λογισμικό εγκαθίσταται με το όνομα αρχείου triton. Από προεπιλογή, θα περιμένατε να το βρείτε στον υποκατάλογο triton/runtime στον κατάλογο πακέτων ιστοτόπων Python. Δεδομένου ότι τα ονόματα αρχείων από μόνα τους είναι αδύναμοι δείκτες κακόβουλου λογισμικού, ωστόσο, αντιμετωπίζετε την παρουσία αυτού του αρχείου ως ένδειξη κινδύνου. μην αντιμετωπίζετε την απουσία του ως μια ξεκάθαρη.
  • Το κακόβουλο λογισμικό στη συγκεκριμένη επίθεση έχει το άθροισμα SHA256 2385b294­89cd9e35­f92c0727­80f903ae­2e517ed4­22eae672­46ae50a5cc738a0e. Για άλλη μια φορά, το κακόβουλο λογισμικό θα μπορούσε εύκολα να μεταγλωττιστεί για να δημιουργήσει ένα διαφορετικό άθροισμα ελέγχου, επομένως η απουσία αυτού του αρχείου δεν αποτελεί ένδειξη βέβαιης υγείας, αλλά μπορείτε να αντιμετωπίσετε την παρουσία του ως ένδειξη μόλυνσης.
  • Οι αναζητήσεις DNS που χρησιμοποιήθηκαν για την κλοπή δεδομένων κατέληγαν με το όνομα τομέα H4CK.CFD. Εάν έχετε αρχεία καταγραφής δικτύου που καταγράφουν αναζητήσεις DNS με όνομα, μπορείτε να αναζητήσετε αυτήν τη συμβολοσειρά κειμένου ως απόδειξη ότι διέρρευσαν μυστικά δεδομένα.
  • Οι κακόβουλες απαντήσεις DNS προφανώς πήγαν και οι απαντήσεις, εάν υπάρχουν, προήλθαν από έναν διακομιστή DNS που ονομάζεται WHEEZY.IO. Προς το παρόν, δεν μπορούμε να βρούμε αριθμούς IP που να συσχετίζονται με αυτήν την υπηρεσία και η PyTorch δεν έχει παράσχει δεδομένα IP που θα συνέδεαν την taffic DNS με αυτό το κακόβουλο λογισμικό, επομένως δεν είμαστε βέβαιοι πόσο χρησιμοποιούνται αυτές οι πληροφορίες για το κυνήγι απειλών αυτή τη στιγμή [2023-01-01T21:05:00Z].

Ευτυχώς, υποθέτουμε ότι η πλειονότητα των χρηστών του PyTorch δεν θα έχει επηρεαστεί από αυτό, είτε επειδή δεν χρησιμοποιούν νυχτερινές κατασκευές είτε επειδή δεν εργάζονταν κατά την περίοδο των διακοπών ή και τα δύο.

Αλλά αν είστε λάτρης της PyTorch που ασχολείστε με τις νυχτερινές κατασκευές και αν εργάζεστε κατά τη διάρκεια των διακοπών, τότε ακόμα κι αν δεν μπορείτε να βρείτε καμία ξεκάθαρη απόδειξη ότι έχετε παραβιαστεί…

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

Εάν υποψιάζεστε ότι έχετε παραβιαστεί, φυσικά, μην αναβάλλετε αυτές τις ενημερώσεις κλειδιών SSH – εάν δεν τις έχετε κάνει ήδη, κάντε τις αμέσως τώρα!


Σφραγίδα ώρας:

Περισσότερα από Γυμνή ασφάλεια