캘린더 초대장은 일정으로 표시돼 사용자가 신뢰하는 앱 안에서 피싱 링크를 노출할 수 있다. 위험은 .ics 파일 자체가 아니라 초대장 설명에 숨겨져 캘린더가 클릭 가능한 링크로 바꾸는 URL이다.
.ics 파일은 일반 텍스트로 된 VCALENDAR 안에 하나 이상의 VEVENT를 담는 형식이다. ORGANIZER, DESCRIPTION, URL, X-ALT-DESC 필드가 중요하며, X-ALT-DESC는 일부 클라이언트가 렌더링하는 HTML 대체 본문이다. 파일에는 실행 코드가 없지만, 설명이나 HTML 본문에 공격자의 URL을 넣을 수 있다. 형식은 RFC 5545에 정의돼 있다.
초대장은 첨부 파일이나 text/calendar MIME 부분으로 도착한다. 캘린더 앱은 이를 일정 알림으로 표시하며, 피해자가 이메일을 열지 않아도 일정이 임시로 추가돼 알림이 뜰 수 있다. 링크는 ‘회의 참여’나 ‘문서 검토’로 표시되고, 클릭하면 가짜 로그인 페이지, 세션 토큰을 훔치는 중간자 프록시, 또는 메일·캘린더 접근 권한을 요구하는 OAuth 동의 화면으로 이어질 수 있다.
캘린더 기반 피싱은 지난 1년 동안 이메일 사회공학 공격 유형 중 세 번째로 흔해졌으며, 최근 캠페인에는 동의 피싱인 CalPhishing과 전달 후 지속성 확보가 결합되기도 한다. 관련 사례는 calendar files weaponized와 Fortra의 ConsentFix·CalPhishing 분석에 소개돼 있다.
탐지할 때는 초대장의 ORGANIZER 주소와 이메일 발신자를 비교한다. 위조된 초대장에서는 둘이 일치하지 않는 경우가 많다. 수락하기 전에 DESCRIPTION, X-ALT-DESC, URL에 숨겨진 링크나 인코딩된 링크가 있는지 확인하고, 외부 링크만 담긴 회의 초대는 경계해야 한다. 요청하지 않은 초대장에 긴급한 마감이나 ‘지금 참여’ 문구가 있거나 반복 일정으로 설정돼 있다면 피싱의 신호일 수 있다.
조직 관리자는 메일함과 캘린더 접근 권한인 Mail.Read, Calendars.Read를 요청하는 앱의 동의 내역을 점검하고, 설명되지 않는 권한 부여를 철회할 수 있다. 메일 게이트웨이에서는 신뢰할 수 없는 발신자의 캘린더 초대장을 차단하거나 격리하고, X-ALT-DESC의 URL을 제거하거나 다시 쓸 수 있다. 첨부 파일만 차단해서는 충분하지 않을 수 있다. 초대장이 첨부가 아니라 text/calendar MIME 부분으로도 전달되기 때문이다.
초대장 링크 대신 QR 코드가 같은 URL을 담는 경우도 있다. 수신자가 휴대전화로 QR 코드를 스캔하면 회사의 보안 통제를 벗어난 곳에서 페이지를 열 수 있다. ICS와 QR 코드를 이용한 AiTM 공격 사례도 참고할 수 있다.
대응의 핵심은 요청하지 않은 초대장을 인터넷에서 온 것으로 간주하고, 주최자와 발신자를 확인하며, 수락 전에 설명의 링크를 읽는 것이다. 가능하다면 초대장 자동 추가를 끈다. 다단계 인증도 모든 공격을 막지는 못한다. 중간자 프록시가 실제 로그인 과정을 중계해 인증 성공 뒤 세션 쿠키를 탈취할 수 있기 때문이다. 이 경우 공격자가 노리는 것은 비밀번호가 아니라 인증된 세션 토큰이다.
추가 자료: 캘린더 초대장 피싱과 .ics 파일, 캘린더 초대를 악용한 피싱 설명, 게이트웨이가 놓치는 이유, 탐지 신호, 대응 방법.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요