Εισαγωγή
Το κακόβουλο λογισμικό που υποστηρίζεται από την τεχνητή νοημοσύνη έχει γίνει πλέον μια αρκετά δημοφιλής τάση. Πάντα συζητούσαμε πώς οι απειλητικοί παράγοντες θα μπορούσαν να πραγματοποιήσουν επιθέσεις αξιοποιώντας μοντέλα τεχνητής νοημοσύνης, και εδώ έχουμε ένα PoC που το αποδεικνύει ακριβώς αυτό. Αν και δεν έχει παρατηρηθεί ακόμη σε ενεργές επιθέσεις, ποιος ξέρει αν δεν χρησιμοποιείται ήδη ως όπλο από απειλητικούς παράγοντες για να στοχεύσουν οργανισμούς;
Μιλάμε για το PromptLock , το οποίο κοινοποιήθηκε από την ESET Research. Το PromptLock είναι το πρώτο γνωστό ransomware που υποστηρίζεται από τεχνητή νοημοσύνη. Αξιοποιεί σενάρια Lua που δημιουργούνται από κωδικοποιημένα μηνύματα για να απαριθμήσει το τοπικό σύστημα αρχείων, να επιθεωρήσει αρχεία-στόχους, να εξαγάγει επιλεγμένα δεδομένα και να εκτελέσει κρυπτογράφηση. Αυτά τα σενάρια Lua είναι συμβατά με πλατφόρμες και λειτουργούν σε Windows, Linux και macOS . Για την κρυπτογράφηση αρχείων, το PromptLock χρησιμοποιεί τον αλγόριθμο κρυπτογράφησης SPECK 128-bit.
Το ίδιο το ransomware είναι ήδη μια από τις πιο επικίνδυνες κατηγορίες κακόβουλου λογισμικού. Όταν δημιουργείται με χρήση τεχνητής νοημοσύνης, γίνεται ακόμη πιο ανησυχητικό. Το PromptLock αξιοποιεί μεγάλα μοντέλα γλώσσας (LLM) για τη δυναμική δημιουργία κακόβουλων σεναρίων. Αυτά τα σενάρια Lua που δημιουργούνται από τεχνητή νοημοσύνη καθοδηγούν την κακόβουλη δραστηριότητά του, καθιστώντας τα αρκετά ευέλικτα ώστε να λειτουργούν σε Windows, Linux και macOS.

Τεχνική Επισκόπηση:
Το κακόβουλο λογισμικό είναι γραμμένο σε Go (Golang) και επικοινωνεί με ένα τοπικά φιλοξενούμενο LLM μέσω του Ollama API.

Κατά την εκτέλεση αυτού του κακόβουλου λογισμικού, θα παρατηρήσουμε ότι συνδέεται με το τοπικά φιλοξενούμενο LLM μέσω του Ollama API.

Προσδιορίζει εάν το μολυσμένο μηχάνημα είναι προσωπικός υπολογιστής, διακομιστής ή βιομηχανικός ελεγκτής . Με βάση αυτήν την ταξινόμηση, το PromptLock αποφασίζει εάν θα εξαγάγει, θα κρυπτογραφήσει ή θα καταστρέψει δεδομένα.
Δεν είναι απλώς ένα εξελιγμένο δείγμα - ολόκληρες οι προτροπές LLM βρίσκονται στον ίδιο τον κώδικα. Χρησιμοποιεί τον αλγόριθμο κρυπτογράφησης SPECK 128bit σε λειτουργία ECB.
Το κλειδί κρυπτογράφησης αποθηκεύεται στη μεταβλητή κλειδιού ως τέσσερις λέξεις little-endian 32-bit: τοπικό κλειδί = {key[1], key[2], key[3], key[4]}. Αυτό δημιουργείται δυναμικά όπως φαίνεται στο σχήμα:

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

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

Πιθανώς, το PromptLock δημιουργεί πρώτα το scan.log για να καταγράψει τα ανακαλυφθέντα αρχεία και στη συνέχεια το περιορίζει στο target.log, το οποίο ορίζει το σύνολο για κρυπτογράφηση. Τα δείγματα δημιουργούν επίσης αρχεία όπως το payloads.txt για μεταδεδομένα ή σταδιακή επεξεργασία. Μόλις οριστούν οι στόχοι, κάθε αρχείο κρυπτογραφείται σε κομμάτια 16 byte χρησιμοποιώντας το SPECK-128 σε λειτουργία ECB, αντικαθιστώντας τα περιεχόμενα με κρυπτογραφημένο κείμενο.

