Οι προγραμματιστές Rust ωθούν πίσω καθώς το έργο Serde στέλνει προμεταγλωττισμένα δυαδικά αρχεία

Το Serde, ένα δημοφιλές έργο (απο)σειριοποίησης του Rust, αποφάσισε να το στείλει

serde_derive

μακροεντολή ως προμεταγλωτ

σμένο δυαδικό.

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

συντηρητή που δημοσιεύει αυτά τα δυαδικά αρχεία παραβιαστεί.

Σύμφωνα με το μητρώο πακέτων Rust, crates.io,

serde

έχει γίνει λήψη

πάνω από 196 εκατομμύρια φορές

κατά τη διάρκεια της ζωής του, ενώ το


serde_derive


Η macro έχει σημειώσει περισσότερες από 171 εκατομμύρια λήψεις, επιβεβαιώνοντας την ευρεία κυκλοφορία του έργου.

Η μακροεντολή Serde γίνεται εκ των προτέρων μεταγλωττισμένη: δεν υπάρχει τρόπος να εξαιρεθείτε

Πριν από περίπου τρεις εβδομάδες, ένας προγραμματιστής της Rust που χρησιμοποιούσε το έργο Serde στην εφαρμογή του παρατήρησε κάτι περίεργο.

«Δουλεύω στη συσκευασία του Serde για το Fedora

και παρατήρησα ότι οι πρόσφατες εκδόσεις του

serde_derive

στείλτε ένα προμεταγλωττισμένο δυαδικό αρχείο τώρα”

έγραψε

Fabio Valentini, μέλος της Επιτροπής Συσκευασίας Fedora.

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

Το Serde είναι ένα ευρέως χρησιμοποιούμενο

ser

ιαλοποίηση και

de

πλαίσιο σειριοποίησης για δομές δεδομένων Rust που,

σύμφωνα με την ιστοσελίδα της

έχει σχεδιαστεί για να διεξάγει αυτές τις λειτουργίες “αποτελεσματικά και γενικά”.

“Το οικοσύστημα Serde αποτελείται από δομές δεδομένων που ξέρουν πώς να σειριοποιούν και να αποσειροποιούν τον εαυτό τους μαζί με μορφές δεδομένων που ξέρουν πώς να σειριοποιούν και να αποσειροποιούν άλλα πράγματα”, αναφέρει ο ιστότοπος του έργου. Ενώ, “

αντλώ

” είναι μια από τις μακροεντολές του.

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

Ο David Tolnay, ο οποίος είναι ο κύριος συντηρητής του Serde,

αποκρίθηκε

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

Μετά από μια εισροή σχολίων από προγραμματιστές σχετικά με το γιατί η απόφαση δεν ήταν η καταλληλότερη για το έργο, ο Tolnay

αναγνώρισε την ανατροφοδότηση

πριν κλείσετε το ζήτημα του

.

Η αιτιολόγησή του για την αποστολή προμεταγλωττισμένων δυαδικών αρχείων αναπαράγεται ολόκληρη παρακάτω.

“Η προμεταγλωττισμένη υλοποίηση είναι ο μόνος υποστηριζόμενος τρόπος χρήσης των μακροεντολών που δημοσιεύονται

serde_derive

.

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

Ξεχωριστά, όσον αφορά το παραπάνω σχόλιο σχετικά με την ασφάλεια, ο καλύτερος δρόμος προς τα εμπρός θα ήταν για ένα από τα άτομα που ενδιαφέρονται για αυτό να επενδύσει σε ένα Cargo ή crates.io RFC γύρω από προμεταγλωττισμένες μακροεντολές πρώτης κατηγορίας, ώστε να υπάρχει μια προσέγγιση που θα ταιριάζει σε εσάς. προτιμήσεις?

serde_derive

θα το υιοθετούσε όταν ήταν διαθέσιμο».

Η BleepingComputer προσέγγισε τον Tolnay με πρόσθετες ερωτήσεις πριν από τη δημοσίευση.

“Πρώτα το Moq του .NET και τώρα αυτό.”

Ορισμένοι προγραμματιστές Rust ζητούν να διατηρηθούν τα προμεταγλωττισμένα δυαδικά αρχεία

προαιρετικός

και χωριστά από το αρχικό κιβώτιο “serde_derive”, ενώ άλλοι έχουν παρομοιάσει την κίνηση στην αμφιλεγόμενη αλλαγή κώδικα με το έργο Moq .NET που πυροδότησε αντιδράσεις.

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

