Το δημοφιλές έργο ανοιχτού κώδικα Moq επικρίθηκε για την αθόρυβη συλλογή δεδομένων
Το έργο ανοιχτού κώδικα Moq (προφέρεται “Mock”) έχει προκαλέσει έντονη κριτική επειδή συμπεριέλαβε αθόρυβα μια αμφιλεγόμενη εξάρτηση στην τελευταία του κυκλοφορία.
Διανεμημένο στο μητρώο λογισμικού NuGet, το Moq βλέπει πάνω από 100.000 λήψεις κάθε μέρα και έχει ληφθεί πάνω από 476 εκατομμύρια φορές κατά τη διάρκεια της ζωής του.
Η κυκλοφορία του Moq 4.20.0 από αυτήν την εβδομάδα περιελάμβανε αθόρυβα ένα άλλο έργο, το SponsorLink, το οποίο προκάλεσε σάλο στους καταναλωτές λογισμικού ανοιχτού κώδικα, οι οποίοι παρομοίασαν την κίνηση με παραβίαση εμπιστοσύνης.
Φαινομενικά ένα έργο ανοιχτού κώδικα, το SponsorLink αποστέλλεται στην πραγματικότητα στο NuGet ως κλειστού κώδικα και περιέχει ασαφή DLL που συλλέγουν κατακερματισμούς των διευθύνσεων email των χρηστών και τα στέλνουν στο CDN του SponsorLink, εγείροντας ανησυχίες σχετικά με το απόρρητο.
Το Moq σπάει την εμπιστοσύνη των χρηστών
Την περασμένη εβδομάδα, ένας από τους ιδιοκτήτες του Moq, ο Daniel Cazzulino (
kzu
), ο οποίος διατηρεί επίσης το έργο SponsorLink,
πρόσθεσε το SponsorLink στο Moq
εκδόσεις 4.20.0 και νεότερες.
Αυτή η κίνηση έστειλε κρουστικά κύματα στο οικοσύστημα ανοιχτού κώδικα σε μεγάλο βαθμό για δύο λόγους—ενώ ο Cazzulino έχει κάθε δικαίωμα να αλλάξει το έργο του Moq, δεν ειδοποίησε τη βάση χρηστών πριν από τη ομαδοποίηση της εξάρτησης και
Τα SponsorLink DLL περιέχουν ασαφή κώδικα
καθιστώντας δύσκολη την αντίστροφη μηχανική και όχι αρκετά “ανοιχτού κώδικα”.
“Φαίνεται ότι ξεκινώντας από την έκδοση 4.20, περιλαμβάνεται το SponsorLink”, ο προγραμματιστής λογισμικού Georg Dangl με έδρα τη Γερμανία.
έχουν αναφερθεί
αναφερόμενος στην έκδοση 4.20.0 του Moq.
“Αυτό είναι ένα έργο κλειστού κώδικα, που παρέχεται ως DLL με ασαφή κώδικα, το οποίο φαίνεται να σαρώνει τουλάχιστον τοπικά δεδομένα (git config;) και στέλνει το κατακερματισμένο email του τρέχοντος προγραμματιστή σε μια υπηρεσία
cloud
.”
Η δυνατότητα σάρωσης είναι μέρος του εργαλείου ανάλυσης .NET που εκτελείται κατά τη διαδικασία κατασκευής και είναι δύσκολο να απενεργοποιηθεί, προειδοποιεί ο Dangl.
«Μπορώ να καταλάβω το σκεπτικό πίσω από αυτό, αλλά αυτό είναι ειλικρινά πολύ τρομακτικό από την άποψη της ιδιωτικής ζωής».
Σύνδεσμος χορηγών
περιγράφει
ως μέσο ενσωμάτωσης
Χορηγοί GitHub
στις βιβλιοθήκες σας, ώστε “οι χρήστες να μπορούν να συνδεθούν σωστά με τη χορηγία τους για να ξεκλειδώσουν λειτουργίες ή απλώς να λάβουν την αναγνώριση που τους αξίζει για την υποστήριξη του έργου σας.”
Χρήστης GitHub Mike (
d0pare
) απομεταγλώττισε τα DLL και μοιράστηκε μια πρόχειρη ανακατασκευή του πηγαίου κώδικα. Η βιβλιοθήκη, σύμφωνα με τον αναλυτή, «δημιουργεί εξωτερική διαδικασία git για να λαμβάνει το email σας».
Στη συνέχεια υπολογίζει έναν κατακερματισμό SHA-256 των διευθύνσεων email και τον στέλνει στο CDN του SponsorLink:
hxxps://cdn.devlooped[.]com/sponsorlink
.

