보안 가이드

Railway 환경 변수 노출 가능성 (2026년 10월, 최대 1.85% 워크스페이스): 교체해야 할 시크릿과 사용자 조치

Railway는 2026년 10월 21일, 일부 고객의 암호화된 환경 변수가 복호화되었을 수 있다고 밝혔습니다. 영향 범위, 교체해야 할 시크릿, 확인할 사항을 정리했습니다.

게시 2026-10-24 업데이트 2026-10-24 최종 확인 2026-10-24 15분 읽기
이 페이지에서

대상: 애플리케이션 호스팅 플랫폼(PaaS)인 Railway에서 앱이나 데이터베이스를 운영하는 개발자와 운영자, 특히 AI API 키, 결제, GitHub, 클라우드, 데이터베이스 자격 증명을 환경 변수에 보관하는 분.

이 글은 Railway의 공식 블로그 게시물(공지, 예비 보고서, 사용자 가이드)과 상태 페이지를 바탕으로 합니다. 회사가 공개하지 않은 공격 기법은 다루지 않습니다.

진행 중: 조직이 추가 정보를 공개하는 대로 이 글을 갱신합니다

2026년 10월 24일 11:00 UTC(일본 시간 20:00) 기준

아직 알 수 없음

  • 복호화된 환경 변수의 범위(회사는 특정할 수 없다고 밝힘)
  • 소스 코드 접근 여부(최종 보고서에서 확인 예정)
  • 공격의 세부 내용
  • 노출된 키가 사용되었는지 여부

회사의 예비 보고서는 10월 22일자이며, 상태 페이지에 따르면 10월 23일 16:38 UTC에 공개되었습니다. 회사는 조사가 계속 진행 중이며 조사가 끝나면 후속 보고서를 공개하겠다고 밝혔습니다. 최종 보고서의 날짜는 제시되지 않았습니다.

상태 페이지는 10월 23일 22:06 UTC에 사고를 해결됨으로 표시했으며, 빌드와 배포는 정상 작동하고 있습니다. 신규 가입은 계속 중단된 상태입니다.

오늘 Railway 사용자가 해야 할 일

1단계와 2단계는 모든 사용자에게 해당합니다. 회사는 영향이 제한적일 수 있다고 하면서도 예방 차원에서 모든 사용자에게 이 조치를 권고합니다.

1

시크릿 교체: 원본에서 재발급하고 이전 값을 폐기

회사는 10월 21일 이전에 Railway에 저장한 민감한 환경 변수를 모두 폐기하고 다시 적용할 것을 요청합니다. 여기에는 API 키와 프라이빗 레지스트리 자격 증명이 포함됩니다.

다음 순서로 진행하십시오.

  • 환경 변수를 목록으로 정리합니다. 각 서비스의 Variables 탭을 열어 시크릿 값(API 키, 토큰, 비밀번호, 서명 키, 연결 문자열)을 표시합니다
  • 각 원본의 대시보드에서 새 값을 발급합니다. AI API, 결제 서비스, GitHub, 클라우드, 외부 데이터베이스 등이 해당합니다
  • Railway 변수를 갱신하고 서비스를 재배포합니다. 컨테이너는 시작할 때만 변수를 읽으므로 재배포하기 전까지는 이전 값으로 계속 실행됩니다(회사 가이드)
  • 새 값이 작동하는 것을 확인한 뒤 원본에서 이전 값을 폐기하거나 삭제합니다

Railway 안에서만 값을 바꾸면 원본에서 폐기하기 전까지 노출된 값을 계속 사용할 수 있습니다(이 사이트의 참고).

10월 22일 03:32 UTC 이전에 교체했다면

회사는 10월 21일 공지에서 모든 환경 변수를 즉시 교체하라고 요청했습니다. 이후 10월 22일 03:32 UTC에 공격자가 더 이상 시스템에 접근할 수 없음을 확인했다고 밝혔습니다. 예비 보고서는 새 자격 증명이 곧바로 다시 탈취되지 않도록, 공격자를 내보낸 뒤에 사용자에게 교체를 안내하고 싶었다고 설명합니다. 따라서 10월 22일 03:32 UTC 이전에 교체한 시크릿은 한 번 더 교체하는 편이 안전합니다(이 사이트의 참고). 상태 페이지는 이번 갱신만으로 사고 억제 이후 이미 완료한 교체를 반복할 필요는 없다고 밝혔습니다.

