블로그

스캐너를 멈추지 않고 Direct Send 닫기

Direct Send를 이용하면 인터넷의 누구든 여러분의 사용자인 것처럼 테넌트에 메일을 넣을 수 있으며, 작년에 공격자들이 이 점을 알아챘습니다. 이제 Exchange Online에서 이를 거부할 수 있습니다. 문제는 몇 년 동안 조용히 이 방식에 의존해 온 스캐너입니다.

Direct Send는 애초에 정교하게 설계된 기능이 아니었습니다. 스캐너나 작은 애플리케이션이 어디에도 로그인하지 않고, 여러분의 주소 중 하나를 발신자로 사용해 테넌트의 MX 엔드포인트로 메일을 바로 넣을 수 있게 하려고 존재합니다. Microsoft는 이를 "mimics incoming anonymous emails from the internet, apart from the sender domain" 방식이라고 설명하는데, 이는 스캐너와 인터넷의 다른 누군가를 구별하는 유일한 근거가 스캐너가 내세우는 주소뿐이라는 말을 점잖게 표현한 것입니다.

2025년 5월, 누군가가 이 점을 실제로 이용했습니다. Varonis는 대부분 미국에 있는 70곳이 넘는 조직에 도달한 캠페인을 추적했는데, 이 메일은 내부 메일처럼 보였습니다. Exchange Online이 판단할 수 있는 한 실제로 내부 메일이었기 때문입니다. 테넌트의 스마트 호스트를 대상으로 한 PowerShell 한 줄, 발신자로 설정된 피해자 자신의 주소, 그리고 가짜 Microsoft 로그인 페이지로 연결되는 QR 코드가 담긴 PDF가 전부였습니다. 미끼는 부재중 전화와 팩스 알림이었습니다. 복합기가 매일 보내는 종류의 메일이고, 그래서 아무도 의심하지 않았습니다.

Microsoft가 추가한 스위치

2025년 4월부터는 제대로 된 끄기 스위치가 있으며, 명령 한 줄이면 됩니다.

Set-OrganizationConfig -RejectDirectSend $true

약 30분 안에 적용됩니다. 그때부터 엔벨로프 발신자에 여러분의 도메인 중 하나를 사용하는 익명 메일은 구성해 둔 인바운드 커넥터를 통해 들어오지 않는 한 입구에서 거부되며, 보낸 쪽에는 다음과 같이 표시됩니다.

550 5.7.68 TenantInboundAttribution; Direct Send not allowed for this organization from unauthorized sources

Microsoft는 새 테넌트에서 이 설정을 기본으로 켜고, 해당 테넌트에서는 끌 수 없게 하겠다는 뜻도 밝혔습니다. 날짜는 정해지지 않았지만 방향은 분명합니다.

먼저 누가 사용하는지 파악하기

대부분의 테넌트가 아직 스위치를 켜지 않은 이유는 단순합니다. 켰을 때 무엇이 함께 멈출지 아무도 모르기 때문입니다. Microsoft는 SPF 레코드부터 확인하라고 권합니다. SPF에 등록되지 않은 채 Direct Send로 보내는 것은 이미 전달에 어려움을 겪고 있기 때문입니다. 실제 트래픽은 Microsoft가 Exchange 관리 센터에서 프리뷰로 공개한 Change Optics 보고서로 확인할 수 있으며, 이 보고서는 이 설정이 거부할 메시지의 예시를 보여 줍니다. 커넥터 없이 수신된 모든 메일에 대한 기록 메시지 추적은 최대 90일 전까지 거슬러 올라갑니다.

