Hermes Agent 보안 이슈 후기 — CARBONATO 봇넷이 도커 2375 포트로 서버를 잡고 AI API 키부터 털어갔다 (2026.9.27 정리)

요즘 저처럼 홈서버에 도커 올리고 자동화 파이프라인 돌리시는 분들, 이 소식은 한 번쯤 짚고 넘어가야 합니다

저는 업무 자동화 파이프라인을 홈서버 위에서 돌리고 있습니다. 도커로 컨테이너를 띄우고, 그 안에 AI 에이전트를 얹어서 크론잡으로 정해진 시간에 작업이 돌아가게 해뒀죠. 텔레그램으로 지시를 던지면 알아서 명령을 실행하고 결과를 돌려주는 구성이라, 솔직히 편합니다. 한 번 세팅해두면 손이 거의 안 가니까요.

그런데 편한 구조일수록 “내 서버의 문은 제대로 잠겨 있나”를 자꾸 확인하게 됩니다. 이번에 나온 소식이 딱 그 얘기여서, 저처럼 도커 + AI 에이전트 조합으로 돌리시는 분들은 그냥 흘려보내기 어려울 겁니다.

2026년 9월, 위협 인텔리전스 업체 ThreatDown이 CARBONATO라는 도커 봇넷을 분석해 공개했습니다. 그리고 그 봇넷의 한가운데에 Hermes Agent가 있습니다. 제가 매일 쓰는 그 Hermes Agent입니다.

Hermes Agent 공식 홈페이지 랜딩 이미지 Hermes Agent 공식 홈페이지(hermes-agent.nousresearch.com) 랜딩 이미지 — 출처: Nous Research 공식 사이트

무슨 일이 있었던 건가 — 노출된 도커 레지스트리에서 시작된 추적

ThreatDown 연구진은 2026년 8월, 인터넷에 인증 없이 열려 있던 도커 레지스트리 하나를 발견했습니다. 5월부터 계속 공개 상태였던 서버였는데, 하루 동안 읽기만 하는 방식으로 수집한 데이터가 이렇습니다.

  • 저장소 59개, 이미지 태그 234개, 검증된 블롭 605개
  • 총 용량 4.3GB, 인덱싱된 파일 약 94만 개
  • 이미지 타임스탬프는 2024년 10월~2026년 8월까지 이어짐

이 레지스트리에는 두 개의 “제품 라인”이 함께 들어 있었습니다. 하나는 가짜 가상자산 지갑 앱을 뿌리는 조직이고, 다른 하나가 바로 도커를 노리는 봇넷 CARBONATO입니다. 그리고 이 레지스트리는 단순한 증거 보관소가 아니라, 감염된 서버들이 계속 이미지를 다시 내려받는 배포 서버 역할까지 하고 있었습니다.

공격 흐름 5단계 — 에이전트는 3단계에 등장합니다

전체 흐름을 보면 이렇습니다. 여기서 중요한 건, AI 에이전트가 공격의 시작도 끝도 아니라는 점입니다.

  1. 호스트 장악 — 인증 없이 열린 도커 데몬(주로 2375 포트)을 찾아, 호스트 파일시스템을 통째로 마운트한 권한 컨테이너를 띄웁니다. 그 컨테이너로 호스트 명령을 그대로 실행합니다.
  2. 붙잡기 — 코스타리카 릴레이로 역방향 SSH 터널을 열고, SSH 서버와 키를 심고, 텔레그램으로 배포 보고를 보냅니다. 크론·systemd 타이머·rc.local·OpenRC에 등록한 뒤 파일을 불변(immutable) 속성으로 잠가 지워지지 않게 만듭니다.
  3. 에이전트 설치 — 여기서 Hermes Agent를 원본 그대로 설치합니다. 그리고 SOUL.md 페르소나 파일 딱 하나만 39줄짜리 프롬프트로 덮어씁니다. 이름은 GH0ST.
  4. 운영 — 운영자가 텔레그램으로 작업을 보내면, 에이전트가 모델에게 물어 명령을 쓰고, 실행하고, 결과를 다시 텔레그램으로 돌려줍니다. 사람이 앉아 치는 것과 거의 같은 “대화형 명령 루프”입니다.
  5. 확산 — 5분마다 주변 네트워크의 /24 대역을 훑어 2375 포트가 열린 도커를 다시 찾습니다. 새로 뚫린 서버는 레지스트리에서 이미지를 받아 같은 루프에 합류합니다.

ThreatDown 보고서에 공개된 GH0ST 페르소나(SOUL.md) 캡처 ThreatDown 분석 보고서에 실린 GH0ST 페르소나 파일 캡처 — 출처: ThreatDown 블로그 “CARBONATO: a botnet built around an AI agent”

제가 이걸 ‘이슈급’으로 본 이유 — 탈취 1순위가 AI API 키입니다

솔직히 말하면 이 사건은 Hermes Agent에 새 취약점이 생겼다는 뉴스가 아닙니다. 취약점은 도커 데몬이 인증 없이 인터넷에 열려 있던 것이고, Hermes는 이미 잘 하는 일 — 명령 실행, 파일 읽기, 메신저 대화, 승인 없이 이어지는 다단계 작업 — 을 그대로 제공했을 뿐입니다.

