Duqu - κακόβουλη κούκλα φωλιάσματος

Εισαγωγή

Την 1η Σεπτεμβρίου 2011, ένα αρχείο με το όνομα ~DN1.tmp στάλθηκε στον ιστότοπο του VirusTotal από την Ουγγαρία. Εκείνη την εποχή, το αρχείο εντοπίστηκε ως κακόβουλο μόνο από δύο μηχανές προστασίας από ιούς - το BitDefender και το AVIRA. Έτσι ξεκίνησε η ιστορία του Duqu. Κοιτάζοντας μπροστά, πρέπει να πούμε ότι η οικογένεια κακόβουλου λογισμικού Duqu ονομάστηκε από το όνομα αυτού του αρχείου. Ωστόσο, αυτό το αρχείο είναι μια εντελώς ανεξάρτητη μονάδα spyware με λειτουργίες keylogger, εγκατεστημένη, πιθανώς, χρησιμοποιώντας ένα κακόβουλο πρόγραμμα λήψης και μπορεί να θεωρηθεί μόνο ως "ωφέλιμο φορτίο" που φορτώνεται από το κακόβουλο λογισμικό Duqu κατά τη λειτουργία του και όχι ως στοιχείο ( ενότητα) του Duqu . Ένα από τα στοιχεία Duqu στάλθηκε στην υπηρεσία Virustotal μόνο στις 9 Σεπτεμβρίου. Το χαρακτηριστικό του χαρακτηριστικό είναι ένα πρόγραμμα οδήγησης με ψηφιακή υπογραφή από την C-Media. Ορισμένοι ειδικοί άρχισαν αμέσως να κάνουν αναλογίες με ένα άλλο διάσημο παράδειγμα κακόβουλου λογισμικού - το Stuxnet, το οποίο χρησιμοποιούσε επίσης υπογεγραμμένα προγράμματα οδήγησης. Ο συνολικός αριθμός υπολογιστών που έχουν μολυνθεί με Duqu που εντοπίστηκαν από διάφορες εταιρείες προστασίας από ιούς σε όλο τον κόσμο είναι δεκάδες. Πολλές εταιρείες ισχυρίζονται ότι το Ιράν είναι και πάλι ο κύριος στόχος, αλλά αν κρίνουμε από τη γεωγραφική κατανομή των λοιμώξεων, αυτό δεν μπορεί να ειπωθεί με βεβαιότητα.
Duqu - κακόβουλη κούκλα φωλιάσματος
Σε αυτήν την περίπτωση, θα πρέπει να μιλάτε με σιγουριά μόνο για μια άλλη εταιρεία με μια νέα λέξη APT (προχωρημένη επίμονη απειλή).

Διαδικασία υλοποίησης συστήματος

Μια έρευνα που διεξήχθη από ειδικούς του ουγγρικού οργανισμού CrySyS (Ουγγρικό Εργαστήριο Κρυπτογραφίας και Ασφάλειας Συστημάτων στο Πανεπιστήμιο Τεχνολογίας και Οικονομικών της Βουδαπέστης) οδήγησε στην ανακάλυψη του εγκαταστάτη (dropper) μέσω του οποίου μολύνθηκε το σύστημα. Ήταν ένα αρχείο Microsoft Word με εκμετάλλευση για την ευπάθεια του προγράμματος οδήγησης win32k.sys (MS11-087, που περιγράφηκε από τη Microsoft στις 13 Νοεμβρίου 2011), η οποία είναι υπεύθυνη για τον μηχανισμό απόδοσης γραμματοσειρών TTF. Ο shellcode του exploit χρησιμοποιεί μια γραμματοσειρά που ονομάζεται "Dexter Regular" ενσωματωμένη στο έγγραφο, με την Showtime Inc. να αναφέρεται ως ο δημιουργός της γραμματοσειράς. Όπως μπορείτε να δείτε, οι δημιουργοί του Duqu δεν είναι ξένοι στην αίσθηση του χιούμορ: ο Dexter είναι ένας κατά συρροή δολοφόνος, ο ήρωας της ομώνυμης τηλεοπτικής σειράς, παραγωγής Showtime. Ο Ντέξτερ σκοτώνει μόνο (αν είναι δυνατόν) εγκληματίες, δηλαδή παραβαίνει το νόμο στο όνομα της νομιμότητας. Πιθανώς, με αυτόν τον τρόπο, οι προγραμματιστές της Duqu είναι ειρωνικοί που εμπλέκονται σε παράνομες δραστηριότητες για καλούς σκοπούς. Η αποστολή email έγινε σκόπιμα. Η αποστολή πιθανότατα χρησιμοποίησε παραβιασμένους (χακαρισμένους) υπολογιστές ως ενδιάμεσο για να δυσχεράνει την παρακολούθηση.
Το έγγραφο του Word περιείχε λοιπόν τα ακόλουθα στοιχεία:

  • περιεχόμενο κειμένου·
  • ενσωματωμένη γραμματοσειρά?
  • exploit shellcode?
  • οδηγός;
  • πρόγραμμα εγκατάστασης (βιβλιοθήκη DLL).

