대부분의 온라인 사기는 결국 한 가지 목표를 향해 갑니다. 바로 비밀번호 탈취입니다. 그래서 우리는 가짜 로그인 페이지, 수상한 링크, "계정 인증"을 요구하는 급박한 이메일을 경계하도록 훈련되어 왔습니다.
그런데 최근 등장한 새로운 유형의 마이크로소프트 계정 공격은 완전히 다른 방식으로 작동합니다. 피해자는 마이크로소프트의 진짜 공식 사이트에서 로그인하고, 실제 보안 절차를 거치며, 다중 인증(MFA)까지 문제없이 통과합니다. 그럼에도 불구하고 공격자는 계정에 침입하는 데 성공합니다.
이 기법이 바로 디바이스 코드 피싱(Device Code Phishing)입니다. 놀랍게도 비밀번호는 전혀 훔치지 않습니다. 대신 마이크로소프트의 인증 시스템을 원래 설계된 대로 활용해, 피해자가 스스로 접근 권한을 넘겨주도록 유도할 뿐입니다.
디바이스 코드 로그인, 사실 아주 유용한 기능
여러분도 이미 여러 번 사용해 봤을 겁니다

마이크로소프트는 다른 주요 IT 기업들과 마찬가지로 디바이스 권한 부여 흐름(device authorization flow), 흔히 말하는 디바이스 코드 로그인을 지원합니다. 별도의 로그인 페이지 대신 화면에 표시된 코드를 다른 기기에 입력하거나, 두 기기의 코드가 서로 일치하는지 확인해 로그인을 마무리하는 방식이죠.
이 기능은 특히 로그인 페이지를 띄우기 어려운 기기나 제한적인 환경에서 매우 편리합니다. 스마트 TV 앱 로그인이나 호텔 객실 TV에서 계정에 연결할 때 마주친 경험이 있다면, 바로 그것이 디바이스 코드 로그인입니다.
평소에는 이 과정이 완전히 안전하며 위험 요소가 전혀 없습니다. 하지만 특정한 악용 방식 앞에서는 상황이 완전히 달라집니다.
합법적 기능이 무기가 되는 순간
'코드를 입력하는 사람이 요청한 사람'이라는 전제가 함정

디바이스 코드 로그인이 악용될 수 있는 근본적인 이유는 단순합니다. 이 방식은 코드를 입력하는 사람이 곧 로그인을 요청한 사람이라고 암묵적으로 가정하기 때문입니다. 공격의 핵심은 바로 이 지점에 있습니다.
공격자가 여러분의 이메일 주소 같은 연락 정보만 알고 있다면, 자신의 기기에서 디바이스 로그인 요청을 시작해 고유한 세션을 생성할 수 있습니다. 그러면 마이크로소프트(및 다른 IT 기업들)는 해당 세션에 묶인 정품 디바이스 코드를 발급합니다.
여기서부터가 교묘한 부분입니다. 공격자는 이 코드를 직접 사용하지 않고, 익숙한 피싱 수법을 차용해 여러분에게 전달합니다. 대표적인 위장 형태는 다음과 같습니다.
- "수상한 활동이 감지되었다"는 보안 경고
- 긴급한 Microsoft 365 알림
- Teams 메시지 또는 IT 지원팀을 사칭한 문의
- 업무용 이메일 요청
메시지는 여러분을 마이크로소프트 공식 로그인 페이지로 안내한 뒤, 받은 코드를 입력해 계정을 "보호" 또는 "인증"하라고 지시합니다. 여기서 공격의 다음 단계가 시작됩니다. 여러분이 접속한 곳은 가짜 로그인 페이지도, 정교하게 만든 피싱 포털도 아닙니다. 진짜 마이크로소프트 로그인 페이지이며, 인증 절차 역시 실제로 작동합니다.
여러분은 평소처럼 코드를 입력하고 요청을 승인하며, 계정을 지켰다고 안심합니다. 하지만 실제로는 공격자를 대신 인증해 준 것이고, 계정 열쇠를 그대로 넘겨준 셈입니다.
이 모든 과정에서 비밀번호는 단 한 번도 노출되지 않습니다. 그런데도 계정은 통째로 넘어갑니다.
디바이스 코드 피싱이 잘 먹히는 이유
핵심은 '완벽한 위장'

