Το Callisto είναι ένα έξυπνο αυτοματοποιημένο εργαλείο ανάλυσης δυαδικών ευπαθειών. Σκοπός του είναι να απομεταγλωττίζει αυτόνομα ένα παρεχόμενο δυαδικό αρχείο και να εξετάζει την έξοδο του ψευδοκώδικα αναζητώντας πιθανές ευπάθειες ασφαλείας σε αυτόν τον ψευδοκώδικα. Ο headless αποσυμπιεστής της Ghidra είναι αυτός που οδηγεί το τμήμα της αποσυμπίεσης και ανάλυσης του δυαδικού. Η ανάλυση του ψευδοκώδικα εκτελείται αρχικά από το εργαλείο Semgrep SAST και στη συνέχεια μεταφέρεται στο GPT-3.5-Turbo για την επικύρωση των ευρημάτων του Semgrep, καθώς και για τον πιθανό εντοπισμό πρόσθετων ευπαθειών.
Σκοπός αυτού του εργαλείου είναι να βοηθήσει στην ανάλυση δυαδικών αρχείων και στην ανακάλυψη ευπαθειών μηδενικής ημέρας. Η έξοδος έχει ως στόχο να βοηθήσει τον ερευνητή να εντοπίσει πιθανές περιοχές ενδιαφέροντος ή ευάλωτα στοιχεία στο δυαδικό αρχείο, τα οποία μπορούν να ακολουθηθούν με δυναμικές δοκιμές για επικύρωση και εκμετάλλευση. Σίγουρα δεν θα πιάσει τα πάντα, αλλά η διπλή επικύρωση με Semgrep σε GPT-3.5 έχει ως στόχο να μειώσει τα ψευδώς θετικά αποτελέσματα και να επιτρέψει μια βαθύτερη ανάλυση του προγράμματος.
Για όσους θέλουν απλώς να αξιοποιήσουν το εργαλείο ως ένα γρήγορο headless decompiler, το αρχείο output.c που δημιουργείται θα περιέχει όλο τον εξαγόμενο ψευδοκώδικα από το δυαδικό πρόγραμμα. Αυτό μπορεί να συνδεθεί στα δικά σας εργαλεία SAST ή να αναλυθεί χειροκίνητα.
Απαιτήσεις Συστήματος
Αν θέλετε να χρησιμοποιήσετε τη λειτουργία GPT-3.5-Turbo, πρέπει να δημιουργήσετε ένα κουπόνι API στο OpenAI και να το αποθηκεύσετε στο αρχείο config.txt σε αυτόν τον φάκελο
Βεβαιωθείτε ότι η σωστή διαδρομή προς τον κατάλογο Ghidra έχει οριστεί στο αρχείο config.txt
Για να τρέξει:python callisto.py -b <path_to_binary> -ai -o <path_to_output_file>
-ai => ενεργοποίηση της ανάλυσης OpenAI GPT-3.5-Turbo. Απαιτείται η τοποθέτηση ενός έγκυρου κλειδιού OpenAI API στο αρχείο config.txt
-o => ορίστε ένα αρχείο εξόδου, αν θέλετε να αποθηκεύσετε την έξοδο
-ai and -o είναι προαιρετικές παράμετροι
-all θα εκτελέσει όλες τις συναρτήσεις μέσω του OpenAI Analysis, ανεξάρτητα από τυχόν ευρήματα του Semgrep. Αυτή η σημαία απαιτεί την προαπαιτούμενη σημαία -ai
Οι Σύγχρονες GPU είναι ευάλωτες σε επιθέσεις GPU.zip side-channel
Ερευνητές από τέσσερα αμερικανικά πανεπιστήμια ανέπτυξαν μια νέα επίθεση δευτερεύοντος καναλιού GPU που αξιοποιεί τη συμπίεση δεδομένων για να διαρρεύσουν ευαίσθητα οπτικά δεδομένα από τις σύγχρονες κάρτες γραφικών κατά την επίσκεψη σε ιστοσελίδες.
Οι ερευνητές απέδειξαν την αποτελεσματικότητα αυτής της επίθεσης “GPU.zip” εκτελώντας επιθέσεις κλοπής pixel από φίλτρο SVG cross-origin μέσω του προγράμματος περιήγησης Chrome.
Οι ερευνητές αποκάλυψαν την ευπάθεια στους επηρεαζόμενους κατασκευαστές καρτών γραφικών τον Μάρτιο του 2023. Ωστόσο, μέχρι τον Σεπτέμβριο του 2023, κανένας από τους επηρεαζόμενους προμηθευτές GPU (AMD, Apple, Arm, NVIDIA, Qualcomm) ή η Google (Chrome) δεν έχουν κυκλοφορήσει διορθώσεις για την αντιμετώπιση του προβλήματος.
Το νέο ελάττωμα περιγράφεται σε έγγραφο από ερευνητές του Πανεπιστημίου του Τέξας στο Όστιν, του Πανεπιστημίου Carnegie Mellon, του Πανεπιστημίου της Ουάσινγκτον και του Πανεπιστημίου του Ιλινόις Urbana-Champaign και θα δημοσιευτεί στο 45ο Συμπόσιο IEEE για την Ασφάλεια και την Ιδιωτικότητα.
Διαρροή μέσω συμπίεσης
Γενικά, η συμπίεση δεδομένων δημιουργεί ξεχωριστή κίνηση DRAM και χρήση κρυφής μνήμης, η οποία μπορεί να χρησιμοποιηθεί για διαρροή μυστικών, οπότε το λογισμικό απενεργοποιεί τη συμπίεση όταν χειρίζεται ευαίσθητα δεδομένα.
Οι ερευνητές του GPU.zip εξηγούν ότι όλες οι σύγχρονες μονάδες επεξεργαστών γραφικών, ειδικά τα ενσωματωμένα τσιπ της Intel και της AMD, εκτελούν συμπίεση δεδομένων που είναι ορατή από το λογισμικό, ακόμη και όταν δεν τους ζητείται ρητά.
Οι σύγχρονες GPU ακολουθούν αυτή την επικίνδυνη πρακτική ως στρατηγική βελτιστοποίησης, καθώς βοηθά στην εξοικονόμηση εύρους ζώνης μνήμης και στη βελτίωση των επιδόσεων χωρίς λογισμικό.
Αυτή η συμπίεση είναι συχνά μη τεκμηριωμένη και ειδική για τον προμηθευτή και οι ερευνητές βρήκαν έναν τρόπο να την εκμεταλλευτούν για να διαρρεύσουν οπτικά δεδομένα από τις GPU.
Συγκεκριμένα, παρουσίασαν μια επίθεση που εξάγει μεμονωμένα δεδομένα pixel μέσω ενός προγράμματος περιήγησης στο διαδίκτυο σε διάφορες συσκευές και αρχιτεκτονικές GPU, όπως φαίνεται παρακάτω.
Η proof-of-concept επίθεση επιδεικνύει την κλοπή του ονόματος χρήστη από ένα iframe της Wikipedia, η οποία είναι δυνατή μέσα σε 30 λεπτά σε Ryzen και 215 λεπτά σε Intel GPU, με ακρίβεια 97% και 98,3%, αντίστοιχα.
Το iframe φιλοξενεί μια διασταυρούμενη ιστοσελίδα της οποίας τα pixel απομονώνονται και μετατρέπονται σε δυαδικά, δηλαδή μετατρέπονται σε δύο πιθανά χρώματα.
Στη συνέχεια, αυτά τα εικονοστοιχεία μεγεθύνονται και εφαρμόζεται μια εξειδικευμένη στοίβα φίλτρων SVG για τη δημιουργία υφών που είναι είτε συμπιέσιμες είτε όχι. Μετρώντας τον χρόνο που απαιτείται για την απόδοση της υφής, οι ερευνητές μπορούν να συμπεράνουν το αρχικό χρώμα/κατάσταση του εικονοστοιχείου-στόχου.
Πρόσφατα είδαμε την εφαρμογή των φίλτρων SVG για την πρόκληση εκτέλεσης που εξαρτάται από τα δεδομένα και τη χρήση της JavaScript για τη μέτρηση του χρόνου και της συχνότητας υπολογισμού για τη διάκριση του χρώματος του εικονοστοιχείου στην επίθεση “Hot Pixels”.
Ενώ το Hot Pixels εκμεταλλεύεται τους εξαρτώμενους από τα δεδομένα χρόνους υπολογισμού στους σύγχρονους επεξεργαστές, το GPU.zip στηρίζεται στην ατεκμηρίωτη συμπίεση δεδομένων της GPU για να επιτύχει παρόμοια αποτελέσματα.
Η σοβαρότητα του GPU.zip
Το GPU.zip επηρεάζει σχεδόν όλους τους μεγάλους κατασκευαστές GPU, συμπεριλαμβανομένων των AMD, Apple, Arm, Intel, Qualcomm και NVIDIA, αλλά δεν επηρεάζονται εξίσου όλες οι κάρτες.
Το γεγονός ότι κανένας από τους επηρεαζόμενους κατασκευαστές δεν έχει αποφασίσει να διορθώσει το πρόβλημα βελτιστοποιώντας την προσέγγιση συμπίεσης δεδομένων και περιορίζοντας τη λειτουργία της σε μη ευαίσθητες περιπτώσεις αυξάνει περαιτέρω τον κίνδυνο.
Αν και το GPU.zip επηρεάζει δυνητικά τη συντριπτική πλειονότητα των φορητών υπολογιστών, των smartphones, των tablet και των επιτραπέζιων υπολογιστών παγκοσμίως, ο άμεσος αντίκτυπος στους χρήστες μετριάζεται από την πολυπλοκότητα και το χρόνο που απαιτείται για την εκτέλεση της επίθεσης.
Επίσης, οι ιστότοποι που αρνούνται την ενσωμάτωση iframe cross-origin δεν μπορούν να χρησιμοποιηθούν για τη διαρροή δεδομένων χρηστών μέσω αυτής ή παρόμοιων επιθέσεων πλευρικού καναλιού.
“Οι περισσότεροι ευαίσθητοι ιστότοποι αρνούνται ήδη την ενσωμάτωση από ιστότοπους cross-origin. Ως αποτέλεσμα, δεν είναι ευάλωτες στην επίθεση κλοπής pixel που τοποθετήσαμε χρησιμοποιώντας το GPU.zip”, εξηγούν οι ερευνητές σε ένα FAQ στον ιστότοπο της ομάδας.
Τέλος, οι ερευνητές σημειώνουν ότι ο Firefox και ο Safari δεν πληρούν όλα τα κριτήρια που απαιτούνται για να λειτουργήσει το GPU.zip, όπως η δυνατότητα φόρτωσης cross-origin iframes με cookies, η απόδοση φίλτρων SVG σε iframes και η ανάθεση εργασιών rendering στη GPU.
Η προστασία μιας ιστοσελίδας WordPress είναι κρίσιμη για τη διατήρηση της ασφάλειάς της. Εδώ έχουμε μερικές βασικές οδηγίες για το πώς να προστατεύσετε την ιστοσελίδα σας:
Κρατήστε το WordPress, θέματα και πρόσθετα ενημερωμένα: Οι ενημερώσεις περιλαμβάνουν συχνά διορθώσεις ασφαλείας. Βεβαιωθείτε ότι το WordPress, τα θέματά σας και τα πρόσθετά σας είναι πάντα ενημερωμένα.
Χρησιμοποιήστε ισχυρούς κωδικούς πρόσβασης: Χρησιμοποιήστε μία συνδυασμό πεζών και κεφαλαίων γραμμάτων, αριθμών και ειδικών χαρακτήρων για τους κωδικούς πρόσβασης του διαχειριστή σας.
Περιορίστε τις προσπάθειες σύνδεσης: Εγκαταστήστε ένα πρόσθετο περιορισμού προσπαθειών σύνδεσης (login attempts) για να αποτρέψετε επιθέσεις brute force.
Χρησιμοποιήστε SSL/HTTPS: Εγκαταστήστε ένα πιστοποιητικό SSL για να κρυπτογραφείτε την επικοινωνία με την ιστοσελίδα σας, προσφέροντας έτσι ασφαλή σύνδεση.
Περιορίστε την πρόσβαση στον φάκελο wp-admin: Μπορείτε να περιορίσετε την πρόσβαση στον φάκελο wp-admin μόνο σε συγκεκριμένες IP διευθύνσεις.
Ενεργοποιήστε την διήθηση δύο παραγόντων (2FA): Η συνδεση δύο παραγόντων προσθέτει επιπρόσθετη ασφάλεια, απαιτώντας έναν επιπλέον κωδικό εκτός από τον κωδικό πρόσβασης.
Καθαρίστε τον κώδικά σας: Αναζητήστε τυχόν αδυναμίες στον κώδικά σας και επιδιορθώστε τις αμέσως. Επιπλέον, απενεργοποιήστε ή διαγράψτε πρόσθετα ή θέματα που δεν χρησιμοποιείτε.
Εφαρμόστε αντι-DDoS μέτρα: Χρησιμοποιήστε μια υπηρεσία προστασίας από DDoS επιθέσεις για να προστατεύσετε την ιστοσελίδα σας από υπερφορτώσεις και επιθέσεις αυξημένης κίνησης.
Κάντε τακτικά αντίγραφα ασφαλείας: Κάντε τακτικά αντίγραφα ασφαλείας της ιστοσελίδας σας, συμπεριλαμβανομένης της βάσης δεδομένων, για να αποκαταστήσετε την ιστοσελίδα σε περίπτωση προβλημάτων.
Έκλεψαν κλειδιά SSH από ροή κακόβουλων πακέτων PyPI και npm
Μια σειρά κακόβουλων πακέτων npm και PyPi έχουν βρεθεί να κλέβουν ένα ευρύ φάσμα ευαίσθητων δεδομένων από προγραμματιστές λογισμικού στις πλατφόρμες αυτές.
Η εκστρατεία ξεκίνησε στις 12 Σεπτεμβρίου 2023 και ανακαλύφθηκε για πρώτη φορά από τη Sonatype, οι αναλυτές της οποίας ανακάλυψαν 14 κακόβουλα πακέτα στο npm.
Η Phylum αναφέρει ότι μετά από μια σύντομη διακοπή λειτουργίας στις 16 και 17 Σεπτεμβρίου, η επίθεση συνεχίστηκε και επεκτάθηκε στο οικοσύστημα PyPI.
Από την έναρξη της εκστρατείας, οι επιτιθέμενοι έχουν ανεβάσει 45 πακέτα στο npm (40) και στο PyPI (5), με παραλλαγές στον κώδικα που υποδηλώνουν ταχεία εξέλιξη της επίθεσης.
Κακόβουλα πακέτα
Ο πλήρης κατάλογος των κακόβουλων πακέτων που διανεμήθηκαν στο πλαίσιο αυτής της εκστρατείας βρίσκεται στο κάτω μέρος της έκθεσης της Phylum.
Ωστόσο, αξίζει να σημειωθεί ότι τα παρακάτω πακέτα χρησιμοποίησαν typosquatting για να μοιάζουν με νόμιμα δημοφιλή πακέτα, γεγονός που μπορεί να ξεγελάσει τους προγραμματιστές ώστε να τα εγκαταστήσουν:
shineouts και @dynamic-form-components/shineout – μιμούνται τη δημοφιλή βιβλιοθήκη React “Shineout”
apm-web-vitals – θα μπορούσε να περάσει ως “APM” (application performance monitoring) για τη βιβλιοθήκη “web-vitals” της Google που μετρά την απόδοση του ιστού
eslint-plugin-shein-soc-raw και @spgy/eslint-plugin-spgy-fe – προσποιούνται ότι είναι πρόσθετα ESLint
ssc-concurrent-log-handler & sc-concurrent-log-handler – προσποιούνται ότι είναι νόμιμα βοηθητικά προγράμματα καταγραφής
Σύμφωνα με τη Phylum, τουλάχιστον επτά διαφορετικά κύματα επίθεσης και αρκετές φάσεις περιείχαν τροποποιήσεις κώδικα για την ενίσχυση της μυστικότητας και την προσθήκη πιο συγκεκριμένης στόχευσης.
Τα πρώτα κύματα επιθέσεων εμφανίστηκαν μεταξύ 12 και 15 Σεπτεμβρίου, με τους απειλητικούς φορείς να ανεβάζουν καθημερινά νέα σύνολα πακέτων, φτάνοντας συνολικά τα 33 πακέτα.
Τα μεταγενέστερα κύματα επιθέσεων σημειώθηκαν στις 18 Σεπτεμβρίου (τρία πακέτα), στις 20 Σεπτεμβρίου (πέντε πακέτα) και στις 24 Σεπτεμβρίου (4 πακέτα).
Στα αρχικά κύματα, τα πακέτα διέθεταν σκληρά κωδικοποιημένες ρουτίνες συλλογής και διαφυγής δεδομένων, που περιείχαν εσωτερικά τον κώδικα συλλογής δεδομένων σε μορφή απλού κειμένου, γεγονός που τα καθιστούσε ευάλωτα στον εντοπισμό.
Οι μεσαίες επαναλήψεις εισήγαγαν πιο σύνθετους μηχανισμούς, όπως η ανάκτηση και η εκτέλεση του bash script συλλογής δεδομένων από έναν εξωτερικό τομέα.
Επίσης, οι συγγραφείς πρόσθεσαν ένα άγκιστρο “προεγκατάστασης” για την αυτόματη εκτέλεση κακόβουλων JavaScript κατά την εγκατάσταση.
Τα πιο πρόσφατα πακέτα χρησιμοποιούσαν κωδικοποίηση base64 για να αποφύγουν την ανάλυση, η οποία αργότερα αναβαθμίστηκε σε διπλή κωδικοποίηση base64.
Σε γενικές γραμμές, οι επιτιθέμενοι συμμετείχαν σε μια συνεχή διαδικασία δοκιμής και βελτίωσης του κώδικα και μάλιστα παρέδωσαν πακέτα που εξειδικεύονταν σε ορισμένες πτυχές της συλλογής δεδομένων περισσότερο από άλλες.
Απειλή για κλοπή πληροφοριών
Τα δεδομένα που εκλάπησαν από τα πακέτα περιλαμβάνουν ευαίσθητες πληροφορίες μηχανών και χρηστών.
Τα στοιχεία μηχανής και χρήστη που συλλέγονται περιλαμβάνουν το όνομα κεντρικού υπολογιστή, το όνομα χρήστη, την τρέχουσα διαδρομή, την έκδοση του λειτουργικού συστήματος, τις εξωτερικές και εσωτερικές διευθύνσεις IP και την έκδοση Python για τα πακέτα PyPI.
Αυτές οι λεπτομέρειες και οι ρυθμίσεις του Kubernetes που είναι αποθηκευμένες στα αρχεία kubeconfig και τα ιδιωτικά κλειδιά SSH στο ~/.ssh/id_rsa γράφονται σε ένα αρχείο κειμένου (ConceptualTest.txt) και αποστέλλονται στους διακομιστές των επιτιθέμενων.
Οι κλεμμένες πληροφορίες μπορούν να χρησιμοποιηθούν για την αποκάλυψη των πραγματικών ταυτοτήτων των προγραμματιστών και να δώσουν στους επιτιθέμενους μη εξουσιοδοτημένη πρόσβαση σε συστήματα, διακομιστές ή υποδομές που είναι προσβάσιμες μέσω των κλεμμένων ιδιωτικών κλειδιών SSH.
Εάν οι κλεμμένες διαμορφώσεις του Kubernetes περιέχουν διαπιστευτήρια πρόσβασης σε συστάδες, οι επιτιθέμενοι θα μπορούσαν να τροποποιήσουν τις αναπτύξεις, να προσθέσουν κακόβουλα containers, να αποκτήσουν πρόσβαση σε ευαίσθητα δεδομένα που είναι αποθηκευμένα στη συστάδα, να μετακινηθούν πλευρικά ή να εξαπολύσουν επίθεση ransomware.
Οι χρήστες των πλατφορμών διανομής κώδικα, όπως το PyPI και το npm, συνιστάται να είναι προσεκτικοί με τα πακέτα που κατεβάζουν και ξεκινούν στα συστήματά τους, καθώς υπάρχει συνεχής εισροή κακόβουλου λογισμικού σε αυτά τα οικοσυστήματα.