Ο Slack παραδέχεται ότι διέρρευσε κατακερματισμένους κωδικούς πρόσβασης για τρεις μήνες το PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Ο Slack παραδέχεται ότι διέρρευσε κατακερματισμένους κωδικούς πρόσβασης για τρεις μήνες

Το δημοφιλές εργαλείο συνεργασίας Slack (δεν πρέπει να συγχέεται με το ψευδώνυμο της μακροβιότερης διανομής Linux στον κόσμο, του Slackware) μόλις ανήκε σε ένα SNAFU για την ασφάλεια στον κυβερνοχώρο.

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

Από το 2022-04-17 έως το 2022-07-17 (υποθέτουμε ότι και οι δύο ημερομηνίες συμπεριλαμβάνονται), ο Slack είπε ότι τα δεδομένα που αποστέλλονται στους παραλήπτες τέτοιων προσκλήσεων περιλάμβαναν…

…περιμένετε…

…ο κατακερματισμένος κωδικός πρόσβασης αποστολέα.

Τι πήγε στραβά;

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

Υποθέτουμε ότι αυτό μεταφράζεται ως εξής:

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

Αυτά είναι τα καλά νέα.

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

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

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

Αυτά είναι τα άσχημα νέα.

Αλάτι, χασίς και τέντωμα…

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

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

Για παράδειγμα, είναι εύκολο να υπολογίσετε ότι:

  SHA256("DUCK") = 7FB376..DEAD4B3AF008

Αλλά ο μόνος τρόπος για να δουλέψεις «πίσω» από 7FB376..DEAD4B3AF008 προς την DUCK είναι να δουλεύεις εμπρός από κάθε πιθανή λέξη στο λεξικό και δείτε αν κάποια από αυτές έχει την τιμή που προσπαθείτε να αντιστοιχίσετε:

  SHA256("AARDVARK") = 5A9394..467731D0526A [X] SHA256("AARON") = C4DDDE..12E4CFE7B4FD [X] SHA256("ABACUS") = BEDDD8..1AD4X] . . 25 παραλειφθέντα SHA7("BABBLE") = 3400E256..CEAD70B837FA4 [X] SHA1("BADGER") = 777D256D..946B0C7C3073 [X] SHA1("BAGPIPE")094.BC256. . . 359 παράλειψη SHA193("CABAL") = D111CF3200..256BE78 [X] SHA4("CACHE") = C85F02967565..256F118E9B22 [X] SHA3269("CAGOULE") = .7XBA32 . . 256 παραλείπονται SHA5("DAB") = BBCC530E..E5B26CAB5 [X] SHA56("DAFFODIL") = 5400D..D256AB8A8 [X] SHA98("ΚΙΝΔΥΝΟΣ") = 5128BDXB256. . . 75121 παραλειφθεί SHA6401("ΠΑΠΑ") =  7FB376..DEAD4B3AF008 [ΒΡΕΘΗΚΕ!]

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

Μπορείτε να δείτε την επίδραση του αλατίσματος εδώ, όταν κατακερματίσουμε τη λέξη DUCK με τρία διαφορετικά προθέματα:

  SHA256("RANDOM1-DUCK") = E355DB..349E669BB9A2 SHA256("RANDOM2-DUCK") = 13D538..FEA0DC6DBB5C <-- Η αλλαγή μόνο ενός byte εισόδου παράγει ένα πολύ διαφορετικό hash. .256A3

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

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

Αυτό που δεν είπε ο Slack είναι αν το έκαναν τεντωμένο κατακερματίζεται και ο κωδικός πρόσβασης, και αν ναι, πώς.

Διατάσεις είναι ένας όρος ορολογίας που σημαίνει επανάληψη της διαδικασίας κατακερματισμού κωδικού πρόσβασης ξανά και ξανά, για παράδειγμα, 100,000 φορές, προκειμένου να παραταθεί ο χρόνος που απαιτείται για να δοκιμάσετε μια δέσμη λέξεων λεξικού έναντι γνωστών κατακερματισμών κωδικού πρόσβασης.

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

Από την άλλη πλευρά, εάν οι υπολογισμοί salt-and-hash παραταθούν ώστε να διαρκέσουν ένα δευτερόλεπτο ο καθένας, τότε η επιπλέον καθυστέρηση ενός δευτερολέπτου όταν προσπαθήσατε να συνδεθείτε θα σας προκαλούσε μικρή ή καθόλου ενόχληση…

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

Είναι γνωστοί αρκετοί αξιοσέβαστοι αλγόριθμοι salt-hash-and-stretch, ιδίως PBKDF2, bcrypt, scrypt και Argon2, όλα αυτά μπορούν να προσαρμοστούν για να αυξηθεί ο χρόνος που απαιτείται για να δοκιμάσετε μεμονωμένες εικασίες κωδικών πρόσβασης μειώσει τη βιωσιμότητα των λεγόμενων επιθέσεων λεξικού και ωμής βίας.