Μετά την κρυπτογράφηση, δημιουργεί δυναμικά σημειώματα λύτρων. Αυτά τα σημειώματα μπορεί να περιλαμβάνουν συγκεκριμένες λεπτομέρειες, όπως μια διεύθυνση Bitcoin (1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa). Αυτή η διεύθυνση είναι η πρώτη διεύθυνση bitcoin που δημιουργήθηκε ποτέ και το ποσό των λύτρων. Καθώς πρόκειται για POC, δεν υπάρχουν πραγματικά δεδομένα.
![]()
Το CLI και τα σενάρια του PromptLock βασίζονται σε:
- μοντέλο=gpt-oss:20b
- com/PeerDB-io/gluabit32
- com/yuin/gopher-lua
- com/gopher-lfs

Επίσης, εκτυπώνει πολλά απαιτούμενα κλειδιά με πεζά γράμματα (με μορφοποίηση "κλειδί: τιμή"), όπως:
- os
- όνομα χρήστη
- Αρχική
- Όνομα κεντρικού υπολογιστή
- Temp
- Σεπτέμβριος
- cwd
Οδηγίες εφαρμογής:
– μεταβλητές περιβάλλοντος:
όνομα χρήστη: os.getenv(“ΟΝΟΜΑ ΧΡΗΣΤΗ”) ή os.getenv(“ΧΡΗΣΤΗΣ”)
αρχική σελίδα: os.getenv(“ΠΡΟΦΙΛ ΧΡΗΣΤΗ”) ή os.getenv(“ΑΡΧΙΚΗ”)
όνομα κεντρικού υπολογιστή: os.getenv(“ΟΝΟΜΑ ΥΠΟΛΟΓΙΣΤΗ”) ή os.getenv(“ΟΝΟΜΑ ΚΕΝΤΡΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ”) ή io.popen(“όνομα κεντρικού υπολογιστή”):read(“*l”)
temp: os.getenv(“TMPDIR”) ή os.getenv(“TEMP”) ή os.getenv(“TMP”) ή “/tmp”
sep: ανίχνευση από το package.path (αν περιέχει το “\” τότε “\” αλλιώς “/”), προεπιλογή σε “/”
– os: ανίχνευση από το περιβάλλον και διαχωριστής διαδρομής:
* αν os.getenv(“OS”) == “Windows_NT” τότε “windows”
* αλλιώς αν sep == “\” τότε “παράθυρα”
* αλλιώς αν os.getenv(“OSTYPE”) τότε χρησιμοποιήστε αυτήν την τιμήvir
* αλλιώς «unix»
– cwd: χρησιμοποιήστε io.popen(“pwd”):read(“*l”) ή io.popen(“cd”):read(“*l”) ανάλογα με το λειτουργικό σύστημα
Συμπέρασμα:
Είναι καιρός η βιομηχανία να αρχίσει να εξετάζει τέτοιες περιπτώσεις κακόβουλου λογισμικού. Αν θέλουμε να νικήσουμε το κακόβουλο λογισμικό που υποστηρίζεται από την Τεχνητή Νοημοσύνη, θα πρέπει να ενσωματώσουμε λύσεις που υποστηρίζονται από την Τεχνητή Νοημοσύνη. Τους τελευταίους μήνες, παρατηρούμε μια τεράστια αύξηση σε τέτοιες περιπτώσεις, αν και οι PoCs είναι αρκετά καλές ώστε να αξιοποιηθούν για την εκτέλεση πραγματικών επιθέσεων. Αυτό σηματοδοτεί σαφώς ότι οι αμυντικές στρατηγικές πρέπει να εξελίσσονται με τον ίδιο ρυθμό με τις επιθετικές καινοτομίες.
Πώς κάνει SEQRITE Να προστατεύσει τους πελάτες της;
- PromptLock
- PromptLock.49912.GC
ΔΟΕ:
- ed229f3442f2d45f6fdd4f3a4c552c1c
- 2fdffdf0b099cc195316a85636e9636d
- 1854a4427eef0f74d16ad555617775ff
- 806f552041f211a35e434112a0165568
- 74eb831b26a21d954261658c72145128
- ac377e26c24f50b4d9aaa933d788c18c
- F7cf07f2bf07cfc054ac909d8ae6223d
Συγγραφείς:
Σρουτιρούπα Μπανερτζί
Ραγιαπάτι Λάκσμι Πρασάνα Σάι
Πρανάβ Πραβίν Χοντράο
Σουμπατζίτ Σίνγκα
Καρτικκουμάρ Ισβαρμπάι Τζιβάνι
Αραβίντ Ρατζ
Ραχούλ Κουμάρ Μίσρα



