우리 대부분은 계정 탈취라고 하면 누군가 비밀번호를 알아맞히거나 훔치는 상황을 떠올린다. 하지만 최근 여러 사건에서 반복적으로 나타나는 패턴은 방식이 다르다. 공격자는 아예 비밀번호에 손대지 않는다. 대신 이미 로그인되어 있는 계정에 대해 예비 열쇠처럼 작동하는 무언가 — 연결된 기기, 인증 토큰, 세션 — 를 당신 스스로 넘겨주게 만들고, 평소 의지하던 잠금장치들을 그대로 지나쳐 버린다.

두 가지 사례를 보면 그 작동 방식이 구체적으로 드러난다. 보안 연구자들은 최근 이미 탈취된 계정에서 퍼져나가는 왓츠앱 사기 수법을 설명했는데, 친구를 위해 콘테스트에서 '투표'해 달라는 메시지가 오는 식이다. 이 메시지는 왓츠앱의 '연결된 기기' 설정 화면을 흉내 낸 페이지로 안내하거나, 자신의 연결된 기기 메뉴에 코드를 입력하라고 지시한다. 이 절차를 완료하면 공격자의 휴대전화가 그 계정의 두 번째 완전 인증 기기로 추가되어 읽기와 전송 권한을 전부 갖게 되는데, 이 과정에서 비밀번호는 한 번도 입력되지 않는다. 비밀번호가 건드려지지 않았기 때문에 비밀번호 재설정 이메일도, 로그인 실패 경고도 뜨지 않는다. 그 불법 세션은 그저 기기 목록에 항목 하나가 더 늘어난 것처럼 조용히 자리잡는다.

별도로, 마이크로소프트는 호텔이나 컨퍼런스 와이파이의 캡티브 포털 — 접속할 때 뜨는 '약관 동의' 페이지 — 을 악용하는 캠페인에 대해 경고한 바 있다. 네트워크 경로에 있는 공격자는 피해자를 가짜 로그인 페이지나 가짜 '기기 코드' 입력창으로 유도하며, 이를 완료하면 비밀번호가 아니라 인증 토큰이 넘어간다. 결과는 마찬가지다. 서비스 입장에서는 정상적으로 보이는 세션이 생기는데, 기술적으로는 실제로 정상 세션이기 때문이다 — 다만 이제 그 주인이 다른 사람일 뿐이다.

평소의 방어 수단이 이를 놓치는 이유

비밀번호 관리자는 비밀번호를 보호한다. 2단계 인증은 로그인하는 순간을 보호한다. 그러나 세션이나 기기가 인증된 이후 벌어지는 일을 지켜보는 장치는 어느 쪽에도 없으며, 바로 이 공백을 노리고 이런 공격들이 설계된다. 이 유형의 침해를 잡아낼 수 있는 유일하고 믿을 만한 방법은, 애초에 이런 공격들이 울리지 않도록 설계된 경고를 기다리는 것이 아니라, 현재 자신의 계정에 상시 접근 권한을 갖고 있는 기기와 앱이 무엇인지 손수 주기적으로 점검하는 것이다.

15분 세션 점검

가장 중요한 계정들(이메일, 왓츠앱/텔레그램, 은행, 그리고 신원이나 금전과 연결된 모든 것)부터 다음을 실행하고, 반복 알림을 설정해 계속 반복하라. 메뉴 명칭이 시간이 지나며 바뀌는 곳에서는 '기기', '세션', '연결된 앱' 같은 표현을 찾으면 된다.

  • 왓츠앱: 설정 → 연결된 기기. 낯선 항목이 있으면 즉시 눌러서 로그아웃시켜라.
  • 구글: myaccount.google.com/security 에서 '내 기기'와, 별도로 '타사 앱 및 서비스'(때로는 'Google로 로그인'이라고 표시됨)를 확인하라. 실제로 사용하지 않는 항목은 접근 권한을 취소하라.
  • 마이크로소프트 계정: 기기 목록은 account.microsoft.com/devices, 로그인 기록은 account.microsoft.com/activity 에서 확인한다.
  • 애플 ID: 아이폰/아이패드에서는 설정 → [내 이름], 맥에서는 시스템 설정에서 자신의 애플 ID로 로그인된 모든 기기를 확인할 수 있다.
  • 페이스북/인스타그램(메타): 설정 → 계정 센터 → 비밀번호 및 보안 → 로그인된 위치.
  • 은행 및 금융 앱: 대부분 보안 설정 아래에 '기기 관리' 또는 '활성 세션' 화면이 있지만, 표현은 기관마다 다르니 필요해지기 전에 미리 위치를 확인해 두라.

