2단계 인증은 당신이 생각하는 만큼 완벽한 방패가 아닙니다

2단계 인증을 설정하셨군요. 좋은 조치입니다.

대부분의 보안 가이드는 한 가지를 놓치고 있습니다. 지난 3년 동안 발생한 대규모 계정 탈취 사례들은 인증 코드를 해킹한 것이 아니었습니다. 공격자들은 당신이 직접 코드를 넘겨주게 만들거나, 해당 인증 단계 자체를 무용지물로 만드는 방법을 찾아냈습니다.

공격자가 2FA를 우회하는 세 가지 주요 방법은 다음과 같습니다:

  1. MFA 피로 공격 (MFA Fatigue) 공격자는 탈취한 사용자 이름과 비밀번호를 사용하여 푸시 알림을 유도합니다. 이들은 밤새 수십 개의 요청을 보냅니다. 대부분의 사람들은 알림 소음을 멈추기 위해 단순히 "승인(Approve)"을 누릅니다. 이렇게 되면 공격자는 유효한 세션을 획득하게 됩니다. Uber가 2022년에 이 공격의 희생양이 되었습니다.
  • 해결책: 숫자 매칭(Number Matching)을 활성화하세요. 화면에 표시된 코드를 앱에 직접 입력해야 합니다. 이를 통해 무의식적인 승인을 방지할 수 있습니다.
  1. 중간자 공격 (Adversary-in-the-Middle, AiTM) 공격자가 가짜 로그인 페이지를 만듭니다. 당신이 로그인하면, 프록시(proxy)가 당신의 정보를 실제 사이트로 전송합니다. 실제 사이트는 2FA 인증 요청을 보냅니다. 프록시는 이 요청을 당신에게 전달합니다. 당신이 코드를 입력하면, 프록시는 세션 쿠키를 훔칩니다. 이제 공격자가 당신의 계정을 소유하게 됩니다.
  • 해결책: 패스키(passkeys)나 하드웨어 보안 키를 사용하세요. 이 방식은 실제 웹사이트 도메인과 연결된 암호화 기술을 사용하므로, 프록시가 속일 수 없습니다.
  1. 심 스와핑 (SIM Swapping) 공격자가 통신사에 전화를 겁니다. 당신인 척 가장하여 당신의 번호를 자신의 SIM 카드로 옮깁니다. 이제 모든 SMS 인증 코드가 공격자에게 전송됩니다.
  • 해결책: 중요한 용도로 SMS를 사용하는 것을 중단하세요. Google Authenticator나 Authy와 같은 인증 앱(authenticator apps)을 사용하세요. 이 앱들은 기기 내에서 코드를 생성하므로 심 스와핑을 통해 가로챌 수 없습니다.

보안 방식 비교:

• SMS OTP: 크리덴셜 스터핑(credential stuffing)만 방지. • 인증 앱(Authenticator App): 크리덴셜 스터핑 및 심 스와핑 방지. • 일반 푸시(Standard Push): 크리덴셜 스터핑 및 심 스와핑 방지. • 숫자 매칭이 포함된 푸시: 크리덴셜 스터핑, 푸시 폭격(push bombing) 및 심 스와핑 방지. • 하드웨어 키 / 패스키: 모든 공격 방지.

피싱 방지형 MFA(Phishing-resistant MFA)가 목표입니다. 하드웨어 키와 패스키는 당신이 실제 웹사이트에 접속했음을 증명합니다. 훔칠 수 있는 코드 자체가 존재하지 않습니다.

계정을 보호하기 위해 다음 단계를 따르세요:

  • 이번 주: 금융 계정에서 SMS 2FA를 제거하고 인증 앱으로 전환하세요.
  • 이번 달: 푸시 앱에서 숫자 매칭 기능을 활성화하세요.
  • 준비가 되면: 이메일 및 비밀번호 관리자용 하드웨어 키를 구매하세요.

2025년의 위협에 2019년의 보안 방식을 사용하지 마세요.

실제 침해 사례를 포함한 상세 분석: https://lucas8.com/mfa-fatigue-attack-two-factor-bypass