디바이스 코드 피싱이 위험한 최대 이유는 기존 피싱 대책 대부분을 우회하기 때문입니다. 일반적인 피싱은 로그인 페이지 클론, 유사 도메인, 자격 증명 가로채기 시스템 등을 동원합니다.
반면 디바이스 코드 피싱은 이런 장치를 아예 건너뜁니다. 모든 절차가 정상적으로, 합법적으로 보이죠. 아니, 보이는 것조차 아닙니다. 실제로 합법적입니다. 여러분은 마이크로소프트의 실제 인증 프로세스와 상호작용하고 있으니까요. 모든 시스템이 설계대로 정확히 작동하기 때문에 사기가 성립하며, 다만 방향만 살짝 뒤집혀 있을 뿐입니다.
공격자가 접근 토큰을 손에 넣으면 어떻게 될까?
공격자를 인증해 주는 일은 당연히 최악의 상황
인증이 완료되면 마이크로소프트는 접근 토큰(access token)을 발급합니다. 이는 "로그인이 이미 검증됐다"는 임시 증명 역할을 하며, 시스템은 토큰 소지자가 신원을 입증했다고 간주해 반복적으로 자격 증명을 요구하지 않습니다.
공격자가 확보할 수 있는 권한은 표적이 된 계정에 따라 달라집니다. 예를 들어 Outlook 계정이 표적이라면 이메일에 접근할 수 있고, 나아가 해당 주소와 연결된 다른 서비스들(비밀번호 재설정, 2FA 코드 열람 등)까지 장악할 수 있습니다.
Teams 로그인이 표적이라면 상황은 더욱 심각합니다. 공격자가 회사 Teams 계정 내부로 침입해 저장된 데이터까지 접근할 수 있기 때문입니다.
디바이스 코드 피싱, 어떻게 막을까?
끊임없는 경계가 최선의 방어

궁극적으로 디바이스 코드 로그인 공격에 대한 최선의 방어는 디바이스 로그인이 실제로 어떻게 작동하는지 이해하는 것입니다. 기본 원리만 파악해도 이 피싱 공격은 충분히 걸러낼 수 있습니다.
핵심은 간단합니다. 디바이스 코드는 여러분이 다른 기기에서 직접 로그인을 시작했을 때만 나타나야 합니다. 마이크로소프트는 계정을 "보호"하기 위해 코드를 멋대로 보내지 않습니다. 비밀번호를 요구하거나 2FA 코드 확인을 요청하는 메시지를 보내지 않는 것과 마찬가지입니다.
이는 마이크로소프트만의 이야기가 아닙니다. 어떤 기업도, IT 회사가 아니더라도, 이런 정보를 요구해서는 안 됩니다. 인증 정보는 오직 여러분만의 것입니다.
대부분의 경우, 다음과 같은 일반적인 피싱 대응 수칙만 지켜도 안전합니다.
- 이메일, 채팅, 문자 메시지로 전송된 로그인 코드는 절대 입력하지 않습니다.
- 예상치 못한 인증 요청은 비밀번호 요구와 동일하게 경계합니다.
- 본인이 실행하지 않은 MFA 알림이 오면 즉시 거부합니다.
- 마이크로소프트 로그인 활동을 주기적으로 확인해 낯선 앱이나 세션이 있는지 점검합니다.
기억하세요. 인증 코드는 권한 부여이지, 확인 절차가 아닙니다. 여러분이 시작하지 않은 프로세스라면, 시작한 사람은 다른 누군가입니다.