인증과 DNS
이메일 스푸핑
이메일 스푸핑이란 가짜 발신자 주소로 메일을 보내, 다른 사람이 보낸 것처럼 보이게 하는 것입니다. 사기범은 이 방법으로 은행, 거래처, 직장 상사를 사칭합니다. 도메인에서 스푸핑을 막는 레코드는 SPF, DKIM, DMARC입니다.
이메일 스푸핑이란?
이메일 스푸핑이란 거짓 발신자 주소로 메일을 보내는 것을 말합니다. 메일은 아는 사람이나 회사가 보낸 것처럼 보입니다. 하지만 실제로는 다른 사람이 보냈습니다. 사기범은 스푸핑을 이용해 사람들이 가짜 청구서를 결제하거나, 비밀번호를 알려 주거나, 악성 파일을 열게 만듭니다.
스푸핑 메일의 From 줄에는 실제 주소가 표시됩니다. From 줄이란 받은편지함에서 보이는 발신자 이름과 주소입니다. 이 점에서 이메일 스푸핑은 비슷하게 생긴 주소에서 보낸 메일과 다릅니다. 두 가지 모두 아래에서 설명합니다.
예시: CEO를 사칭한 가짜 메일
사라는 example.com 도메인을 쓰는 회사의 재무팀에서 일합니다. 도메인이란 이메일 주소에서 @ 뒤에 오는 이름입니다. 금요일 오후 4시, 사라는 다음 메일을 받습니다.
- 보낸 사람(From): David Brown, david.brown@example.com
- 제목: 오늘 긴급 결제 건
- 본문: “첨부한 청구서를 오후 5시 전까지 새 거래처에 결제해 주십시오. 회의 중이니 메일로만 답장 바랍니다.”
데이비드 브라운은 실제 CEO이고, 주소도 그의 실제 주소입니다. 하지만 이 메일은 데이비드가 보낸 것이 아닙니다. example.com과 아무 관계가 없는 서버에서 사기범이 보냈습니다.
사라가 결제하면 돈은 사기범의 은행 계좌로 갑니다. 이런 사기를 흔히 비즈니스 이메일 침해(business email compromise)라고 부릅니다. 메일이 평범해 보이고 서두르라고 요구하기 때문에 이 수법이 통합니다.
이메일 스푸핑이 가능한 이유
SMTP는 서버 사이에서 메일을 보내는 프로토콜입니다. 1982년에 처음 정의되었습니다. SMTP는 From 주소를 확인하지 않습니다. 어떤 메일 서버든 그 줄에 아무 주소나 쓰도록 설정할 수 있고, 그래도 메일은 전송됩니다.
그래서 받는 쪽 서버에는 From 주소가 진짜인지 알아낼 기본 방법이 없습니다. 이 때문에 나중에 세 가지 확인 방법이 추가되었습니다. 도메인 소유자는 이 확인에 필요한 레코드를 DNS에 게시합니다. DNS는 도메인이 자신의 설정을 공개하는 공개 디렉터리입니다.
스푸핑 메일의 징후
스푸핑 메일은 모든 부분이 정상으로 보일 수 있습니다. 다음 징후가 스푸핑 메일을 알아보는 데 도움이 됩니다.
- Reply-To 주소가 다릅니다. 답장을 클릭하고 주소를 보십시오. 모르는 주소로 바뀐다면 가짜 메일일 수 있습니다.
- 확인에 실패합니다. Gmail에서 메일을 열고 점 3개를 클릭한 뒤 “원본 보기”를 선택합니다. SPF, DKIM, DMARC 줄을 봅니다. DMARC FAIL은 강한 경고 신호입니다.
- 돈이나 비밀번호를 급하게 요구합니다. 오늘 결제하라, 계좌 정보를 바꾸라, 로그인하라는 요청이 스푸핑 메일의 흔한 목적입니다.
- 다른 연락 수단을 피하라고 합니다. “메일로만 연락 바랍니다”나 “전화하지 마십시오” 같은 말은 경고 신호입니다.
- 말투나 서명이 평소와 다릅니다. 실제 그 사람은 그렇게 쓰지 않을 수 있습니다.
스푸핑으로부터 도메인을 보호하는 방법
누군가 From 줄에 내 주소를 입력하는 것 자체는 막을 수 없습니다. 하지만 받는 쪽 서버에 그런 메일을 차단하라고 알릴 수는 있습니다. 여기에는 DNS 레코드 3개가 필요합니다.
- SPF는 내 도메인의 메일을 보낼 수 있는 서버를 나열합니다. SPF 레코드를 참고하십시오.
- DKIM은 사기범이 만들 수 없는 서명을 내 실제 메일에 추가합니다. DKIM을 참고하십시오.
- DMARC는 From에 내 도메인을 쓰지만 두 확인에 모두 실패한 메일을 어떻게 처리할지 받는 쪽 서버에 알려 줍니다. DMARC를 참고하십시오.
DMARC를 p=reject로 설정하면, 내 정책을 따르는 받는 쪽 서버가 스푸핑 메일이 누군가에게 도착하기 전에 차단합니다. p=none에서는 DMARC가 보고서만 보냅니다. 메일을 막지는 않습니다. DMARC를 통과하려면 From에 표시된 도메인과 같은 도메인으로 SPF나 DKIM이 통과해야 합니다. 이것을 DMARC 정렬이라고 합니다.
스푸핑, 피싱, 유사 도메인의 차이
이 단어들은 자주 혼동됩니다. 뜻은 서로 다릅니다.
| 용어 | 뜻 | 예 |
|---|---|---|
| 이메일 스푸핑 | 허락 없이 From에 내 실제 주소를 쓴 메일 | From: billing@example.com, 사기범이 보냄 |
| 피싱 | 돈, 데이터, 비밀번호를 넘기도록 속이려는 모든 메일 | 로그인 링크가 들어간 가짜 “계정이 잠겼습니다” 메일 |
| 유사 도메인 | 내 도메인처럼 보이도록 따로 등록한 도메인 | exampel.com 또는 example-billing.com |
스푸핑은 피싱의 한 방법이고, 유사 도메인도 또 다른 방법입니다. DMARC는 내 도메인을 그대로 쓰는 스푸핑을 막습니다. 유사 도메인은 막지 못합니다. 그 도메인은 사기범의 소유이므로, 사기범이 직접 SPF, DKIM, DMARC 레코드를 설정할 수 있기 때문입니다.
스푸핑 메일을 받았을 때 할 일
- 답장하거나, 링크를 클릭하거나, 첨부 파일을 열지 않습니다.
- 다른 방법으로 요청을 확인합니다. 메일에 적힌 번호가 아니라 이미 알고 있는 전화번호로 그 사람에게 전화합니다.
- 신고합니다. Gmail에서는 점 3개 메뉴에서 “피싱 신고”를 선택합니다. Outlook에서는 “보고”(Report) 버튼을 사용합니다.
- 회사 도메인을 사용한 메일이라면 IT 팀에 알립니다. IT 팀은 DMARC 보고서를 확인할 수 있습니다.
- 이미 결제했거나 비밀번호를 알려 주었다면, 즉시 은행에 연락하거나 비밀번호를 바꿉니다.
이메일 스푸핑과 이메일 검증
이메일 유효성 검사 도구는 스푸핑을 감지하지 않습니다. 이 도구는 주소가 존재하고 메일을 받는지 알려 줄 뿐, 실제로 누가 메일을 보냈는지는 알려 주지 않습니다. 스푸핑 메일은 실제 주소를 쓰므로, 그 주소를 검사하면 여전히 유효로 나옵니다. 대량 이메일 검증 도구는 내 발송 쪽에서 도움이 됩니다. 캠페인 전에 리스트에서 쓰이지 않는 주소를 지워 줍니다. 스푸핑을 막으려면 SPF, DKIM, DMARC를 사용하고, 반송률을 낮게 유지하려면 이메일 검증을 사용하십시오.
관련 용어
- DMARCDMARC는 도메인의 DNS에 게시하는 규칙입니다. 내 도메인에서 왔다고 주장하지만 SPF와 DKIM을 통과하지 못한 메일을 어떻게 처리할지 받는 쪽 서버에 알려 줍니다. 보고서를 어디로 보낼지도 알려 줍니다.
- SPF 레코드SPF 레코드는 도메인에 두는 텍스트 한 줄로, 그 도메인의 메일을 보낼 수 있는 서버를 나열합니다. 받는 쪽 서버는 이 레코드를 확인해, 내 도메인에서 왔다고 주장하는 메일이 실제로 내 서버에서 보내졌는지 확인합니다.
- DKIMDKIM은 DomainKeys Identified Mail의 약자입니다. 보내는 모든 메일에 디지털 서명을 추가합니다. 받는 쪽 서버는 이 서명을 확인해, 메일이 내 도메인에서 왔고 보낸 뒤에 바뀌지 않았다는 것을 확인합니다.
- BIMIBIMI는 지원하는 받은편지함에서 메일 옆에 브랜드 로고를 표시하는 이메일 표준입니다. Brand Indicators for Message Identification의 약자입니다. 도메인이 quarantine 또는 reject 정책으로 DMARC를 통과할 때만 작동합니다.
- Return-PathReturn-Path는 반송 메시지가 가는 주소입니다. 보내는 서버가 정하며, 받은편지함에서 보이는 From 주소와 다른 경우가 많습니다. SPF는 Return-Path의 도메인을 확인합니다.