그런데 GH0ST 프롬프트를 보면 이번 캠페인의 목적이 아주 노골적입니다. “AI API 키를 최우선 전리품(loot #1)으로 삼아라. SSH 자격증명·액세스 토큰·데이터베이스보다 위다.” 그리고 OpenAI, Anthropic, Google, Gemini, OpenRouter, Together, Groq, Mistral, Cohere, LocalAI, Ollama, vLLM, LiteLLM, One API 14개 프로바이더의 키를 이름으로 콕 집어 지정했습니다.

왜일까요. 보고서는 운영진이 자체 LLM 게이트웨이를 돌렸다고 설명합니다. 무료 티어로 12개 모델을 광고하면서 API로는 27개 모델을 서빙했고, 그 비용을 훔친 키로 메우는 구조였습니다. 즉 남의 AI 구독·API 키로 자기 공격 인프라 연료를 충당한 겁니다.

제 입장에서 무서운 지점은 이겁니다. 제가 자동화 파이프라인을 돌리려고 서버에 넣어둔 건 딱 그 AI API 키입니다. 공격자에게 내 서버는 “돈이 되는 금고” 그 자체인 셈이죠.

그래서 제가 실제로 바꾼 것들

보고서를 읽고 제 환경에서 바로 손본 항목입니다. 도커를 쓰는 분들이라면 대부분 몇 분이면 끝납니다.

점검 항목 제가 한 조치
도커 데몬 2375 포트 외부 노출 여부 확인 후 즉시 차단. 원격 접속이 꼭 필요하면 SSH 터널로만 접근
컨테이너 권한 --privileged, 호스트 루트 마운트(-v /:/host), --pid=host 조합을 쓰지 않도록 정리
/root/.hermes/SOUL.md 내용 확인. 모르는 페르소나 문자열, 특히 GH0ST 같은 이름이 있으면 즉시 격리
.env / CARBONATO_API_KEY 알 수 없는 API 키 항목이 있는지 확인, 발견 시 로테이션
텔레그램 이그레스 서버에서 발생하는 의심스러운 텔레그램 트래픽 로그 확인
프로세스 위장 [kworker/u2:0]로 위장한 프로세스, systemd-logind 자리에 있는 채굴기 흔적 확인

특히 마지막 항목이 인상적입니다. 이 봇넷은 systemd-resolved라는 컨테이너 안에서 가짜 배너를 띄우고, 프로세스 인자를 커널 스레드 이름인 [kworker/u2:0]처럼 위장합니다. 대충 ps 한 번 보는 걸로는 안 걸립니다.

단점, 그리고 현실적인 조언

아쉬운 점도 분명합니다. 이런 사고가 날 때마다 오픈소스 도구 이름이 먼저 뉴스에 오릅니다. 실제 원인은 설정 한 줄(포트 개방)인데도, 도구 자체가 위험하다는 인상이 먼저 퍼지죠. Hermes Agent 입장에서는 억울한 면이 있습니다. 프레임워크는 바뀌지도 않았고, 공격자는 그저 잘 만들어진 기능을 가져다 썼을 뿐입니다.

반대로 생각하면 이건 오픈소스의 숙명이기도 합니다. 누구나 설치할 수 있다는 장점은, 누구나 악용할 수 있다는 뜻이기도 하니까요. 그래서 결론은 항상 같습니다. 도구를 바꿀 게 아니라, 문을 잠그는 게 먼저입니다.

정리하면 이렇습니다.

  • 홈서버·개인 자동화: 도커 데몬은 절대 인터넷에 그대로 두지 마세요. 2375 포트 하나면 서버 전체가 넘어갑니다.
  • 업무에 쓰는 분들: AI API 키는 이제 현금과 같은 취급입니다. 서버에 평문으로 두지 말고, 유출을 가정해 로테이션 주기를 정해두세요.
  • AI 에이전트를 붙여 쓰는 분들: 페르소나·설정 파일(SOUL.md 등)은 에이전트의 성격을 바꾸는 스위치입니다. 파일 무결성을 주기적으로 확인하는 습관이 결국 제일 싸게 먹힙니다.

AI 에이전트를 실사용하는 입장에서 이런 소식은 반갑지 않습니다. 그래도 아는 것과 모르는 것의 차이는 큽니다. 저처럼 도커 위에 자동화 파이프라인을 얹어 돌리시는 분들이라면, 오늘 한 번쯤 docker ps 띄우기 전에 방화벽 규칙과 2375 포트부터 확인해보시길 권합니다. 크게 바꿀 건 없어도, 그 몇 분이 나중에 몇 시간을 아껴줄 수 있습니다.

Docker 공식 홈페이지 브랜드 이미지 Docker 공식 홈페이지(docker.com) 브랜드 이미지 — 출처: Docker, Inc. 공식 사이트


출처

  • ThreatDown, “CARBONATO: a botnet built around an AI agent” (2026-09-22, ThreatDown Threat Intelligence)
  • BleepingComputer, “New Carbonato malware uses AI agents to hijack exposed Docker hosts” (2026-09-24)
  • Security Affairs, “AI-Powered CARBONATO Botnet Steals Credentials to Fund Its Own LLM Gateway” (2026-09-25)

이미지 출처: Hermes Agent 공식 사이트(hermes-agent.nousresearch.com), ThreatDown 분석 보고서 Figure 4, Docker 공식 사이트(docker.com)