개요
AI 기반 멀웨어는 이제 큰 트렌드가 되었습니다. 우리는 위협 행위자들이 AI 모델을 활용하여 어떻게 공격을 수행할 수 있는지에 대해 항상 논의해 왔으며, 여기에서는 이를 정확히 보여주는 PoC를 소개합니다. 아직 실제 공격에서 발견된 적은 없지만, 위협 행위자들이 조직을 표적으로 삼아 이미 무기화하고 있을지도 모릅니다.
우리는 이야기하고있다. 프롬프트 잠금ESET Research에서 공유한 PromptLock은 최초로 알려진 AI 기반 랜섬웨어입니다. 하드코딩된 프롬프트에서 생성된 Lua 스크립트 로컬 파일 시스템을 열거하고, 대상 파일을 검사하고, 선택된 데이터를 추출하고, 암호화를 수행합니다. 이 Lua 스크립트는 크로스 플랫폼 호환이 가능하며 다음 플랫폼에서 작동합니다. Windows, Linux 및 macOS. 파일 암호화를 위해 PromptLock은 다음을 활용합니다. SPECK 128비트 암호화 알고리즘.
랜섬웨어 자체는 이미 가장 위험한 악성코드 중 하나입니다. AI를 사용하여 제작될 경우 더욱 위험해집니다. PromptLock은 대규모 언어 모델(LLM) 악성 스크립트를 동적으로 생성합니다. 이러한 AI 생성 Lua 스크립트는 악성 활동을 유도하여 다양한 환경에서 작동할 수 있을 만큼 유연합니다. Windows, Linux 및 macOS.

기술 개요:
악성코드는 다음과 같이 작성됩니다. 고(고랑) 로컬로 호스팅된 LLM과 통신합니다. 올라마 API.

이 맬웨어를 실행하면 로컬로 호스팅된 LLM에 연결이 이루어지는 것을 확인할 수 있습니다. 올라마 API.

감염된 컴퓨터가 다음인지 식별합니다. 개인용 컴퓨터, 서버 또는 산업용 컨트롤러. 이 분류를 기반으로 PromptLock은 다음을 결정합니다. 데이터를 빼내거나 암호화하거나 파괴합니다..
단순히 정교한 샘플이 아닙니다. LLM 프롬프트 전체가 코드 자체에 포함되어 있습니다. ECB 모드에서 SPECK 128비트 암호화 알고리즘을 사용합니다.
암호화 키는 키 변수에 32개의 1비트 리틀 엔디안 단어(local key = {key[2], key[3], key[4], key[XNUMX]})로 저장됩니다. 이 키는 그림과 같이 동적으로 생성됩니다.

피해자의 파일 시스템을 스캔하고 후보 파일 인벤토리를 작성하여 결과를 기록하여 감염을 시작합니다. 스캔.로그.

또한 사용자의 홈 디렉터리를 스캔하여 잠재적으로 민감하거나 중요한 정보(예: PII)가 포함된 파일을 식별합니다. 결과는 다음 위치에 저장됩니다. 대상_파일_목록.log

아마도 PromptLock은 먼저 scan.log를 생성하여 발견된 파일을 기록한 다음, 이를 target.log로 압축하여 암호화 대상을 정의할 것입니다. 샘플은 메타데이터 또는 스테이징을 위해 payloads.txt와 같은 파일도 생성합니다. 대상이 설정되면 각 파일은 ECB 모드에서 SPECK-16을 사용하여 128바이트 단위로 암호화되어 내용을 암호문으로 덮어씁니다.

암호화 후, 랜섬 노트를 동적으로 생성합니다. 이 노트에는 다음과 같은 특정 세부 정보가 포함될 수 있습니다. 비트 코인 주소 (1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa) 이 주소는 최초로 생성된 비트코인 주소이자 랜섬웨어 공격에 대한 보상입니다. POC(실증 테스트)이므로 실제 데이터는 존재하지 않습니다.
![]()
PromptLock의 CLI와 스크립트는 다음에 의존합니다.
- 모델=gpt-oss:20b
- com/PeerDB-io/gluabit32
- com/yuin/gopher-lua
- com/gopher-lfs

또한 다음을 포함하여 여러 필수 키를 소문자로 인쇄합니다(형식은 "키: 값"입니다).
- os
- 사용자 이름
- 홈
- 호스트 이름
- 온도
- XNUMX월
- cwd
구현 지침:
– 환경 변수:
사용자 이름: os.getenv(“USERNAME”) 또는 os.getenv(“USER”)
홈: os.getenv(“USERPROFILE”) 또는 os.getenv(“HOME”)
호스트 이름: os.getenv(“COMPUTERNAME”) 또는 os.getenv(“HOSTNAME”) 또는 io.popen(“hostname”):read(“*l”)
temp: os.getenv(“TMPDIR”) 또는 os.getenv(“TEMP”) 또는 os.getenv(“TMP”) 또는 “/tmp”
sep: package.path에서 감지(포함된 경우 "\", 그렇지 않으면 "/"), 기본값은 "/"
– os: 환경 및 경로 구분 기호에서 감지:
* if os.getenv("OS") == "Windows_NT"이면 "windows"입니다.
* elseif sep == “\” then “windows”
* elseif os.getenv(“OSTYPE”) then 해당 값을 사용합니다.
* else “유닉스”
– cwd: OS에 따라 io.popen(“pwd”):read(“*l”) 또는 io.popen(“cd”):read(“*l”)을 사용합니다.
결론 :
업계가 이러한 악성코드 사례를 검토해야 할 때입니다. AI 기반 악성코드를 방어하려면 AI 기반 솔루션을 도입해야 합니다. 지난 몇 달 동안 이러한 사례가 엄청나게 증가했습니다. 비록 PoC(개념 증명) 수준이지만, 실제 공격에 활용될 만큼 충분히 효과적입니다. 이는 방어 전략이 공격 혁신과 같은 속도로 발전해야 함을 분명히 보여줍니다.
SEQRITE는 고객을 어떻게 보호하나요?
- 프롬프트 잠금
- 프롬프트락.49912.GC
IOC:
- ed229f3442f2d45f6fdd4f3a4c552c1c
- 2fdffdf0b099cc195316a85636e9636d
- 1854a4427eef0f74d16ad555617775ff
- 806f552041f211a35e434112a0165568
- 74eb831b26a21d954261658c72145128
- ac377e26c24f50b4d9aaa933d788c18c
- F7cf07f2bf07cfc054ac909d8ae6223d
저자 :
슈루티루파 바네르지
라야파티 락슈미 프라산나 사이
프라나브 프라빈 혼드라오
수바지트 싱하
카르티쿠마르 이슈바르바이 지바니
아라빈드 라지
라훌 쿠마르 미슈라