Ο κωδικός τηλεμετρίας είναι κρυμμένος στο Moq και στο SponsorLink
(GitHub)
“Ειλικρινά η
Microsoft
θα πρέπει να προσθέσει σε μαύρη λίστα αυτό το πακέτο που συνεργάζεται με τους παρόχους NuGet.”
γράφει
Ο προγραμματιστής Travis Taylor με έδρα το Όστιν.
“Δεν μπορείς να εμπιστευτείς τον συγγραφέα. Αυτή ήταν μια απίστευτα ανόητη κίνηση που μόλις δημιούργησε ένα σωρό έργα για πολλούς ανθρώπους.”
Ο προγραμματιστής υπερασπίζεται την αλλαγή
Σε ένα σχόλιο, Cazzulino
εξήγησε τους λόγους του
παραδεχόμενος ότι η έκδοση “4.20” ήταν “ένα τρύπημα για να μην το πάρει ο κόσμος τόσο στα σοβαρά.”
«Δοκιμάζω τα νερά με το SponsorLink εδώ και λίγο καιρό (~6 μήνες από τότε
ανακοίνωση
),» λέει ο Cazzulino.
“Ήταν δύσκολο να λάβω πραγματικά σχόλια, οπότε ακόμα κι αν τα σχόλια είναι “λίγο” σκληρά, το εκτιμώ πραγματικά!”
Ο Cazzulino ενημέρωσε περαιτέρω το έργο SponsorLink
ΔΙΑΒΑΣΤΕ
με μια μακροσκελή ενότητα “Θέματα απορρήτου” που εμφανίζεται παρακάτω, η οποία διευκρινίζει ότι δεν συλλέγονται πραγματικές διευθύνσεις ηλεκτρονικού ταχυδρομείου, παρά μόνο οι κατακερματισμοί τους. Ήρθε η ενημέρωση
από πριν λίγες ώρες
— αφού προέκυψε η αντίδραση.
Υπήρχε κάποια ανησυχία ότι το SponsorLink μπορεί να συλλέγει το email σας χωρίς τη ρητή συγκατάθεσή σας. Αυτό είναι λάθος και μπορεί εύκολα να επαληθευτεί εκτελώντας το Fiddler για να δείτε τι είδους κίνηση συμβαίνει.
Συγκεκριμένα, το πραγματικό email δεν αποστέλλεται ποτέ κατά την εκτέλεση του ελέγχου χορηγίας. Το email στον τοπικό σας υπολογιστή έχει κατακερματιστεί με SHA256 και, στη συνέχεια, κωδικοποιείται με Base62. Η προκύπτουσα αδιαφανής συμβολοσειρά (η οποία δεν μπορεί ποτέ να αποκαλύψει το αρχικό email) είναι το μόνο πράγμα που χρησιμοποιείται.
Η μόνη στιγμή που το SponsorLink λαμβάνει πραγματικά τη διεύθυνση email σας (για να εκτελέσει τη συσχέτιση της αδιαφανούς συμβολοσειράς με το πραγματικό email σας και τον χρήστη GH για να συνδέσει τη χορηγία σας), είναι
μετά
εγκαθιστάτε το
Εφαρμογή SponsorLink GitHub
και να του δώσει ρητή άδεια να το κάνει.
Επίσης, τη στιγμή που αναστέλλετε ή απεγκαθιστάτε την εφαρμογή, διαγράφουμε όλες τις εγγραφές που σχετίζονται με τον λογαριασμό σας και τα email σας.
«Η ειδοποίηση φαίνεται να είναι μια αντιδραστική απάντηση στις ηλεκτρονικές αντιδράσεις αντί του έργου να είναι εκ των προτέρων σχετικά με τα δεδομένα που συγκεντρώνονταν», είπε η Ankita Lamba, ανώτερη ερευνήτρια ασφαλείας στη Sonatype στο BleepingComputer αφού εντόπισε την ενημέρωση.
Στο παρελθόν, ο Cazzulino έχει επίσης υπερασπιστεί την απόφασή του να κρατήσει το SponsorLink
κλειστής πηγής
και
θολωμένη
ώστε να αποτραπεί η παράκαμψη ορισμένων ελέγχων της. Σύμφωνα με τα λόγια του, τα αδιαφανή χαρακτηριστικά της βιβλιοθήκης είναι «εκ του σχεδιασμού».
Μια πιθανή ανησυχία για το απόρρητο
Η αθόρυβη συμπερίληψη του SponsorLink σε έργα, όπως το moq, είναι ζήτημα απορρήτου από ηθική και νομική άποψη.
Πρώτα έρχεται το ζήτημα μιας σκοτεινής εξάρτησης κλειστού κώδικα (SponsorLink) που διανέμεται μέσω καναλιών ανοιχτού κώδικα και συμπεριλαμβάνεται σε δημοφιλή έργα OSS, όπως π.χ.
GitInfo
—το οποίο δημιουργείται επίσης από την Cazzulino και έχει ληφθεί εκατομμύρια φορές.
Η συλλογή κατακερματισμένων διευθύνσεων ηλεκτρονικού ταχυδρομείου μπορεί να μην είναι καθόλου ανώνυμη.
Θεωρητικά τουλάχιστον, ο προγραμματιστής του SponsorLink θα μπορούσε να συγκρίνει τους κατακερματισμένους κατακερματισμούς με μια βάση δεδομένων διευθύνσεων email που διέρρευσαν κάπου και να αναγνωρίσει τους χρήστες.
“Θεωρώ τον κατακερματισμό σας περισσότερο ως ασφάλεια από την αφάνεια. Ακόμη και η κατακερματισμένη αλληλογραφία θα πρέπει να αποστέλλεται μόνο κατόπιν συναίνεσης.”
πολιτείες
Μίχαλ Ρόζενμπαουμ.
“Θα έλεγα ότι έχουν δημιουργηθεί σοβαρές ανησυχίες. Η συντριπτική πλειονότητα των χρηστών δεν γνωρίζει καν ότι αυτή η αλλαγή έχει γίνει και θα είχε πρόβλημα.”
πολιτείες
ένας άλλος μηχανικός λογισμικού, ο Kevin Walter.
“Η εμπιστοσύνη με το moq έχει πλέον σπάσει όπως και το
GDPR
. Αυτό είναι τουλάχιστον άδικο. Γίνετε ένα από τα καλά παιδιά”, προέτρεψε ο Walter τον Cazzulino να είναι πιο διαφανής όσον αφορά το σκοτεινό πακέτο SponsorLink.
Σε αντίδραση, αρκετοί προγραμματιστές είτε απείλησαν να διακόψουν τη χρήση του Moq [
1
,
2
] υπέρ των εναλλακτικών λύσεων, και
κατασκευή εργαλείων που θα ανίχνευαν
και να αποκλείσετε τυχόν έργα που εκτελούν το SponsorLink.
Κάποιοι προχώρησαν ένα βήμα παραπέρα, προτείνοντας να το κάνουν
μποϊκοτάζ έργα που χρησιμοποιούν το SponsorLink
ή ακόμα και να αναφέρετε το “SponsorLink” ως κακόβουλο λογισμικό στο μητρώο NuGet [
1
,
2
].
Η BleepingComputer επικοινώνησε με τον δημιουργό του SponsorLink, Cazzulino, για σχόλιο πριν από τη δημοσίευση.


