infostealer-malware-threadfluent-code-obfuscation

Αναλύοντας ένα πακέτο κακόβουλου λογισμικού Infostealer πολλαπλών σταδίων

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

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

Φυλλάδιο με συμβουλές: Κακόβουλο λογισμικό Infostealer και συσκότιση κώδικα

Τι είναι το κακόβουλο λογισμικό Infostealer;

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

Επίπεδα συσκότισης του κακόβουλου λογισμικού ThreadFluent Infostealer

1. Τριπλή κρυπτογράφηση

Η διαδικασία συσκότισης ξεκινά με ένα έντονα κρυπτογραφημένο ωφέλιμο φορτίο ενσωματωμένο στο fluent.py αρχείο. Η αρχική διαδικασία κωδικοποίησης και αποκρυπτογράφησης μπορεί να συνοψιστεί ως εξής:

encoded_data = base64_module.b64decode("... BASE-6 with encrypted payload, IV and RSA-encrypted keys…”); # … Sequential decryption: ChaCha20, Blowfish and AES … encrypted_payload = AES_Cipher.new(aes_key, AES_Cipher.MODE_CBC, iv=aes_iv).decrypt(encrypted_payload[16:]) final_payload = unpad_function(encrypted_payload, AES_Cipher.block_size) exec( zlib_module.decompress(bz2_module.decompress(final_payload)) ) 

Αυτή η διαδικασία αποκρυπτογράφησης περιλαμβάνει:

  • Συμπίεση: Χρήση gzip και bzip.
  • Συμμετρική κρυπτογράφησηΑλυσιδωτή κρυπτογράφηση με ChaCha20, Blowfish και AES.
  • Ασύμμετρη κρυπτογράφηση: Το RSA χρησιμοποιείται για την κρυπτογράφηση των συμμετρικών κλειδιών.

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

 

2. Αποσυμπίεση Gzip

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

import base64, zlib; eval(zlib.decompress(base64.b64decode(<STR>).decode('utf-8')) 

Αυτή η τεχνική διασφαλίζει ότι το κρυμμένο ωφέλιμο φορτίο παραμένει κρυφό σε όλα τα στάδια.

3. Συνένωση Κώδικα και Δυναμική Μεταγλώττιση

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

import base64, zlib  FEQXCBDOZKHVIhT = '...' # ....(111 other variables with base-64 encoded values) ...  zZytWuvuEdBXSrO =   eval(<FEQXCBDOZKHVIhT' encoded with '\x>) +   eval(<next variable, encoded>) +   eval( ' zlib.decompress(base64.b64decode(<VAR>)).decode('utf-8') ') + ...  eval(compile(base64.b64decode(eval(zZytWuvuEdBXSrO)).decode('utf-8'), ‘<app>', 'exec')) 

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

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

Η Πολυβάθμια Αλυσίδα Επιθέσεων του ThreadFluent

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

infostealer-malware-code-obfuscation- threadfluent

Στάδιο 0: Αρχική εκτέλεση κώδικα

Το σημείο εισόδου είναι το __init__.py αρχείο, το οποίο ξεκινά την εκτέλεση του μπερδεμένου ωφέλιμου φορτίου στο fluent.pyΑυτό το αρχείο χρησιμοποιεί πολυεπίπεδη συσκότιση (όπως περιγράφεται στα βήματα 1–3) για να δημιουργήσει το dropper Σταδίου 1:

import os,threading def main():     if os.name == 'nt':         from . import fluent         fluent.main()          thread = threading.Thread(target=main , daemon=True) thread.start() 

Στάδιο 1: Αρχικός σταγονόμετρο

Το πρώτο dropper, αφού απεμπλακεί, κατεβάζει και ενσωματώνει επιπλέον κακόβουλο κώδικα, puts.py, από ένα αποθετήριο GitHub Κοκκινομάλλα μπούτια-1337/repuests (προειδοποίηση: πιθανός κακόβουλος κώδικας εδώ). 

Το σταγονόμετρο ενσωματώνεται puts.py στην τοπική εγκατάσταση του δημοφιλούς αιτήματα βιβλιοθήκη, τροποποιώντας την __init__.py για να εκτελέσετε την απεμπλοκή και να εκτελέσετε το επόμενο στάδιο. Αυτή η απεμπλοκή συνίσταται στην αντιστροφή πολλών εφαρμογών των στρώσεων απόκρυψης 1 … 3.

Στάδιο 2: Δεύτερο Dropper

Το δεύτερο dropper, αφού αποσυμπιεστεί ακολουθώντας την ίδια διαδικασία, κατεβάζει ένα ακόμη ωφέλιμο φορτίο, ssl.py από το αποθετήριο GitHub, το μετονομάζει σε udp.pyκαι δημιουργεί ένα αρχείο κλειδώματος για να διασφαλίσει ότι το κακόβουλο λογισμικό δεν θα επανεγκατασταθεί επανειλημμένα. Στη συνέχεια, εκτελείται για την απεμπλοκή του, με αποτέλεσμα την εκτέλεση του τελικού φορτίου infostealer.

Στάδιο 3: Τελικός Κλέφτης Πληροφοριών

Το τελικό στάδιο είναι ένας πλήρως λειτουργικός κλέφτης πληροφοριών που χρησιμοποιεί προηγμένες τεχνικές αποφυγής:

  • Χαρακτηριστικά κατά της ανάλυσης:
    • Εντοπίζει εργαλεία προστασίας από κακόβουλο λογισμικό και τερματίζει την λειτουργία του εάν εντοπιστούν διεργασίες, IP, ονόματα κεντρικών υπολογιστών ή εικονικά περιβάλλοντα που βρίσκονται σε μαύρη λίστα.
  • Διήθηση δεδομένων:
    • Καταγράφει εκτενείς πληροφορίες. Ποικίλουν από IP, διεύθυνση Mac, δεδομένα VPN, cookies/ιστορικό προγράμματος περιήγησης, δεδομένα πιστωτικής κάρτας και διαπιστευτήρια κρυπτονομισμάτων, μεταξύ άλλων, συμπεριλαμβανομένου ενός στιγμιότυπου οθόνης.
    • Στέλνει κλεμμένα δεδομένα (κρυπτογραφημένα) μέσω ενός καναλιού Telegram, χρησιμοποιώντας το πρότυπο που φαίνεται εδώ: 
infostealer-malware-code-obfuscation- threadfluent

Στρατηγική απεμπλοκής

Για να αναλύσουν παρόμοια πακέτα, οι ερευνητές πρέπει να αντιστρέψουν συστηματικά τα επίπεδα συσκότισής τους:

  • Βήματα εξομοίωσης συσκότισης: Γράψτε σενάρια για την προσομοίωση των μετασχηματισμών (π.χ., αποκρυπτογράφηση, αποσυμπίεση) χωρίς να εκτελέσετε το ωφέλιμο φορτίο.
  • Επίπεδα αντίστροφης κρυπτογράφησης: Εξαγάγετε και αποκρυπτογραφήστε το ωφέλιμο φορτίο χρησιμοποιώντας τα ενσωματωμένα κλειδιά και τους αλγόριθμους.
  • Επαναληπτική Ανάλυση: Επεξεργαστείτε κάθε ενδιάμεσο στάδιο επαναληπτικά για να ανακατασκευάσετε το τελικό ωφέλιμο φορτίο.

Τα αυτοματοποιημένα εργαλεία και τα περιβάλλοντα sandboxed είναι απαραίτητα για την απλοποίηση αυτής της ανάλυσης.

 

Θέλετε να μάθετε περισσότερα για το πώς να παραμένετε μπροστά από τις απειλές σε πραγματικό χρόνο;

Κατεβάστε τη λευκή μας βίβλο με τίτλο «Έγκαιρη προειδοποίηση: Ανίχνευση και ιεράρχηση απειλών σε πραγματικό χρόνο» και ανακαλύψτε πώς να προστατεύσετε την αλυσίδα εφοδιασμού λογισμικού σας.

Ο Ηθοποιός της Απειλής

Προφανώς το πακέτο δημοσιεύτηκε από δύο λογαριασμούς PyPI, ΑΜΠΙΡΧΟΣΑΪΝ10 και anomilano785, έχει καταργηθεί προς το παρόν. 

Υπάρχει ένας (ενεργός αυτήν τη στιγμή) λογαριασμός GitHub με το όνομα ΑΜΠΙΡΧΟΣΑΪΝ10, η οποία θα μπορούσε να σχετίζεται με την εκστρατεία. Το Κοκκινομάλλα-κνήμη-1337 Ο χρήστης του GitHub που κατέχει το αποθετήριο που χρησιμοποιείται για τη λήψη φορτίων σταδίου 2 και 3 βρίσκεται επίσης υπό ανάλυση.

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

Συμπέρασμα: Ο ρόλος της συσκότισης κώδικα στην εξέλιξη του κακόβουλου λογισμικού

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

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

Πώς το σύστημα MEW της Xygeni εμπόδισε το κακόβουλο πακέτο threadfluent να φτάσει στην παραγωγή

Ξυγένης Έγκαιρη προειδοποίηση για κακόβουλο λογισμικό (MEW) το σύστημα έπαιξε καθοριστικό ρόλο στην αναχαίτιση του ροή νήματος Πακέτο Python, μια κακόβουλη εξάρτηση που περιέχει προηγμένες συσκότιση κώδικα και ένα πολυβάθμιο κακόβουλο λογισμικό infostealer, προτού θέσει σε κίνδυνο τα περιβάλλοντα παραγωγής. Δείτε πώς:

  • Ανίχνευση μέσω στατικής ανάλυσης
    Εντοπίστηκε MEW ροή νήματοςκρυφό κώδικα του, εντοπίζοντας ύποπτα σημάδια όπως κρυπτογράφηση σε επίπεδα και ασυνήθιστη δραστηριότητα εξάρτησης.
  • Αξιολόγηση Προσβασιμότητας κατά τον Χρόνο Εκτέλεσης
     Το σύστημα διαπίστωσε ότι ο κώδικας του πακέτου μπορούσε να εκτελεστεί κατά τη χρήση, χαρακτηρίζοντάς το ως σοβαρή απειλή χωρίς στην πραγματικότητα να τον εκτελέσει.
  • CI/CD Pipeline Προστασία
    Το MEW μπλοκαρίστηκε ροή νήματος σε πραγματικό χρόνο, εμπόδισε την ένταξή του στις εκδόσεις και την ολοκλήρωσή του στην παραγωγή. Έστειλε στους προγραμματιστές ειδοποιήσεις με δυνατότητα εφαρμογής, εξοικονομώντας πολύτιμο χρόνο.
  • Κοινή χρήση πληροφοριών απειλών
    Η Xygeni ανέφερε γρήγορα το πακέτο στην PyPI και κοινοποίησε τα ευρήματά της στο παγκόσμιο δίκτυο ασφαλείας της, εμποδίζοντας την περαιτέρω εξάπλωσή του.

Με το πιάσιμο ροή νήματος νωρίς, το σύστημα MEW της Xygeni διασφάλισε ότι ο κακόβουλος κώδικας δεν έβλαπτε τις αλυσίδες εφοδιασμού λογισμικού ή CI/CD ροές εργασίας.

Προστατέψτε το δικό σας CI/CD Pipelines δωρεάν

Αποτρέψτε απειλές όπως ροή νήματος με το σύστημα έγκαιρης προειδοποίησης κακόβουλου λογισμικού της Xygeni. Ξεκινήστε το δικό σας δωρεάν δοκιμή σήμερα και ασφαλίστε την αλυσίδα εφοδιασμού λογισμικού σας.

Εικόνα του Λουίς Ροντρίγκεζ

Λουίς Ροντρίγκεζ

Ο Λουίς Ροντρίγκεζ είναι φυσιοθεραπευτήςcist + μαθηματικός και CISSP. Συνιδρυτής και CTO στην Xygeni Security. Έχει πάνω από 20 χρόνια εμπειρίας στην ασφάλεια λογισμικού και έχει συμμετάσχει σε έργα όπως SAST και SCAΑυτή τη στιγμή επικεντρώνεται στο software supply chain security.

Εικόνα του Ντάνιελ Μαρτίν

Ντανιέλ Μάρτιν

Ο Daniel Martín είναι ειδικός στον κυβερνοχώρο και μέλος της ερευνητικής ομάδας ασφάλειας της Xygeni, με εξειδίκευση στην SDLC ασφάλεια και μετριασμός ευπαθειών εφαρμογών.

εργαλεία-ανάλυσης-σύνθεσης-λογισμικού-sca
Ιεράρχηση, αποκατάσταση και ασφάλεια των κινδύνων λογισμικού σας
Αποκτήστε τον Δωρεάν Λογαριασμό σας.
Δεν απαιτείται πιστωτική κάρτα.

Ασφαλίστε την ανάπτυξη και την παράδοση λογισμικού σας

με το Xygeni Product Suite