내 이메일 주소가 데이터 유출에 포함됐는지 확인하는 방법
PureTempMail 팀
PureTempMail을 만들고 운영하는 엔지니어들
데이터 유출이 이메일에 실제로 의미하는 것
회사가 데이터 유출을 겪으면 공격자는 훔친 것을 혼자 간직하는 경우가 드뭅니다. 이메일 주소, 비밀번호, 이름, 전화번호, 기타 계정 정보 데이터베이스가 복사되고 거래되다가 결국 보안 연구자들이 유출 덤프라고 부르는 형태로 공개됩니다. 시간이 지나면 개별 덤프들이 거대한 통합 목록 — 흔히 콤보리스트라고 불립니다 — 으로 합쳐져 포럼과 파일 공유 사이트에서 자유롭게 유통됩니다. 이메일 주소가 중요한 계정에 속해 있어야만 여기에 들어가는 것이 아닙니다. 2013년에 가입한 포럼, 한 번 이용한 쇼핑 사이트, 이제는 존재하지 않는 서비스, 모두 출처가 될 수 있습니다. 유출은 그쪽 서버에서 일어났지만, 노출되는 것은 내 정보입니다.
실질적인 위험은 대개 최초 유출 자체가 아니라 그다음에 벌어지는 일입니다. 공격자는 이 목록으로 크리덴셜 스터핑 공격을 실행합니다: 유출된 이메일-비밀번호 쌍을 수백 개의 다른 서비스에 대입해 보며, 사람들이 비밀번호를 재사용한다는 데 베팅하는 것입니다. 유출된 반려동물 포럼의 비밀번호가 주 이메일 계정을 보호하는 비밀번호와 같다면, 포럼 유출은 그대로 이메일 계정 탈취가 됩니다. 유출된 주소는 표적 피싱의 재료도 됩니다. 어떤 서비스를 쓰는지 아는 공격자는 훨씬 그럴듯한 가짜 이메일을 만들 수 있으니까요. 그래서 내 주소가 노출됐는지 — 그리고 어디서 노출됐는지 — 아는 것은 단순한 호기심이 아니라 진짜 유용한 정보입니다.
유출 확인 서비스의 작동 방식
유출 확인 서비스는 단순한 색인 문제를 해결합니다. 연구자들이 유출 덤프가 나타날 때마다 사본을 확보하고, 데이터가 진짜인지 검증한 뒤, 영향받은 이메일 주소를 검색 가능한 데이터베이스에 적재합니다. 주소를 입력하면 서비스는 그 주소가 포함된 알려진 유출이 무엇인지, 각 유출이 언제 발생했는지, 어떤 범주의 데이터가 노출됐는지 — 비밀번호, 전화번호, 실제 주소 등 — 알려 줍니다. 가장 확립된 서비스인 Have I Been Pwned는 수백 건의 사고에 걸쳐 수십억 개의 유출 계정을 목록화했으며, 개인은 물론 자사 도메인을 모니터링하는 기업들도 널리 사용합니다.
합리적인 반론이 있습니다. 비밀번호가 유출됐는지 확인하려고 웹사이트에 비밀번호를 입력하는 것은 끔찍한 생각처럼 들린다는 것이죠 — 실제로 잘못된 사이트에 입력하면 그렇습니다. Have I Been Pwned의 비밀번호 확인 기능은 k-익명성이라는 기법으로 이 문제를 피합니다. 브라우저가 비밀번호를 로컬에서 해시한 뒤, 그 해시의 처음 다섯 글자만 서버로 보냅니다. 서버는 그 다섯 글자로 시작하는 모든 유출 해시 — 보통 수백 개의 후보 — 를 응답하고, 브라우저가 로컬에서 일치 여부를 확인합니다. 서비스는 비밀번호는 물론 그것을 특정할 만큼의 해시조차 보지 못합니다. 이 설계 전체는 서비스 운영자가 공개적으로 문서화했으며, 이후 비밀번호 관리자와 브라우저들이 자체 유출 확인 기능에 채택했습니다.
Pwned Passwords의 k-익명성 모델은 Have I Been Pwned를 운영하는 Troy Hunt가 자세히 설명합니다: Troy Hunt — Pwned Passwords와 k-익명성 모델 ↗
단계별로 주소 확인하기
haveibeenpwned.com의 Have I Been Pwned부터 시작하세요. 검색창에 이메일 주소를 입력하고 제출합니다. 결과가 아무것도 없어 안심하게 되거나, 입력한 주소가 포함된 유출 사고 목록이 시간순으로 표시되며 각 항목에는 사고에 대한 짧은 설명과 노출된 데이터 종류가 나옵니다. 데이터 종류를 주의 깊게 읽으세요: 이메일 주소만 유출된 사고는 성가신 정도지만, 비밀번호나 비밀번호 해시가 유출된 사고는 즉각적인 조치를 요구합니다. 활발히 사용하는 모든 주소에 대해 확인을 반복하세요. 여전히 전달이 걸려 있는 옛 주소도 포함해야 합니다. 그 주소로 가입한 계정들도 똑같이 취약하기 때문입니다.
그 김에 유출 알림도 신청하세요. Have I Been Pwned는 주소를 등록해 두면 새로 적재된 유출에 그 주소가 등장할 때 이메일로 알려 줍니다 — 잊어버릴 수 있는 수동 확인을 자동 경보로 바꾸는 것입니다. 알림 서비스는 경보를 활성화하기 전에 해당 주소를 실제로 소유하고 있는지 검증하므로, 타인의 주소를 마음대로 구독할 수는 없습니다. 대부분의 사용자에게는 이 한 단계가 가치의 대부분을 가져다줍니다: 유출은 끊임없이 발견되고, 오늘 깨끗한 주소가 다음 달에 적재되는 덤프에 나타날 수 있습니다.
Mozilla Monitor(구 Firefox Monitor)는 같은 기반 유출 데이터 위에 구축된 탄탄한 두 번째 선택지입니다. 동일한 주소 조회에 더해 무료 Mozilla 계정에 연결된 지속 모니터링을 제공하고, 각 유출에 대한 단계별 해결 안내와 함께 결과를 보여 줍니다. 두 서비스 모두 사용하는 데 비용이 들지 않고 몇 분이면 됩니다. 커스텀 도메인을 소유하고 있다면 Have I Been Pwned는 도메인 전체 모니터링도 제공하는데, 어떤 유출에든 등장하는 자기 도메인의 모든 주소를 알려 줍니다. info@나 contact@처럼 추측하기 쉬운 주소는 모르는 사이에 노출이 쌓이기 때문에 특히 유용합니다.
주소를 확인하고 유출 데이터가 어떻게 처리되는지에 대한 전체 설명은 공식 FAQ에서 읽을 수 있습니다: Have I Been Pwned — 자주 묻는 질문 ↗
Mozilla의 무료 모니터링 서비스는 지속적인 경보와 해결 안내를 제공합니다: Mozilla Monitor — 무료 데이터 유출 모니터링 ↗
주소가 유출에 등장했다면 해야 할 일
첫째, 유출된 서비스의 비밀번호를 변경하세요 — 그리고 결정적으로, 같거나 비슷한 비밀번호를 사용한 다른 모든 서비스에서도 변경해야 합니다. 공격자는 재사용을 전제로 하며, 숫자나 느낌표를 덧붙이는 정도의 변형으로는 자동화된 추측을 막지 못합니다. 순서가 중요합니다: 주 이메일 계정부터 확보하세요. 그것이 다른 모든 것의 복구 수단이기 때문입니다. 받은편지함을 장악한 공격자는 대부분의 다른 계정 비밀번호를 마음대로 재설정할 수 있습니다.
둘째, 모든 계정에 고유한 무작위 비밀번호를 생성해 재사용 문제를 뿌리부터 끊으세요. 실질적으로는 비밀번호 관리자를 쓴다는 뜻입니다. 이 하나의 변화가 미래의 유출을 연쇄적 비상사태에서 국지적 사건으로 바꿉니다: 유출된 비밀번호는 정확히 계정 하나만 열고, 교체에는 1분이면 됩니다. 패스키를 제공하는 서비스에서는 패스키를 그냥 우선하세요. 패스키는 기기에 결속된 암호학적 자격 증명입니다. 서비스 데이터베이스에 유출될 공유 비밀이 존재하지 않으므로, 서비스가 침해돼도 공격자가 그 계정에 그대로 써먹을 수 있는 정보가 노출되지 않습니다. 여전히 비밀번호를 쓰는 중요한 서비스에는 2단계 인증을 켜되, SMS보다는 인증 앱을 쓰는 것이 좋습니다.
셋째, 노출된 데이터를 현실적으로 대하세요. 유출된 비밀번호는 교체할 수 있지만 유출된 이메일 주소는 그럴 수 없습니다. 주소가 한번 유통되기 시작하면 더 많은 스팸과 더 그럴듯한 피싱이 무기한 이어질 것을 예상해야 합니다. 유출된 서비스를 언급하는 이메일은 특히 경계하세요. 공격자는 바로 그런 표적형 미끼를 보내는 데 유출 목록을 사용합니다. 결제 데이터가 노출됐다면 명세서를 주시하고 카드 교체를 고려하세요. 정부 발급 신분증 번호 같은 신원 데이터가 노출됐다면, 거주 국가에서 이용 가능한 사기 경보나 신용 동결 제도를 알아보세요.
별칭과 일회용 주소로 미래의 노출 줄이기
위의 모든 것은 사후 대응입니다. 유출 위생의 사전 예방 버전은 애초에 실제 주소를 담고 있는 데이터베이스의 수를 줄이는 것입니다. 수집된 적 없는 주소는 유출될 수도 없기 때문입니다. 이메일 별칭은 지속적 관계가 있는 서비스에 맞는 도구입니다: 별칭 제공업체는 서비스마다 고유한 전달 주소를 부여하므로, 유출되더라도 그 별칭만 노출되고 해당 별칭만 비활성화하면 됩니다. 침해된 주소는 죽고, 실제 받은편지함은 무사하며, 누가 유출했는지도 정확히 알게 됩니다.
일회성 상호작용 — 백서 다운로드, 할인 코드 받기, 다시 오지 않을 서비스 테스트 — 에는 일회용 주소가 더 깔끔하게 맞습니다. PureTempMail 같은 서비스의 임시 받은편지함은 몇 분에서 몇 시간 동안 존재하며 인증 이메일을 수신한 뒤 모든 데이터와 함께 만료됩니다. 그 서비스가 몇 년 뒤 필연적으로 유출되더라도, 덤프에는 이미 사라졌고 나와 연결된 적도 없는 주소만 담겨 있습니다. 애초에 넘기지 않은 데이터만이 유출 확인 결과에 절대 나타나지 않는다고 보장되는 유일한 데이터입니다.
하지 말아야 할 것
실제로 사용하는 비밀번호를 아무 "비밀번호 검사기" 웹사이트에나 입력하지 마세요. 위에서 설명한 k-익명성 설계가 Have I Been Pwned의 비밀번호 확인을 안전하게 만드는 요소이며, 평판 좋은 비밀번호 관리자들도 같은 프로토콜을 사용합니다 — 하지만 비밀번호를 묻는 양식을 가진 정체불명의 사이트는 그저 비밀번호를 수집하고 있는 것일 수 있습니다. 비밀번호를 확인하고 싶다면 Have I Been Pwned에서 직접 하거나, 비밀번호 관리자나 브라우저에 내장된 유출 확인 기능을 쓰세요. 그곳에서는 비밀번호 자체를 전송하지 않고 해시된 데이터에 대해 확인이 이루어집니다.
유출 피해를 입었다고 알려 오는 일방적인 이메일, 특히 로그인 페이지로 연결되거나 결제를 요구하는 이메일도 똑같이 의심하세요. 정당한 유출 통지는 비밀번호를 묻지 않으며, Have I Been Pwned의 경보는 결과를 보려고 로그인하라고 요구하지 않습니다. 이와 관련된 사기 수법으로, 은밀한 자료를 확보했다고 주장하며 실제 유출된 비밀번호를 증거로 제시하는 것입니다. 그 비밀번호는 실제로 쓰던 것이 맞지만, 기기에 침입해서 얻은 것이 아니라 오래된 유출 덤프에서 나온 것입니다. 마지막으로, 이 무료 서비스들이 이미 제공하는 것과 동일한 공개 유출 데이터를 재포장한 유료 "다크 웹 스캔" 상품은 건너뛰세요.
현실적인 루틴
유출 노출은 한 번 고치면 끝나는 사건이 아니라 관리해야 하는 상시 조건입니다. 합리적인 루틴은 짧습니다: 사용 중인 주소들을 Have I Been Pwned에서 확인하고, 그곳이나 Mozilla Monitor에서 알림을 구독하고, 비밀번호 관리자를 통해 고유 비밀번호로 전환하고, 제공되는 곳에서는 패스키를 채택하고, 실제 주소는 장기적으로 연락할 방법이 진정으로 필요한 서비스에만 제공하는 것입니다. 별칭이 신뢰하되 분리하고 싶은 중간 지대를 담당하고, 일회용 주소가 일시적인 모든 것을 담당합니다. 어느 단계도 어렵지 않으며, 함께 실행하면 다음 유출 헤드라인을 개인적 비상사태가 아닌 남의 일로 만들어 줍니다.
실제 주소를 보유한 서비스의 수를 줄이는 것이 최고의 장기 방어입니다. 실용적인 기법들은 별도의 글에서 다룹니다: 이메일 주소를 스팸으로부터 보호하는 방법