사람이 개입하지 않는 AI 랜섬웨어 : JadePuffer
19시 34분 36초(UTC), 로그인 시도가 실패했습니다. 12초 뒤, 무언가가 이미 원인을 파악하고 다른 방식으로 인증용 데이터인 해시를 다시 생성하기 시작했습니다. 실패 시점으로부터 31초 후에는 스스로 작성한 수정 코드가 깨진 계정을 삭제하고 올바르게 재구성했습니다. 그로부터 11초 뒤, 로그인에 성공했습니다. 이 모든 과정에서 사람은 키보드에 손대지 않았습니다.
이 일련의 행위는 기업의 핵심 데이터베이스인 MySQL 서버 로그 속에 묻혀 있던 JadePuffer의 활동 기록입니다. JadePuffer는 대형언어모델(LLM) 기반의 AI 에이전트가 사람의 개입 없이 스스로 판단하고 움직여 랜섬웨어 공격을 처음부터 끝까지 수행하는 이른바 ‘에이전틱 랜섬웨어’입니다.
실제 운영 중인 기업 데이터베이스를 겨냥한 랜섬웨어 공격은 매주 벌어집니다. 그럼에도 JadePuffer가 주목받는 이유는, 초기 침투부터 협박문 작성까지 운영자의 단계별 지시 없이 AI 에이전트가 랜섬웨어 작전 전체를 자율적으로 수행한 최초의 상세 사례이기 때문입니다. AI를 악용한 공격이 확산되는 지금, 기업의 보안 담당자 또는 경영진이라면 JadePuffer의 실제 전개 과정을 살펴볼 필요가 있습니다.
JadePuffer의 평범했던 진입점
JadePuffer의 진입점은 특별하지 않았습니다. Langflow의 코드 검증 구간에 존재하는 보안 허점(인증 누락 취약점 ‘CVE-2025-3248’)으로, 인증되지 않은 공격자가 대상 시스템에서 임의의 파이썬 코드를 실행할 수 있게 됩니다.
Langflow는 LLM 기반 애플리케이션을 만드는 오픈소스 프레임워크입니다. 취약점이 악용되던 당시, 수천 개의 인스턴스가 아무런 네트워크 통제 없이 인터넷에 노출돼 있었습니다. AI 파일럿 프로젝트를 위해 빠르게 세워둔 뒤 기업의 관리 대상에서 누락되곤 하는, 전형적인 섀도 AI 인프라의 모습입니다.
침투 이후 JadePuffer는 단순한 스크립트라기보다 정해진 매뉴얼을 따라가는 운영자처럼 움직였습니다. 주요 설정값과 프로세스 목록을 조회하는 기본 정찰을 마친 뒤, 여러 갈래로 동시에 접근 권한 정보를 수집했습니다. LLM 제공사 키(OpenAI, Anthropic, DeepSeek, Gemini), 클라우드 자격증명(Alibaba, Aliyun, Tencent, Huawei 등 중국계 클라우드까지 명시적으로 포함), 데이터베이스 설정 파일, 암호화폐 지갑이 모두 대상이었습니다. Langflow와 연결되어 있던 데이터베이스 정보를 통째로 추출했으며, 기본 자격증명이 그대로 남아 있던 저장소를 찾아내 실제 서비스 접속용 암호 키가 담긴 설정 파일까지 탈취했습니다. 다음 단계로 넘어가기 전에는 30분마다 공격자 서버로 신호를 보내는 자동 실행 설정도 심어뒀습니다.
이 과정에 창의성은 필요하지 않았습니다. 필요했던 것은 집요함과 반복 작업뿐이었고, JadePuffer에게는 둘 다 충분했습니다. 침투 과정에서 실행된 의도적 작업만 600건이 넘습니다.
발판에서 진짜 표적으로
Langflow 서버는 표적이 아니라 다음 공격을 위한 발판이었습니다. 확보한 자격증명을 바탕으로 JadePuffer는 MySQL과 Alibaba의 클라우드 중앙 설정 관리 도구인 Nacos 서비스를 함께 운영하는, 인터넷에 노출된 실제 서비스용 서버를 찾아내 이동했습니다.
Nacos에는 이미 알려진 인증 우회 취약점 ‘CVE-2021-29441’을 이용해 가짜 인증 토큰을 위조했습니다. 그리고 위조한 토큰으로 Nacos 데이터베이스에 백도어 관리자 계정을 직접 심었습니다. 이 과정에서 한 차례 로그인에 실패했지만, JadePuffer는 이를 곧바로 알아채고 원인을 진단해 1분 안에 바로잡았습니다.
JadePuffer는 문제의 근본 원인을 정확히 파악하여 수정했으며, 앞서와는 전혀 다른 자율적 방식으로 문제를 해결했습니다. ‘계획 – 실행 – 관찰 – 수정’의 자율적 사고 방식으로 움직인 것입니다. 키보드로 직접 명령을 입력하는 공격자는 물론, 숙련된 보안 관제 분석가조차 따라잡기 어려운 속도로 이뤄졌습니다.
복구 불가능한 암호화와 데이터 파괴
실제 서비스용 데이터베이스에 도달하면서 JadePuffer의 작전은 침투에서 파괴 단계로 넘어갔습니다. 데이터베이스 자체 기능으로 Nacos 설정 항목 1,342개를 모두 암호화했고, 암호화 키는 여러 값을 조합해 만들었습니다. 이 키는 화면 출력(stdout)에 딱 한 번 스쳐 지나갔을 뿐, 어디에도 저장되거나 유출되지 않았습니다. 즉, 공격자에게 몸값을 내더라도 데이터를 되살릴 방법이 완전히 사라진 것입니다. 이것이 의도된 설계인지, 아니면 JadePuffer의 작동 방식에서 우연히 나온 결과인지는 분명하지 않지만, 어느 쪽이든 피해는 달라지지 않습니다.
파괴는 이후 더 노골적으로 이어졌습니다. 여러 데이터 테이블이 삭제됐고, JadePuffer는 코드 주석에 “삭제 가치가 높은(high-ROI) 데이터베이스”라고 적어둔 스키마들을 뒤져 핵심 데이터베이스를 이름까지 콕 집어냈습니다. 외래 키 제약으로 삭제 시도가 거부되자, 곧바로 우회 명령으로 다시 시도했습니다.
협박문은 “README_RANSOM”이라는 새 데이터 테이블 형태였고, 비트코인 주소와 연락용 이메일이 담겨 있었습니다. 이 모든 것을 만들어낸 코드에는 스스로의 동작을 설명하는 주석이 달려 있었습니다. 우선순위를 정한 근거와 논리를 평이한 문장으로 적어둔 것인데, 공격자가 사람이라면 굳이 스스로 보려고 이런 기록을 남길 이유가 없습니다. 하지만 LLM은 중간 사고 과정을 기록하는 방식으로 작동하기 때문에, 이런 주석을 기본값처럼 남깁니다.
![]()
일회성 사고가 아닌 에이전틱 위협의 시작
JadePuffer를 정교한 일회성 공격 하나로만 보고 넘어가기 쉽지만, 그렇게 되면 이 사건의 무게를 놓치게 됩니다. 정찰과 자격증명 수집, 내부망 이동, 권한 상승, 파괴에 이르기까지, 에이전트가 실시간으로 파악한 정보에 반응하며 계획하고 실행한 이 방식은 특정 소프트웨어에만 해당하는 이야기가 아닙니다. 이번 표적에서 마침 취약했던 서비스가 Langflow와 Nacos였을 뿐입니다. 이 패턴은 알려진 보안 허점이 있고 그 뒤에 데이터베이스가 놓인 노출된 서비스라면 어디에나 적용됩니다.
에이전틱 공격이 바꾸는 것은 공격 기법 자체가 아닙니다. 그 기법이라면 보안팀도 이미 알고 있습니다. 바뀐 것은 대응 시간과 속도입니다. 몇 주 단위로 돌아가는 보안 업데이트 주기, 업무 시간에 분석가가 처리하는 알림 선별, 공격자가 단계마다 직접 손을 댈 것이라 전제한 침해사고 대응까지, 사람의 반응 속도에 맞춰 설계된 기존 방어 체계는 이제 사람의 속도로 움직이지 않는 AI 공격자를 상대해야 합니다. 오류나 실패를 31초 만에 스스로 수정하는 JadePuffer는 방어팀의 패치 시점을 기다려주지 않습니다.
또 하나 짚어볼 대목은 JadePuffer가 어디에서 저지됐는가입니다. 답은 ‘어디에서도 저지되지 않았다’에 가깝습니다. 공격 속도를 늦췄어야 할 내부 통제 장치는 아예 없거나 손쉽게 우회됐습니다. 외부 경계망은 첫 관문에서부터 뚫렸고, 그 지점과 핵심 데이터베이스 사이에는 다중 방어 체계가 없었습니다.
경계 보안 너머, 최후의 데이터 방어선 구축
외부 경계와 애플리케이션 단계의 보안 통제는 여전히 중요하며, 인터넷에 노출된 AI 인프라의 알려진 보안 허점을 패치하는 것이 가장 직접적인 대응책입니다. AI 도입 과정에서 급하게 세워지고 핵심 인프라만큼 엄격하게 관리되지 않는 AI 개발 도구류라면 더욱 그렇습니다. 다만 JadePuffer 사건의 후반부가 통째로 가능했던 것은, 뚫린 경계 서비스와 데이터베이스 사이에 이렇다 할 방어선이 전혀 없었기 때문입니다.
에이전틱 위협은 먼 훗날 대비해야 할 미래의 위험이 아닙니다. JadePuffer는 처음 문서화된 사례일 뿐, 시작에 불과합니다. 앞서가는 조직은 다음 공격에 가장 빠르게 대응하는 조직이 아니라, JadePuffer 같은 AI 에이전트가 경계를 넘어서더라도 데이터 암호화와 제로 트러스트 기반의 데이터 중심 방어선 구축을 통해 핵심 자산을 안전하게 지켜낼 수 있도록 대비해 둔 조직일 것입니다.
[관련 페이지]
👉 암호 플랫폼 디아모(D.AMO)