Λογότυπο Zephyrnet

Αυτή την εβδομάδα στην ασφάλεια: Forksquatting, RustDesk και M&Ms

Ημερομηνία:

Το Github δυσκολεύεται να συμβαδίσει μια καμπάνια κακόβουλου λογισμικού που είναι μια νέα ανατροπή στο typosquatting. Το παιχνίδι είναι απλό: Κλωνοποιήστε δημοφιλή αποθετήρια, προσθέστε κακόβουλο λογισμικό και διαφημίστε τα πιρούνια ως πρωτότυπα. Μερικοί προγραμματιστές μπερδεύουν τα πιρούνια με τα πραγματικά έργα και εκτελούν ακούσια το κακόβουλο λογισμικό. Η προφανής επιλογή ονομασίας είναι το forksquatting, αλλά το Οι ερευνητές στο apiiro χρησιμοποίησαν το ασφαλέστερο όνομα "Repo Confusion".

Η καμπάνια είναι αυτοματοποιημένη και το GitHub το γνωρίζει, με τη συντριπτική πλειοψηφία αυτών των κακόβουλων αποθετηρίων να αφαιρούνται αμέσως. Για οποιονδήποτε λόγο, ο αλγόριθμος GitHub δεν συλλαμβάνει όλα τα νέα repos. Η τρέχουσα καμπάνια φαίνεται να δημοσιεύει εκατομμύρια πιρούνια, χρησιμοποιώντας κώδικα από περισσότερα από 100,000 νόμιμα έργα. Έχει αρχίσει να φαίνεται ότι η οικογένεια των καταληψιών είναι εδώ για να μείνει.

Πιστοποιητικά RustDesk και Odd

Το λογισμικό απομακρυσμένης πρόσβασης RustDesk είναι ενδιαφέρον, καθώς είναι ανοιχτού κώδικα, επιτρέπει self-hosting και είναι γραμμένο σε Rust. Είχα να εξερευνήσω το RustDesk ως αντικείμενο εργασίας εδώ και πολύ καιρό, αλλά ένα κομμάτι ανησυχητικό δράμα μόλις τελείωσε. Ένας χρήστης το είχε επισημάνει τον Νοέμβριο ένα δοκιμαστικό πιστοποιητικό ρίζας εγκαταστάθηκε ως μέρος της εγκατάστασης του RustDesk. Αυτό το ριζικό πιστοποιητικό είναι αυτο-υπογεγραμμένο με SHA1. Υπάρχει επίσης ανησυχία ότι τα δυαδικά αρχεία RustDesk έχουν υπογραφεί με διαφορετικό πιστοποιητικό.

Από τότε έχουν γίνει νέα γεγονότα. Πρώτον, υπήρχε ένα νήμα Hacker News σχετικά με το θέμα στις αρχές αυτού του μήνα. Την επόμενη μέρα, CVE-2024-25140 εγγράφηκε στο NIST, κατατάσσοντας ένα τρελό CVE 9.8 CVSS. Ας κόψουμε λίγο FUD και ας μιλήσουμε για το τι πραγματικά συμβαίνει.

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

Στη συνέχεια, το RustDesk διαθέτει ένα έγκυρο, υπογεγραμμένο πιστοποιητικό για τα εκτελέσιμα. Το αυτο-υπογεγραμμένο πιστοποιητικό ρίζας προορίζεται αυστηρά για την υπογραφή ενός προγράμματος οδήγησης πυρήνα, το οποίο απαιτεί πιστοποιητικό εκτεταμένης επικύρωσης (EV). Είναι λίγο ανησυχητικό το γεγονός ότι αυτή η απαίτηση μπορεί να παρακαμφθεί τόσο εύκολα με την εγκατάσταση ενός πιστοποιητικού root κατά την εγκατάσταση της εφαρμογής, αλλά αυτό είναι στη Microsoft και όχι στο RustDesk.

Η τελευταία ανησυχία εδώ είναι ότι αυτό το πιστοποιητικό εγκαθίσταται ως αρχή έκδοσης πιστοποιητικών (CA) σε όλο το σύστημα. Αυτό είναι το πιο ανησυχητικό στοιχείο αυτού του έπος, αλλά τα πιστοποιητικά έχουν ένα πεδίο που προσδιορίζει τη χρήση κλειδιού (KU) και την εκτεταμένη χρήση κλειδιού (EKU). Το RustDesk CA προορίζεται αποκλειστικά για υπογραφή κώδικα. Αυτό δεν επιτρέπει στο RustDesk ή σε οποιονδήποτε έχει αυτό το κλειδί να σπάσει το TLS ή να πλαστογραφήσει ιστότοπους. Επιτρέπει την υπογραφή κωδικού, κάτι που θα μπορούσε να είναι μια έγκυρη ανησυχία, αλλά δεν είναι η κατάσταση που εμφανίζεται αρχικά.

