COMMENTS (0)
댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.
MFA를 통과한 뒤 세션 토큰을 탈취하는 AiTM·인포스틸러 공격의 구조와 실제 사례를 분석하고 계층별 방어 전략을 제시한다
댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.
MFA를 적용한 조직의 79%가 기업 이메일 침해를 당했다. FRSecure가 분석한 65건의 BEC 사고에서 확인된 수치다. 공격자들이 MFA를 뚫은 게 아니다. MFA가 끝나는 순간부터 공격을 시작한 것이다.
MFA는 "인증 시점"만 보호한다. 인증을 통과하면 서비스는 세션 토큰을 발급하고, 이후 요청에서 MFA를 다시 요구하지 않는다. 세션 토큰을 가진 자가 곧 인증된 사용자다. 공격자가 이 토큰을 훔치면 MFA는 이미 지나간 관문일 뿐이다.
인증 성공 후 서비스가 발급하는 세션 토큰은 "이 사용자는 MFA를 포함한 모든 인증을 통과했음"을 증명하는 출입증이다. 이 출입증을 복사할 수 있다면, 인증 과정을 반복할 필요가 없다. Microsoft Entra의 Refresh Token은 최대 90일간 유효하다. 출입증 하나로 3개월간 드나들 수 있는 셈이다.
Evilginx3, Tycoon2FA 같은 AiTM(Adversary-in-the-Middle) 도구가 이 경로의 핵심이다. 동작 방식은 간단하다.
공격자가 portal.microsoftauth.zip 같은 유사 도메인에 리버스 프록시를 구동한다. 피해자가 이 가짜 사이트에서 아이디, 비밀번호, MFA 코드를 입력하면, 프록시가 실시간으로 실제 서비스에 전달한다. 실제 서비스는 인증 성공으로 판단하고 세션 토큰을 발급한다. 이 토큰이 피해자 브라우저에 도달하기 전에 프록시가 복사한다.
Tycoon2FA는 이 방식을 서비스화(PhaaS)했다. 월 120~350달러 구독 모델로, 2023년 이후 전 세계 9만 6,000명 이상이 피해를 입었다. Microsoft가 차단한 피싱의 62%를 차지했으며, 월 3,000만 건 이상의 피싱 이메일을 발송했다. 2026년 3월 국제 공조로 330개 도메인이 압수됐지만, 이틀 만에 운영을 재개했다.
AiTM이 네트워크 경로에서 토큰을 가로챈다면, 인포스틸러는 피해자 기기에서 직접 추출한다. LummaC2, RedLine, Raccoon 같은 악성코드가 Chrome, Edge, Firefox의 쿠키 데이터베이스를 읽어 C2 서버로 전송한다.
SpyCloud의 2026년 보고서에 따르면, 2025년 한 해 동안 86억 개의 세션 쿠키가 지하 시장에 유통됐다. 1,320만 건의 인포스틸러 감염이 발생했고, 감염된 기기의 40%에는 EDR 또는 안티바이러스가 설치되어 있었다.
Google은 Chrome 127+에서 App-Bound Encryption을 도입해 쿠키를 Chrome 프로세스에 바인딩했다. 그러나 인포스틸러들은 이미 3가지 우회 경로를 확보했다. LummaC2는 Chrome 프로세스 메모리에서 복호화된 쿠키를 직접 읽는다. Stealc과 Vidar는 원격 디버깅 API를 악용한다. Metastealer는 COM 인터페이스로 Chrome의 내부 서비스와 통신해 암호화를 우회한다. 방어가 올라가면 공격도 올라간다. 2026년 현재 LummaC2가 가장 활발히 유통되는 인포스틸러다.
웹 애플리케이션의 XSS 취약점으로 악성 JavaScript를 삽입해 document.cookie를 외부로 전송하는 방식이다. 다만 현재 주요 클라우드 서비스는 HttpOnly+Secure 쿠키를 사용하므로, AiTM과 인포스틸러 대비 실질적 위협은 낮아졌다.
개발자 노트북에 인포스틸러가 감염됐다. 기업 안티바이러스는 이를 탐지하지 못했다. 공격자는 2FA가 활성화된 SSO 세션 쿠키를 탈취해 프로덕션 데이터베이스에 접근했고, 고객의 환경변수, 토큰, 암호화 키가 유출됐다.
Okta 세션 토큰을 AiTM 피싱으로 탈취한 뒤, 내부 시스템으로 횡적 이동했다. MGM Resorts, Caesars, Twilio, Coinbase 등으로 침해가 확대됐고, CISA가 별도 권고문을 발행했다.
러시아 SVR 연계 그룹이 클라우드 기반 세션 쿠키를 탈취해 MFA 없이 Office 365에 접근했다. MITRE ATT&CK에 "Steal Web Session Cookie" 기법으로 문서화되어 있다.
세션 토큰 탈취에 단일 방어책은 없다. AiTM과 인포스틸러는 서로 다른 경로이므로 각각 다른 방어가 필요하다.
| 방어 계층 | 차단 대상 |
|---|---|
| FIDO2/Passkey — 인증 응답이 도메인에 바인딩되어 프록시 도메인에서 동작 불가 | AiTM 차단 |
| 토큰 바인딩 — Microsoft Token Protection, Google DBSC. 토큰을 기기에 암호학적으로 바인딩 | 토큰 재사용 차단 |
| CAE(Continuous Access Evaluation) — 위험 감지 시 실시간 토큰 무효화 | 탈취 토큰 차단 |
| 세션 수명 단축 — Access Token 기본 75분, 고위험 앱은 1시간으로 제한 | 탈취 토큰 유효 시간 최소화 |
| EDR — 인포스틸러의 브라우저 DB 접근, 프로세스 메모리 읽기 탐지 | 인포스틸러 차단 |
예산과 시간이 제한된 조직이라면 세션 수명 단축부터 적용해야 한다. 설정 변경만으로 즉시 효과가 있고, 모든 탈취 경로의 피해 시간을 줄인다. 그다음 FIDO2, 토큰 바인딩 순으로 확대한다.
FIDO2는 AiTM을 차단하지만 인포스틸러는 막지 못한다. 인포스틸러는 인증 이후의 세션 토큰을 직접 훔치기 때문이다. Google의 DBSC(Device Bound Session Credentials)가 이 간극을 메우기 위해 개발 중이며, Chrome에서 세션 쿠키 갱신 시 TPM의 개인키 보유를 증명하도록 요구한다. 쿠키가 탈취되어도 다른 기기에서 재사용이 불가능해진다.
MFA는 현관문의 잠금장치다. 세션 토큰은 현관문을 열고 들어온 뒤 손에 쥐는 객실 카드키다. 현관문 잠금장치를 아무리 강화해도, 카드키를 복사할 수 있다면 의미가 없다. FIDO2/Passkey가 현관문을 강화하는 암호학적 구조는 Passkey 인증의 내부 구조 글에서 다룬다. 그러나 카드키, 즉 세션 토큰을 보호하지 않으면 79%의 피해 통계는 반복된다.
AI 활용 안내 이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 인용된 통계와 사례는 참고 자료에 명시된 출처에 근거하며, 설명을 위한 일부 표현은 각색되었습니다.
면책 조항 본 글은 보안 인식 제고를 위한 교육 목적으로 작성되었습니다. 언급된 공격 기법을 실제로 시도하는 행위는 「정보통신망법」, 「형법」 등에 따라 처벌받을 수 있으며, 본 블로그는 이에 대한 법적 책임을 지지 않습니다.