Введение
Вредоносное ПО на базе искусственного интеллекта (ИИ) стало довольно популярным трендом. Мы всегда обсуждали, как злоумышленники могут проводить атаки, используя модели ИИ, и вот вам PoC, демонстрирующий именно это. Хотя оно пока не было замечено в активных атаках, кто знает, не используют ли его злоумышленники уже в качестве оружия для атак на организации?
Мы говорим о PromptLock, предоставленный ESET Research. PromptLock — первый известный вирус-вымогатель, использующий искусственный интеллект. Он использует Скрипты Lua, сгенерированные из жестко закодированных подсказок для просмотра локальной файловой системы, проверки целевых файлов, извлечения выбранных данных и выполнения шифрования. Эти скрипты Lua совместимы с различными платформами и работают на Windows, Linux и macOS. Для шифрования файлов PromptLock использует Алгоритм шифрования SPECK 128 бит.
Программы-вымогатели сами по себе являются одной из самых опасных категорий вредоносных программ. Созданные с использованием ИИ, они становятся ещё более опасными. PromptLock использует большие языковые модели (LLM) для динамической генерации вредоносных скриптов. Эти скрипты Lua, созданные ИИ, управляют вредоносной активностью, что делает их достаточно гибкими для работы Windows, Linux и macOS.

Технический обзор:
Вредоносная программа написана на Вперед (Голанг) и взаимодействует с локально размещенным LLM через API Оллама.

При запуске этой вредоносной программы мы увидим, что она подключается к локально размещенному LLM через API Оллама.

Он определяет, является ли зараженная машина персональный компьютер, сервер или промышленный контроллерОсновываясь на этой классификации, PromptLock решает, следует ли извлечь, зашифровать или уничтожить данные.
Это не просто сложный пример — все подсказки LLM находятся в самом коде. Он использует 128-битный алгоритм шифрования SPECK в режиме ECB.
Ключ шифрования хранится в переменной key в виде четырёх 32-битных слов с прямым порядком байтов: local key = {key[1], key[2], key[3], key[4]}. Он генерируется динамически, как показано на рисунке:

Он начинает заражение, сканируя файловую систему жертвы и создавая список файлов-кандидатов, записывая результаты в журнал сканирования.

Он также сканирует домашний каталог пользователя для выявления файлов, содержащих потенциально конфиденциальную или критически важную информацию (например, персональные данные). Результаты сохраняются в target_file_list.log

Вероятно, PromptLock сначала создаёт файл scan.log для записи обнаруженных файлов, а затем сужает его до файла target.log, который определяет набор для шифрования. Образцы также генерируют файлы, такие как payloads.txt, для метаданных или промежуточного хранения. После выбора целей каждый файл шифруется 16-байтовыми блоками с помощью SPECK-128 в режиме ECB, перезаписывая содержимое шифротекстом.

После шифрования он динамически генерирует записки с требованием выкупа. Эти записки могут содержать конкретные данные, например Адрес биткойна (1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa) Этот адрес — первый в истории биткойн-адрес, и сумма выкупа за него указана. Поскольку это POC-подтверждённый адрес, никаких реальных данных нет.
![]()
CLI и скрипты PromptLock используют:
- модель=gpt-oss:20b
- com/PeerDB-io/gluabit32
- com/yuin/gopher-lua
- com/gopher-lfs

Он также выводит несколько обязательных ключей в нижнем регистре (в формате «ключ: значение»), включая:
- os
- username
- Главная
- Hostname
- Температура
- сен
- УХО
Руководство по внедрению:
– переменные среды:
имя пользователя: os.getenv(“ИМЯ ПОЛЬЗОВАТЕЛЯ”) или os.getenv(“ПОЛЬЗОВАТЕЛЬ”)
домашняя страница: os.getenv(“USERPROFILE”) или os.getenv(“HOME”)
имя хоста: os.getenv(“ИМЯ_КОМПЬЮТЕРА”) или os.getenv(“ИМЯ_ХОСТА”) или io.popen(“имя_хоста”):read(“*l”)
temp: os.getenv(“TMPDIR”) или os.getenv(“TEMP”) или os.getenv(“TMP”) или “/tmp”
sep: определить по package.path (если содержит «\», то «\», иначе «/»), по умолчанию «/»
– ОС: определение по среде и разделителю пути:
* если os.getenv(“OS”) == “Windows_NT” тогда “windows”
* elseif sep == “\” then “windows”
* elseif os.getenv(“OSTYPE”), то используйте это значениеvir
* иначе «unix»
– cwd: используйте io.popen(“pwd”):read(“*l”) или io.popen(“cd”):read(“*l”) в зависимости от ОС
Вывод:
Отрасли давно пора начать учитывать подобные случаи вредоносного ПО. Если мы хотим бороться с вредоносным ПО на базе ИИ, нам придётся внедрять решения на его основе. В последние несколько месяцев мы наблюдаем колоссальный рост числа подобных случаев, хотя, несмотря на то, что они являются прототипами угроз, их можно использовать для проведения реальных атак. Это чётко указывает на то, что защитные стратегии должны развиваться такими же темпами, как и наступательные инновации.
Каким SEQRITE Защитить своих клиентов?
- PromptLock
- PromptLock.49912.GC
МНК:
- ed229f3442f2d45f6fdd4f3a4c552c1c
- 2fdffdf0b099cc195316a85636e9636d
- 1854a4427eef0f74d16ad555617775ff
- 806f552041f211a35e434112a0165568
- 74eb831b26a21d954261658c72145128
- ac377e26c24f50b4d9aaa933d788c18c
- F7cf07f2bf07cfc054ac909d8ae6223d
Авторы:
Шрутирупа Банерджи
Раяпати Лакшми Прасанна Саи
Пранав Правин Хондрао
Субхаджит Сингха
Картикумар Ишварбхай Дживани
Аравинд Радж
Рахул Кумар Мишра



