반응형

Microsoft Exchange Community (MEC) 2022 Securing Mail flow in Exchange Online에서 MTA-STS 대해 언급되었고, 저도 Study 차원에서 한번 구성해 보려고 합니다.

Securing Mail Flow in Exchange Online - YouTube

 

포스팅은 MEC에서 언급한 방향성을 담으려고 노력했습니다.

사실 Microsoft Learn or Tech community 참고하시면 구성하는 자체는 어렵지 않습니다.

MTA-STS로 메일 흐름 향상 - Microsoft 365 Compliance | Microsoft Learn

Introducing MTA-STS for Exchange Online - Microsoft Tech Community

 

우선 MTA-STS RFC8461 국제 규약으로 있습니다.

https://datatracker.ietf.org/doc/html/rfc8461

MTA-STS = MTA (Mail Transfer Agent) + STS(Strict Transport Security)

 

메일 송수신시 스팸장비, 릴레이서버 다양한 Hop 존재합니다. 메일 송수신의 암호화가 End-to-End 기준으로 되었으면 보다 안전했겠지만, 구현하기 상당히 어렵습니다.

 

대부분 Hop-to-Hop 기준으로 메시지를 확인합니다.

 

현재 대부분의 메일 서버들은 선택적인 TLS 적용합니다. (강연에서는 opportunistic TLS(기회주의적인 TLS)라는 표현으로 사용되었습니다.)

 

MTA-STS SMTP DANE with DNSSEC 이러한 문제점을 보완, 완화할 있다고 소개하고 있습니다.

 

중에서 이번 포스팅에서는 MTA-STS 대해서 다뤄보도록 하겠습니다.

Support for the SMTP MTA Strict Transport Security (MTA-STS) standard is added to Exchange Online. The standard was developed to ensure that TLS is always used for connections between email servers. It also provides a way for sending servers to validate that the receiving server has a trusted certificate. If either TLS isn't offered or the certificate isn't valid, the sender refuses to deliver messages. These new checks improve the overall security of SMTP and protect against man-in-the-middle attacks.


MTA-STS can be broken down into two scenarios: Inbound and Outbound Protection. Inbound covers the protection of domains hosted in Exchange Online with MTA-STS and Outbound covers the MTA-STS validations performed by Exchange Online when sending emails to MTA-STS protected domains.


Exchange Online에 SMTP MTA Strict Transport Security(MTA-STS) 표준에 대한 지원이 추가되었습니다. 이 표준은 이메일 서버 간의 연결에 항상 TLS를 사용하도록 개발되었습니다. 또한 보내는 서버가 받는 서버에 신뢰할 수 있는 인증서가 있는지 확인하는 방법을 제공합니다. TLS가 제공되지 않거나 인증서가 유효하지 않은 경우 보낸 사람이 메시지 배달을 거부합니다. 이러한 새로운 검사는 SMTP의 전반적인 보안을 개선하고 메시지 가로채기(man-in-the-middle) 공격으로부터 보호합니다.


MTA-STS는 인바운드 및 아웃바운드 보호의 두 가지 시나리오로 나눌 수 있습니다. 인바운드는 MTA-STS를 사용하여 Exchange Online에서 호스팅되는 도메인 보호를 다루고 아웃바운드는 MTA-STS 보호 도메인에 전자 메일을 보낼 때 Exchange Online에서 수행하는 MTA-STS 유효성 검사를 다룹니다.

 

구성 자체는 간단합니다. MTA-STS 규약에 맞게 txt 파일을 특정 URL 조회 가능하도록 설정합니다.

https://mta-sts.<domain>/.well-known/mta-sts.txt

 

version: STSv1
 mode: enforce
 mx: *.mail.protection.outlook.com
 max_age: 604800

 

테스트 환경은 Exchange Server IIS에서 가상디렉터리를 추가하는 방식으로 생성하였습니다.

 

Mode testing으로 하면 테스트 모드로 적용할 있습니다.

 

그리고 아래와 같은 형태로 TXT 레코드 등록이 필요합니다.

_mta-sts.<domain>. 3600 IN TXT v=STSv1; id=20220101000000Z;

 

MTA-STS 규약에 맞게 등록되어 있는지 여부는 다양한 Lookup page에서 체크하시면 됩니다.

MTA-STS Lookup - Check domains for Inbound Transport Layer Security (TLS) Enforcement - MxToolbox

 

같은 방식으로 MTA-STS 지원하는 메일서버들을 확인할 있습니다.

 

만약에 정책이 지원되고 활성화되어 있다면, 아래와 같은 흐름으로 유효성 체크를 진행합니다.

단순하게 해석해보면 Client MTA에서 상대 측의 DNS레코드를 조회 -> MTA-STS Policy 확인 -> 인증서 확인 순으로 유효성을 검사한다고 있습니다.

 

기술 자료에서는 Outbound Inbound 구분해서 설명하고 있습니다.

아웃바운드 보호
Exchange Online에서 MTA-STS로 보호되는 받는 사람에게 아웃바운드로 보낸 모든 메시지는 MTA-STS 표준에서 설정한 이러한 추가 보안 검사를 통해 유효성이 검사됩니다. 이를 적용하기 위해 관리자가 수행할 작업은 없습니다. 아웃바운드 구현은 MTA-STS 정책을 통해 받는 사람 도메인 소유자의 요구 사항을 준수합니다. MTA-STS Exchange Online의 보안 인프라의 일부를 구성하므로 다른 핵심 SMTP 기능과 마찬가지로 항상 켜져 있습니다.

인바운드 보호
도메인 소유자는 MX 레코드가 Exchange Online을 가리키는 경우 MTA-STS를 사용하여 도메인으로 전송된 전자 메일을 보호하기 위한 조치를 취할 수 있습니다. MX 레코드가 중개 타사 서비스를 가리키는 경우 해당 서비스가 MTA-STS 요구 사항을 충족하는지 확인하고 지침을 따라야 합니다.

도메인에 대해 MTA-STS가 설정되면 MTA-STS를 지원하는 발신자가 보낸 모든 메시지는 보안 연결을 보장하기 위해 표준에서 제시한 유효성 검사를 수행합니다. MTA-STS를 지원하지 않는 발신자로부터 이메일을 받는 경우 추가 보호 없이 이메일이 계속 전달됩니다. 마찬가지로, 아직 MTA-STS를 사용하지 않고 있지만 보낸 사람이 지원하는 경우 메시지가 중단되지 않습니다. 메시지가 배달되지 않는 유일한 시나리오는 양측이 MTA-STS를 사용하고 있고 MTA-STS 유효성 검사가 실패한 경우입니다.

-> 위해서 TXT 레코드 등록 파일 등록은 인바운드 보호를 위한 설정입니다.

 

적용후에 메시지 추적 헤더를 분석해보았지만, MTA-STS 적용되었다는 것에 대해서 확인할 있는 방법은 현재로서는 없는 것으로 보입니다.

 

예상에는 향후에 아래와 같이 MTA-STS 체크할 있는 항목이 추가될 것으로 보입니다.

반응형

+ Recent posts