IT보안 학습

스펨 메일 차단 총정리

김구티2 2023. 12. 23. 23:58

1. 스팸 메일의 개념

스팸 메일을 차단하는 방법을 논하기에 앞서, 스팸 메일이 정확히 무엇인지를 짚고 넘어가 보자. 정크 이메일이라고도 하는 스팸 메일은 일반적으로 수신자 목록에 대량으로 전송되는 원치 않는 이메일 메시지를 말한다. 그 메일은 실제 업자들이 보내는 것일 수도 있고, 공격자에 의해 제어되는 스팸 봇에 의해 전송되는 경우도 있다. 사실 후자가 압도적으로 많을 것이다. 스팸이라는 것 자체는 이메일에만 국한되지는 않으며, 문자 메시지나 SNS를 통해 배포될 수도 있다.

 

사실 스팸이라는 것은 그저 성가신 것으로만 간주되지만, 스팸은 피싱으로서 작용할 수도 있다. 그저 스팸이 필터링되지 않은 채로 계속 수신되고, 그로 인해 편지함이 막혀서 문제가 생기는 것이 아니다. 피싱으로 작용할 때의 스팸은 훨씬 위협적인데, 그것에 대한 것을 너무 안일하게 생각하면 안 된다는 것이다. 예를 들어, 회사 이메일 주소로 발신인 아르테타, 제목 '2000만원 당첨 기회! 놓치지 마세요!' 라는 메일이 왔다면, 보통은 본문을 누르지도 않고 당연히 삭제할 것이다. 그런데 발신인이 '인사팀'에 제목은 '사내 해킹 대비 보안 수칙 변경'이라는 이메일이 왔다면, 누군가는 그걸 클릭할 지도 모를 것이다.

 

물론 그것까지 가지 않더라도, 스팸은 그 자체로 분명 공격의 수단이다. 사실 스팸의 수는 점점 감소하는 것이 사실이기는 하다. 그러나 세계적으로 따졌을 때, 현존하는 메일의 85%는 스팸이라고 한다. 우리가 이메일이라는 것을 계속 사용하는 한, 스팸 공격은 우리와 함께할 수밖에 없고, 기업은 그로 인한 보안 비용을 계속해서 지출해야 할 것이다.

 

1.1 일반적인 스팸 기술

ㄱ. 봇넷

봇넷을 사용하면 스패머가 명령 및 제어 서버를 사용하여 이메일 주소를 수집하고 스팸을 배포할 수 있다.

 

ㄴ. 스노우슈 스팸(Snowshoe Spam)

이 기술을 통해 스패머는 광범위한 IP 주소와 이메일 주소를 사용하여 스팸을 널리 배포할 수 있다.

 

ㄷ. 빈 이메일 스팸(Blank Email Spam)

이 기술에는 메시지 본문과 제목이 비어있는 이메일을 보내는 것이 포함된다. 이는 잘못된 반송 주소를 식별하여 이메일 주소의 유효성을 검사하는 디렉터리 수집 공격에 사용될 수 있을 것이다. 어떤 경우에는, 비어 있는 것처럼 보이는 이메일인데 HTML 코드가 삽입되어 바이러스가 숨겨져 있는 메일도 있을 것이다.

 

ㄹ. 이미지 스팸

컴퓨터에서 생성되어 독자가 이해할 수 없는 메시지 텍스트는 보통 JPEG나 GIF 같은 파일로 저장되어 이메일 본문에 위치한다. 이 방법을 통해 스패머는 텍스트 기반 스팸 필터의 탐지를 피하려는 시도를 한다.

 

2. 스팸 메일 차단 방법

스팸 메일 차단 시스템은 일반적으로 광고성 메일 및 음란 메일과 같은 유해한 메일을 발송하는 IP를 차단하는 RBL(Real Time Blocking List)과 SPF(Sender Policy Framework)가 있다.

 

ㄱ. RBL

국내에서의 RBL이란 실질적으로 KISA에서 진행하는 KISA-RBL을 떠올리면 된다. 이것은 한국인터넷진흥원(KISA)에서 무료로 관리·운영하는 실시간 스팸 차단 리스트이다. 국내외로부터 스팸 정보를 실시간으로 취합하고, 이를 다양한 기준에 따라 분석한다. 분석 결과, 스팸 전송에 관련된 것으로 확인된 IP들을 리스트로 생성하며 1시간 단위로 제공하게 된다. KISA-RBL을 이용하면 수신되는 모든 이메일의 발송 IP 확인을 통해 스팸 여부를 판단하여 즉각  차단하므로 메일 서버 등 자원의 불필요한 소모를 방지할 수 있게 된다.

KISA-RBL은 스팸 메일을 1~3 등급으로 분류한다. 등급이 높을수록 차단할 수 있는 스팸의 양은 많아지지만, 오차단 되는 False Positive의 가능성도 높아진다. 

KISA-RBL은 이메일 수신량이 1일 10만 통 이하인 경우에만 신청 가능하며, 별도의 소프트웨어 설치는 필요치 않다. 메일 서버가 KISA-RBL만 참조하도록 설정만 건드려주면 되기에 간편하게 이용할 수 있다. 또한, 위에서 3개 등급에 대해 말했지만, 1등급에 해당하는 RBL만 제공된다고 보면 된다.

 

※ White Domain

정상적으로 발송하는 대량 이메일이 RBL이력으로 간주되어 차단되는 것을 방지하기 위한 것이다. 사전에 등록된 개인이나 사업자에 한하여 국내 주요 포탈사이트로의 이메일 전송을 보장해준다. 따라서 합법적으로, 떳떳하게 대량 이메일을 발송하는 곳이라면 이것에 신청을 해둬야 RBL 등록을 피할 수 있다. 물론, KISA-RBL의 블랙리스트에서 해제하도록 신청할 수는 있지만 시간이 다소 소요될 것이다.

 

