대상: 앱 배포 플랫폼(PaaS) Zeabur에 앱이나 데이터베이스를 배포하는 개발자와 운영자, 특히 AI 서비스, 결제, 클라우드, 데이터베이스의 자격 증명을 환경 변수에 두고 있는 분. 이 글은 Zeabur의 공식 예비 보고서와 서비스 종료 발표를 바탕으로 하며 공격 수법은 다루지 않습니다.
진행 중: 기관이 추가 정보를 발표하는 대로 이 글을 업데이트합니다
- 대상
앱 배포 플랫폼(PaaS) Zeabur에 앱이나 데이터베이스를 배포하는 개발자와 운영자, 특히 AI 서비스, 결제, 클라우드, 데이터베이스의 자격 증명을 환경 변수에 두고 있는 분.
- 확인된 영향 범위표 보기 ↓
- 플랫폼 데이터베이스의 환경 변수
- 계정 데이터
- zSend API 키
2개 더 보기
- 플랫폼 Access Token
- 회사가 GCP Dedicated Servers라고 부르는 서버
- 아직 확인되지 않은 사항
- 공격자가 최초 자격 증명을 얻은 경위
- 공유 클러스터 데이터베이스에서 실제로 반출된 데이터의 양
- 백업과 기타 저장 객체가 다운로드되었는지
1개 더 보기
- 회사가 Hetzner and DigitalOcean Dedicated Servers라고 부르는 서버용으로 유출된 토큰이 사용되었는지
- 지금 할 일절차 보기 ↓
- 환경 변수의 모든 시크릿을 발급한 서비스에서 폐기하기
- 공유 클러스터 이용자: 데이터베이스 내부의 비밀번호도 바꾸기
- Zeabur Access Token과 zSend API 키를 다시 만들기
4개 더 보기
- GitHub를 연결했다면 10월 15일의 감사 로그를 확인하기
- 10월 14일 이후의 사용량과 청구서 확인하기
- 손해를 입었다면 2026년 11월 30일까지 청구하기
- 전용 서버 이용자: 범위에 해당하면 서버가 침해된 것으로 보기
- 마지막 확인
- 2026년 10월 31일 기준
후속 발표 예정과 확인 기록
10월 19일 보고서에는 「조사는 계속되고 있으며, 진행에 따라 이 글을 업데이트하겠습니다」라고 적혀 있습니다. 10월 31일에도 페이지의 날짜는 10월 19일 그대로였습니다. 그 뒤 회사 블로그에 올라온 공지는 10월 22일의 환불·사고 청구 안내뿐이며, 조사 내용은 업데이트하지 않았습니다.
Zeabur 이용자가 오늘 해야 할 일
환경 변수의 모든 시크릿을 발급한 서비스에서 폐기하기
API 키(AI 서비스, 결제, 이메일), 클라우드 키, 데이터베이스 비밀번호, 서명·암호화 키가 대상입니다. 회사가 안내하는 순서는 먼저 서비스 제공업체에서 기존 값을 폐기하고, 새 값을 만들어 Zeabur에 설정한 뒤 다시 배포하는 것입니다.
Zeabur에서 변수를 지우거나 고치기만 해서는 누군가 이미 가진 사본을 막을 수 없습니다. 8월 사고 뒤 값을 교체했더라도 마찬가지입니다. 회사에 따르면 8월의 교체는 이번에 사용된 자격 증명을 포함하지 않았습니다.
공유 클러스터 이용자: 데이터베이스 내부의 비밀번호도 바꾸기
회사는 Zeabur에서 환경 변수를 바꿔도 데이터베이스 내부의 비밀번호는 바뀌지 않는다고 밝혔습니다. 비밀번호를 바꿔도 이미 유출된 데이터가 되돌아오지는 않습니다. 데이터베이스에 자사 이용자의 비밀번호 해시, 로그인 세션, 토큰이 저장되어 있다면 그것들도 폐기하고 다시 발급하세요.
회사는 다음도 요청합니다.
- n8n: n8n 암호화 키를 교체하고, n8n에 저장된 모든 서드파티 자격 증명을 다시 만들기
- new-api/one-api: 상위 AI 서비스 키를 폐기하고 액세스 토큰을 다시 발급하기
- PostgreSQL: 모르는 역할, 함수, 트리거, 예약 작업, 확장 기능이 없는지 확인하고, 의심스러우면 새 데이터베이스를 만들어 데이터만 가져오기
- 타이베이(tpe1)와 홍콩(hkg1) 리전: 데이터베이스 백업의 데이터를 유출된 것으로 보기
Zeabur Access Token과 zSend API 키를 다시 만들기
회사는 모든 이용자를 로그아웃시키고 플랫폼의 모든 Access Token을 폐기했다고 밝혔습니다. 다시 로그인해 Access Token 페이지에서 새 토큰을 만들고, 모르는 요청이 없는지 확인하세요. zSend 이용자는 zSend API 키를 다시 만들어야 합니다(566개 모두 폐기됨).
GitHub를 연결했다면 10월 15일의 감사 로그를 확인하기
회사는 Zeabur GitHub App의 개인 키가 열람되었고 10월 15일 18:54 UTC에 교체했으며, 지금까지 사용된 흔적은 찾지 못했다고 밝혔습니다. 회사는 10월 15일 15:05부터 18:54 UTC 사이에 Zeabur GitHub App이 한 작업을 GitHub 감사 로그에서 확인하라고 요청합니다. 예상치 못한 clone이나 push, 새 deploy key, 변경된 webhook이 대상입니다.
10월 14일 이후의 사용량과 청구서 확인하기
키를 저장해 둔 각 서비스의 사용량과 청구서를 2026년 10월 14일부터 확인하세요. 회사는 이것이 알려진 가장 이른 자격 증명 사용 시점일 뿐, 그 전에 아무것도 유출되지 않았다는 증거는 아니라고 밝혔습니다. 「GCP Dedicated Servers」로 분류된 전용 서버의 이용자는 9월 1일까지 거슬러 올라가 확인하세요. 도난당한 AI 키가 왜 빠르게 청구서로 이어지는지는 API 키 도난과 계정 차단을 참고하세요.
손해를 입었다면 2026년 11월 30일까지 청구하기
회사의 10월 22일 공지에 따르면, 10월 사고로 인한 손해 청구는 2026년 11월 30일까지 별도의 Zeabur Support 티켓으로 제출해야 하며, 그때까지 제출된 청구만 접수됩니다. 회사는 영향을 받은 계정과 서비스, 유출된 키나 자격 증명의 종류, 사고 기간을 포함하는 서드파티 청구서나 사용 기록을 요구합니다. 청구는 계정 잔액 환불과는 따로 처리됩니다.
전용 서버 이용자: 범위에 해당하면 서버가 침해된 것으로 보기
「GCP Dedicated Servers」로 분류된 전용 서버에 대해 회사는 서버가 침해된 것으로 보라고 안내합니다. 데이터를 백업하고 서버를 다시 구축하세요. 남아 있을 수 있는 것을 없애는 가장 확실한 방법입니다. 바로 재구축할 수 없다면 회사가 제시하는 최소 조치는 모르는 SSH 키 삭제, 계정·예약 작업·서비스 점검, root 비밀번호 변경과 SSH 비밀번호 로그인 비활성화, 서버의 모든 자격 증명 교체입니다. 확인해야 할 징후는 회사 보고서에 나와 있으니 공식 페이지에서 확인하세요.
회사가 「Hetzner and DigitalOcean Dedicated Servers」라고 부르는 서버에 대해서는, 10월 14일 이후 root 비밀번호가 재설정되었거나 시스템이 재설치되었는지 제공업체 콘솔에서 확인하라고 요청합니다.
무슨 일이 있었나요 (Zeabur 보고서 기준)
아래는 Zeabur의 2026년 10월 19일 예비 보고서(일본어와 그 밖의 4개 언어로도 공개)를 바탕으로 합니다. 시각은 모두 UTC입니다.
2026년 8월
Zeabur에서 별도의 보안 사고 발생. 회사는 그 뒤의 교체가 10월에 사용된 자격 증명을 포함하지 않았다고 밝힘.10월 14일 01:36
공격자가 Zeabur 내부 클라우드 키를 처음 사용한 것으로 알려진 시점. 이어서 공유 클러스터에 접근.10월 15일 13:56
이용자 신고를 받고 Zeabur가 조사 시작.10월 15일 16:10–16:47
공격자가 플랫폼 데이터베이스를 열람(회사가 확인).10월 15일 20:25
Zeabur가 로그인 서명 키를 교체. 모든 이용자가 로그아웃됨.10월 15일 21:05
지금까지 관찰된 마지막 공격자 활동.10월 17일
Zeabur가 2026년 12월 31일에 서비스를 종료한다고 발표.10월 19일
Zeabur가 사고에 관한 예비 보고서를 공개.10월 22일
Zeabur가 사고 청구 기한을 2026년 11월 30일로 정하고, 서비스 데이터는 12월 31일에 삭제된다고 밝힘.
Zeabur에 저장: 열람됨
Zeabur 플랫폼 데이터베이스에 보관된 환경 변수. 한 번도 옮기지 않은 프로젝트 포함
8월 이후 자체 전용 서버로 이동
플랫폼 데이터베이스 열람 범위 밖. 서버 자체가 범위에 들었다면 그 시크릿도 교체 필요
회사는 어느 쪽이든 모든 이용자에게 시크릿 교체를 요청합니다. 이 구분은 노출이 얼마나 확실한지를 알려 줄 뿐입니다.
- 일어난 일
- 공격자가 유출된 Zeabur 내부 자격 증명으로 공유 클러스터, 일부 전용 서버, 내부 시스템에 침입해 플랫폼 데이터베이스를 열람
- 열람된 데이터
- 환경 변수(3,218,965건), 계정 데이터(321,810개 계정), zSend API 키(566개), 그리고 되돌릴 수 없는 해시로 저장된 플랫폼 Access Token(11,536개, 모두 폐기)
- 기타 시스템
- 공유 클러스터의 데이터베이스 컨테이너 865개 안에서 명령이 실행됨. 회사가 GCP Dedicated Servers라고 부르는 서버 중 101대에서 root 로그인이 확인됨
- 원인(회사)
- 평문으로 저장되고 공용 인터넷에서 사용할 수 있었던 장기 유효 관리자 자격 증명. 회사는 근본 원인이 Zeabur에 있다고 밝힘
- 대응
- 사용된 자격 증명 폐기, 관리 인터페이스와 서버에 대한 공개 SSH 차단, 모든 이용자 로그아웃, 모든 Access Token 폐기
- 보상
- 사고로 서드파티 API 키나 클라우드 계정에 발생한 추가 요금은 2026년 11월 30일까지 지원 티켓으로 청구 가능(10월 22일 공지)
확인된 것과 확인되지 않은 것
2026년 10월 31일 기준 상태입니다. 회사 자체의 용어는 「확인됨」(로그에 직접 기록됨), 「추정」(시점과 내용이 일치하지만 직접 기록은 없음), 「확인 불가」(확인할 기록이 없음. 유출된 것으로 취급), 「가설」(간접 증거로만 뒷받침되는 가능한 설명)입니다. 상태 열은 이 용어를 따릅니다. 후속 발표가 나오면 업데이트합니다.
| 항목 | 보고서 내용 | 상태 |
|---|---|---|
| 플랫폼 데이터베이스의 환경 변수 | 3,218,965건(이름과 값) 열람 | 확인됨(회사) |
| 계정 데이터 | 321,810개 계정: 이메일, 사용자 이름, 전화번호 등과 프로젝트 데이터 | 확인됨(회사) |
| zSend API 키 | 평문으로 저장된 키 566개, 모두 폐기 | 확인됨(회사) |
| 플랫폼 Access Token | 되돌릴 수 없는 해시로만 저장된 토큰 11,536개, 모두 폐기 | 확인됨(회사) |
| 공유 클러스터의 환경 변수와 시크릿 | 9개 리전. 일부는 확인, 나머지는 유출된 것으로 취급 | 일부 확인됨, 나머지는 확인 불가(회사) |
| 공유 클러스터 데이터베이스의 내용 | 데이터베이스 서비스 865개에서 명령 실행. 반출된 양은 확인 불가 | 추정(회사) |
| 회사가 GCP Dedicated Servers라고 부르는 서버 | 101대(이용자 92명)에서 root 로그인 확인 | 확인됨(회사) |
| 데이터베이스 백업(타이베이 tpe1, 홍콩 hkg1) | 다운로드되었는지는 확인 불가. 이와 별도로 회사는 침해된 호스트의 증거로 공격자가 10월 15일 15:42 UTC에 고객 데이터베이스 백업을 얻은 것이 확인된다고 밝힘 | 확인 불가(회사) |
| 회사가 Hetzner and DigitalOcean Dedicated Servers라고 부르는 서버 | 관리자 토큰 유출. 사용되었는지는 확인 불가 | 확인 불가(회사) |
| 2단계 인증과 패스키 데이터 | 통계만 조회됨. 내용이 열람된 기록 없음 | 내용 열람 기록 없음(회사) |
| 최초 자격 증명을 얻은 경위 | 확인 불가. 8월과의 관련성은 확인되지 않은 가설 | 확인 불가(회사) |
| 유출된 키의 악용 | 한 이용자의 AI 서비스 키가 10월 16일 약 1,107건의 요청에 사용됨. 회사는 이번 유출에서 나온 것이라는 점을 가설로 봄 | 가설(회사) |
읽는 법: 「확인 불가」도 교체해야 한다는 뜻입니다
회사는 무단 접근을 배제할 수 없는 곳에서는 데이터가 노출되었을 수 있다고 가정한다고 밝혔습니다. 자신의 시크릿에 대해서는 「확인됨」, 「추정」, 「확인 불가」의 실질적 차이가 작습니다. 모두 폐기하고 교체해야 한다는 뜻입니다.
유출된 환경 변수로 무슨 일이 일어날 수 있나요
일반적으로 환경 변수에서 빼낸 시크릿은 다음과 같이 악용될 수 있습니다. 이번에 이 모든 일이 일어났다는 뜻은 아닙니다.
- AI 서비스 API 키: 다른 사람이 내 계정으로 요청을 보내고 청구서는 내가 받음. 회사는 공격자가 주로 바로 쓸 수 있는 키, 특히 AI 서비스 키를 찾고 있었다고 관찰함
- 데이터베이스 비밀번호와 연결 문자열: 자사 이용자의 기록을 포함해 앱의 데이터를 읽거나 변경
- 서명·암호화 키: 세션 토큰 위조, 앱이 보호하는 데이터의 복호화
- 클라우드·결제 키: 비용이 드는 리소스 생성이나 호출
과거 사례로, Railway 환경 변수 사고 뒤 호스팅 회사는 노출되었을 수 있는 키 목록을 발급 서비스에 보내 폐기할 수 있게 했습니다. 이번에도 같은 흐름이 된다고는 할 수 없으니 키는 직접 폐기하세요.
운영자를 위한 교훈: 회사가 공개한 내용에서
아래는 회사가 스스로 밝힌 원인과 미비점에서 나온 것입니다. Zeabur에 대한 추가 평가는 아닙니다.
- 관리자 토큰에 만료를 두고, 관리 인터페이스를 공용 인터넷에 두지 않기. 회사에 따르면 클러스터 관리자 토큰에는 만료가 없었고 2024년 1월 이후 교체되지 않았으며, 관리 인터페이스는 인터넷에서 접근할 수 있었습니다.
- 사고 뒤에는 유출이 확인된 것만이 아니라 열람되었을 수 있는 모든 자격 증명을 교체하기. 회사에 따르면 8월의 교체는 10월에 사용된 자격 증명을 포함하지 않았습니다.
- 백업에 평문 시크릿을 넣지 말고, 백업 키는 따로 두기. 회사에 따르면 클러스터 백업에는 모든 시크릿이 들어 있었고, 대응 중에 교체한 키가 이후의 백업에 담겼습니다.
- 시크릿의 대량 열람에 경보를 설정하기. 회사에 따르면 10월 14일의 16시간이 넘는 활동에 경보가 한 번도 울리지 않았고, 사고는 이용자 신고로 발견되었습니다.
자신의 앱에서 가장 안전한 시크릿은 플랫폼이 아예 저장하지 않는 것입니다. 수명이 짧은 자격 증명이나, 앱이 실행 중에 읽어 오는 별도의 시크릿 저장소를 쓰세요(참고: .env와 API 키에서 실제로 위험한 것).
출처 (공개 기록)
이 글의 사실은 다음 공개 정보를 바탕으로 합니다. 회사가 확인하지 않은 침입 경로는 추측하지 않으며, 침해 지표는 여기에 옮기지 않습니다.
- Zeabur, 「Zeabur October 2026 security incident (preliminary report)」(2026년 10월 19일) — zeabur.com
- Zeabur, 「Zeabur service migration, refunds, and security incident claims」(2026년 10월 22일) — zeabur.com
- Zeabur, 「Zeabur is shutting down: what happens next」(2026년 10월 17일) — zeabur.com
업데이트 기록
2026-10-31: 첫 버전. Zeabur의 10월 19일 예비 보고서, 10월 17일 서비스 종료 발표, 10월 22일 사고 청구 공지를 바탕으로 합니다. 10월 31일 기준으로 회사 블로그에 추가 조사 보고서는 없습니다. 후속 발표가 나오면 이 글을 업데이트합니다.
다음으로 읽을 글
- 같은 유형의 사건: Railway 환경 변수 노출 가능성(2026년 10월) / OpenCode Console 침해(2026년 10월)
- AI 키가 노려지는 이유: AI 기반 사이버 공격 방어 / API 키 도난과 계정 차단
- 계속 유효한 유출 키: 유출 뒤에도 계속 유효한 자격 증명
- 2026년 기타 사건: 2026년의 데이터 유출과 사이버 공격