Το RustDesk έχει τραβήξει αυτό το κλειδί από την εγκατάστασή του, κάτι που συμβαίνει να απενεργοποιεί το πρόγραμμα οδήγησης εικονικής οθόνης. Αυτή ήταν η λειτουργικότητα που απαιτούσε ένα υπογεγραμμένο πρόγραμμα οδήγησης πυρήνα. Τα τελευταία νέα είναι ότι οι προγραμματιστές RustDesk λαμβάνουν κάποια βοήθεια και επιδιώκουν ένα πιστοποιητικό υπογραφής κωδικού EV και αναμένεται να ολοκληρωθεί αυτή η διαδικασία σε περίπου ένα μήνα. Και αυτό το CVE, με βαρύτητα 9.8; Φαίνεται εντελώς ψεύτικο.

Ultimate Member SQL Injection

Η προσθήκη Ultimate Member WordPress έχει ενημερωθεί για να κυκλοφορήσει την έκδοση 2.8.3, επιδιόρθωση ελαττώματος ένεσης SQL που ήταν προσβάσιμο ως χρήστης χωρίς έλεγχο ταυτότητας. Με βάση τη διαφορά ενημέρωσης, το βασικό ζήτημα είναι μάλλον ένα χαμένο prepare() στη γραμμή 704. Ω, και προφανώς γίνεται ανίχνευση και πιθανή εκμετάλλευση στην άγρια ​​φύση, οπότε πηγαίνετε να μπαλώσετε.

Αυτή είναι πιθανώς μια καλή στιγμή για να συζητήσετε γιατί υπάρχουν τόσες πολλές επιθέσεις SQL injection στο WordPress. Πρώτον, η ένεση SQL είναι όταν τα δεδομένα που παρέχονται από τον χρήστη ερμηνεύονται ως μέρος της εντολής SQL που πρέπει να εκτελεστεί. Αυτό γίνεται συμπεριλαμβάνοντας έναν απροσδόκητο χαρακτήρα. Για παράδειγμα, ένα ερωτηματικό υποδεικνύει το τέλος μιας πρότασης και μπορεί να χρησιμοποιηθεί για να ξεκινήσει η επόμενη. Έτσι, όπου ένα αφελές πρόγραμμα περιμένει έναν αριθμό, μια εισαγωγή του 15; DROP TABLE Students θα ικανοποιήσει μια πρόταση SQL και θα εισάγει μια δεύτερη πρόταση που θα εκτελεστεί στη βάση δεδομένων.

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

Η δεύτερη προσέγγιση είναι η χρήση προετοιμασμένων δηλώσεων. Αυτό διαχωρίζει την εντολή SQL από τα δεδομένα με θεμελιώδη τρόπο. Είναι κάτι σαν $database->prepare("INSERT INTO Students (name, age) VALUES (?, ?)"); για να στείλετε τις εντολές SQL. Μετά ακολουθείται από $database->bind_param("si", $name, $age); για να ορίσετε τις τιμές που θα χρησιμοποιηθούν. Και τέλος α $database->execute(); στην πραγματικότητα εκτελεί το ερώτημα. Δεν είναι δυνατή η ένεση λόγω του αυστηρού διαχωρισμού μεταξύ του κώδικα και των τιμών.

Τώρα ερχόμαστε στο WordPress, το οποίο έχει το δικό του wpdb κλάση για κλήσεις βάσης δεδομένων. Αυτό περιλαμβάνει μια χρήσιμη λειτουργία, wpdb::prepare() που μοιάζει σχεδόν με μια προετοιμασμένη δήλωση όπως φαίνεται παραπάνω.

$wpdb->prepare( "u.user_registered BETWEEN %s AND %s", $from_date, $to_date );

Μόνο που δεν είναι καθόλου. ο prepare() λειτουργία κάνει αυστηρά ένα πέρασμα απολύμανσης, και ένα sprintf() αντικατάσταση αξίας. ο prepare() Η συνάρτηση στην πραγματικότητα δεν παράγει μια προετοιμασμένη δήλωση βάσης δεδομένων. Το WordPress δεν παρέχει έναν τρόπο για να χρησιμοποιήσετε πραγματικά προετοιμασμένες δηλώσεις. Λείπει ένα από τα βασικά παραδείγματα για να κρατήσουν τους προγραμματιστές μακριά από προβλήματα με τις ενέσεις SQL.

Οι M&Ms παρακολουθούν

