pagpapakilala
Ang malware na pinapagana ng AI ay naging isang uso ngayon. Palagi naming tinatalakay kung paano maaaring magsagawa ng mga pag-atake ang mga aktor ng pagbabanta sa pamamagitan ng paggamit ng mga modelo ng AI, at narito mayroon kaming isang PoC na eksaktong nagpapakita nito. Bagama't hindi pa ito naoobserbahan sa mga aktibong pag-atake, sino ang nakakaalam kung hindi pa ito ginagawang armas ng mga banta ng aktor upang i-target ang mga organisasyon?
Pinag-uusapan natin ang PromptLock , na ibinahagi ng ESET Research. Ang PromptLock ang unang kilalang AI-powered ransomware. Ginagamit nito ang mga Lua script na nabuo mula sa mga hard-coded prompt upang ilista ang lokal na filesystem, siyasatin ang mga target na file, alisin ang mga piling data, at magsagawa ng encryption. Ang mga Lua script na ito ay cross-platform compatible, gumagana sa Windows, Linux, at macOS . Para sa pag-encrypt ng file, ginagamit ng PromptLock ang SPECK 128-bit encryption algorithm.
Ang Ransomware mismo ay isa na sa mga pinaka-mapanganib na kategorya ng malware. Kapag ginawa gamit ang AI, lalo itong nagiging nakababahala. Ginagamit ng PromptLock ang mga malalaking modelo ng wika (LLM) upang pabago-bagong makabuo ng mga malisyosong script. Ang mga Lua script na ito na binuo ng AI ang nagtutulak sa malisyosong aktibidad nito, na ginagawa silang sapat na flexible upang gumana sa Windows, Linux, at macOS.

Teknikal na Pangkalahatang-ideya:
Ang malware ay nakasulat sa Go (Golang) at nakikipag-ugnayan sa isang lokal na naka-host na LLM sa pamamagitan ng Ollama API.

Sa pagpapatakbo ng malware na ito, mapapansin naming kumokonekta ito sa locally hosted LLM sa pamamagitan ng Ollama API.

Kinikilala nito kung ang nahawaang makina ay isang personal na computer, server, o industrial controller . Batay sa klasipikasyong ito, nagpapasya ang PromptLock kung i-exfiltrate, i-encrypt, o sisirain ang data.
Ito ay hindi lamang isang sopistikadong sample - ang buong LLM prompt ay nasa mismong code. Gumagamit ito ng SPECK 128bit encryption algorithm sa ECB mode.
Ang encryption key ay nakaimbak sa key variable bilang apat na 32-bit little-endian na salita: local key = {key[1], key[2], key[3], key[4]}. Ito ay dynamic na nabuo tulad ng ipinapakita sa figure:

Sinisimulan nito ang impeksyon sa pamamagitan ng pag-scan sa filesystem ng biktima at pagbuo ng imbentaryo ng mga kandidatong file, at isinusulat ang mga resulta sa scan.log.

Ini-scan din nito ang home directory ng user upang matukoy ang mga file na naglalaman ng potensyal na sensitibo o kritikal na impormasyon (hal., PII). Ang mga resulta ay nakaimbak sa target_file_list.log

Malamang, ang PromptLock ay unang gumagawa ng scan.log upang i-record ang mga natuklasang file at pagkatapos ay paliitin ito sa target.log, na tumutukoy sa set upang i-encrypt. Bumubuo din ang mga sample ng mga file tulad ng payloads.txt para sa metadata o staging. Kapag naitakda na ang mga target, ine-encrypt ang bawat file sa mga 16-byte na chunks gamit ang SPECK-128 sa ECB mode, na ino-overwrite ang mga content gamit ang ciphertext.

Pagkatapos ng pag-encrypt, dynamic itong bumubuo ng mga tala ng ransom. Ang mga talang ito ay maaaring magsama ng mga partikular na detalye tulad ng isang Bitcoin address (1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa) ang address na ito ang unang bitcoin address na nilikha at ang halaga ng ransom. Dahil ito ay isang POC, walang totoong data na naroroon.
![]()
Ang CLI at mga script ng PromptLock ay umaasa sa:
- model=gpt-oss:20b
- com/PeerDB-io/gluabit32
- com/yuin/gopher-lua
- com/gopher-lfs

Nagpi-print din ito ng ilang kinakailangang key sa lowercase (na naka-format bilang "key: value"), kabilang ang:
- os
- username
- Home
- hostname
- Temp
- Septiyembre
- cwd
Patnubay sa pagpapatupad:
- mga variable ng kapaligiran:
username: os.getenv(“USERNAME”) o os.getenv(“USER”)
home: os.getenv(“USERPROFILE”) o os.getenv(“HOME”)
hostname: os.getenv(“COMPUTERNAME”) o os.getenv(“HOSTNAME”) o io.popen(“hostname”):read(“*l”)
temp: os.getenv(“TMPDIR”) o os.getenv(“TEMP”) o os.getenv(“TMP”) o “/tmp”
sep: detect mula sa package.path (kung naglalaman ng "\" pagkatapos ay "\" else "/"), default sa "/"
– os: detect mula sa environment at path separator:
* kung os.getenv("OS") == "Windows_NT" pagkatapos ay "windows"
* elseif sep == “\” pagkatapos ay “windows”
* elseif os.getenv("OSTYPE") pagkatapos ay gamitin ang valuevir na iyon
* ibang “unix”
– cwd: gumamit ng io.popen(“pwd”):read(“*l”) o io.popen(“cd”):read(“*l”) depende sa OS
Paghihinuha:
Panahon na upang simulan ng industriya na isaalang-alang ang mga ganitong kaso ng malware. Kung gusto naming talunin ang malware na pinapagana ng AI, kakailanganin naming isama ang mga solusyon na pinapagana ng AI. Sa nakalipas na ilang buwan, naobserbahan namin ang napakalaking pagtaas sa mga ganitong kaso, bagama't ang mga PoC, sapat na ang mga ito para magamit upang magsagawa ng mga aktwal na pag-atake. Ito ay malinaw na nagpapahiwatig na ang mga diskarte sa pagtatanggol ay dapat umunlad sa parehong bilis ng mga nakakasakit na inobasyon.
Paano SEQRITE Protektahan ang mga Kustomer Nito?
- PromptLock
- PromptLock.49912.GC
Mga IOC:
- ed229f3442f2d45f6fdd4f3a4c552c1c
- 2fdffdf0b099cc195316a85636e9636d
- 1854a4427eef0f74d16ad555617775ff
- 806f552041f211a35e434112a0165568
- 74eb831b26a21d954261658c72145128
- ac377e26c24f50b4d9aaa933d788c18c
- F7cf07f2bf07cfc054ac909d8ae6223d
Mga May-akda:
Shrutirupa Banerjee
Rayapati Lakshmi Prasanna Sai
Pranav Pravin Hondrao
Subhajeet Singha
Kartikkumar Ishvarbhai Jivani
Aravind Raj
Rahul Kumar Mishra



