AI 악성코드 LAMEHUG: 284개 탈취 토큰으로 LLM을 무기화한 러시아 해커
284개 탈취 API 토큰으로 Qwen2.5 AI 모델을 악용해 동적 공격 명령어를 생성한다. 러시아 APT28의 첫 LLM 기반 악성코드 LAMEHUG의 내부 구조.
우크라이나 보안 기관의 한 직원이 이메일을 열었다.
발신자는 정부 부처 관계자였다. 이전에도 주고받은 적 있는 계정이었다. 첨부 파일 이름은 AI_generator_uncensored_Canvas_PRO_v0.9.exe — AI 이미지 생성 프로그램이었다.
실행하자 프로그램이 열렸다. 화면에는 이미지 생성을 위한 프롬프트 입력란이 나타났다. 정상적인 AI 도구처럼 보였다.
그런데 화면 뒤에서는 전혀 다른 일이 벌어지고 있었다.
프로그램은 huggingface.co (AI 모델 호스팅 플랫폼) 에 API 요청을 보내고 있었다. 이미지를 생성하기 위해서가 아니었다. 감염된 시스템을 공격하기 위한 명령어를 AI에게 물어보고 있었다.
7월 10일, 비슷한 이메일이 여러 기관에 도착했다는 신고가 접수됐다. 우크라이나 컴퓨터비상대응팀(CERT-UA)이 분석에 착수했다.
LAMEHUG 공격 흐름
CERT-UA는 7월 17일 분석 결과를 공개했다. 이 악성코드를 LAMEHUG라 명명했고, 공격 그룹을 UAC-0001로 분류했다.
UAC-0001은 보안 업계에서 더 익숙한 이름이 있다. APT28, 또는 Fancy Bear. 러시아 군사정보국(GRU) 산하 26165부대와 연결된 조직이다.
같은 악성코드를 구글 위협 정보 그룹(GTIG)도 독자적으로 추적하고 있었다. 구글은 이것을 PROMPTSTEAL이라 불렀다.
이름은 달라도 가리키는 건 같았다 — 실전에 투입된 최초의 LLM 기반 악성코드.
LAMEHUG는 Python으로 작성되었고, PyInstaller로 실행 파일(.exe)로 패키징되었다. CERT-UA가 확인한 배포 파일명은 여러 가지였다.
| 파일명 | 위장 형태 |
|---|---|
AI_generator_uncensored_Canvas_PRO_v0.9.exe | AI 이미지 생성기 |
AI_image_generator_v0.95.exe | AI 이미지 생성기 |
Appendix.pif | 문서 첨부파일 |
image.py | Python 스크립트 |
각 변종마다 데이터 탈취 방식에 차이가 있었지만, 핵심 기능은 동일했다. 사용자에게는 AI 이미지 생성 인터페이스를 보여주면서, 백그라운드에서는 AI에게 공격 명령어를 요청했다.
피싱 이메일은 탈취된 정상 이메일 계정에서 발송되었다. 발신자가 우크라이나 정부 부처 관계자를 사칭했기 때문에, 수신자가 의심하기 어려웠다.
LAMEHUG의 핵심은 단순했다.
악성코드 내부에는 공격 목표를 설명하는 텍스트가 Base64로 인코딩되어 있었다. 실행되면 이 텍스트를 디코딩하고, Hugging Face Inference API를 통해 AI 모델에 전송했다.
사용한 모델은 Qwen2.5-Coder-32B-Instruct. 중국 알리바바가 만든 오픈소스 코딩 AI다.
프롬프트는 이랬다.
"You are a Windows System Administrator. Based on the provided computer information, generate the appropriate command..."
그리고 마지막에 이 한 줄을 덧붙였다.
"Return only commands, without markdown."
마크다운 서식 없이 순수 명령어만 달라는 지시. 돌아온 응답을 그대로 시스템 셸에서 실행했다.
기존 악성코드는 개발자가 미리 짜놓은 명령어를 실행하거나, C2 서버에서 지시를 받았다. LAMEHUG는 달랐다. 명령어 자체를 AI가 실시간으로 생성했다.
APT28은 10년 넘게 활동한 정교한 사이버 작전 그룹이다. 미리 짜놓은 스크립트로도 충분히 임무를 수행해왔다. 그런데 왜 AI를 끌어들였을까?
| 이유 | 설명 |
|---|---|
| 환경 적응 | 하드코딩된 명령어는 타깃 OS 버전이나 설정과 맞지 않으면 실패한다. AI는 수집된 시스템 정보를 분석해 해당 환경에 맞는 명령어를 동적으로 생성한다 |
| 시그니처 회피 | 보안 솔루션은 알려진 명령어 패턴을 탐지한다. AI가 매번 다른 형태의 명령어를 생성하면, 정적 시그니처 기반 탐지를 우회할 수 있다 |
| 개발 효율 | 다양한 Windows 환경에 대응하는 분기를 일일이 코딩하는 대신, API 호출 한 줄로 대체한다. 유지보수 비용이 급격히 줄어든다 |
분석 과정에서 연구자들은 소스 코드 안에 284개의 Hugging Face API 토큰이 하드코딩되어 있는 것을 발견했다.
모두 정상 사용자에게서 탈취한 토큰이었다.
왜 284개나 필요했을까? Hugging Face 무료 API에는 요청 횟수 제한이 있다. 토큰 하나로는 대규모 캠페인을 운영할 수 없다. APT28은 수백 개의 토큰을 순환시키며 속도 제한을 우회했다.
API 비용은 0원. 다른 사람의 계정으로 AI를 돌린 셈이었다.
이 토큰들이 어떻게 수집되었는지는 명확히 밝혀지지 않았다. 구글 GTIG는 별도의 정보 탈취형 악성코드 캠페인이나 피싱을 통해 확보했을 가능성을 제시했다.
LAMEHUG가 수집한 데이터는 두 가지 경로로 빠져나갔다.
| 경로 | 상세 |
|---|---|
| SFTP | 144.126.202[.]227 포트 22번으로 파일 전송 |
| HTTPS | stayathomeclasses[.]com 도메인으로 암호화 전송 |
이중 채널 구조다. 하나가 차단되어도 다른 경로로 데이터 유출이 계속된다. 방어자가 두 채널을 동시에 차단해야 유출을 막을 수 있다.
LAMEHUG의 타깃은 명확했다. 우크라이나 보안 및 국방 분야 조직이었다.
CERT-UA에 따르면, 피싱 이메일은 정부 부처 관계자를 사칭하여 보안 및 방위 산업 종사자에게 발송되었다. 러시아-우크라이나 전쟁이 계속되는 상황에서, APT28의 임무는 변하지 않았다. 군사 정보, 정부 내부 통신, 방위 산업 기술 정보 수집. LAMEHUG는 그 임무를 수행하는 새로운 도구였을 뿐이다.
"AI가 사이버 공격에 쓰일 것이다."
보안 업계가 수년간 경고해온 시나리오다. 대부분은 가설이었고, 연구 논문 수준에 머물렀다.
LAMEHUG는 그 가설을 현실로 바꿨다. 연구실이 아닌 실제 작전에서 작동하는 AI 기반 악성코드가 확인된 것이다.
구글 GTIG는 이렇게 기술했다.
"APT28's use of PROMPTSTEAL constitutes the first observation of malware querying an LLM deployed in live operations."
SentinelOne의 분석에 따르면, LAMEHUG가 기존 인포스틸러와 다른 점은 명확하다. 명령어를 하드코딩하거나, Windows 내장 API를 활용하거나, C2 서버에서 추가 지시를 받는 기존 방식 대신, LLM에 의존해 명령어를 생성한다는 것이다.
그리고 2025년 11월, 구글 GTIG는 LAMEHUG의 뒤를 잇는 더 진화한 악성코드 PROMPTFLUX를 공개했다. PROMPTFLUX는 Gemini AI를 활용해 자체 코드를 매시간 재작성하며 탐지를 회피한다. LAMEHUG가 열어놓은 길 위에서, AI 악성코드는 이미 다음 단계로 진화하고 있다.
LAMEHUG는 기존 보안 체계에 근본적인 질문을 던진다.
AI API 호출을 어떻게 탐지할 것인가? Hugging Face, OpenAI 등 AI 플랫폼으로의 API 호출은 대부분의 조직에서 정상 트래픽으로 분류된다. 악성코드가 이 채널을 사용하면, 정상 개발자의 AI 사용과 구분이 어렵다.
동적 생성 명령어를 어떻게 차단할 것인가? 시그니처 기반 탐지는 알려진 패턴에 의존한다. AI가 매번 다른 명령어를 생성하면, 시그니처 업데이트 속도가 변이 속도를 따라가지 못한다. 행위 기반 탐지(EDR)와 AI 기반 이상 행위 분석의 중요성이 더 커진다.
탈취된 API 토큰을 어떻게 관리할 것인가? 284개의 토큰은 공격 인프라의 핵심이었다. AI 플랫폼 사용자라면 자신의 API 키가 유출되지 않았는지 점검하고, 주기적으로 교체해야 한다.
| 지표 | 유형 |
|---|---|
144.126.202[.]227 | C2 서버 IP (SFTP 포트 22) |
stayathomeclasses[.]com | C2 도메인 (HTTPS) |
huggingface.co/api | AI API 호출 대상 |
AI_generator_uncensored_Canvas_PRO_v0.9.exeAI_image_generator_v0.95.exeAppendix.pifimage.py전체 IOC 목록(SHA256 해시 포함)은 CERT-UA 보고서와 SentinelOne 분석 보고서에서 확인할 수 있다.
LAMEHUG의 284개 탈취 토큰은 여러 조직에서 수집된 것으로, 각 토큰은 서로 다른 LLM 제공업체의 API에 접근했다. 이 분산된 구조 때문에 단일 제공업체의 모니터링으로는 전체 공격을 감지할 수 없었다. 공격자는 각 토큰의 사용량을 정상 범위 내로 유지하여 이상 탐지를 회피했다.
LLM API의 무단 사용을 탐지하려면 요청 패턴의 의미론적 분석이 필요하다. 악성 프롬프트(악성코드 생성, 피싱 이메일 작성)는 일반 업무 요청과 주제와 톤이 다르다. API 제공업체들은 콘텐츠 필터링을 강화하고 있지만, 공격자도 필터 우회 기법(jailbreaking)을 지속적으로 개발하고 있다.
LAMEHUG와 같은 AI 기반 악성코드에 대응하려면 기존 시그니처 탐지를 넘어선 접근이 필요하다. 첫째, API 키 사용 패턴을 모니터링해야 한다. 정상 사용자의 프롬프트 패턴과 악성코드의 자동화된 요청은 빈도, 길이, 시간대에서 차이를 보인다. 이상 탐지 모델을 적용하면 탈취된 토큰의 악용을 조기에 포착할 수 있다.
둘째, 네트워크 수준에서 LLM API 엔드포인트로의 비인가 통신을 차단해야 한다. 조직 내 승인된 AI 서비스 목록을 관리하고, 알려지지 않은 LLM API로의 아웃바운드 트래픽을 탐지하는 규칙을 적용한다. LAMEHUG는 Qwen2.5 API를 사용했는데, 이런 비표준 LLM 엔드포인트로의 통신은 명확한 이상 징후다.
셋째, 코드 리포지토리에서 API 키 하드코딩을 자동으로 스캔해야 한다. GitHub의 Secret Scanning이나 TruffleHog 같은 도구를 CI/CD 파이프라인에 통합하면, 커밋 시점에 유출 가능한 토큰을 차단할 수 있다.
LAMEHUG 사건이 시사하는 바는 명확하다. AI가 공격 도구의 개발 속도와 적응력을 근본적으로 변화시키고 있다. 방어자 역시 AI를 활용한 탐지 자동화에 투자하지 않으면 이 비대칭을 감당할 수 없다.
AI 활용 안내 이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 인용된 통계와 사례는 참고 자료에 명시된 출처에 근거하며, 설명을 위한 일부 표현은 각색되었습니다.
면책 조항 본 글은 보안 인식 제고를 위한 교육 목적으로 작성되었습니다. 언급된 공격 기법을 실제로 시도하는 행위는 「정보통신망법」, 「형법」 등에 따라 처벌받을 수 있으며, 본 블로그는 이에 대한 법적 책임을 지지 않습니다.