ㄴ. SPF(Sender Policy Framework)

국내에서는 메일 서버 등록제라고도 불리는 SPF는 메일 서버 정보를 사전에 DNS에 공개 등록한다. 그러면 수신자는 이메일에 표시된 발송자 정보가 실제 메일 서버의 정보와 일치하는지를 확인할 수 있다. 스팸 발송자는 자신의 신원을 감추기 위해 주소를 스푸핑하는 경우가 많은 것에서 개발된 차단 방식이라 할 수 있다.

발신자는 자신의 메일 서버 정보와 정책을 나타내는 SPF 레코드를 해당 DNS에 미리 등록한다.

수신자는 이메일 수신시 발송자의 DNS에 등록된 SPF 레코드를 확인하여 해당 이메일에 표시된 발송 IP와 대조한다. 그 결과값에 따라 수신을 할지 말지를 결정하는 것이다. 이 기능을 수행하기 위해서는 메일 서버나 스팸 차단 솔루션에 SPF 확인 기능이 설치되어 있어야 한다.

ㄷ. SPAM Assassin

Apache에서 개발한 SPAM Assassin은 Perl 기반 이메일 스팸 필터링 컴퓨터 프로그램으로, 독립적인 스팸 필터링으로 사용하거나, 다른 스팸 필터링의 하위 프로그램으로도 사용할 수 있다. 이 SPAM Assassin은 점수법을 활용한다고 볼 수 있는데, 그것을 토대로 90% 이상의 높은 차단율을 보이고 있다. SPAM Assassin에서는 Rule 기반 하에 헤더와 바디를 분석하여 실시간 차단 리스트인 RBL을 참고한다. 그래서 각각의 룰에 매칭될 경우, 점수를 매겨 총 점수가 기준점을 초과하는지 여부에 따라 스팸 여부를 결정한다. 일종의 지식 기반 스팸 차단이라고도 볼 수 있을 것이다.

 

SPAM Assassin은 이메일을 읽고, 검사를 실행하여 스팸과 관련된 속성과 패턴을 찾는다. 이메일 메시지를 읽을 때마다 검사는 수백 번 수행된다고 보면 된다. 그렇게 해서 찾는 것들은 '스팸 이메일 콘텐츠',  '차단 목록 존재 여부', 'DKIM 및 SPF 레코드 구성', '의심스러운 링크 및 첨부 파일', '스팸 관련 용어', '허용되지 않는 스크립트' 등이다.

여기서 DKIM(DomainKeys Identified Mail)은 이것을 확인하여 메시지 소스를 확인하고, 메시지가 전송 중에 변경되지 않았는지를 확인하는 것이다.

 

SPAM Assassin은 오픈 소스인데다 성능도 괜찮은 편이라 한 번쯤 사용해보는 것도 좋을 것이다. 

 

ㄹ. Procmail

Promail은 메일 크기, 내용, 주소, 보낸 사람 등으로 필터링을 지원한다. 사실 이 소프트웨어는 90년에 개발되어 이후 많은 선택을 받기는 했으나, 2014년에 무슨 이유인지 개발자가 유지·관리에 손을 떼었다. 그래서 죽은 것처럼 여겨졌으나, 2020년에 다시 유지·관리를 시작하며 조금 살아난 소프트웨어이다. 그럼에도 사실 promail은 여전한 단점이 남아 있다. MIME과 관련된 메일 처리에는 적합하지 않다는 것이다. MIME 특정 헤더나 문자를 디코딩하거나 인식할 수 없다. 수정이 되기 시작한 후에도 여전히 심각한 취약점이 남아있기에 이것만 사용하는 것은 그다지 권고하지는 않는다.

 

※ Sanitizer

Sanitizer는 Procmail의 ruleset이라고 할 수 있다. 이것은 이메일을 이용한 모든 공격에 효과적으로 대응할 수 있도록 도와준다. 그런데 이 Sanitizer 파일을 윈도우 시스템에서 다운 받을 경우에는 각 라인에서 DOS 시스템의 'end of line' 문자를 제거해 줘야 한다. 사실 잘 모르겠으면 유닉스에서 다운로드 받아 그대로 사용해도 무방하긴 하다. Sanitizer를 사용하기 위해서는 당연히 Procmail의 설치가 선행되어야 하며, 이것은 확장자를 사용한 필터링을 지원한다. 그밖에 MS Office 매크로 검사, 악성 메일 점수, 감염된 메시지 보관장소 설정 등을 제공한다.

 

ㅁ. Inflex

Inflex는 내부 혹은 외부로 발송되는 메일을 검사하고, 첨부파일을 필터링할 수 있다. 첨부파일을 필터링한다는 것이 핵심인데, 이때 첨부파일의 이름을 기준으로 필터링하는 것이다. 설정으로 파일 타입까지 필터링할 수 있도록 할 수 있다. 이건 Procmail이 그랬듯, 개발자가 손을 놓은 서비스라 할 수 있다. 최근 들려오는 소식도 전혀 없는 걸 보면 개발자가 다른 곳에 시간을 쓰기 바쁜 것으로 보인다.

 

 

 

 

 

 

 

 

728x90

'IT보안 학습' 카테고리의 다른 글

교착상태 총정리  (0) 2023.12.25
임계 영역 총정리  (0) 2023.12.24
CPU 스케줄링 기법 총정리  (1) 2023.12.21
프로세스 관리 총정리  (0) 2023.12.20
Sendmail 보안 총정리  (0) 2023.12.19