Sophos. Ημέρα Ανεξαρτησίας: Το REvil αξιοποιεί ένα exploit στην αλυσίδα εφοδιασμού για να επιτεθεί σε εκατοντάδες επιχειρήσεις
Στις 2 Ιουλίου, την ώρα που το προσωπικό πολλών επιχειρήσεων ήταν στο σπίτι του, σε άδεια ή ετοιμαζόταν για ένα χαλαρό Σαββατοκύριακο, μία συνεργαζόμενη -affiliate- ομάδα με την ομάδα ransomware REvil εξαπέλυσε μία ευρεία επιχείρηση κρυπτο-εκβιασμού με θύματα εκατοντάδες επιχειρήσεις. Αξιοποιώντας ένα exploit στην υπηρεσία απομακρυσμένης διαχείρισης VSA της Kaseya, οι φορείς του REvil εξαπέλυσαν ένα κακόβουλο πακέτο ενημέρωσης που είχε στόχο τους πελάτες πολλών παρόχων διαχειριζόμενων υπηρεσιών (MSPs) καθώς και τους επαγγελματίες χρήστες της on-site έκδοσης της πλατφόρμας απομακρυσμένης παρακολούθησης και διαχείρισης VSA της Kaseya.
Το REvil αποτελεί μία απειλή τύπου ransomware-as-a-service (RaaS), η οποία παραδίδεται από ομάδες συνεργατών (affiliate groups), οι οποίες πληρώνονται από τους ίδιους τους developers του ransomware. Δεν είναι η πρώτη φορά που οι πελάτες παρόχων διαχειριζόμενων υπηρεσιών αποτελούν στόχο των affiliate ομάδων του REvil και άλλων διαχειριστών ransomware. Θυμηθείτε την επιδημία ransomware του 2019 (η οποία αργότερα αποδόθηκε στην ομάδα πίσω από το REvil) που επηρέασε πάνω από 20 μικρούς τοπικούς κυβερνητικούς οργανισμούς στο Τέξας. Επιπλέον έχουμε και την πτώση πολλών άλλων προσφορών RaaS, με αποτέλεσμα η απειλή του REvil να γίνει εντονότερη και πιο ενεργητική.
Οι συνεργάτες (affiliates) των developers του REvil τελευταία φαίνεται να είναι υπερβολικά επίμονοι στις επιχειρήσεις τους και εργάζονται αδιάκοπα για να κάμψουν τις όποιες προστασίες ενάντια στο κακόβουλο λογισμικό. Στο συγκεκριμένο ξέσπασμα, οι φορείς του REvil όχι μόνο εντόπισαν μία νέα ευπάθεια στην αλυσίδα εφοδιασμού της Kaseya, αλλά αξιοποίησαν και ένα πρόγραμμα προστασίας από κακόβουλο λογισμικό ως όχημα παράδοσης για τον κώδικα του ransomware REvil.
Οι διαχειριστές του REvil «ανέβασαν» μία ανάρτηση πρόσφατα στο «Happy Blog» τους, στην οποία ισχυρίζονται ότι περισσότερες από ένα εκατομμύριο μεμονωμένες συσκευές μολύνθηκαν από την κακόβουλη ενημέρωση. Επιπλέον, έκαναν γνωστό ότι είναι πρόθυμοι να παρέχουν έναν καθολικό αποκρυπτογράφο (decrypter) για όλα τα θύματα της επίθεσης, αλλά υπό τον όρο ότι θα τους καταβληθούν λύτρα 70.000.000 δολαρίων σε Bitcoin.
Παράδοση διαχειριζόμενου κακόβουλου λογισμικού
Η εκτεταμένη μόλυνση παραδόθηκε μέσω ενός κακόβουλου φορτίου ενημέρωσης που στάλθηκε σε διακομιστές VSA και κατόπιν στους VSA agents που «τρέχουν» σε διαχειριζόμενες συσκευές Windows. Από ότι φαίνεται, η επίθεση επετεύχθη χρησιμοποιώντας ένα exploit μηδενικής ημέρας (zero-day) στην πλατφόρμα διακομιστή. Και αυτό παρείχε στο REvil την πολυπόθητη κάλυψη με διάφορους τρόπους: καταρχήν επέτρεψε την αρχική μόλυνση μέσω ενός έμπιστου καναλιού αξιοποιώντας την εμπιστοσύνη στον κώδικα του agent VSA – αυτό αντικατοπτρίζεται από τις εξαιρέσεις κακόβουλου λογισμικού που απαιτεί η Kaseya για την εγκατάσταση και σχετίζονται με τους φακέλους «working» της εφαρμογής και του agent της. Οτιδήποτε λοιπόν εκτελείται από το Kaseya Agent Monitor συνεπώς αγνοήθηκε λόγω αυτών των εξαιρέσεων – οι οποίες επέτρεψαν και στο REvil να προχωρήσει στο deployment του dropper του χωρίς να γίνουν οι απαραίτητοι έλεγχοι.
Το Kaseya Agent Monitor (στο C:\PROGRAM FILES (X86)\KASEYA\<ID>\AGENTMON.EXE, με το ID να αποτελεί το κλειδί ταυτοποίησης του διακομιστή που είναι συνδεδεμένος στο συγκεκριμένο instance του monitor) στη συνέχεια καταχώρησε το κωδικοποιημένο σε Base64 κακόβουλο φορτίο AGENT.CRT στον κατάλογο «working» του agent VSA για ενημερώσεις (από προεπιλογή, C:\KWORKING\). Το AGENT.CRT κωδικοποιείται για να αποτρέψει τις άμυνες ενάντια στο κακόβουλο λογισμικό από το να προχωρήσουν στην εκτέλεση στατικής ανάλυσης αρχείων με σάρωση μοτίβων και μηχανική εκμάθηση μόλις παραδοθεί. Υπό φυσιολογικές συνθήκες, οι συγκεκριμένες τεχνολογίες λειτουργούν κανονικά για τα εκτελέσιμα αρχεία, ωστόσο, όπως επισημάναμε και παραπάνω, δεδομένου ότι αυτό το αρχείο έγινε deploy εντός του καταλόγου εξαιρέσεων για τους φακέλους «working» σύμφωνα με τις απαιτήσεις της Kaseya, κάτι τέτοιο δεν τέθηκε σε λειτουργία.
Μετά το deployment του κακόβουλου φορτίου, ο agent της Kaseya έτρεξε τις ακόλουθες εντολές Windows shell σε μία μοναδική συμβολοσειρά (single string):
Ας δούμε τι συνέβη στη συγκεκριμένη περίπτωση:
ping 127.0.0.1 -n 5693 > nul
Η πρώτη εντολή είναι στην ουσία ένας χρονοδιακόπτης. Η εντολή PING έχει μια παράμετρο -n που δίνει εντολή στο εργαλείο PING.EXE των Windows να στέλνει αιτήματα echo στον localhost (127.0.0.1) – σε αυτήν την περίπτωση, 5.693 αιτήματα. Το παραπάνω λειτούργησε κατά κάποιο τρόπο ως μία λειτουργία «ύπνωσης» καθώς καθυστέρησε την επερχόμενη εντολή PowerShell για 5.693 δευτερόλεπτα – δηλαδή για περίπου 94 λεπτά. Η τιμή 5.693 διέφερε ανά θύμα, κάτι που υποδεικνύει ότι η παραγωγή του αριθμού ήταν τυχαία σε κάθε διακομιστή VSA ως μέρος της διαδικασίας του agent που έστελνε την κακόβουλη εντολή στα θύματα του.
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe Set-MpPreference -DisableRealtimeMonitoring $true -DisableIntrusionPreventionSystem $true -DisableIOAVProtection $true -DisableScriptScanning $true -EnableControlledFolderAccess Disabled -EnableNetworkProtection AuditMode -Force -MAPSReporting Disabled -SubmitSamplesConsent NeverSend
Το επόμενο μέρος της συμβολοσειράς είναι μια εντολή PowerShell που επιχειρεί να απενεργοποιήσει βασικές προστασίες από κακόβουλα προγράμματα και προστασίες anti-ransomware που παρέχονται από το λογισμικό Microsoft Defender:
- Προστασία σε πραγματικό χρόνο
- Προστασία δικτύου ενάντια στα exploits γνωστών ευπαθειών
- Σάρωση όλων των αρχείων και συνημμένων που ελήφθησαν
- Σάρωση scripts
- Προστασία από ransomware
- Προστασία που εμποδίζει οποιαδήποτε εφαρμογή να αποκτήσει πρόσβαση σε επικίνδυνα domains που ενδέχεται να φιλοξενούν απάτες ηλεκτρονικού ψαρέματος, exploits και άλλο διαδικτυακό κακόβουλο περιεχόμενο
- Κοινοποίηση πληροφοριών πιθανής απειλής με την υπηρεσία Microsoft Active Protection Service (MAPS)
- Αυτόματη υποβολή δείγματος στη Microsoft
Αυτές οι δυνατότητες είναι απενεργοποιημένες για να αποτρέψουν το Microsoft Defender από το ενδεχόμενο αποκλεισμού επόμενων κακόβουλων αρχείων και δραστηριοτήτων.
copy /Y C:\Windows\System32\certutil.exe C:\Windows\cert.exe
Δημιουργεί ένα αντίγραφο του προγράμματος πιστοποιητικών των Windows, CERTUTIL.EXE – ένα συχνά χρησιμοποιούμενο Living-Off-the-Land Binary (LOLBin), ικανό να «κατεβάζει» και να αποκωδικοποιεί web-encoded περιεχόμενο. Το αντίγραφο είναι καταχωρημένο στο C:\WINDOWS \CERT.EXE.
echo %RANDOM% >> C:\Windows\cert.exe
Προσθέτει έναν τυχαίο 5ψήφιο αριθμό στο τέλος του αντιγράφου CERTUTIL. Πρόκειται για μία προσπάθεια να αποτραπούν τα προϊόντα anti-malware που παρακολουθούν για τυχόν καταχρήσεις/ αλλοιώσεις του CERTUTIL από το να αναγνωρίσουν το CERT.EXE ως αντίγραφο του CERTUTIL από υπογραφής.
C:\Windows\cert.exe -decode c:\kworking\agent.crt c:\kworking\agent.exe
Το αντιγραμμένο CERTUTIL χρησιμοποιείται για την αποκωδικοποίηση του κωδικοποιημένου με Base64 αρχείου με το φορτίο AGENT.CRT και την εγγραφή του σε ένα εκτελέσιμο, AGENT.EXE, στον «working» φάκελο του Kaseya. Το AGENT.EXE έχει έναν έγκυρο Authenticode, υπογεγραμμένο με πιστοποιητικό «PB03 TRANSPORT LTD.». Και έχουμε δει το συγκεκριμένο πιστοποιητικό να σχετίζεται μόνο με το malware REvil: μπορεί να έχει κλαπεί ή να έχει πέσει στα χέρια τον κυβερνοεγκληματιών με δόλιο τρόπο. Το AGENT.EXE περιέχει τη χρονική σήμανση στον compiler που είναι 1η Ιουλίου του 2021 (14:40:29) – μία ημέρα πριν την επίθεση.
del /q /f c:\kworking\agent.crt C:\Windows\cert.exe
Το αρχικό αρχείο με το φορτίο C:\KWORKING\AGENT.CRT και το αντίγραφο του CERTUTIL διαγράφονται.
c:\kworking\agent.exe
Τέλος, το AGENT.EXE εκτελείται από την διεργασία AGENTMON.EXE της Kaseya (κληρονομώντας τα προνόμια σε επίπεδο συστήματος) – και τότε είναι που ξεκινάει η πραγματική «φόρτωση» του ransomware.
Side-loading για μυστικότητα
Το AGENT.EXE «έριξε» στη συνέχεια ένα μη αναμενόμενο αρχείο: το MSMPENG.EXE, μία απαρχαιωμένη και ληγμένη έκδοση του εκτελέσιμου του Antimalware Service της Microsoft. Πρόκειται για μία καλοήθη αλλά ευάλωτη εφαρμογή του Windows Defender, στην έκδοση 4.5.218.0, η οποία υπογράφηκε από τη Microsoft στις 23 Μαρτίου 2014:
Αυτή η έκδοση του MSMPENG.EXE είναι ευάλωτη σε επιθέσεις side-loading – και έχουμε δει να αξιοποιείται η συγκεκριμένη έκδοση στο παρελθόν από κυβερνοεγκληματίες. Σε μια side-load επίθεση, o κακόβουλος κώδικας τοποθετείται σε μια βιβλιοθήκη DLL (Dynamic Link Library) με ονομασία που να ταιριάζει με εκείνη που απαιτείται από το εκτελέσιμο που αποτελεί και τον στόχο και συνήθως τοποθετείται στον ίδιο φάκελο με το εκτελέσιμο για να βρίσκεται πριν από ένα νόμιμο αντίγραφο.
Σε αυτήν την περίπτωση, το AGENT.EXE έριξε ένα κακόβουλο αρχείο με την ονομασία MPSVC.DLL παράλληλα με το εκτελέσιμο MSMPENG.EXE. Ακολούθως το AGENT.EXE προχωρά στην εκτέλεση του MSMPENG.EXE, το οποίο ανιχνεύει το κακόβουλο αρχείο MPSVC.DLL και το φορτώνει στον δικό του χώρο μνήμης.
Το MPSVC.DLL περιέχει επίσης το πιστοποιητικό «PB03 TRANSPORT LTD.» το οποίο εφαρμόστηκε στο AGENT.EXE. Το MPSVC.DLL φαίνεται να έχει γίνει compile την Πέμπτη 1 Ιουλίου του 2021 (στις 14:39:06) λίγο πριν από το compilation του AGENT.EXE.
Από εκείνη την ώρα και μετά, ο κακόβουλος κώδικας στο MPSVC.DLL παρεμβάλλεται στην κανονική ροή εκτέλεσης της επώνυμης διαδικασίας της Microsoft, όταν το MSMPENG.EXE καλεί την λειτουργία ServiceCrtMain στο κακόβουλο MPSVC.DLL (αυτή είναι επίσης η κύρια λειτουργία σε ένα καλοήθες MPSVC.DLL):
Το MSMPENG.EXE, που όπως καταλαβαίνετε βρίσκεται τώρα υπό τον έλεγχο του κακόβουλου MPSVC.DLL ξεκινάει την κρυπτογράφηση του τοπικού δίσκου, των συνδεδεμένων αποθηκευτικών μέσων (αφαιρούμενων μονάδων) αλλά και των δικτυακών μονάδων δίσκων που έχουν γίνει mapped, και όλα αυτά από μία υπογεγραμμένη εφαρμογή της Microsoft, την οποία οι έλεγχοι ασφαλείας εμπιστεύονται τυπικά επιτρέποντας την απρόσκοπτη, αδιάλειπτη λειτουργία της.
Από εκεί και πέρα, σε τεχνικό επίπεδο, ο τρόπος λειτουργίας του ransomware REvil δεν διαφέρει και πολύ από άλλες πρόσφατες επιχειρήσεις λύτρων και εκβιασμού που χρησιμοποιούν επίσης το REvil. Έτσι, εκτελεί μια εντολή NetShell (netsh) για να αλλάξει τις ρυθμίσεις του τείχους προστασίας για να επιτραπεί η «ανακάλυψη» του τοπικού συστήματος Windows από τους υπόλοιπους υπολογιστές του τοπικού δικτύου (netsh advfirewall firewall set rule group=”Network Discovery” new enable=Yes). Και στη συνέχεια ξεκινά την κρυπτογράφηση των αρχείων.
Το ransomware REvil εκτελεί μία επιτόπου επίθεση κρυπτογράφησης, ούτως ώστε τα κρυπτογραφημένα έγγραφα να αποθηκεύονται στους ίδιους sectors με τις αρχικές μη κρυπτογραφημένες εκδόσεις τους, καθιστώντας αδύνατη την ανάκτηση των πρωτοτύπων με εργαλεία ανάκτησης δεδομένων. Η αποδοτική δραστηριότητα του συστήματος αρχείων του REvil δείχνει συγκεκριμένες λειτουργίες να εκτελούνται σε συγκεκριμένα νήματα (threads):
Το ransomware εκτελεί storage access (ανάγνωση πρωτότυπων εγγράφων και εγγραφή κρυπτογραφημένων εγγράφων), key-blob embedding και document renaming σε πολλαπλά μεμονωμένα νήματα για να κάνει ταχύτερα την ζημιά. Καθώς κάθε αρχείο κρυπτογραφείται, προστίθεται μία τυχαία κατάληξη στο τέλος της ονομασίας του.
Step | Thread | Operation | Purpose |
---|---|---|---|
1 | A | CreateFile (Generic Read) | Άνοιγμα του αρχικού εγγράφου μόνο για ανάγνωση |
2 | A | ReadFile | Ανάγνωση των τελευταίων 232 bytes του αρχικού εγγράφου (έλεγχος για decryption blob.) |
3 | A | CloseFile | Κλείσιμο του αρχικού εγγράφου (χωρίς να γίνουν αλλαγές) |
4 | A | CreateFile (Generic Read/Write) | Άνοιγμα του αρχικού εγγράφου για ανάγνωση και εγγραφή |
5 | B | ReadFile | Ανάγνωση αρχικού εγγράφου |
6 | C | WriteFile | Εγγραφή κρυπτογραφημένου εγγράφου στη θέση του αρχικού εγγράφου |
7 | C | WriteFile | Προσθήκη decryption blob, 232 bytes, στο τέλος του αρχείου |
8 | B | CloseFile | Κλείσιμο του τώρα κρυπτογραφημένου εγγράφου |
9 | B | CreateFile (Read Attributes) | Άνοιγμα του κρυπτογραφημένου εγγράφου |
10 | B | SetRenameInformationFile | Μετονομασία εγγράφου με την προσθήκη μίας επέκτασης αρχείου, για παράδειγμα ‘.w3d1s’. |
11 | B | CloseFile | Κλείσιμο του τώρα κρυπτογραφημένου αρχείου |
Στη συνέχεια, «ρίχνει» μία σημείωση για λύτρα χρησιμοποιώντας την ίδια τυχαία κατάληξη ως μέρος της ονομασίας αρχείου (για παράδειγμα «39ats40-readme.txt»).
Υπάρχουν ορισμένοι παράγοντες που καθιστούν τη συγκεκριμένη επίθεση ξεχωριστή, σε σχέση με άλλες παρόμοιες επιθέσεις. Πρώτον, εξαιτίας του μαζικού deployment, δεν γίνεται καμία απολύτως προφανής προσπάθεια υποκλοπής ή κρυφής εξαγωγής δεδομένων. Από ότι φαίνεται, οι επιθέσεις προσαρμόστηκαν κατάλληλα με βάση το μέγεθος κάθε οργανισμού, κάτι που δείχνει ότι οι φορείς του REvil είχαν πρόσβαση σε VSA server instances και ήταν σε θέση να αναγνωρίσουν τους μεμονωμένους πελάτες των παρόχων διαχειριζόμενων υπηρεσιών (MSPs) από τους μεγαλύτερους οργανισμούς. Επίσης, δεν υπήρξε η παραμικρή ένδειξη μαζικής διαγραφής σκιωδών αντιγράφων – μια τυπική συμπεριφορά μεταξύ των ransomware που ενεργοποιεί πολλές άμυνες ενάντια στο κακόβουλο λογισμικό.
0 | Η βασική εντοκή εκτέλεσης |
1 | Εντολή PowerShell επιχειρεί να σταματήσει το Windows Defender |
2 | Το μετονομασθέν CERTUTIL.EXE αποκωδικοποιεί το AGENT.EXE από το AGENT.CRT |
3 | Εκτελείται το AGENT.EXE, φορτώνει τα MSMPENG.EXE και MPSVC.DLL στο C:\Windows |
4 | Εκτελείται το MSMPENG.EXE, και φορτώνει παράπλευρα το REvil DLL |
5 | Κρυπτογραφούνται τα αρχεία, και δημιουργείται η σημείωση για τα λύτρα |
6 | Το Netsh.exe ενεργοποιεί το network discovery |
Δείτε παρακάτω μία επίδειξη του τρόπου εκτέλεσης της επίθεσης:
Διδάγματα
Οι τεχνικές και οι τακτικές που χρησιμοποιήθηκαν για να αποφευχθούν οι όποιες προστασίες ενάντια στο κακόβουλο λογισμικό στη συγκεκριμένη περίπτωση – η «δηλητηρίαση» μιας πηγής από την εφοδιαστική αλυσίδα, η αξιοποίηση των εξαιρέσεων ορισμένων προμηθευτών στην προστασία έναντι του κακόβουλου λογισμικού και το side-loading μίας κατά τα άλλα αγαθής/ καλοήθης -και υπογεγραμμένης από την Microsoft διεργασίας- είναι εξαιρετικά προηγμένες.
Επιπλέον, αποκαλύπτουν τους πιθανούς κινδύνους που υπάρχουν από την προσθήκη εξαιρέσεων, όπως για παράδειγμα φακέλων όπου αυτόματες διεργασίες εγγράφουν και εκτελούν νέα αρχεία, στην προστασία ενάντια στο κακόβουλο λογισμικό. Αν και τα exploits μηδενικής ημέρας στην εφοδιαστική αλυσίδα σπανίζουν, εντούτοις έχουμε ήδη δει τουλάχιστον δύο μεγάλες πλατφόρμες διαχείρισης συστημάτων να πέφτουν θύματα επιθέσεων την τελευταία χρονιά. Αν και η Sunburst ήταν αναμφισβήτητα μία κρατικά χρηματοδοτούμενη επίθεση, οι διαχειριστές του ransomware είχαν ξεκάθαρα τους πόρους για να συνεχίσουν να εκτελούν επιθέσεις.
Πάντως, οι τεχνικές αποφυγής της προστασίας ενάντια στο κακόβουλο λογισμικό που χρησιμοποιήθηκαν στην συγκεκριμένη επίθεση με το REvil θα μπορούσαν να είχαν εντοπιστεί. Διάφορα προϊόντα anti-malware ήταν σε θέση να το κάνουν. Για παράδειγμα, το ίδιο το φορτίο REvil μπορούσε να ανιχνευτεί ως Mal/Generic-S από το Sophos Intercept X καθώς και ως Troj/Ransom-GIP, Troj/Ransom-GIS και HPmal/Sodino-A από τις συσκευές προστασίας της Sophos (on-premises). Το πιστοποιητικό του συγκεκριμένου κώδικα του REvil επίσης ανιχνεύτηκε ως Mal/BadCert-Gen. Αν και οι εξαιρέσεις στην προστασία ενδέχεται να επέτρεψαν την εγκατάσταση του dropper του REvil στους υπολογιστές, εντούτοις το ίδιο το ransomware εντοπίστηκε. Το χαρακτηριστικό προστασίας ενάντια στο ransomware του Sophos Intercept X δεν περιορίζεται από εξαιρέσεις φακέλων ενώ θα απέκλειε την κρυπτογράφηση αρχείων οπουδήποτε στις προστατευμένες μονάδες δίσκου.
Πηγή: Sophos