A επίθεση λεξικού σημαίνει ότι δοκιμάζετε μόνο πιθανούς κωδικούς πρόσβασης, όπως κάθε λέξη από την οποία μπορείτε να σκεφτείτε aardvark προς την zymurgy, και μετά τα παρατά. ΕΝΑ βίαιη επίθεση σημαίνει να δοκιμάζετε κάθε δυνατή εισαγωγή, ακόμα και περίεργη και απρόφωνη, από AAA..AAAA προς την ZZZ..ZZZZ (ή από 0000..000000 προς την FFFF..FFFFFF αν σκέφτεστε με δεκαεξαδικούς όρους byte-by-byte).

Τι να κάνω;

Ο Slack λέει ότι περίπου 1 στους 200 χρήστες του (0.5%, πιθανώς με βάση τα αρχεία για το πόσοι κοινόχρηστοι σύνδεσμοι πρόσκλησης δημιουργήθηκαν κατά την επικίνδυνη περίοδο) και ότι θα αναγκάσει αυτούς τους χρήστες να επαναφέρουν τους κωδικούς πρόσβασής τους.

Μερικές επιπλέον συμβουλές:

  • Εάν είστε χρήστης του Slack, μπορείτε επίσης να επαναφέρετε τον κωδικό πρόσβασής σας ακόμα κι αν δεν έχετε ειδοποιηθεί από την εταιρεία για να το κάνετε. Όταν μια εταιρεία παραδέχεται ότι ήταν απρόσεκτη με τη βάση δεδομένων κωδικών πρόσβασης με τη διαρροή κατακερματισμών, μπορεί επίσης να υποθέσετε ότι η δική σας επηρεάστηκε, ακόμα κι αν η εταιρεία πιστεύει ότι δεν επηρεάστηκε. Μόλις αλλάξετε τον κωδικό πρόσβασής σας, κάνετε τον παλιό κατακερματισμό άχρηστο για τους εισβολείς.
  • Εάν δεν χρησιμοποιείτε διαχειριστή κωδικών πρόσβασης, σκεφτείτε να αποκτήσετε έναν. Ένας διαχειριστής κωδικών πρόσβασης βοηθά επιλέξτε τους κατάλληλους κωδικούς πρόσβασης, διασφαλίζοντας έτσι ότι ο κωδικός πρόσβασής σας καταλήγει πολύ, πολύ κάτω από τη λίστα των κωδικών πρόσβασης που μπορεί να σπάσουν σε ένα περιστατικό όπως αυτό. Οι εισβολείς συνήθως δεν μπορούν να κάνουν μια πραγματική επίθεση ωμής βίας, επειδή υπάρχουν πάρα πολλοί πιθανοί κωδικοί πρόσβασης για να δοκιμάσουν. Έτσι, δοκιμάζουν πρώτα τους πιο πιθανούς κωδικούς πρόσβασης, όπως λέξεις ή προφανείς συνδυασμούς λέξης και αριθμού, οι οποίοι γίνονται μεγαλύτεροι και πιο περίπλοκοι όσο προχωρά η επίθεση. Ένας διαχειριστής κωδικών πρόσβασης μπορεί να θυμηθεί έναν τυχαίο κωδικό πρόσβασης 20 χαρακτήρων τόσο εύκολα όσο μπορείτε να θυμηθείτε το όνομα της γάτας σας.
  • Ενεργοποιήστε το 2FA αν μπορείτε. 2FA, ή έλεγχος ταυτότητας δύο παραγόντων, σημαίνει ότι δεν χρειάζεστε μόνο τον κωδικό πρόσβασής σας για να συνδεθείτε, αλλά και έναν κωδικό μιας χρήσης που αλλάζει κάθε φορά. Αυτοί οι κωδικοί συνήθως αποστέλλονται (ή δημιουργούνται από) το κινητό σας τηλέφωνο και ισχύουν μόνο για λίγα λεπτά ο καθένας. Αυτό σημαίνει ότι ακόμα κι αν οι κυβερνοαπατεώνες σπάσουν τον κωδικό πρόσβασής σας, δεν αρκεί από μόνοι τους για να κατακτήσουν τον λογαριασμό σας.
  • Επιλέξτε έναν αξιόπιστο αλγόριθμο salt-hash-and-stretch όταν χειρίζεστε μόνοι σας τους κωδικούς πρόσβασης.. Στην ατυχή περίπτωση που παραβιαστεί η βάση δεδομένων του κωδικού πρόσβασής σας, θα μπορείτε να δώσετε στους πελάτες σας ακριβείς λεπτομέρειες για τον αλγόριθμο και τις ρυθμίσεις ασφαλείας που χρησιμοποιήσατε. Αυτό θα βοηθήσει τους καλά ενημερωμένους χρήστες να κρίνουν μόνοι τους πόσο πιθανό είναι τα κλεμμένα hashes τους να έχουν σπάσει στον χρόνο που είναι διαθέσιμος στους επιτιθέμενους μέχρι στιγμής.

Σφραγίδα ώρας:

Περισσότερα από Γυμνή ασφάλεια