사고 & 취약점
7pay 부정 사용 사건(2019) — 2단계 인증 없는 결제 앱은 왜 탈취되었나
2019년 7월, 세븐&아이의 결제 앱 '7pay'가 출시 직후 계정 탈취 피해를 입어 약 808명·약 3,862만 엔의 부정 사용이 발생했고, 약 3개월 만에 서비스가 폐지되었습니다. 핵심은 2단계 인증이 없었고, 비밀번호 재설정을 등록되지 않은 이메일 주소로 보낼 수 있었던 것. 공격 절차가 아니라 당신의 서비스에서 인증 설계를 어떻게 단단히 할지(2FA·안전한 비밀번호 재설정·크리덴셜 스터핑 대책·출시 전 리뷰)를 공개 기록의 사실만으로 설명합니다.
실제로 일어난 공개 사고를 뉴스의 재방송이 아니라 "당신의 환경에서 어떻게 막을까" 의 관점에서 읽어냅니다. 본 글은 공개 기록(기업 공식·당국·신뢰할 수 있는 보도)에 근거한 해설입니다. 출처는 말미에 명기하며, 공격 재현 절차는 다루지 않습니다.
- 대상
- 결제 앱 "7pay"의 이용자 계정(운영: 주식회사 세븐·페이/세븐&아이HD 산하)
- 발각
- 2019년 7월 2〜3일(출시 직후 부정 접근을 인지)
- 영향 규모
- 약 808명·피해액 약 3,862만 엔(이후 조사에서 건수는 정밀 조정)
- 근본 원인
- 2FA 미도입(ID+PW만) + 비밀번호 재설정을 등록되지 않은 이메일로 실행 가능 + 크리덴셜 스터핑에 대한 내성 부족 + 외부 ID(7iD) 연동의 설계 미비 + 출시 전 인증 흐름 검증 부족
- 본질적 대책
- 중요 작업에 2FA 필수화·비밀번호 재설정은 등록된 경로 한정·크리덴셜 스터핑의 탐지/잠금·출시 전 인증 흐름 제3자 리뷰
무슨 일이 일어났나(쉽게)
스마트폰 결제 앱은 당신의 돈을 움직이는 권한 을 맡습니다. 그렇기에 "본인만 로그인할 수 있고, 타인은 할 수 없다"는 인증 의 설계가 핵심이 됩니다. 7pay는 여기가 약해서, 지킴이 실질적으로 비밀번호 한 장 이었습니다.
문제는 두 가지가 겹쳐 있었습니다. 첫째는 2단계 인증(2FA) 이 없었던 것. ID+비밀번호만 맞으면 로그인할 수 있으므로, 다른 서비스에서 유출된 ID/비밀번호의 재사용을 시도하는 크리덴셜 스터핑 에 약한 상태였습니다. 둘째는 비밀번호를 잊었을 때의 재설정 설계입니다. 새 비밀번호를 등록된 것과 다른 이메일 주소 로도 보낼 수 있었기 때문에, 생년월일·전화번호·이메일 같은 단편적인 정보를 가지고 있으면 본래의 소유자가 아니어도 비밀번호를 바꿔치기할 수 있었습니다. 이 둘이 합쳐지면 비밀번호 한 장의 지킴을, 본인 확인이 허술한 재설정으로 정면에서 빼앗을 수 있는 것이 됩니다.
'돈을 움직일 수 있는 입구'를 단일한 약한 인증으로 지키는 것은 가장 위험
공격자에게 가치가 높은 것은 한 장 뚫으면 금전·개인정보에 직결되는 단일한 관문입니다. 결제·송금·관리자 로그인 같은 "움직일 수 있는 가치가 큰 입구"를 비밀번호 한 장+허술한 재설정으로 지키는 것은 바로 그 조건을 충족합니다. 이는 결제에 한정되지 않고, 하나의 로그인으로 잔액이나 전체 사용자의 데이터에 손이 닿는 모든 관리 화면에 공통되는 위험함입니다.
공격의 연쇄는 '방어의 지도'이기도 하다
이 사건도 각 단계에 멈춰 세울 곳이 있었던 연쇄였습니다. 공격 절차가 아니라 어디서 끊어낼 수 있었는가 로서 읽어 주세요.
① 입구: ID+비밀번호만의 로그인
다른 곳에서 유출된 자격 정보의 재사용이 통해 버리는 상태.
⊘ 멈춤 지점: 2단계 인증(2FA)·패스키·크리덴셜 스터핑의 탐지와 잠금
② 비밀번호 재설정으로 본인 사칭
새 비밀번호를 등록되지 않은 수신처로도 보낼 수 있는 설계였다.
⊘ 멈춤 지점: 재설정은 등록된 경로만·본인 확인 강화·재설정의 즉시 알림
③ 계정을 빼앗아 잔액을 부정 사용
탈취한 계정으로 결제·충전이 이루어졌다.
⊘ 멈춤 지점: 중요 작업 전 재인증·비정상 결제의 탐지와 일시 정지·이용 알림
④ 피해 확대·서비스 폐지
전체 충전 정지를 거쳐 약 3개월 만에 서비스 자체를 폐지.
⊘ 멈춤 지점: 출시 전 인증 흐름 제3자 리뷰·애초에 설계 단계에서 단일 장애점을 만들지 않기
공표된 시계열
2019-07-01
7pay 서비스 개시(세븐-일레븐 앱 내·7iD 연동).2019-07-02
해외 IP로부터의 접근 등, 부정 사용에 관한 첫 보고가 접수되기 시작.2019-07-03
부정 사용을 인지. 해외로부터의 접근을 차단하고, 신용/체크카드로부터의 충전(입금)을 정지.2019-07-04
기자회견에서 공표하고, 전체 충전 기능을 일시 정지. 2단계 인증의 부재가 널리 지적됨.2019-07-05
경제산업성(METI)이 대응을 요청. 원인 조사와 재발 방지 체제 강화에 착수.2019-08-01
서비스 폐지를 발표(안전한 재개에는 상당한 시간이 필요하다고 판단).2019-09-30
7pay 서비스 종료.
근본 원인은 '하나의 실수'가 아니라 층의 붕괴
이 사건을 "비밀번호를 뚫렸다"로 정리하면 재발합니다. 실제로는 인증에 얽힌 여러 층이 동시에 얇았던 것이 본질입니다.
붕괴되어 있던 구성(사고 시)
- 결제 앱인데 2단계 인증이 없다(ID+비밀번호만)
- 비밀번호 재설정을 등록되지 않은 이메일 주소로 실행할 수 있었다
- 다른 회사 유출 자격 정보를 쓰는 크리덴셜 스터핑 에 견디지 못한다
- 출시 전에 인증 흐름의 충분한 검증 이 이루어지지 않았다
지켜지는 구성(재발 방지)
- 중요 작업에 2단계 인증/패스키 를 필수화
- 재설정의 새 비밀번호는 등록된 경로로만 보낸다
- 크리덴셜 스터핑을 상정한 탐지·속도 제한·잠금
- 출시 전에 인증 흐름을 제3자 리뷰(설계 단계에서 단일 장애점을 없앤다)
속도보다 설계: 사후의 대가는 사전 투자보다 훨씬 크다
7pay는 출시 직후의 피해를 입고, 전체 충전 정지를 거쳐 약 3개월 만에 서비스 자체를 폐지했습니다. 경쟁을 서둘러 인증 설계의 검증을 생략하면, 신뢰의 실추·철수·재구축의 비용은 사전의 설계 투자보다 훨씬 크게 듭니다. 지킬 가치(돈·개인정보)에 걸맞은 인증을 출시 전에 설계해 두는 것이 본질입니다.
당신의 환경에서의 재발 방지
결제를 만들지 않더라도, "하나의 로그인으로 큰 가치가 움직이는" 입구 가 하나라도 있다면 남의 일이 아닙니다. 우선순위 순의 대책입니다.
중요 작업에 2단계 인증(2FA)을 제공한다
로그인이나 돈·개인정보를 움직이는 작업에 2FA 를 제공하고, 가능하면 패스키 같은 피싱 저항성이 높은 방식을 고른다. 일회용 비밀번호(OTP)라도 비밀번호 한 장보다는 훨씬 단단해진다.
비밀번호 재설정을 '등록된 경로만'으로 제한한다
새 비밀번호나 재설정 링크는 등록된 이메일/전화로만 보낸다. 임의의 수신처를 받아들이지 않는다. 단편적인 개인정보(생년월일·전화번호)만으로 본인 확인을 통과시키지 않는다. 재설정이 일어나면 즉시 본인에게 알림 을 보낸다.
크리덴셜 스터핑(재사용)을 상정해 탐지·제한한다
다른 회사 유출 자격 정보를 시도하는 공격은 전제. 속도 제한·비정상 로그인의 탐지·일정 횟수에서 잠금 을 마련하고, 이미 알려진 유출 비밀번호의 사용을 거부한다. 사용자에게는 재사용을 그만두게 하는 유도를 만든다.
출시 전에 인증 흐름을 제3자 리뷰한다
로그인·재설정·중요 작업의 재인증을 설계 단계와 출시 전에 다른 눈으로 리뷰 한다. "작동한다"와 "안전하다"는 별개. 속도를 우선해 인증의 검증을 생략하지 않는다.
본 사이트의 설계 사상과 겹치는 점
이 사건의 본질은 가치 있는 작업을 단일한 약한 인증으로 지키고, 게다가 본인 확인이 허술한 경로로 그 인증을 빼앗을 수 있었던 것입니다. 본 사이트 자체의 원칙 — 단일 장애점을 만들지 않는다·중요 작업은 다층으로 지킨다·폭발 반경을 최소화한다 — 과 딱 뒤집힌 관계에 있습니다. 결제에 한정되지 않고, 하나의 로그인으로 잔액이나 전체 사용자의 데이터에 손이 닿는 관리 화면은 같은 위험함을 가집니다. "2FA를 더한다·재설정은 등록된 경로만·중요 작업 전에 재인증"은 규모를 불문하고 누구나 구현할 수 있는 지킴입니다.
출처(공개 기록)
본 글의 사실은 다음의 공개 정보에 근거합니다. 공격의 재현 절차는 다루지 않고, 방어의 교훈 에 집중했습니다.
- 주식회사 세븐&아이·홀딩스 "'7pay(세븐페이)' 서비스 폐지 안내"(2019) — 7andi.com
- 주식회사 세븐-일레븐·재팬 "'7pay' 일부 계정에 대한 부정 접근 건"(2019) — sej.co.jp
- 경제산업성(METI) "캐시리스 결제의 부정 사용에 관한 대응" 관련 공표(2019) — meti.go.jp
다음에 읽기
- 용어: 2단계 인증(2FA)이란 / 일회용 비밀번호(OTP)란
- 용어: 패스키란(비밀번호에 의존하지 않는 인증)
- 실무: 인증과 인가의 차이 / 보안 베이스라인 체크리스트
FAQ
Q7pay 사건의 근본 원인은 무엇인가요?
인증 설계의 결함입니다. 결제 앱이면서도 2단계 인증(2FA)이 없어 ID+비밀번호만으로 로그인할 수 있었습니다. 게다가 비밀번호 재설정 시 새 비밀번호를 '등록된 것과 다른 이메일 주소'로도 보낼 수 있어, 생년월일·전화번호·이메일 같은 단편적인 정보만으로 계정을 탈취할 수 있는 상태였습니다. 다른 서비스에서 유출된 ID/비밀번호를 재사용하는 크리덴셜 스터핑에도 취약한 구성이었습니다.
Q결제 서비스를 만들지 않는 저에게도 관계가 있나요?
있습니다. 본질은 '가치 있는 작업(돈·개인정보)을 비밀번호 한 장으로만 지키고, 게다가 본인 확인이 허술한 재설정으로 그 한 장을 빼앗을 수 있다'는 설계의 문제입니다. 로그인에 2단계 인증을 제공하고, 비밀번호 재설정은 등록된 경로로만 보내며, 중요한 작업 전에 재인증을 끼우는 것 — 이 사고방식은 어떤 앱·관리 화면에도 통합니다.
Q개인 사용자로서 자신을 지킬 수 있는 방법이 있나요?
있습니다. ① 서비스마다 비밀번호를 재사용하지 않는다(크리덴셜 스터핑을 무력화) ② 2단계 인증이나 패스키가 제공되면 반드시 켠다 ③ 결제·송금은 이용 알림을 켜서 이상을 빠르게 알아챈다. 운영 측의 설계가 허술해도 재사용을 그만두는 것만으로 탈취의 주요 경로는 크게 막을 수 있습니다.