Εάν είναι επιτυχής, ο κέλυφος του exploit εκτέλεσε τις ακόλουθες λειτουργίες (σε λειτουργία πυρήνα):

  • Έγινε έλεγχος για εκ νέου μόλυνση· γι' αυτό, ελέγχθηκε η παρουσία του κλειδιού «CF4D» στο μητρώο στη διεύθυνση «HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZones1». Εάν αυτό ήταν σωστό, ο κώδικας φλοιού ολοκλήρωσε την εκτέλεσή του.
  • αποκρυπτογραφήθηκαν δύο αρχεία - το πρόγραμμα οδήγησης (sys) και το πρόγραμμα εγκατάστασης (dll).
  • το πρόγραμμα οδήγησης εισήχθη στη διαδικασία services.exe και ξεκίνησε το πρόγραμμα εγκατάστασης.
  • Τέλος, ο shellcode διαγράφηκε με μηδενικά στη μνήμη.

Λόγω του γεγονότος ότι το win32k.sys εκτελείται υπό τον προνομιούχο χρήστη «Σύστημα», οι προγραμματιστές της Duqu έλυσαν κομψά το πρόβλημα τόσο της μη εξουσιοδοτημένης εκκίνησης όσο και της κλιμάκωσης των δικαιωμάτων (που εκτελείται σε λογαριασμό χρήστη με περιορισμένα δικαιώματα).
Μετά τη λήψη του ελέγχου, το πρόγραμμα εγκατάστασης αποκρυπτογραφεί τρία μπλοκ δεδομένων που περιέχονται σε αυτό στη μνήμη, τα οποία περιέχουν:

  • υπογεγραμμένο πρόγραμμα οδήγησης (sys);
  • κύρια μονάδα (dll)?
  • δεδομένα διαμόρφωσης προγράμματος εγκατάστασης (pnf).

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

Duqu - κακόβουλη κούκλα φωλιάσματος

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

Η κύρια ενότητα

Κύρια ενότητα (πόρος 302), σύμφωνα με πληροφορίες εταιρεία Kaspersky Lab, γραμμένο με χρήση MSVC 2008 σε καθαρό C, αλλά χρησιμοποιώντας αντικειμενοστραφή προσέγγιση. Αυτή η προσέγγιση δεν είναι χαρακτηριστική κατά την ανάπτυξη κακόβουλου κώδικα. Κατά κανόνα, ένας τέτοιος κώδικας γράφεται σε C για να μειώσει το μέγεθος και να απαλλαγεί από τις έμμεσες κλήσεις που είναι εγγενείς στη C++. Υπάρχει μια ορισμένη συμβίωση εδώ. Επιπλέον, χρησιμοποιήθηκε μια αρχιτεκτονική που βασίζεται σε γεγονότα. Οι υπάλληλοι της Kaspersky Lab τείνουν στη θεωρία ότι η κύρια ενότητα γράφτηκε χρησιμοποιώντας ένα πρόσθετο προεπεξεργαστή που σας επιτρέπει να γράψετε κώδικα C σε στυλ αντικειμένου.
Η κύρια μονάδα είναι υπεύθυνη για τη διαδικασία λήψης εντολών από χειριστές. Η Duqu παρέχει διάφορες μεθόδους αλληλεπίδρασης: χρησιμοποιώντας τα πρωτόκολλα HTTP και HTTPS, καθώς και τη χρήση επώνυμων σωλήνων. Για το HTTP(S), καθορίστηκαν ονόματα τομέα κέντρων εντολών και παρασχέθηκε η δυνατότητα εργασίας μέσω διακομιστή μεσολάβησης - καθορίστηκαν όνομα χρήστη και κωδικός πρόσβασης για αυτά. Η διεύθυνση IP και το όνομά της καθορίζονται για το κανάλι. Τα καθορισμένα δεδομένα αποθηκεύονται στο μπλοκ δεδομένων διαμόρφωσης της κύριας μονάδας (σε κρυπτογραφημένη μορφή).
Για να χρησιμοποιήσουμε επώνυμους σωλήνες, ξεκινήσαμε τη δική μας υλοποίηση διακομιστή RPC. Υποστήριζε τις ακόλουθες επτά λειτουργίες:

  • επιστρέψτε την εγκατεστημένη έκδοση.
  • εισάγετε ένα dll στην καθορισμένη διαδικασία και καλέστε την καθορισμένη συνάρτηση.
  • φόρτωση dll?
  • ξεκινήστε μια διαδικασία καλώντας το CreateProcess();
  • διαβάστε τα περιεχόμενα ενός δεδομένου αρχείου.
  • εγγραφή δεδομένων στο καθορισμένο αρχείο.
  • διαγράψτε το καθορισμένο αρχείο.

