Μια ομάδα ακαδημαϊκών ερευνητών από πανεπιστήμια στην Καλιφόρνια και τη Μασαχουσέτη απέδειξε ότι είναι δυνατόν, υπό συγκεκριμένες συνθήκες, επιτιθέμενοι να ανακτήσουν μυστικά κλειδιά RSA από σφάλματα που οδηγούν σε αποτυχημένες προσπάθειες σύνδεσης SSH.

Δείτε επίσης: VMware Aria: Ευάλωτο σε κρίσιμη ευπάθεια SSH authentication bypass

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

Το RSA είναι ένα κρυπτοσύστημα δημόσιου κλειδιού που χρησιμοποιείται στο SSH για την αυθεντικοποίηση των χρηστών. Χρησιμοποιεί ένα ιδιωτικό, μυστικό κλειδί για να αποκρυπτογραφήσει την επικοινωνία που έχει κρυπτογραφηθεί με ένα δημόσιο, κοινόχρηστο κλειδί.

Μια δημοσίευση από τους ερευνητές Keegan Ryan, Kaiwen He, Nadia Heninger και George Arnold Sullivan, αποδεικνύει ότι είναι δυνατό για έναν παθητικό επιτιθέμενο στο δίκτυο να αποκτήσει ένα ιδιωτικό κλειδί RSA από διακομιστές SSH που αντιμετωπίζουν σφάλματα κατά τη διάρκεια του υπολογισμού υπογραφής.

Σύμφωνα με τους ερευνητές στο τεχνικό άρθρο, “Εάν μια υλοποίηση υπογραφής που χρησιμοποιεί CRT-RSA, έχει ένα σφάλμα κατά τον υπολογισμό της υπογραφής, ένας επιτιθέμενος που παρατηρεί αυτήν την υπογραφή μπορεί να βρει το ιδιωτικό κλειδί του υπογράφοντος“.

Το Θεώρημα του Κινεζικού Υπολοίπου (CRT) χρησιμοποιείται με τον αλγόριθμο RSA για να μειωθεί το μέγεθος του δημόσιου κλειδιού και να επιταχυνθεί ο χρόνος αποκρυπτογράφησης. Παρόλο που σφάλματα τέτοιου είδους είναι σπάνια, είναι αναπόφευκτα λόγω ελαττωμάτων στο υλικό. Με μια επαρκώς μεγάλη πηγή δεδομένων, ένας επιτιθέμενος μπορεί να εντοπίσει και να εκμεταλλευτεί πολλές ευκαιρίες.

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

Δείτε ακόμα: P2PInfect malware: Επιθέσεις σε SSH και Redis για δημιουργία botnet

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

Οι ερευνητές σημειώνουν ότι οι δοκιμές τους δεν περιλαμβάνουν αποτελέσματα “για RSA-1024, SHA512 επειδή ο αριθμός των άγνωστων bit στο hash είναι πέρα ​​από αυτό που μπορούμε να αποκρατήσουμε ή να επιλύσουμε με πλέγματα.” Ωστόσο, προσθέτουν ότι “η επίθεση με τη χρήση πλέγματος είναι αρκετά αποτελεσματική” και ότι οι δοκιμές τους είχαν επιτυχία 100%.

Χρησιμοποιώντας την επίθεση, οι ερευνητές κατάφεραν να ανακαλύψουν 4.962 μη έγκυρες υπογραφές που αποκάλυψαν την παραγοντοποίηση του αντίστοιχου δημόσιου κλειδιού RSA, επιτρέποντας έτσι την ανάκτηση ιδιωτικών κλειδιών που αντιστοιχούν σε 189 μοναδικά δημόσια κλειδιά RSA. Πολλά από τα ανακτημένα κλειδιά προήλθαν από συσκευές με ευάλωτες υλοποιήσεις, με τον μεγαλύτερο αριθμό υπογραφών να προέρχεται από συσκευές Zyxel.

Χρησιμοποιώντας την επίθεση με πλέγματά τους, οι ερευνητές κατάφεραν να βρουν 4.962 μη έγκυρες υπογραφές που αποκάλυψαν την παραγοντοποίηση του αντίστοιχου δημόσιου κλειδιού RSA, επιτρέποντας έτσι την ανάκτηση ιδιωτικών κλειδιών που αντιστοιχούν σε 189 μοναδικά δημόσια κλειδιά RSA. Πολλά από τα ανακτηθέντα μυστικά προήλθαν από συσκευές με ευάλωτες υλοποιήσεις, με τον μεγαλύτερο αριθμό υπογραφών να προέρχεται από συσκευές της Zyxel.

Δείτε επίσης: Χάκερ μολύνουν Linux SSH servers με το Tsunami botnet malware

Μέτρα περιορισμού

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

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

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

Πηγή: bleepingcomputer