ζητείται

ένας χρήστης.

“Ή αντίστροφα. Ή οποιαδήποτε άλλη λύση που επιτρέπει τη δημιουργία από πηγή χωρίς να χρειάζεται να επιδιορθώσετε το serde_derive.”

“Η αποστολή ενός δυαδικού αρχείου ως μέρος του κιβωτίου, ενώ κατανοώ τα πλεονεκτήματα της ταχύτητας του χρόνου κατασκευής, για λόγους ασφαλείας

βιώσιμη λύση για ορισμένους χρήστες της βιβλιοθήκης.”

Χρήστες

επεσήμανε

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

«…Πρώτα το Moq του .NET και τώρα αυτό», είπε ο Jordan Singh, ένας προγραμματιστής με έδρα την Αυστραλία, σε ένα

σχόλιο

που αργότερα αφαιρέθηκε.

“Αν αυτό είναι για να αναγκάσει τους προγραμματιστές φορτίου να υποστηρίξουν ένα χαρακτηριστικό, τότε είναι τρομερός τρόπος να το κάνουμε. Τουλάχιστον δώστε μας αναπαραγώγιμα δυαδικά αρχεία. Έχω βαρεθεί τους προγραμματιστές δημοφιλών κιβωτίων/βιβλιοθηκών να κρατούν τους πάντες ομήρους με παράλογες αποφάσεις.”

Donald Stufft με έδρα τη Φιλαδέλφεια

προειδοποίησε κατά

οι κίνδυνοι να μπείτε στην επιχείρηση «αποστολής δυαδικών» στα μέσα κοινωνικής δικτύωσης:

, Οι προγραμματιστές Rust ωθούν πίσω καθώς το έργο Serde στέλνει προμεταγλωττισμένα δυαδικά αρχεία, TechWar.gr

Ο προγραμματιστής προειδοποιεί κατά της επιχείρησης “δυαδικών αρχείων αποστολής”.

Ο προγραμματιστής του Rust Nathan West, που περνάει

Lucretiel

ΕΙΔΙΚΑ

τονίζεται

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

, Οι προγραμματιστές Rust ωθούν πίσω καθώς το έργο Serde στέλνει προμεταγλωττισμένα δυαδικά αρχεία, TechWar.gr

Κίνδυνοι της εφοδιαστικής αλυσίδας που σχετίζονται με την αποστολή προμεταγλωττισμένων δυαδικών αρχείων

“Δεν είναι ακριβώς αυτός ο τρόπος με τον οποίο θα το έκαναν; Στείλτε το σιωπηλά ως μια ημι-εύλογη αλλαγή στο πώς

serde

έργα, αγνοήστε αδιάλλακτη κάθε κριτική για την απόφαση», έγραψε ο Γουέστ.

“Αυτός είναι *ακριβώς* ο λόγος που όλοι έχουν μια τέτοια αντανακλαστική αντίθεση σε κινήσεις σαν αυτή.”

«Η εμπιστοσύνη στο διαδίκτυο δεν είναι τέλεια· *δεν* ξέρουμε ότι αυτό είναι πραγματικά [the maintainer] ανάρτηση στο GitHub. Γι’ αυτό έχουμε στρώματα και πληρεξούσιους άμυνας. το πρόχειρο sh*t απορρίπτεται γιατί δεν αξίζει το ρίσκο.

Ο τεχνολόγος Sanket Kanjalkar κάλεσε τη μετάβαση σε δυαδικά πλοία χωρίς τρόπο εξαίρεσης “

ένα βήμα πίσω

.”

Αλλά, ένας επαγγελματίας ασφαλείας που πηγαίνει από Lander, έχει

μια ελαφρώς διαφορετική λήψη

:

«Αυτό το δράμα του Rust για

serde_derive

Η αποστολή ενός προμεταγλωττισμένου δυαδικού αρχείου είναι κάπως αστεία», γράφει ο Lander.

“Από τη μια, καταλαβαίνω την ανησυχία των ανθρώπων. Από την άλλη, ποιος νοιάζεται; κανείς δεν διαβάζει proc macro

code/build.rs

κώδικας για κάθε έργο που κάνουν ούτως ή άλλως. Μια εξαίρεση θα ήταν καλή ιδέα όμως».

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


Χάρη σε

Μάικλ Κερνς

για την άκρη.



bleepingcomputer.com


Leave A Reply



Cancel Reply

Your email address will not be published.