Οι επώνυμες σωλήνες θα μπορούσαν να χρησιμοποιηθούν σε ένα τοπικό δίκτυο για τη διανομή ενημερωμένων μονάδων και δεδομένων διαμόρφωσης μεταξύ υπολογιστών που έχουν μολυνθεί με Duqu. Επιπλέον, ο Duqu θα μπορούσε να λειτουργήσει ως διακομιστής μεσολάβησης για άλλους μολυσμένους υπολογιστές (οι οποίοι δεν είχαν πρόσβαση στο Διαδίκτυο λόγω των ρυθμίσεων του τείχους προστασίας στην πύλη). Ορισμένες εκδόσεις του Duqu δεν είχαν λειτουργικότητα RPC.

Γνωστά "ωφέλιμα φορτία"

Η Symantec ανακάλυψε τουλάχιστον τέσσερις τύπους ωφέλιμων φορτίων που λήφθηκαν υπό εντολή από το κέντρο ελέγχου Duqu.
Επιπλέον, μόνο ένα από αυτά ήταν κάτοικος και μεταγλωττίστηκε ως εκτελέσιμο αρχείο (exe), το οποίο αποθηκεύτηκε στο δίσκο. Οι υπόλοιπες τρεις υλοποιήθηκαν ως βιβλιοθήκες dll. Φορτώθηκαν δυναμικά και εκτελέστηκαν στη μνήμη χωρίς να αποθηκευτούν στο δίσκο.