2

데이터베이스: 비밀번호 재생성과 공개 접근 제거

회사는 모든 사용자에게 데이터베이스의 공개 네트워크 접근을 제거할 것을 권고합니다. 회사 가이드에 따르면 공개 접근(TCP 프록시)이 켜진 데이터베이스는 교체하기 전까지 자격 증명만 있으면 인터넷 어디에서나 접속할 수 있습니다.

  • PostgreSQL, MySQL, Redis, MongoDB는 데이터베이스 화면의 Regenerate를 사용합니다. 데이터베이스 내부 비밀번호와 변수를 한 번에 바꾸고 열려 있는 세션을 끊습니다(회사 가이드)
  • POSTGRES_PASSWORD 같은 비밀번호 변수를 직접 수정하거나 데이터베이스에서 비밀번호를 직접 바꾸지 마십시오. 변수와 데이터베이스가 서로 어긋납니다(회사 가이드)
  • 해당 변수(예: ${{ Postgres.DATABASE_URL }})를 참조하는 모든 서비스를 재배포합니다. 붙여 넣은 연결 문자열은 참조로 바꿉니다
  • Settings, Networking에서 프로젝트 밖에서 필요하지 않다면 Public Access를 끕니다. 외부(로컬 개발, CI, BI 도구)에서는 새 DATABASE_PUBLIC_URL을 직접 붙여 넣어야 합니다
3

GitHub와 레지스트리: 감사 로그와 연결된 앱 점검

회사는 GitHub 감사 로그와 앱 접근, 그리고 Docker Hub 같은 레지스트리의 감사 로그를 확인할 것을 권고합니다. 회사 가이드는 다음 점검 항목을 제시합니다.

  • 개인 계정: GitHub 보안 로그(90일), 승인된 OAuth 앱과 GitHub Apps, SSH 및 GPG 키, 개인 액세스 토큰. 알 수 없는 항목은 폐기하고 토큰을 재생성합니다
  • 조직: 조직 감사 로그(180일). 무엇이든 폐기하기 전에 로그를 내보내십시오. 각 저장소의 배포 키, 시크릿, 웹훅, 협업자를 점검합니다
  • GitHub Container Registry(ghcr.io): Railway는 저장해 두었던 GitHub 토큰을 삭제했지만, 해당 토큰은 GitHub에서 폐기하기 전까지 여전히 작동합니다. GitHub에서 이전 토큰을 삭제하고 read:packages 범위의 새 토큰을 만들어 각 서비스에 설정하십시오

가이드는 푸시 권한이 있는 공격자가 비밀번호를 재설정한 뒤에도 남는 웹훅이나 시크릿을 추가할 수 있다고도 경고합니다.

4

AI API와 결제: 본인이 쓰지 않은 사용량과 청구 확인

회사의 예비 보고서에 따르면 공격자는 AI 제공업체 API 키를 노린 것으로 보입니다. 회사는 OpenAI, Anthropic, OpenRouter, Grok, Stripe, AWS, GCP용 사용량 확인 가이드를 공개했습니다. 예를 들어 OpenAI 가이드는 다음을 안내합니다.

  • 노출되었을 수 있는 키를 삭제하고 같은 프로젝트에 새 키를 만듭니다
  • 사용량 화면을 열어 API 키별로 묶고, 노출 기간의 토큰 양, 요청 수, 모델 구성을 평소 트래픽과 비교합니다
  • 해당 기간의 지출과 소진된 크레딧 부여가 있는지 청구 내역을 확인합니다
  • 초대하지 않은 구성원이나 프로젝트 멤버가 없는지 확인합니다
  • 남용이 확인되면 사용량 내역을 보관하고 제공업체 지원팀에 문의합니다

적어도 공격 기간의 시작(10월 20일 13:58 UTC)부터 키를 교체한 시점까지 확인하십시오(이 사이트의 참고).

5

Railway 내부: 재로그인, 토큰 재생성, 재배포

회사는 대응 과정에서 모든 로그인 세션, Railway 액세스 토큰, GitHub 연결, 스토리지 버킷 자격 증명을 폐기했습니다. 배포가 중단된 동안 푸시된 커밋은 배포되지 않았습니다.

  • 가입 때 사용한 같은 Gmail, GitHub 계정 또는 이메일로 로그인합니다. 다른 계정으로 로그인하면 비어 있는 새 계정이 만들어집니다(회사 가이드)
  • 계정 설정에서 GitHub를 다시 연결하고, 서비스의 Settings에서 저장소를 다시 연결한 뒤 최신 커밋을 배포합니다
  • CLI: railway logout 후 railway login을 실행합니다. CI: 프로젝트 토큰(RAILWAY_TOKEN) 또는 계정/워크스페이스 토큰(RAILWAY_API_TOKEN)을 다시 만들어 CI 시크릿에서 교체합니다
  • 버킷을 사용하는 서비스는 새 자격 증명을 적용하도록 재배포합니다. 또한 버킷에 직접 업로드하지 않은 파일이 있거나 본인이 하지 않은 삭제가 있었는지 확인합니다(회사에 따르면 버킷에는 자동 백업이 없습니다)
  • 워크스페이스 감사 로그에서 노출 기간 중 팀이나 Railway("Railway Staff"로 표시)가 수행하지 않은 변수 조회, 레지스트리 자격 증명 변경, 배포가 있는지 찾아봅니다

10월 21일 이전에 Railway에 저장한 시크릿

연락을 받았는지와 관계없이 노출된 것으로 간주

↓

1. 원본에서 새 값 발급

변수를 갱신해 재배포한 뒤 이전 값 폐기

공개 접근이 켜진 데이터베이스

유출된 비밀번호로 인터넷에서 접속 가능

↓

2. 비밀번호 재생성 및 공개 접근 제거

참조하는 모든 서비스를 재배포

AI API, 결제, GitHub

공격자가 노린 것으로 보이는 키

↓

3. 사용량, 청구, 감사 로그 확인

10월 20일 13:58 UTC부터 교체 시점까지

Railway 안내에 따른 작업 순서. 먼저 원본에서 교체하고, 재배포한 뒤, 이전 값을 폐기합니다.

Railway 지원팀을 사칭하는 메시지에 주의하십시오

회사는 영향을 받은 고객에게 직접 이메일을 보낸다고 밝혔습니다. 회사의 계정 복구 가이드는 비밀번호, 로그인 코드, 복구 코드, API 토큰, 시크릿 값을 지원팀에 보내지 말라고 안내합니다. 이번 사고와 관련된 메시지가 시크릿 값이나 로그인 코드를 요구한다면 정상적인 메시지가 아니라고 보십시오(이 사이트의 참고).

GitHub, OpenAI 등 제공업체의 폐기 통지는 Railway의 요청에 따른 것이며, 회사는 이것이 자격 증명이 영향을 받았다는 뜻은 아니라고 밝혔습니다. 이런 메시지의 링크는 클릭하지 말고 각 제공업체의 대시보드를 직접 여십시오.

발생한 일 (Railway 발표 기준)

아래 내용은 Railway 블로그의 "Security Disclosure: Wednesday October 21st"(2026년 10월 21일)와 "Preliminary Report: Oct 21st Security Incident"(10월 22일자, 상태 페이지 기준 10월 23일 16:38 UTC 공개), 그리고 상태 페이지를 바탕으로 합니다. 시각은 UTC입니다.

  1. 10월 20일 13:58

    모니터링이 지연 시간 증가 형태의 이상 활동을 감지하고, 당직 엔지니어가 조사를 시작합니다.
  2. 10월 20일 14:03–16:51

    해당 활동이 악의적인 외부 당사자의 권한 상승 시도로 확인됩니다. 빌드 인프라에서 권한 상승 가능성이 발견되어 빌드 파이프라인이 중단됩니다.
  3. 10월 20일 18:05–19:53

    완화 조치가 적용되어 해당 악용을 더 이상 재현할 수 없게 됩니다. 19:53에 공격자가 시스템의 여러 부분에서 동시에 더 큰 규모로 권한을 상승시킬 수 있었다는 추가 증거가 나옵니다.
  4. 10월 21일 04:24–05:23

    포렌식 결과 공격자가 시크릿을 암호화된 형태로 가져갔으며, 당시에는 복호화할 수 없었던 것으로 확인됩니다.
  5. 10월 21일 05:27–07:25

    공격자가 CI 환경의 자격 증명을 확보하고, 추가 API 접근 권한이 담긴 아티팩트를 복호화합니다.
  6. 10월 21일 07:25–09:18

    데이터베이스 증거가 암호화된 환경 변수에 대한 무단 쿼리를 보여 주며, 탈취한 자격 증명의 조합으로 일부가 복호화되었습니다.
  7. 10월 21일 09:25

    Railway가 공격자가 접근한 대상을 제공업체에 알리고 키 폐기를 요청합니다(보고서의 FAQ에는 09:35로 기재).
  8. 10월 21일 20:19–22:10

    Railway가 사용자 세션 무효화를 발표하고 보안 공지와 고객 안내를 게시합니다.
  9. 10월 22일 03:32

    Railway가 공격자가 더 이상 어떤 내부 시스템에도 접근할 수 없음을 확인하고, 새 자격 증명으로 내부 시스템 재초기화를 시작합니다.
  10. 10월 22일 17:00–22:49

    모든 요금제에서 API 전체 복구와 정상 배포가 보고됩니다.
  11. 10월 23일 16:38

    10월 22일자 예비 보고서가 공개됩니다(상태 페이지).
  12. 10월 23일 18:57

    위험이 높다고 평가된 워크스페이스에 대한 통지가 완료됩니다(상태 페이지).
  13. 10월 23일 22:06

    상태 페이지가 사고를 해결됨으로 표시합니다. 신규 가입은 계속 중단되어 있습니다.
최대 1.85%
일부 환경 변수가 유출되었을 가능성이 있는 워크스페이스(회사에 따르면 약 100,000개)
약 38시간
공격 기간(10월 20일 13:58 UTC ~ 10월 22일 03:32 UTC)
없음
사용자 계정 로그인(회사 발표)
계속 실행
기존 배포(신규 빌드와 배포는 중단됨)
회사가 공개한 내용 (공지 및 예비 보고서)
발생한 일
권한 없는 제3자가 내부 시스템에 접근해 고객의 암호화된 환경 변수를 확보하고 그중 일부를 복호화했습니다
규모
전체 워크스페이스의 최대 1.85%(약 100,000개 워크스페이스)에서 일부 환경 변수가 유출되었을 가능성이 있습니다. 회사에 따르면 키가 봉투 암호화(데이터를 암호화하는 키 자체를 다른 키로 암호화하는 방식)되어 있어 쿼리 기록만으로는 어떤 변수가 영향을 받았는지 특정할 수 없습니다
공격자의 목적(회사의 평가)
모델 "증류"(한 모델의 출력으로 다른 모델을 학습시키는 것, 이 사이트의 설명)를 위해 AI 제공업체 API 키를 확보하는 것입니다. 회사는 이것이 AI 추론 제공업체를 침해할 목적으로 플랫폼 기업을 노리는 일련의 공격의 일부라고 보고 있습니다
고위험 환경
환경 변수가 매우 많은 워크스페이스와 AI 제공업체 키가 많은 환경
접근하지 않았다고 밝힌 대상
Railway 사용자 계정에는 로그인하지 않았습니다
아직 확인되지 않은 사항
소스 코드 접근 가능성은 배제되지 않았으며 최종 보고서에서 확인할 예정입니다
제공업체 통지
Railway는 GitHub, GitLab, Anthropic, OpenAI, OpenRouter, Google, Stripe 등에 복호화되었을 수 있는 키를 알리고 폐기를 요청했습니다. 일부 제공업체에는 영향 여부와 관계없이 플랫폼에 등록된 모든 키를 전달했습니다. 제공업체의 재설정 요청으로 100,000명 이상의 사용자가 영향을 받았습니다
서비스 영향
실행 중인 서비스는 온라인 상태를 유지했습니다. 신규 빌드와 배포, 대시보드, API, CLI, 지원은 한때 이용할 수 없었습니다
회사 조치
침해되었을 수 있는 내부 도구를 종료했고, 모든 키를 교체했으며 침입자가 제거된 것을 검증한 뒤 다시 교체했습니다. 외부 포렌식 업체를 투입했고, 빌더를 단일 테넌트 환경으로 옮겼으며, 모든 스토리지 버킷의 자격 증명을 교체했습니다. 검증된 소스에서 내부 도구를 다시 구축했고, Railway 애플리케이션 권한을 일괄 폐기하는 방법을 추가했습니다

확인된 사실과 아직 알 수 없는 사실

2026년 10월 24일 기준입니다. 회사가 추가 정보를 공개하는 대로 이 표를 갱신합니다.

항목공개된 내용상태
암호화된 환경 변수 확보무단 쿼리를 통해 확보확인됨(회사)
복호화탈취한 자격 증명의 조합으로 일부 복호화확인됨(회사)
영향 범위 워크스페이스전체 워크스페이스의 최대 1.85%(약 100,000개)가능성 있음(회사)
복호화된 변수쿼리 기록만으로는 특정할 수 없음조사 중
프라이빗 레지스트리 자격 증명교체 대상으로 명시가능성 있음(회사)
사용자 계정공격자는 Railway 사용자 계정에 접근하지 않음부인됨(회사)
소스 코드접근 가능성 배제하지 않음, 최종 보고서에서 확인 예정조사 중
실행 중인 서비스온라인 상태 유지확인됨(회사)
공격 기간10월 20일 13:58 UTC ~ 10월 22일 03:32 UTC확인됨(회사)
공격 세부 내용고객 보호를 위해 비공개조사 중
노출된 키의 악용언급 없음언급 없음
제공업체에 통지한 시각보고서 타임라인은 09:25 UTC, FAQ는 09:35 UTC보고서 내 불일치

수치 읽는 법: 100,000이 가리키는 것

예비 보고서의 "약 100,000"은 일부 환경 변수가 유출되었을 가능성이 있는 워크스페이스(전체의 1.85%)의 수입니다. 보고서는 제공업체의 폐기 요청으로 100,000명 이상의 사용자가 영향을 받았고, 고위험으로 연락한 고객은 1.85%를 넘는다고 밝혔습니다. 연락을 받았거나 키가 폐기되었다고 해서 노출이 확인된 것은 아닙니다. 반대로 회사는 고위험 그룹 밖의 워크스페이스가 안전하다고 확인된 것은 아니라고 밝혔습니다.

AI API 키가 노려지는 이유

아래는 일반적인 설명이며 이번 사고에서 이런 일이 있었다는 뜻이 아닙니다. 회사가 설명한 이 공격자의 목적은 모델 증류를 위한 AI API 키 확보입니다.

AI API 키는 가진 사람이 누구든 쓸 수 있는 돈이자 연산 자원입니다. 탈취한 키가 많이 사용되면 청구서는 키 소유자에게 갑니다. 소유자 이름으로 대량의 출력이 수집되면 제공업체가 증류 금지 같은 정책 위반을 이유로 계정을 정지할 수 있습니다. 이 구조와 이의 신청 방법은 API 키가 도난된 뒤 계정이 차단되는 이유에서 다룹니다.

호스팅 플랫폼은 많은 고객의 키를 한곳에 보관합니다. 회사가 환경 변수나 AI 키가 많은 워크스페이스를 고위험으로 설명한 이유도 이 때문일 가능성이 있습니다. 같은 달 LiteLLM 개발사도 자사 사고의 공격자가 주로 LLM 제공업체 키를 찾았다고 밝혔습니다(별개의 사고이며 두 사고 사이의 연관성은 공개되지 않았습니다). AI를 이용하거나 AI 키를 노리는 공격 전반은 AI 기반 사이버 공격 방어를 참고하십시오.

Railway 사용자가 점검할 사항: 공개된 사실에서 얻는 교훈

이 절은 회사의 대응을 평가하지 않습니다. 공개된 사실을 바탕으로 다음 사고에 대비해 사용자가 할 수 있는 일에 초점을 맞춥니다.

1

플랫폼 측 암호화가 플랫폼 침해를 막아 주지는 않는다고 가정하기

Railway의 환경 변수는 암호화되어 있었지만, 예비 보고서에 따르면 공격자는 탈취한 자격 증명의 조합으로 일부를 복호화했습니다. 호스팅 플랫폼은 앱을 실행하려면 변수를 다시 평문 값으로 되돌려야 하므로, 플랫폼 내부 권한이 탈취되면 암호화만으로는 완전히 보호하기 어렵습니다(이 사이트의 참고).

플랫폼의 암호화와 별개로, 유출되더라도 피해가 제한되도록 시크릿을 보관하십시오. 우선 AI API와 결제 제공업체에서 지출 한도와 알림을 설정하십시오. 운영, 스테이징, 개발용 키를 분리하면 교체해야 할 범위도 줄어듭니다. 시크릿 보관은 .env와 API 키에서 실제로 위험한 것에서 다룹니다.

2

데이터베이스를 공개 인터넷에 노출하지 않기

회사 가이드에 따르면 공개 접근이 켜진 데이터베이스는 연결 문자열이 유출되면 인터넷 어디에서나 접속할 수 있습니다. 프로젝트의 프라이빗 네트워크로만 사용하는 데이터베이스는 연결 문자열이 유출되더라도 외부에서 직접 접속할 수 없습니다.

외부 접근은 보통 로컬 개발, CI, BI 도구에만 필요합니다. 그런 경우에도 필요한 동안만 열거나 별도의 읽기 전용 사용자를 쓰는 방법을 고려하십시오(이 사이트의 참고).

3

시크릿을 참조로 공유해 교체를 한 곳에서 하기

회사 가이드는 연결 문자열과 키를 각 서비스에 붙여 넣지 말고 ${{ Postgres.DATABASE_URL }} 같은 참조 변수로 공유할 것을 권장합니다. 참조를 쓰면 원본 값을 바꾸고 재배포하는 것만으로 모든 서비스에 반영되며, 붙여 넣은 사본을 잊을 일이 없습니다.

같은 취지로, 각 서비스가 어떤 시크릿을 쓰고 어디서 재발급하는지 목록으로 관리하십시오(이 사이트의 참고). 지금처럼 전부 교체해야 할 때 이 목록이 작업 시간을 좌우합니다. 비슷한 사례인 Vercel 보안 사고에서는 나중에 값을 표시할 수 없는 분류로 시크릿을 저장했는지가 중요했습니다.

4

GitHub 연결은 필요한 저장소와 범위로 제한하기

이번 사고에서 회사는 보관하던 GitHub 토큰을 폐기했고 GitHub 감사 로그와 앱 접근을 검토할 것을 권고합니다. 호스팅 플랫폼에 부여하는 GitHub 접근은 배포하는 저장소로 제한하고, 컨테이너 레지스트리 토큰에는 읽기 권한(read:packages)만 주어 유출 시 영향 범위를 줄이십시오(이 사이트의 참고). 유출된 자격 증명이 계속 유효한 문제는 계속 유효한 유출 자격 증명에서 다룹니다.

출처 (공개 자료)

이 글의 사실은 아래 공개 자료를 바탕으로 합니다. 공격 세부 내용은 옮기지 않았습니다.

  • Railway, "Security Disclosure: Wednesday October 21st"(2026년 10월 21일, 상태 페이지는 10월 21일 22:10 UTC에 "We have published a security notice"를 게시) — blog.railway.com
  • Railway, "Preliminary Report: Oct 21st Security Incident"(2026년 10월 22일자, 상태 페이지 기준 10월 23일 16:38 UTC 공개) — blog.railway.com
  • Railway, "Railway Platform Outage"(상태 페이지, 10월 23일 22:06 UTC의 "Resolved" 업데이트까지 확인) — status.railway.com
  • Railway 사용자 가이드(2026년 10월 22~23일): "Rotate PostgreSQL Database Credentials" blog.railway.com / "Check for Anomalous GitHub Access" blog.railway.com / "Check for Unexpected OpenAI Usage" blog.railway.com / "Redeploy Buckets and Reconnect GitHub After the Credential Reset" blog.railway.com / "Recover Failing Deploys" blog.railway.com / "Resolving Login Issues" blog.railway.com
  • 다른 서비스(MySQL, Redis, MongoDB, Anthropic, OpenRouter, Grok, Stripe, AWS, GCP)용 가이드는 회사 엔지니어링 블로그에 정리되어 있습니다 — blog.railway.com

업데이트 이력

2026-10-24: Railway의 공지(10월 21일), 예비 보고서(10월 22일), 상태 페이지(10월 23일 22:06 UTC 업데이트까지)를 바탕으로 한 첫 버전. 같은 날 출처를 확인한 뒤 수정했습니다. 예비 보고서의 공개 시각은 상태 페이지(10월 23일 16:38 UTC)를 따르도록 했고, 사용자 계정 접근 상태는 "부인됨(회사)"으로 바꿨습니다. 복호화 범위와 소스 코드 접근 여부는 최종 보고서가 공개되면 추가하겠습니다.

함께 읽기

최신 속보

FAQ

QRailway 사고에서 무엇이 노출되었나요?
A

Railway에 따르면 권한 없는 제3자가 고객 환경 변수를 저장하는 시스템에 접근해 암호화된 환경 변수를 확보했고, 그중 일부를 복호화했을 수 있습니다. 환경 변수에는 API 키, 데이터베이스나 컨테이너 레지스트리 자격 증명이 들어 있을 수 있습니다. 회사는 Railway 사용자 계정에 로그인한 흔적은 없다고 밝혔습니다. 소스 코드 접근 가능성은 배제하지 않았으며 최종 보고서에서 확인하겠다고 했습니다.

Q내가 영향을 받았는지 알 수 있나요?
A

회사는 전체 워크스페이스의 최대 1.85%(약 100,000개 워크스페이스)에서 일부 환경 변수가 유출되었을 가능성이 있지만, 어떤 변수가 복호화되었는지는 특정할 수 없다고 밝혔습니다. 영향이 확인된 고객과 위험이 높다고 판단한 고객에게 이메일을 보냈으며, 10월 23일 18:57 UTC 기준으로 고위험 대상 통지를 마쳤다고 했습니다. 또한 위험이 높은 그룹 밖의 워크스페이스가 안전하다고 확인된 것은 아니라고 밝혔습니다. 연락을 받았는지와 관계없이 10월 21일 이전에 저장한 시크릿을 교체하십시오.

Q어떤 시크릿을 교체해야 하나요?
A

회사는 API 키를 포함해 Railway에 저장된 모든 환경 변수와 프라이빗 레지스트리 자격 증명을 교체할 것을 요청합니다. 교체란 원본(AI API, 결제 서비스, GitHub, 클라우드 등)에서 새 값을 발급하고, Railway 변수를 갱신해 재배포한 다음, 원본에서 이전 값을 폐기하는 것을 말합니다. Railway 데이터베이스는 대시보드의 Regenerate로 비밀번호를 변경하십시오.

Q원인은 무엇인가요?
A

회사의 예비 보고서에 따르면 사고는 빌드 인프라에 대한 권한 상승 시도로 시작되었고, 이후 공격자가 CI 환경 자격 증명을 확보해 탈취한 자격 증명의 조합으로 암호화된 환경 변수 일부를 복호화했습니다. 회사는 고객 보호를 위해 악용 방법의 구체적인 내용과 규모는 아직 공개할 수 없다고 밝혔습니다. 외부 사고 대응 전문가 및 당국과 협력하고 있으며 조사가 끝나면 후속 보고서를 공개할 예정입니다.

QGitHub나 OpenAI에서 내 키가 폐기되었다는 이메일을 받았습니다. 영향을 받은 건가요?
A

반드시 그런 것은 아닙니다. 회사는 10월 21일 제공업체에 복호화되었을 수 있는 키 목록을 보내 폐기를 요청했습니다. 신중을 기해 일부 제공업체에는 영향 여부와 관계없이 플랫폼에 등록된 모든 키를 전달했으며, 폐기 통지를 받았다고 해서 자격 증명이 영향을 받았다는 뜻은 아니라고 밝혔습니다. 폐기된 키는 더 이상 작동하지 않으므로 새 키를 발급해 설정을 갱신하십시오.

Q사고 이후 로그인이나 배포가 되지 않습니다.
A

회사는 대응 과정에서 모든 로그인 세션, Railway 액세스 토큰, GitHub 연결을 폐기했으며, 배포가 중단된 동안 푸시된 커밋은 배포되지 않았습니다. 회사 안내는 다음과 같습니다. 가입 때 사용한 같은 Gmail, GitHub 계정 또는 이메일로 로그인하고, GitHub를 다시 연결한 뒤 최신 커밋을 배포하십시오. CLI는 railway logout 후 railway login을 실행하고, CI는 새 토큰을 만들어 CI 시크릿의 이전 토큰을 교체하십시오.