Start-HistoricalSearch -ReportTitle "Direct Send" -ReportType ConnectorReport `
  -ConnectorType NoConnector -Direction Received `
  -StartDate (Get-Date).AddDays(-89) -EndDate (Get-Date) `
  -NotifyAddress admin@contoso.com

Defender for Office 365 Plan 2가 있다면 Advanced Hunting으로 EmailEvents에서 커넥터 필드가 비어 있는 같은 메일을 찾을 수 있습니다. 결과를 읽기 전에 알아 둘 점이 하나 있습니다. 이 보고서는 MX가 자체 커넥터를 통해 들어오는 게이트웨이를 가리킬 때 가장 잘 작동합니다. MX가 Exchange Online을 직접 가리킨다면 일반 인바운드 메일도 모두 커넥터 없이 도착하므로, 여러분의 도메인을 발신자로 사용하는 메일만 걸러서 보는 것이 좋습니다.

찾아낸 결과가 놀라운 경우는 드물고, 목록이 예상보다 길 뿐입니다. 복사기, 건물 관리 시스템, 창고의 라벨 프린터, 그리고 가끔은 여러분의 이름으로 청구서를 보내는 클라우드 서비스가 나옵니다. 확정하기 전에 효과를 먼저 확인하고 싶다면, Microsoft가 제시하는 중간 단계로 이런 메일을 거부하는 대신 격리하는 메일 흐름 규칙이 있습니다. 잃는 것은 없고, 일주일 뒤에는 스위치가 무엇을 막았을지 정확히 알 수 있습니다.

스캐너를 다른 경로로 옮기기

정상적인 발신자를 위한 Microsoft의 답은 Partner 유형의 인바운드 커넥터입니다. 이 커넥터는 사무실의 공인 IP 주소나 인증서를 신뢰하는데, 실제로 인증서를 갖춘 스캐너는 많지 않습니다. 비용이 들지 않고, 고정 주소를 가진 단일 사이트라면 잘 작동합니다. 다만 단서가 있습니다. 주소를 조직 외부의 누구와도 공유해서는 안 되고, 자체 인터넷 브레이크아웃을 가진 사이트마다 별도 항목이 필요하며, IP 주소가 유일한 열쇠가 됩니다. 그 뒤에 있는 것은 무엇이든 도메인의 누구 명의로든 보낼 수 있으며, 여기에는 잘못된 팩스 알림을 클릭한 회계팀의 노트북도 포함됩니다.

로그인할 수 있고 동료에게만 메일을 보내는 장치는 High Volume Email로 옮길 수 있으며, 이에 대해서는 SMTP AUTH에 관한 글에서 살펴보았습니다. 나머지는 애초에 TLS나 로그인을 지원하지 못해서 Direct Send를 사용하던 장치이며, 이들에게는 장치가 할 수 있는 방식을 받아들이면서도 누가 누구 명의로 보낼 수 있는지 결정하는 릴레이가 필요합니다.

이번 주에 할 일

  1. 커넥터 없음 메시지 추적을 실행하고 Change Optics 보고서를 열어, 찾아낸 발신 원본을 모두 적어 둡니다.
  2. 정상적인 원본에는 제대로 된 경로를 마련합니다. 알려진 IP 주소에는 파트너 커넥터, 내부로만 메일을 보내는 장치에는 High Volume Email, 나머지에는 릴레이입니다.
  3. 일주일 동안 격리 규칙을 적용하고 무엇이 걸리는지 확인합니다.
  4. 그런 다음 RejectDirectSend를 설정하고 며칠 동안 5.7.68 반송을 주시합니다.

Sendman은 바로 그 릴레이로 만들었습니다. 스캐너는 로그인하거나 여러분이 허용한 주소 범위에서 보내며, scan@contoso.com 명의로는 보낼 수 있지만 CEO 명의로는 보낼 수 없습니다.

출처

스캐너는 남기고, 옆문은 닫기

Sendman은 Microsoft 365를 위한 SMTP 릴레이입니다. 장치는 기존 로그인으로 로그인하고 Microsoft Entra ID로 검증되며, 앱 등록도, 동의도, 테넌트에서 변경할 것도 없습니다. 또는 여러분이 허용한 주소 범위에서 로그인 없이 보낼 수도 있으며, 누가 누구 명의로 보낼 수 있는지는 여러분의 정책이 정합니다.

작동 방식 보기프리뷰 신청