Έχω κάτι σαν χόμπι. Μου φαίνεται διασκεδαστικό να εντοπίζω μηχανήματα που δεν συμπεριφέρονται σωστά και να προσπαθώ να καταλάβω ποιο λειτουργικό σύστημα εκτελείται κάτω από το γυαλιστερό GUI. Η πιο περίεργη ενσωματωμένη συσκευή που έχω βρει είναι ένας σαρωτής σελίδας που εκτελούσε ένα πλήρες αντίγραφο των Windows. Οι σαρωτές τιμών στο τοπικό σας κατάστημα μεγάλου κουτιού μπορεί απλώς να εκτελούν Windows CE. Τα κέντρα ενημέρωσης και ψυχαγωγίας με πλάτη αεροπλάνου διαθέτουν ένα πολύ παλιό Linux. Και προφανώς λειτουργούν οι αυτόματοι πωλητές M&M στο Πανεπιστήμιο του Waterloo Windows με την εφαρμογή Invenda.Vending.FacialRecognition.App.exe.

Γνωρίζουμε ότι επειδή το [SquidKid47] εντόπισε μια άγνωστη εξαίρεση λογισμικού στην οθόνη του μηχανήματος αυτόματης πώλησης και τη μοιράστηκε στο reddit. ΕΝΑ σχολική εφημερίδα πήρε την ιστορία (pdf) και διαπίστωσε ότι το μηχάνημα αυτόματης πώλησης χρησιμοποιεί κάμερα και ανίχνευση προσώπου ως συνδυασμό έξυπνου αισθητήρα κίνησης και ανιχνευτή δημογραφικών στοιχείων για στοχευμένη διαφήμιση. Ναι, αυτά τα μηχανήματα αυτόματης πώλησης προβάλλουν στοχευμένες διαφημίσεις. Τουλάχιστον το έκαναν. Αυτά τα μηχανήματα αυτόματης πώλησης έχουν συνάντησε το Βατερλώ τους στο Πανεπιστήμιο του Βατερλό, με το σχολείο να ζητά επίσημα πλέον την απομάκρυνσή τους.

Bits και Bytes

Χτύπησε το κουδούνι στο Pwn: Αποδεικνύεται ότι μερικά έξυπνα κουδούνια δεν είναι και τόσο έξυπνα. Δεν αποτελεί έκπληξη το γεγονός ότι υπάρχει μια διαδικασία επαναφοράς ενός έξυπνου κουδουνιού πόρτας, για να το συσχετίσετε με έναν άλλο λογαριασμό. Είναι μάλλον περίεργο το γεγονός ότι αυτή η διαδικασία είναι τόσο εύκολη όσο κρατάτε το ίδιο το κουμπί του μεγάλου κουδουνιού για 8 δευτερόλεπτα. Τουλάχιστον, ο νόμιμος κάτοχος θα λάβει ένα email σχετικά με την αλλαγή.

Η ανασφάλεια του εκτυπωτή δεν είναι κάτι καινούργιο, αλλά η ασφάλεια των 3D εκτυπωτών εξακολουθεί να είναι μια εξειδικευμένη ιδέα. Αυτό μπορεί να αλλάξει, τώρα που το αντίστοιχο αρχείου "greetings.txt" έχει απορριφθεί σε ένα σωρό εκτυπωτές Anycubic. Προφανώς το Anycubic χρησιμοποιεί έναν διακομιστή MQTT που πραγματικά δεν έχει επαρκή στοιχεία ελέγχου πρόσβασης.

Είναι πάλι εκείνη η ώρα, που μια επιδιόρθωση ευπάθειας έχει κυκλοφορήσει για το GitLab, και ήρθε η ώρα να ενημερώσετε. Αυτό που ξεχωρίζει αυτή τη φορά είναι ένα ελάττωμα Cross Site Scripting (XSS) κατά την επίσκεψη στη σελίδα προφίλ ενός χρήστη. Το αφήνω ως άσκηση για τον αναγνώστη, να παράγει δείγμα κώδικα που αντιγράφει το "samy is my hero" στη σελίδα προφίλ κάθε επισκέπτη.

Και τέλος, στο τμήμα ειρωνείας, Στην Avast επιβλήθηκε πρόστιμο για τη χρήση μιας προσθήκης απορρήτου του προγράμματος περιήγησης ως πλατφόρμα για τη συλλογή και την πώληση δεδομένων χρήστη. Αυτό συνέβη από το 2014 έως το 2020, χρησιμοποιώντας την πλατφόρμα Jumpshot για την πραγματική πώληση δεδομένων. Τα δεδομένα ήταν ονομαστικά ανώνυμα, αλλά η ποσότητα και οι λεπτομέρειες των διαθέσιμων πληροφοριών είναι λίγο συγκλονιστικές. Αξίζει να σημειωθεί ότι το Jumpshot δεν υπάρχει πλέον και η Avast ανήκει πλέον σε άλλη εταιρεία. Ελπίζουμε χωρίς συλλογή πληροφοριών χρήστη.

spot_img

Τελευταία Νοημοσύνη

spot_img