1. 메일서버 구조
MUA(User Agent)
사용자가 메일을 송수신하기 위해 사용하는 메일 클라이언트 프로그램
Outlook, 썬더버드 등
MTA(Message Transfer Agent)
메일 서버프로그램으로 수신한 메일을 분석하여 수신자가 자신이 아닌 메일주소라면 해당 주소의 메일 서버로 전송(메일 릴레이 기능)하고 수신자 자신의 메일의 주소라면 MDA를 통해 각 사용자 메일함에 저장하도록 한다.
Sendmail, Microsoft Exchange 등(전자 우편 서버에 설치되어있는 CS 프로그램)
MDA(Mail Delivery Agent)
사용자의 메일함으로 메일을 저장해주는 프로그램으로 메일이 최종 수신 메일서버(MTA)에 도착했을 때 메일 서버는 MDA에 메일을 전달하고 MDA는 사용자 메일함에 메일을 저장한다.
Porcmail
MRA(Mail Retrieval Agent)
메일 클라이언트(MUA)가 확인을 요청하는 메일을 사용자 메일함에서 사용자로 전달해주는 프로그램으로 MUA와 MRA간 통신은 POP3 또는 IMAP 프로토콜을 사용한다.
2. SMTP(Simple Mail Transfer Protocol)
1) 개념
메일클라이언트(MTU)와 메일 서버(MTA) 또는 송수신 메일 서버(MTA)간에 메일 전송을 위해 사용하는 프로토콜로 TCP 25번포트를 사용한다.
이메일을 암호화하여 이메일 전송을 보호하는 기능을 전혀 지원하고 있지 않기 때문에 남이 볼 수 없게 하려면 메시지를 보내기 전에 별도로 메시지 본문을 암호화해야 한다.
SMTPS(SMTP over SSL/TLS): SMTP 통신 구간에 SSL/TLS 보안을 적용한 프로토콜로 TCP 465번 포트를 사용한다.
2) 메일 형식
봉투와 메시지를 작성하는 부분으로 나눠져 있다.
Envelope(봉투)
발신서버, 메일 수신서버간 메일 전달 용도로 사용되기 위해 발신자 수신자 메일주소가 명시되어있다.
MAIL FROM: 클라이언트가 전자우편의 송신자가 누구인지를 알기 위해 사용한다. 조작이 가능하여 신뢰성이 낮다.
RECP TO; 클라이언트가 메시지의 수신자가 누구인지를 알기 위해 사용된다.
Message Header
메일 수신자에게 보이는 메일 내용으로 다양한 헤더로 구성되어있다.
Received: 전송된 경로
Return-Path: 반송 주소
FROM: 보낸 사람
TO: 받는 사람
SUBJECT: 메일 제목
Date: 날짜
Message Body
메일 본문이 기록된다.
3. 메시지 엑세스 에이전트(POP3, IMAP4)
1) POP3
메일 클라이언트(MUA)에서 메일서버(MTA)로부터 메일을 수신할 수 있도록 해주는 프로토콜로 TCP 110번 포트를 사용한다.
클라이언트가 메일을 서버로부터 가지고온 후 서버에서 해당 메일을 삭제하기 때문에 다른곳에서 메일 확인이 불가능하다.
POP3S(POP3 over SSL/TLS): POP3 통신 구간에 SSL/TLS 보안을 적용한 프로토콜로 TCP 995번 포트를 사용한다.
2) IMAP4
메일 클라이언트(MUA)에서 메일서버(MTA)로부터 메일을 수신할 수 있도록 해주는 프로톨로 TCP 143번 포트를 사용한다.
메일 다운로드가 아닌 복사해오는 방식이기 때문에 클라이언트가 메일을 서버로부터 가져온 후에도 서버에 해당 메일이 계속 남아있게 되어 다른 클라이언트에서도 메일 확인이 가능하다.
IMAPS(IMAP over SSL/TLS): IMAP 통신 구간에 SSL/TLS 보안을 적용한 프로토콜로 TCP 993번 포트를 사용한다.
2.1) 추가기능
① 전자우편을 내려받기 전에 헤더 검사, 특정 문자열로 내용 검색할 수 있다.
② 전자우편을 부분적으로 내려받을 수 있다.
③ 메일서버에서 편지함을 생성, 삭제하거나 이름을 변경할 수 있다.
④ 전자우편 저장을 위해 폴더 내에 편지함들을 체계적으로 생성할 수 있다.
4. 이메일 콘텐츠 보안을 위한 보안 기술
1)PEM(Privacy Enhanced Mail)
IETE에서 인터넷 드래프트로 채택한 이메일 보안 기술이다.
기존 전자우편 프로토콜을 이용하여 암호화된 정보, 전자서명, 암호화방법 등을 본문에 텍스트 형식으로 전송한다.
높은 보안성(군사, 금융)을 가지고 있으나 구현이 복잡하여 많이 사용되지 않는다.
기밀성, 인증, 무결성, 부인방지를 지원한다.
2)PGP(Pretty Good Privacy)
검증된 알고리즘 및 구현이 용이하고 상업용 공개용 소프트웨어로 제작되고, 다양한 플랫폼에서 활용할 수 있는 대표적인 소프트웨어이다.
전자서명, 기밀성, 단편화 재조립, 송신 부인방지를 지원한다.
수신 부인방지는 지원하지 않는다.
2.1) 키링
각 노드에서 한 쌍의 데이터 구조를 제공해야 한다.
① 노드가 소유한 공개키/개인키 쌍
② 이 노드가 알고있는 다른 사용자들의 공개키
2.2) 보안 서비스
인증, 기밀성(메시지 암호화), 압축(전자 서명), 전자메일 호환성, 단편화
2.3.1) 기밀성
송신자가 생성한 일회용 세션키로 암호화 알고리즘을 이용해 메시지 암호화한다.
수신자의 공개키로 암호화 알고리즘을 이용해 세션키를 암호화하고 메시지에 첨부한다.
일회용 세션키 암호화 알고리즘: CAST-128, IDEA, 3DES, CFB-64
수신자 공개키 암호화 알고리즘: RSA, DH, EIGamal
2.3.2) 인증
해시 알고리즘을 이용하여 MD 생성
MD는 송신자의 개인키로 DSS나 RSA를 이용하여 암호화하고 메시지에 첨부한다.
2.3.3) 기밀성과 인증
압축: ZIP으로 메시지 압축한다.
전자메일 호환성: Radix-64 변환을 이용해 ASCII부호로 변환한다.(전송 오류를 탐지하기 위해 CRC 사용)
분할 및 재결합: 최대 메시지 사이즈 제한으로 인한 데이터의 분할 및 재결합한다.
2.4) PGP 인증서
OpenPGP에서 정해진 인증서 또는 X.509 호환용 인증서를 작성할 수 있다.
공개키 취소 증명서 및 CRL, OCSP를 이용한 인증서 확인이 가능하다.
CA가 필요없고 링에 속해있는 사용자라면 링에 있는 누구라도 인증서에 서명할 수 있다.(계층구조, 트리구조 X)
신뢰할 수 있는 웹을 이용하여 신뢰망을 구축한다.
3) S/MIME(Secure Multipurpost Internet Mail Extensions)
PEM 구현의 복잡성, PGP의 낮은 보안성과 기존 시스템과의 통합이 용이하지 않다는점을 보완하기 위해 RSADSI의 기술을 기반으로 개발된 전자우편 보안 시스템이다.
기밀성, 무결성, 사용자 인증, 부인방지 기능을 제공한다.
디지털 서명: RSA/SHA-256
메시지 암호화: AES-128 with CBC
이메일 호환성: Radix-64
메시지 형식에는 서명된 데이터, 동봉된 데이터, 명문-서명 데이터, 서명되고 동봉된 데이터가 존재한다.
3.1) MIME
ASCII가 아닌 데이터가 송신될 수 있도록 허용하는 부가적인 프로토콜이다.
헤더에는 버전(1.1), 내용 유형, 내용 전달 인코딩, 내용 ID(전체 메시지 식별), 내용 기술(화상, 소리)이 포함되어있다.
① Non ASCII 데이터를 NVT(Network Virtual Terminal) ASCII 데이터로 변환
② 송신할 클라이언트 MTA로 배달
③ 수신자 측에서 원래의 데이터로 역변환 후 Non ASCII 데이터 송신
3.2) 보안 서비스
서명된 수령증: 서명된 수령증을 돌려 받으면 원 소유자가 보낸 메시지가 배달되었음을 확인 및 제 3자에게 메시지 전송 내용 증명 가능
보안 레이블: 어떤 사용자가 객체에 저근이 허락되었는지 표시하는 것으로 접근제어에도 사용할 수 있다.
안전한 메일링 목록: 각 수신자의 공개키를 이용하여 서비스를 사용함으로써 많은 양의 수신자별 처리가 가능하다.
4) S/MIME VS PGP
구분 | S/MIME | PGP |
키인증 | CA에서 발행, X.509인증서 사용 | CA필요없음, X.509호환용 인증서 |
키 배분 | 메시지에 송신자 공개키 첨부 | OpenPGP 사이트에서 공개키 다운 |
5. 스팸 메일 보안 대응 기술
1)메일 서버 등록제 SPF(Sender Policy Framework)
수신한 메일이 MAIL FROM에 명시한 발신자 메일 주소의 정당한 메일서버로부터 온 메일인지 검사할 수 있는 기술이다.
메일 관리자가 DNS 서버에 발신 메일서버 정보를 담고있는 SPF 레코드를 TXT 형태로 등록한다. 레코드에는 IP 정보 및 허용 거부 조건이 담겨 있다.
이후 메일을 송신할 때 수신 메일 서버에서 SPF 레코드 정보를 참조하여 메일의 위변조 여부를 확인할 수 있다.
만약 공격자가 MAIL FROM을 조작하여 신뢰할 수 있는 도메인으로 변경해도 IP정보가 다르기 때문에 차단된다.
위치: zone 파일
2) DKIM(DomainKeys Identified Mail)
발신자 측에서 메일의 메시지에 디지털 서명을 추가하여 메일의 위변조 여부를 확인할 수 있는 메일 인증 기술
메일 관리자가 DNS 서버에 DKIM 레코드를 지정한 도메인의 TXT 형태로 등록한다. DKIM 레코드에는 서명 알고리즘, 공개키 정보가 저장되어있다.
발신자가 메일을 보낼 때 DKIM-Signature 헤더를 추가하여 전송하는데 헤더 안에는 개인키로 서명한 값과 DKIM 레코드의 도메인 정보가 들어있다.
수신측 메일서버에서 디지털 서명 검증 정보를 저장하고 일치할 경우 메일을 수신한다.
sha256으로 해시한 후 해시 값을 rsa알고리즘으로 디지털 서명
DKIM-Signature: v=1; a=rsa-sha256; d=example.net; s=brisbane;c=relaxed/simple; q=dns/txt; l=1234; t=1117574938; x=1118006938;
h=from:to:subject:date:keywords:keywords; bh=MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=; b=dzdVyOfAKCdLXdJOc9G2q8LoXSlEniSbav+yuU4zGeeruD00lszZVoG4ZHRNiYzR
3) DMARC(Domain-based Message Authentication, Reporting and Conformance) 메일인증기술
SPF와 DKIM 인증 기술을 모두 적용할 수 있고 인증 결과에 대한 모니터링이 가능한 기술이다.
메일 관리자가 DNS 서버에 인증에 사용할 SPF, DKIM, DMARC 레코드를 등록한다.
발신자가 메일 송신 시 DKIM-Signature 헤더를 추가하여 메시지를 디지털 서명한다.
수신 메일서버에서 DMARC 정책에 따라 SPF, DKIM 인증을 수행 및 인증 실패 시 처리(실패보고서 피드백) 수행한다.
4) 스팸 필터 솔루션
메일 서버 앞단에 위치하며 Proxy 메일 서버로 동작하고 SMTP프로토콜을 이용한 DoS공격, 폭탄 메일, 스팸 메일을 차단한다.
메일의 바이러스 체크 및 내부에서 외부로 전송되는 메일에 대한 본문 검색도 수행한다.
메일 헤더, 제목, 본문, 첨부파일 필터링을 수행한다.
5) RBL(Real time Blocking List)
실시간 불법 이메일 차단 시스템으로 스팸메일을 지속적으로 보내는 시스템 IP를 실시간으로 거부하기 위해 설정한다.
6) Sanitizer
이메일을 이용한 모든 공격에 대해 효과적으로 대응할 수 있도록 해주는 procmail ruleset이다.
확장자를 이용한 필터링, MS Office 메크로 검사기능, 악성 메크로에 대한 score기능, 감염된 메시지 보관 장소 설정 등을 할 수 있다.
7) SpamAssassin
실시간 블랙리스트 분석 기법을 사용한다.
6. 메일 서비스 공격
Open Relay 메일서버로 구성된 경우 인증을 수행하지 않기 때문에 스팸메일 발신자의 메일서버로 악용되는 사례가 발생한다.
1) SendMail Attack
배달되지 않은 메시지를 /var/tmp/dead.letter 파일 끝에 저장한다는 사실과 링크를 이용하여 root권한을 얻을 수 있다.
EXPN(expand), VRFY(verify)명령어로 사용자 정보를 외부로 유출할 수 있다.메시지 내용에 사용자 계정을 기록하고 도착할 수 없는 메시지를 보낼 때 발생하는 헤더 피싱코드의 버그를 이용한다.
sandmail.cf: SMTP AUTH를 통한 relay 차단
anti-spam 기능과 access DB를 이용한 스팸 relay 차단
/etc/mail/access에 Relay를 허용할 호스트의 IP와 도메인을 설정한다.
/etc/mail/access 설정 예시
192.168.100 RELAY
spammail.com REJECT
10.10.10.10. REJECT
192.168.50.100 DISCARD
attack@phising.com 501 "[501 message] You are not allowed!!"
2) Active contents
메일 열람 시 HTML 기능이 있는 이메일 클라이언트나 웹 브라우저를 사용자를 대상으로 하는 공격기법이다.
스크립트 기능을이용하여 피해자의 컴퓨터에서 정보를 유출하거나 악성 프로그램을 실행시킨다.
3) 발신 메일 서버 조작(Spoofing)
3.1) 개념
MAIL FROM 정보는 조작이 가능하기 때문에 공격자는 실제와 다른 신뢰할만한 발신자 메일주소로 조작하여 수신 메일 서버를 속일 수 있다.
3.2) 대응 방법
수신한 메일이 MAIL FROM에 명시한 발신자 메일 주소의 정당한 메일서버부터 온 메일인지 검사할 수 있는 SPF(Sender Policy Framework)메일 일증 기술을 적용한다.
4) 메일 메시지 훔쳐보기 및 조작(Spoofing, Sniffing)
4.1) 개념
평문 텍스트로 메일을 전송하기 때문에 공격자가 메일을 가로채 메시지를 Sniffing 하거나 Spoofing하는 MIMT 공격이 발생할 수 있다.
4.2) 대응 방안
발신자 측에서 메일의 메시지에 대한 디지털 서명을 추가하여 메일의 위변조 여부를 검사할 수 있는 DKIM(DomainKeys Identified Mail)메일 인증 기술을 적용한다.
메일서버 및 클라이언트 통신 구간 암호화 적용이 가능한 STMPS, POP3S, IMAPS 등의 프로토콜을 적용하여 Sniffing공격을 방지한다.
7. SMTP 헤더
1) Received 메시지 헤더
실제 메일이 전송된 경로를 나타낸다.
Received 헤더가 여러개일 경우 여러 매일 서버를 경우했다는 의미이며 가장 아래쪽에 보이는 헤더가 처음 메일을 발송한 메일서버이다.
일반적으로 스팸 메일 분석 시 발송 근원지를 역추적 하기 위해 참고한다.
구조
Received: "from 발송 호스트" "by 수신 호스트" "id 메일 고유 식별자" "for 수신자 메일주소" "SSL/TLS 정보(SMTPS)" "수신 날짜/시간"
2) Received-SPF 메시지 헤더
SPF 인증 결과를 기록하는 헤더이다.Authentication-Results 헤더에서도 확인할 수 있다.
3) Authentication-Results 메시지 헤더
SPF, DKIM, DMARC 인증 결과를 기록하는 헤더이다.
[참조]
SPF, DKIM, DMARK 그림; https://cheershennah.tistory.com/129
'Certification Study > 정보보안기사' 카테고리의 다른 글
[정보보안기사] 문제 풀이 (0) | 2020.08.12 |
---|---|
[정보보안기사] 35. 데이터베이스 보안 (1) | 2020.07.03 |
[정보보안기사] 30. 최신 네트워크 보안기술 (0) | 2020.03.25 |
[정보보안기사] 29. VPN(Virtual Private Network) 개념 (1) | 2020.02.18 |
[정보보안기사] 28. 침입차단시스템 (Firewall) (1) | 2020.02.17 |
공부&일상 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 질문은 언제나 환영입니다😊