Το "ωφέλιμο φορτίο" του κατοίκου ήταν μια μονάδα κατασκοπείας (πληροφοριοκλέφτης) με λειτουργίες keylogger. Με την αποστολή του στο VirusTotal ξεκίνησε η εργασία για την έρευνα Duqu. Η κύρια λειτουργία κατασκοπείας βρισκόταν στον πόρο, τα πρώτα 8 kilobyte του οποίου περιείχαν μέρος μιας φωτογραφίας του γαλαξία NGC 6745 (για καμουφλάζ). Να υπενθυμίσουμε εδώ ότι τον Απρίλιο του 2012 ορισμένα μέσα ενημέρωσης δημοσίευσαν πληροφορίες (http://www.mehrnews.com/en/newsdetail.aspx?NewsID=1297506) ότι το Ιράν είχε εκτεθεί σε κάποιο κακόβουλο λογισμικό «Stars», ενώ λεπτομέρειες το περιστατικό δεν αποκαλύφθηκαν. Ίσως ήταν ακριβώς ένα τέτοιο δείγμα του «ωφέλιμου φορτίου» Duqu που ανακαλύφθηκε τότε στο Ιράν, εξ ου και το όνομα «Αστέρια».
Η μονάδα κατασκοπείας συνέλεξε τις ακόλουθες πληροφορίες:

  • λίστα διαδικασιών που εκτελούνται, πληροφορίες σχετικά με τον τρέχοντα χρήστη και τον τομέα.
  • λίστα λογικών μονάδων δίσκου, συμπεριλαμβανομένων των μονάδων δίσκου δικτύου.
  • στιγμιότυπα οθόνης?
  • διευθύνσεις διεπαφής δικτύου, πίνακες δρομολόγησης.
  • αρχείο καταγραφής πατημάτων πληκτρολογίου.
  • ονόματα ανοιχτών παραθύρων εφαρμογών.
  • λίστα διαθέσιμων πόρων δικτύου (κοινή χρήση πόρων).
  • μια πλήρη λίστα αρχείων σε όλους τους δίσκους, συμπεριλαμβανομένων των αφαιρούμενων.
  • μια λίστα υπολογιστών στο «περιβάλλον δικτύου».

Μια άλλη ενότητα κατασκοπείας (πληροφοριοκλέφτης) ήταν μια παραλλαγή αυτού που ήδη περιγράφηκε, αλλά μεταγλωττίστηκε ως βιβλιοθήκη dll· οι λειτουργίες ενός keylogger, η σύνταξη λίστας αρχείων και η καταχώριση υπολογιστών που περιλαμβάνονται στον τομέα αφαιρέθηκαν από αυτό.
Επόμενη ενότητα (αναγνώριση) συλλέχθηκαν πληροφορίες συστήματος:

  • εάν ο υπολογιστής είναι μέρος ενός τομέα.
  • διαδρομές στους καταλόγους συστήματος των Windows.
  • έκδοση λειτουργικού συστήματος?
  • τρέχον όνομα χρήστη·
  • λίστα προσαρμογέων δικτύου.
  • σύστημα και τοπική ώρα, καθώς και ζώνη ώρας.

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

Κέντρα εντολών

Στις 20 Οκτωβρίου 2011 (τρεις ημέρες μετά τη διάδοση των πληροφοριών σχετικά με την ανακάλυψη), οι χειριστές της Duqu πραγματοποίησαν μια διαδικασία για να καταστρέψουν τα ίχνη της λειτουργίας των κέντρων διοίκησης. Τα κέντρα εντολών βρίσκονταν σε παραβιασμένους διακομιστές σε όλο τον κόσμο - στο Βιετνάμ, την Ινδία, τη Γερμανία, τη Σιγκαπούρη, την Ελβετία, τη Μεγάλη Βρετανία, την Ολλανδία και τη Νότια Κορέα. Είναι ενδιαφέρον ότι όλοι οι διακομιστές που προσδιορίστηκαν εκτελούσαν εκδόσεις CentOS 5.2, 5.4 ή 5.5. Τα λειτουργικά συστήματα ήταν και 32-bit και 64-bit. Παρά το γεγονός ότι όλα τα αρχεία που σχετίζονται με τη λειτουργία των κέντρων εντολών διαγράφηκαν, οι ειδικοί της Kaspersky Lab μπόρεσαν να ανακτήσουν ορισμένες από τις πληροφορίες από τα αρχεία LOG από τον χαλαρό χώρο. Το πιο ενδιαφέρον γεγονός είναι ότι οι εισβολείς σε διακομιστές αντικαθιστούσαν πάντα το προεπιλεγμένο πακέτο OpenSSH 4.3 με την έκδοση 5.8. Αυτό μπορεί να υποδεικνύει ότι μια άγνωστη ευπάθεια στο OpenSSH 4.3 χρησιμοποιήθηκε για την παραβίαση διακομιστών. Δεν χρησιμοποιήθηκαν όλα τα συστήματα ως κέντρα εντολών. Ορισμένοι, κρίνοντας από τα σφάλματα στα αρχεία καταγραφής sshd κατά την προσπάθεια ανακατεύθυνσης της κυκλοφορίας για τις θύρες 80 και 443, χρησιμοποιήθηκαν ως διακομιστής μεσολάβησης για σύνδεση στα κέντρα εντολών τελικού.

Ημερομηνίες και ενότητες

Ένα έγγραφο του Word που διανεμήθηκε τον Απρίλιο του 2011, το οποίο εξετάστηκε από την Kaspersky Lab, περιείχε ένα πρόγραμμα οδήγησης για λήψη προγράμματος εγκατάστασης με ημερομηνία μεταγλώττισης την 31η Αυγούστου 2007. Ένα παρόμοιο πρόγραμμα οδήγησης (μέγεθος - 20608 bytes, MD5 - EEDCA45BD613E0D9A9E5C69122007F17) σε ένα έγγραφο που βρέθηκε στα εργαστήρια CrySys είχε ημερομηνία συλλογής την 21η Φεβρουαρίου 2008. Επιπλέον, οι ειδικοί της Kaspersky Lab βρήκαν το πρόγραμμα οδήγησης αυτόματης εκτέλεσης rndismpc.sys (μέγεθος - 19968 byte, MD5 - 9AEC6E10C5EE9C05BED93221544C783E) με ημερομηνία 20 Ιανουαρίου 2008. Δεν βρέθηκαν στοιχεία με την ένδειξη 2009. Με βάση τις χρονικές σημάνσεις της συλλογής μεμονωμένων τμημάτων του Duqu, η ανάπτυξή του θα μπορούσε να χρονολογείται από τις αρχές του 2007. Η πιο πρώιμη εκδήλωσή του σχετίζεται με τον εντοπισμό προσωρινών αρχείων του τύπου ~DO (πιθανώς δημιουργήθηκαν από μια από τις μονάδες spyware), η ημερομηνία δημιουργίας των οποίων είναι η 28 Νοεμβρίου 2008 (άρθρο "Duqu & Stuxnet: A Timeline of Interesting Events"). Η πιο πρόσφατη ημερομηνία που σχετίζεται με το Duqu ήταν η 23 Φεβρουαρίου 2012, που περιέχεται σε ένα πρόγραμμα οδήγησης λήψης προγράμματος εγκατάστασης που ανακαλύφθηκε από τη Symantec τον Μάρτιο του 2012.

Χρησιμοποιημένες πηγές πληροφοριών:

σειρά άρθρων σχετικά με την Duqu από την Kaspersky Lab.
Αναλυτική έκθεση Symantec "W32.Duqu Ο πρόδρομος του επόμενου Stuxnet", έκδοση 1.4, Νοέμβριος 2011 (pdf).

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο