펜리젠트 헤더

암호화폐 거래소 데이터 유출 심층 분석: 몽고DB 구성 오류, 2FA 시드 노출 및 규정 준수 후유증 (2025)

요약
NCX로 확인된 한 암호화폐 거래소가 내부 MongoDB 인스턴스를 인증 없이 공개 인터넷에 노출한 것으로 추정됩니다. 해당 데이터베이스는 수개월 동안 접속이 가능했으며, 약 1GB의 데이터와 500만 개 이상의 레코드가 포함되어 있었고, 이름, 이메일, 생년월일, KYC 문서 링크, 해시된 비밀번호, 2FA 시드/URL, 내부 API 키, IP 기록, 계정 지갑 주소 및 거래 로그가 포함되어 있었습니다.(일일 보안 검토) 이는 단순한 "PII 유출"이 아닙니다. 이는 신원 도용, KYC 사기, 계정 탈취, 온체인 타겟팅, 규제 노출, 72시간 이내에 공개해야 하는 최신 데이터 보호 체계에 따른 사고 대응 의무 등 전체 스택을 침해할 수 있는 표면입니다.GDPR)

이 문서에서는 두 가지 각도에서 NCX 스타일의 침해에 접근합니다:

  1. 공격 테스트/레드팀 현실 - 이러한 잘못된 구성이 어떻게 적극적인 익스플로잇으로 전환되는지 알아보세요.
  2. 규정 준수 및 대응 - 고객 신원 데이터 및 다단계 비밀에 대한 통제력을 상실했음을 알게 된 경우 취해야 할 조치입니다.

또한 펜리전트와 같은 지속적인 공격 테스트 플랫폼이 규제 기관, 공격자 또는 언론사보다 먼저 이러한 정확한 장애 모드를 발견하고 시뮬레이션할 수 있는 방법을 매핑할 것입니다.

인시던트 개요: 유출된 내용 및 중요한 이유

보고된 문제는 표현은 간단하지만 결과는 잔인합니다. 인증 권한이 없는 인터넷에 연결된 MongoDB 인스턴스입니다. IP와 포트를 알고 있거나 추측/스캔할 수 있는 사람이라면 누구나 평문으로 컬렉션을 탐색할 수 있었습니다.일일 보안 검토)

노출된 데이터 유형

공개에 따르면, NCX 데이터 세트에는 (레코드당 수백만 개 이상의 행이) 포함되어 있습니다:

  • 이름/이메일/생년월일
  • KYC 이미지 또는 문서 링크(여권, 신분증 스캔)
  • 2FA 시드 값 및 등록 URL
  • 해시된 비밀번호
  • IP 주소 기록 및 로그인 메타데이터
  • 내부 API 키/서비스 토큰
  • 지갑 주소, 입금/출금 내역, 체인 활동
  • 계정 상태 플래그(금지/동결/위험)
  • 지원 티켓 로그

이는 세 가지 이유에서 비정상적으로 좋지 않습니다:

  1. 규모에 맞는 ID 인수
    공격자가 사용자의 법적 이름 + 주민등록증 + 여권 이미지를 가지고 있다면 다른 곳에서 계정을 개설하거나, 소셜 엔지니어링을 통해 '계정 복구'를 하거나, 보안이 취약한 곳에서 KYC를 통과할 수 있습니다. 이것은 교과서적인 신원 도용 수법입니다.(일일 보안 검토)
  2. 2FA 시드 노출을 통한 MFA 우회
    시간 기반 일회용 비밀번호(TOTP) 시드가 저장되어 유출되면 공격자는 비밀번호를 공유한 적이 없더라도 필요에 따라 유효한 2FA 코드를 생성하여 사용자 아이디로 로그인할 수 있습니다. 유출된 2FA 시드는 본질적으로 '미리 구운 세션 토큰'입니다.일일 보안 검토)
  3. 커스터디 + 온체인 타겟팅
    지갑 주소와 거래 내역을 통해 공격자는 사용자의 실제 이동 규모를 파악할 수 있습니다. 그런 다음 이러한 고가치 표적에 피싱("인출이 차단되었으니 여기에 서명하세요")을 하거나 SIM 스왑을 시도할 수 있습니다. 저희는 암호화폐 플랫폼에서 이러한 플레이북을 사용하여 개인화된 피싱이 발생할 수 있다고 침해된 사용자에게 경고하는 것을 보았습니다.일일 보안 검토)

응답 없음 문제

오픈 몽고DB를 발견한 연구원들은 책임 있는 공개를 여러 차례 시도했지만 제때 답변을 받지 못한 것으로 알려졌습니다(일일 보안 검토)
규제 당국의 관점에서 보면 이는 치명적인 문제입니다: GDPR 수준의 제도와 많은 국가 데이터 보호 당국은 72시간 이내에 신속한 봉쇄, 증거 보존, 규제 당국에 대한 침해 통지, 사용자에 대한 위험이 높은 경우 사용자 통지를 기대합니다.GDPR)

암호화폐 거래소

공격 체인: 레드팀이 '오픈 몽고DB'를 전체 계정 침해로 전환하는 방법

이 섹션은 공격자(또는 책임 있는 테스터)가 진행하는 방식이기 때문에 모의 침투 테스트 내러티브처럼 작성되었습니다.

1단계: 노출된 몽고DB 열거하기

  • 포트 스캔을 통해 광범위한 클라우드 주소 공간에서 기존 MongoDB 포트(27017/27018)를 검색합니다.
  • 배너/서버 상태를 확인하여 인증되지 않은 액세스를 확인합니다.
  • 데이터베이스 및 컬렉션 목록(db.getCollectionNames() 등).
  • 가치가 높은 컬렉션을 버리세요: 사용자, auth, kyc, 지갑, 거래, apiKeys, 티켓.

다시 말해, 이것은 "0데이"가 아닙니다. 인터넷에 데이터베이스를 두고 인증도 없고 방화벽도 없는 1990년대 수준의 잘못된 구성입니다. CISA와 NIST는 인증 없이 인터넷에 노출된 데이터 저장소가 여전히 가장 일반적인 침해 진입 지점 중 하나라고 반복해서 경고합니다.유럽 위원회)

다음은 공격자가 테스트 박스에서 실행할 수 있는 간단한 의사 세션입니다(소유하지 않거나 평가 권한이 없는 시스템에 대해 실행하지 마세요. 무단 액세스를 수행하는 것은 불법입니다):

# 개방형 MongoDB 호스트 검색(예제 로직만 해당)
nmap -p 27017 --open  -oG mongo_hosts.txt

# 자격 증명 없이 검색된 호스트에 연결합니다.
mongosh --host :27017 --eval "db.adminCommand('listDatabases')"

# 대상 DB의 컬렉션을 열거합니다.
mongosh --host :27017 --eval "use ncx_users; db.getCollectionNames()"

# 사용자 관련 문서 덤프
mongosh --host :27017 --eval "use ncx_users; db.users.find().limit(5).pretty()"

실제 레드팀에게 이것은 테이블 스테이크입니다. 규제 당국이나 원고의 변호사 입장에서는 시스템에 "합리적인 보안 제어가 없었다"는 결정적인 증거가 될 수 있습니다.

2단계: 비밀을 수집하고 자료를 인증하기

일단 안으로 들어가면 공격자가 당깁니다:

  • password_hash 또는 이와 동등한
  • totp_seed / 2fa_secret
  • api_key / api_secret
  • KYC 파일 URL

대박입니다. 비밀번호 해시는 오프라인에서 해독할 수 있고, TOTP 시드를 사용하면 유효한 MFA 코드를 생성할 수 있으며, API 키는 내부 관리자 또는 거래 백엔드와 대화할 수 있습니다.

보안 연구원과 DFIR 팀은 유출된 2FA 시드와 '재사용 가능한' API 자격 증명이 직접적인 계정 탈취와 측면 이동으로 이어지기 때문에 가치가 높은 전리품이라고 여러 차례 지적한 바 있습니다.일일 보안 검토)

3단계: 계정 인수인계 시뮬레이션

공격자는 사용자 이름/이메일 + 비밀번호(또는 오프라인에서 크랙된 해시) + 탈취한 TOTP 시드를 사용하여 로컬에서 유효한 6자리 코드를 생성할 수 있습니다. 즉, 피해자의 휴대폰을 건드리지 않고도 전체 로그인이 가능합니다.

거래소가 이메일과 2FA를 통한 비밀번호 재설정을 지원하는데 두 가지 모두 유출되면 공격자는 사용자를 완전히 차단할 수 있습니다. 이러한 시나리오(탈취한 TOTP 또는 재설정 요소 데이터를 사용한 MFA 우회)가 바로 암호화폐 침해 대응 가이드에서 영향을 받은 사용자에게 즉시 자격 증명을 교체하고, MFA를 재등록하고, 인출을 모니터링하라고 안내하는 이유입니다.CCN.com)

4단계: KYC 및 신원 도용

KYC 이미지 링크와 ID 스캔이 명확하지 않거나 추측 가능한/긴 URL 뒤에 있기 때문에 공격자가 이를 사용할 수 있다고 합니다:

  • 를 사용하여 다른 곳에서 다른 사람으로 새 거래소 계좌를 개설할 수 있습니다;
  • 를 다른 서비스의 소셜 엔지니어 고객 지원팀("지금 여권을 보내드릴 테니 잠금 해제해 주세요")에 문의하세요;
  • 를 사용하여 매우 개인적인 세부 정보로 고가치 사용자를 피싱합니다("안녕하세요, AML에 따라 귀하의 인출을 동결했습니다...").

이미 암호화폐 플랫폼에서 유출된 KYC 아티팩트가 맞춤형 피싱과 사기의 연료가 될 수 있다고 공개적으로 경고하는 것을 목격하고 있습니다.일일 보안 검토)

KYC

5단계: 온체인 타겟팅

지갑 주소와 트랜잭션 로그를 통해 누가 실제로 상당한 금액을 이동했는지 알 수 있습니다. 이 목록은 금상첨화입니다:

  • 스피어 피싱('보안 인증' 사기),
  • 강탈 위협,
  • 더스팅 공격 및 승인 탈취 사기(여기에 서명하면 자금을 잃게 됩니다).

공격자들이 '거래소 비밀번호 탈취'에서 '유출된 금융 메타데이터 무기화'로 방향을 선회한 이유는 확장성과 소셜 엔지니어링이 더 뛰어나기 때문입니다.(일일 보안 검토)

방어 및 복구 체크리스트(기술)

이것이 바로 NCX(또는 모든 암호화폐 거래소, 핀테크 지갑 또는 KYC를 중시하는 플랫폼)가 오픈 몽고DB 유출을 발견한 직후에 해야 할 일입니다.

데이터베이스 보안 기준

  • 지금 공개 노출 차단: 공용 라우팅에서 인스턴스를 제거하거나 방화벽 규칙/VPC 전용 액세스 뒤에 인스턴스를 잠급니다.
  • 인증 필요MongoDB 인증 및 역할 기반 액세스를 활성화하고 인터넷에서 익명 읽기를 허용하지 마세요.
  • 모든 곳의 TLS: 일반 텍스트가 아닌 암호화된 전송을 강제합니다.
  • 최소 권한의 원칙사용자 대면 마이크로서비스는 꼭 필요한 컬렉션만 표시해야 합니다.
  • 로깅 및 알림액세스 시도 및 비정상적인 쿼리에 대한 지속적인 감사 로그를 연결합니다. NIST 및 EU 규제 당국은 누가, 언제, 무엇을, 침해 중 및 침해 후에 액세스했는지 보여주는 기록을 기대합니다.유럽 위원회)

비밀 및 키 거버넌스

  • API 키 회전 가 발견되면 손상된 것으로 간주합니다.
  • 오래 지속되는 '비공개 URL' 무효화하기 자산을 엄격한 ACL(예: 분 단위 만료, IP 제한 및 감사가 있는 사전 지정된 S3 URL)을 사용하여 수명이 짧은 서명된 URL 뒤로 이동합니다.
  • 내부 관리자 API 강화 예를 들어 상호 TLS, IP 허용 목록, 디바이스 상태 등 유출된 키가 공격할 수 있는 모든 요소에 대해 요구합니다.

대규모 2FA/MFA 재설정

  • 노출된 모든 TOTP 시드를 소각된 것으로 처리합니다. 영향을 받은 계정에 대해 강제 재등록합니다.
  • 일반 텍스트로 저장되지 않는 새로운 시드를 사용하여 2FA를 새로 설정해야 합니다.
  • 고위험 계정(예: 고액 잔액)의 경우 일시적으로 인출 및 비밀번호 변경 시 단계별 인증을 추가하세요. 보안 팀과 규제 당국에서도 고액 거래에 대해 침해 후 '적응적 마찰'을 권장합니다.CCN.com)

KYC 데이터 처리

  • KYC 문서를 영구적인 공개 링크가 아닌 엄격한 액세스 제어와 수명이 짧은 검색 토큰이 있는 암호화된 저장소로 옮기세요.
  • 개체 레이어에 액세스 로깅을 추가합니다(누가 Y 시간에 여권 X를 보았는지).
  • 보존 최소화 - GDPR은 데이터 최소화 및 목적 제한을 요구합니다. 전체 해상도 여권 스캔이 영원히 필요하지 않다면 영원히 보관하지 마세요.(GDPR)

포렌식 + 사고 대응 규율

  • 증거를 위해 노출된 DB를 스냅샷으로 찍습니다.
  • 타임라인 재구성을 위해 삭제 전/후의 액세스 로그를 캡처합니다.
  • 침해 알림 워크플로우를 시작하세요:
    • 낮은 위험을 입증할 수 없는 한, 인지 후 72시간 이내에 데이터 보호 기관에 통지해야 합니다;
    • 영향을 받는 사용자에게 높은 위험(신원 도용, 계정 탈취가 명백히 해당되는 경우)이 있는 경우 '부당한 지체 없이' 이를 알립니다.GDPR)
  • 전체 관리 체인을 문서화하세요. GDPR과 대부분의 사이버 보험사 모두 증거와 해결 단계를 보존할 것을 기대합니다(퍼킨스 코이)

다음은 발견 후 첫 48시간 이내에 실행할 수 있는 간소화된 해결 일정표입니다:

시간 창액션
처음 2-4시간인터넷에서 DB를 가져오고 방화벽을 설정하고 증거를 스냅샷하고 모든 로깅을 시작하세요.
첫 12시간API 키 해지, 노출된 URL 무효화, 고위험 인출 동결.
첫 24시간노출된 계정에 대해 강제 비밀번호 + 2FA 재설정, 적응형 마찰을 트리거합니다.
48시간 이내규제 기관 알림 초안, 고객 알림 초안, 간략한 법률 및 규정 준수.
≤72시간 이내(GDPR 기간)관련 기관 + 영향을 받은 사용자에게 알리고, 인시던트 요약 + 완화 조치를 제공합니다.

EU DPA 및 영국 ICO와 같은 규제 기관은 당국에 대한 침해 보고는 일반적으로 인지 후 72시간 이내에 이루어져야 하며, '높은 위험'이 있는 경우 영향을 받는 개인에게 알릴 준비가 되어 있어야 한다고 명시적으로 요구하고 있습니다.GDPR)

규정 준수 매핑: GDPR, SOC 2/SOC 3 및 암호화 관련 기대치

GDPR/유럽 연합식 데이터 보호

GDPR 제33조 및 제34조에 따라 사람들의 권리와 자유를 위협하는 개인 데이터 침해가 발생하면 반드시 신고해야 합니다:

  1. 인지한 날로부터 72시간 이내에 감독 기관에 통지합니다.
  2. 영향을 받은 사용자에게 "과도한 지체 없이" 노출된 내용과 이에 대한 조치를 설명하여 알립니다(GDPR)

암호화폐의 경우 KYC + 신원 문서 + 로그인 메타데이터 + 2FA 시드의 유출은 개인에게 절대적으로 '높은 위험'을 초래합니다. 신원 사기, 금전적 손실, 사회 공학이 가능하기 때문에 규제 당국은 침묵을 용납하지 않습니다.

SOC 2 / SOC 3 스타일 컨트롤

SOC 2/SOC 3 언어(보안, 가용성, 기밀성)에서 인증되지 않은 개방형 운영 데이터베이스는 액세스 제어, 네트워크 보안 및 변경 관리 기대치를 정면으로 위반하는 것입니다. "중요한 고객 PII 및 기밀이 인증되지 않은 공용 IP에 있는 경우" 성숙한 SOC 감사를 통과할 수 없습니다.

침해 알림 및 암호화 신뢰

일부 암호화폐 거래소는 정식 인가를 받은 은행이 아니지만 여전히 고객의 자금, 여권, AML/KYC 데이터를 취급하는 이상한 영역에 속합니다. 즉

  • 핀테크 수탁자(고객 잔액 보호, 사기 방지)와 데이터 관리자(개인 데이터 보호, 침해 통지)의 역할을 모두 수행합니다(일일 보안 검토)
  • 신고하지 않으면 단순히 벌금만 물게 되는 것이 아닙니다. 수년간의 거래소 해킹과 러그 풀로 인해 이미 편집증에 걸린 암호화폐 커뮤니티 내에서 영구적인 브랜드 손상을 입을 위험이 있습니다.CCN.com)

인터넷보다 먼저 'NCX급' 장애를 포착하는 방법(펜리젠트 뷰)

솔직히 말해서, "인증이 없는 퍼블릭 몽고DB가 5백만 개 이상의 레코드를 노출하는 것"은 언론사보다 훨씬 먼저 적절한 공격 테스트 루프가 포착해야 하는 종류의 일입니다.일일 보안 검토)

펜리전트 (https://penligent.ai/)는 이를 지속적이고 자동화된 적대적 공격 테스트, 즉 상시 가동되는 레드팀으로 접근합니다. 그 과정은 다음과 같습니다:

자산 매핑 및 노출 모니터링

펜리전트의 에이전트는 외부 공격 표면(클라우드 IP 범위, 하위 도메인, 유출된 서비스)을 지속적으로 매핑하고 인증되지 않은 몽고DB, Redis, Elasticsearch, 객체 스토리지 버킷 등과 같은 인터넷 연결 데이터 저장소를 표시합니다. 바로 이러한 종류의 잘못된 구성이 NCX 노출로 이어진 것입니다.일일 보안 검토)

민감한 데이터/키 검색 시뮬레이션

승인된 범위 내에서 Penligent는 노출된 서비스에서 고가의 '크라운 쥬얼'을 식별하려고 시도합니다:

  • 2FA/TOTP 시드
  • API 키 및 서비스 토큰
  • KYC 문서 링크 또는 버킷
  • 지갑/출금 메타데이터

그런 다음 플랫폼은 실제 공격자가 할 수 있는 익스플로잇 경로("이 시드를 사용하면 MFA 코드를 생성할 수 있습니다", "이 키를 사용하면 내부 관리자 API를 공격할 수 있습니다")를 구성하지만 실제로 계정을 탈취하는 대신 통제된 샌드박스에서 수행합니다. 이렇게 하면 보안팀이 리더십을 발휘할 수 있는 증거 기반의 위험 내러티브를 만들 수 있습니다.

MFA 및 출금 경로 테스트

펜리전트는 조건부 계정 탈취를 시뮬레이션할 수 있습니다: "공격자가 이 시드를 훔친 경우 로그인할 수 있을까요? 수동 검토 없이 탈퇴할 수 있을까? 이메일을 재설정할 수 있을까?" 이를 통해 당황하지 않고 정돈된 수정 목록을 얻을 수 있습니다.

규정 준수 보고

마지막으로 펜리전트는 발견한 내용을 GDPR 72시간 위반 의무, SOC 2/SOC 3 제어 실패, 암호화폐 보관 위험에 매핑합니다. 이는 단순히 버그를 수정하는 것이 아니라 프로세스가 있었고, 조치를 취했으며, 규제 당국에 브리핑할 수 있음을 증명해야 하기 때문에 중요합니다.GDPR)

실제로는 "우리는 몇 달 동안 우리 DB가 공개되었는지 전혀 몰랐다"와 "우리는 지속적으로 발견했고, 발견해서 차단했으며, 여기 로그가 있다"의 차이입니다.

FAQ(보안, GRC 및 엔지니어링용)

Q1. NCX와 같은 침해로 이어지는 가장 일반적인 MongoDB 구성 오류는 무엇인가요?

인증 및 네트워크 ACL이 없는 공개적으로 라우팅 가능한 MongoDB. 개발/테스트 인스턴스는 종종 '임시 프로덕션'으로 승격되어 잠기지 않는 경우가 많습니다. CISA/NIST는 인증 없이 노출된 데이터베이스가 대규모 유출의 반복적인 원인이라고 수년 동안 경고해 왔습니다.유럽 위원회)

Q2. 2FA/TOTP 시드가 유출되면 공격자가 내 계정으로 로그인할 수 있나요?

예, 공격자가 사용자 아이디/이메일과 비밀번호 또는 크랙된 해시를 가지고 있는 경우입니다. 시드를 사용하면 유효한 6자리 코드를 무한정 생성할 수 있습니다. 그렇기 때문에 침해 후 안내에 항상 비밀번호뿐만 아니라 MFA를 재설정하라는 메시지가 표시되는 것입니다.일일 보안 검토)

Q3. KYC 이미지와 신분증 스캔은 어떻게 저장해야 하나요?

영구적으로 존재하는 정적 링크가 아니라 인증된 세션에 연결된 짧은 수명의 서명된 URL을 통해서만 암호화되고 접근이 제어되며 검색할 수 있어야 합니다. 모든 액세스는 기록되어야 합니다. GDPR은 또한 '데이터 최소화'를 기대합니다. 필요 이상으로 많은 개인 데이터를 저장하지 말아야 합니다(GDPR)

Q4. 규제 기관과 사용자에게 법적으로 얼마나 빨리 통지해야 하나요?

GDPR 스타일의 제도 하에서는 일반적으로 개인을 위협하는 침해 사실을 인지한 후 72시간 이내에 관련 기관에 알려야 하며, 영향을 받는 사용자에게 위험이 높을 경우 '부당한 지체 없이' 이를 알려야 합니다.GDPR)

결론

"잘못 구성된 몽고DB"는 초보자의 실수처럼 들립니다. 암호 화폐에서는 실수라고 할 수 있습니다.
KYC ID, 해시된 비밀번호, IP 로그, 지갑, 심지어 TOTP 시드까지 포함된 5백만 개 이상의 사용자 기록이 유출되면 단순히 이메일만 유출되는 것이 아니라 신원, 유동성, 신뢰가 유출되는 것입니다.일일 보안 검토)

레드팀의 관점에서 보면 거의 자동에 가까운 인수인계 경로입니다.
규정 준수 관점에서 볼 때, 이는 멈출 수 없는 규제 시계와 같습니다.GDPR)

그렇기 때문에 KYC를 저장하고 사용자 자금을 보관하는 모든 암호화폐 플랫폼에서 지속적이고 자동화된 증거 중심의 공격 테스트(자산 발견 → 익스플로잇 시뮬레이션 → 규정 준수 매핑)가 빠르게 의무화되고 있습니다. 이와 같은 침해 사고가 발생한 거래소의 사용자라면 어떻게 해야 할까요? 비밀번호를 변경하고, 2FA를 교체하고, 표적 피싱이 다가오고 있다고 가정하고, 탈퇴를 심각하게 고려해야 합니다.(CCN.com)

게시물을 공유하세요:
관련 게시물
ko_KRKorean