이 메뉴들을 살펴보는 김에 '연결된 앱' 또는 OAuth 권한 부여 목록도 함께 훑어보라. 몇 년 전 승인해 놓고 잊어버린 오래된 앱과 브라우저 확장 프로그램이야말로, 이런 유형의 공격이 새로 만들어내려는 것과 똑같은 성격의 상시 접근 권한이다.

낯선 항목을 발견했다면

기다리지 말고 먼저 낯선 기기나 앱을 제거하거나 로그아웃시켜라. 그런 다음, 공격자가 비밀번호를 필요로 하지 않았을 수도 있지만 이중 안전장치 차원에서 비밀번호도 바꾸고, 2단계 인증이 꺼져 있다면(일부 탈취 수법은 재침입을 쉽게 하려고 이를 꺼버린다) 다시 켜라. 이메일의 새로운 전달 규칙, 새로 등록된 복구 전화번호나 이메일, 다른 곳에 새로 추가된 기기 등 공격자가 지속적인 침입을 위해 설치해 두었을 만한 것이 없는지 확인하라. 탈취된 세션은 발각되기 전에 두 번째 발판을 심어두는 데 자주 쓰인다. 마지막으로, 침해당한 계정이 (왓츠앱처럼) 지인들이 신뢰하는 계정이라면, 최근에 당신이 보낸 것처럼 보였던 메시지들 — 특히 돈이나 투표, 코드를 요청하는 내용 — 이 실제로는 당신이 보낸 게 아닐 수 있다고 미리 알려주어라.

짚고 넘어갈 만한 여행 특화 함정

호텔, 공항, 컨퍼런스 와이파이에 접속했는데 캡티브 포털 페이지가 마이크로소프트, 구글 또는 유사한 계정으로 '로그인'하라고 요구하거나 입력할 기기 코드를 보여준다면, 기본적으로 의심하라. 정상적인 호텔 와이파이는 인터넷에 연결하기 위해 개인 클라우드 계정 인증을 요구하는 경우가 거의 없다. 브라우저를 닫고 대신 휴대전화의 셀룰러 핫스팟이나 VPN으로 연결하라. 호텔 와이파이를 꼭 써야 한다면 그 위에서는 민감한 것은 아예 로그인하지 마라.

코드를 작성하거나 배포하는 사람을 위한 한 가지 더

'문제는 비밀번호가 아니라 세션/토큰이다'라는 논리는 개발자 자격 증명에도 그대로 적용된다. 최근 오염된 npm 패키지가 관련된 공급망 공격 사건에서는, 패키지가 자격 증명 회전(rotation) 자체를 감시하다가 그 시점에 맞춰 동작을 촉발할 수 있었다. 즉 그 경우에는 본능적으로 가장 먼저 취하게 되는 조치(토큰 회전)가 오히려 잘못된 첫 수였던 셈이다. 빌드나 CI 자격 증명이 노출되었다고 의심되면, 회전만으로 문제가 해결된다고 가정하지 말고 먼저 그 오염된 패키지가 실제로 무슨 짓을 했는지부터 확인하라.

달력에 적어두라

이것은 한 번으로 끝나는 조치가 아니다. 은행 명세서를 확인하는 것과 마찬가지로 하나의 습관이다. 매달 반복될 날짜를 정하고(매월 1일이 무난하다) 위에서 소개한 기기/세션 목록을 하나씩 훑어보라. 단 15분이면 되는 이 점검이야말로, 나머지 모든 보안 장치가 정확히 놓치도록 설계된 그 조용하고 비밀번호 없는 탈취를 잡아낸다.