Νωρίτερα εμείς
Παραδόξως, ο Kolsek αρχικά δεν μπόρεσε να αναπαράγει την επίθεση που περιέγραψε και έδειξε ο John, όπου χρησιμοποίησε τον Internet Explorer που εκτελούνταν σε Windows 7 για να κατεβάσει και στη συνέχεια να ανοίξει ένα κακόβουλο αρχείο MHT. Αν και ο διαχειριστής διεργασιών του έδειξε ότι το system.ini, το οποίο σχεδιαζόταν να κλαπεί από τον ίδιο, διαβάστηκε από ένα σενάριο που ήταν κρυμμένο στο αρχείο MHT, αλλά δεν στάλθηκε στον απομακρυσμένο διακομιστή.
«Αυτό έμοιαζε με μια κλασική κατάσταση του Ιστού», γράφει ο Kolsek. «Όταν ένα αρχείο λαμβάνεται από το Διαδίκτυο, οι εφαρμογές των Windows που εκτελούνται σωστά, όπως προγράμματα περιήγησης ιστού και προγράμματα-πελάτες ηλεκτρονικού ταχυδρομείου προσθέτουν μια ετικέτα σε ένα τέτοιο αρχείο στη φόρμα
Ο ερευνητής επαλήθευσε ότι ο IE όντως όρισε μια τέτοια ετικέτα για το ληφθέν αρχείο MHT. Στη συνέχεια, ο Kolsek προσπάθησε να κατεβάσει το ίδιο αρχείο χρησιμοποιώντας το Edge και να το ανοίξει στον IE, ο οποίος παραμένει η προεπιλεγμένη εφαρμογή για αρχεία MHT. Απροσδόκητα, το κατόρθωμα λειτούργησε.
Πρώτα, ο ερευνητής έλεγξε το "mark-of-the-Web", αποδείχθηκε ότι το Edge αποθηκεύει επίσης την πηγή προέλευσης του αρχείου σε μια εναλλακτική ροή δεδομένων εκτός από το αναγνωριστικό ασφαλείας, το οποίο μπορεί να εγείρει ορισμένα ερωτήματα σχετικά με το απόρρητο αυτού μέθοδος. Ο Kolsek υπέθεσε ότι οι επιπλέον γραμμές μπορεί να μπέρδεψαν τον IE και να τον εμπόδιζαν να διαβάσει το SID, αλλά όπως αποδείχθηκε, το πρόβλημα ήταν αλλού. Μετά από μια μακρά ανάλυση, ο ειδικός ασφαλείας βρήκε την αιτία σε δύο καταχωρήσεις στη λίστα ελέγχου πρόσβασης που πρόσθεσαν το δικαίωμα ανάγνωσης του αρχείου MHT σε μια συγκεκριμένη υπηρεσία συστήματος, την οποία ο Edge πρόσθεσε εκεί μετά τη φόρτωσή του.
James Foreshaw από την αποκλειστική ομάδα ευπάθειας zero-day - Google Project Zero -
Στη συνέχεια, ο ερευνητής ήθελε να κατανοήσει καλύτερα τι προκαλεί την αποτυχία του συστήματος ασφαλείας του IE. Μια εις βάθος ανάλυση χρησιμοποιώντας το βοηθητικό πρόγραμμα Process Monitor και τον αποσυναρμολογητή IDA αποκάλυψε τελικά ότι η καθορισμένη ανάλυση του Edge εμπόδισε τη συνάρτηση Win Api GetZoneFromAlternateDataStreamEx να διαβάσει τη ροή του αρχείου Zone.Identifier και επέστρεψε ένα σφάλμα. Για τον Internet Explorer, ένα τέτοιο σφάλμα κατά την αίτηση της ετικέτας ασφαλείας ενός αρχείου ήταν εντελώς απροσδόκητο και, προφανώς, το πρόγραμμα περιήγησης θεώρησε ότι το σφάλμα ήταν ισοδύναμο με το γεγονός ότι το αρχείο δεν είχε την ένδειξη "mark-of-the-Web", που το καθιστά αυτόματα αξιόπιστο, γιατί ο IE επέτρεψε στο σενάριο που ήταν κρυμμένο στο αρχείο MHT να εκτελεστεί και να στείλει το τοπικό αρχείο προορισμού στον απομακρυσμένο διακομιστή.
«Βλέπεις την ειρωνεία εδώ;» ρωτάει ο Κόλσεκ. "Ένα μη τεκμηριωμένο χαρακτηριστικό ασφαλείας που χρησιμοποιήθηκε από τον Edge εξουδετέρωσε μια υπάρχουσα, αναμφίβολα πολύ πιο σημαντική (mark-of-the-Web) δυνατότητα στον Internet Explorer."
Παρά την αυξημένη σημασία της ευπάθειας, η οποία επιτρέπει σε ένα κακόβουλο σενάριο να εκτελείται ως αξιόπιστο σενάριο, δεν υπάρχει καμία ένδειξη ότι η Microsoft σκοπεύει να διορθώσει το σφάλμα σύντομα, εάν διορθωθεί ποτέ. Επομένως, συνιστούμε να αλλάξετε, όπως και στο προηγούμενο άρθρο, το προεπιλεγμένο πρόγραμμα για το άνοιγμα αρχείων MHT σε οποιοδήποτε σύγχρονο πρόγραμμα περιήγησης.
Φυσικά, η έρευνα του Κόλσεκ δεν πέρασε χωρίς λίγη αυτο-PR. Στο τέλος του άρθρου, έδειξε μια μικρή ενημέρωση κώδικα γραμμένη σε γλώσσα συναρμολόγησης που μπορεί να χρησιμοποιήσει την υπηρεσία 0patch που αναπτύχθηκε από την εταιρεία του. Το 0patch εντοπίζει αυτόματα το ευάλωτο λογισμικό στον υπολογιστή του χρήστη και εφαρμόζει μικρές ενημερώσεις κώδικα σε αυτό κυριολεκτικά αμέσως. Για παράδειγμα, στην περίπτωση που περιγράψαμε, το 0patch θα αντικαταστήσει το μήνυμα σφάλματος στη συνάρτηση GetZoneFromAlternateDataStreamEx με μια τιμή που αντιστοιχεί σε ένα μη αξιόπιστο αρχείο που ελήφθη από το δίκτυο, έτσι ώστε ο IE να μην επιτρέπει την εκτέλεση κρυφών σεναρίων σύμφωνα με την ενσωματωμένη στην πολιτική ασφαλείας.
Πηγή: 3dnews.ru