보안정보

전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.

스팸 메일 패턴 분석 및 탐지 방법

2018.01.03

23,524


  

 

 

서비스사업본부 보안분석팀 조혁주

 

 

1. 개요

 

일반적으로 스팸 메일은 프로그램을 이용하여 불특정 다수의 사용자에게 송신된다. 송신되는 스팸 메일은 주로 음란물 사이트, 도박 사이트 , 불법 사이트 등을 광고하는 광고성 메일이 대부분이나 근래에는 광고성 메일에 사용자 정보를 탈취하는 악성링크 및 첨부파일이 다수 삽입되어 APT 공격의 주요 수단으로 활용하되고 있다. 

 

2017년에 큰 피해를 준 WannaCry, Locky, Erebus와 같은 대부분의 랜섬웨어 또한 메일을 통해 유포되었다. 이러한 악성 메일도 프로그램을 통해 송신되기 때문에 스팸 메일과 동일하게 고유의 패턴이 존재한다. 즉 악성 메일의 패턴 분석을 통해 악성 메일을 탐지할 수 있다는 뜻이다.

 

이러한 악성 메일에 대응하는 방법은 크게 두 가지로 하나는 메일 사용자들이  ‘의심스러운 메일의 첨부파일 및 URL 접근금지’와 같이 조심하는 것이고, 나머지 하나는 ‘스팸 메일 차단 솔루션’을 이용하여 악성 메일을 차단하는 방법이다. 일반적으로 스팸 메일 차단 솔루션을 통해서 스팸 메일의 70~90%는 차단이 가능하다고 알려져 있지만 “돼지 목의 진주목걸이”라는 말처럼 솔루션의 구매보다 솔루션의 활용이 더 중요하다. 

 

실제로 한 기관에서 도입한 스팸 메일 차단 솔루션의 스팸 메일 탐지 유형별 통계를 확인한 결과, 다음 그림과 같이 솔루션의 기본 기능에 의해 탐지된 ‘바이러스’, ‘APT’, ‘송·수신자’의 통계 수치가 관리자가 직접 작성한 ‘컨텐츠’ 통계 수치보다 낮은 탐지율을 보였다. 해당 기관은 관리자가 스팸 메일 차단 솔루션의 차단 필터 정책을 추가로 작성하여 많은 스팸 메일을 줄일 수 있었다.

 

 

 

[그림 1] 특정 기관의 스팸 메일 탐지 유형별 통계 (17년도 하반기)

 

 

 

이번 호에서는 위와 같이 기업에서 발생하는 스팸 메일 패턴을 분석하고 스팸 메일 차단 솔루션의 필터 정책을 수립하여 기업의 스팸 메일을 통한 악성코드 감염 및 정보 유출을 줄이고자 한다.

 

 

2. 사전 지식

 

1) 메일 헤더

 

스팸 메일을 분석하기 위해서는 기본적으로 메일 헤더를 이해하고 있어야 한다. 특히 메일 전송 경로를 파악하는데 도움을 주는 Received 헤더, 송·수신자 정보의 From과 To 헤더는 스팸 메일 분석을 하는데 반드시 필요한 정보이다. 메일 헤더는 전송될 때 필요에 따라 추가된다. 다음 표는 일반적으로 생성되는 주요 메일 헤더를 나타낸다.

 

번호

메일 헤더

설명

1

From

메일의 송신자 이름 및 계정 정보

2

To

메일의 수신자 이름 및 계정 정보

3

Cc

메일의 참조자 이름 및 계정 정보

4

Bcc

메일의 숨은 참조자 이름 및 계정 정보

5

Subject

메일 본문의 제목

6

Reply-To

수신자가 회신할 이름 및 계정 정보

7

Date

수신자가 메일을 수신한 날짜 및 시간

8

Received

송신된 메일이 어떤 경로를 통해서 전송되었는지의 기록(위의 기록이 가장 마지막 경로)

9

Return-Path

메일 전송이 실패할 경우 반송될 계정 정보로서 일반적으로 MTA에서 송신자의 메일 주소 입력

10

Message-ID

메시지 서버에서 부여하는 메일의 식별 번호

11

X Header

MIME 형식을 따르지 않은 비표준 헤더로서 임의로 붙여지는 헤더

 

  

2) 스팸 메일 유형

 

스팸 메일은 음란물, 금융 사기, 일반 광고, 피싱 사이트 유도와 같은 악성 메일이 해당된다. 음란물 스팸 메일은 성적 호기심을 자극하고 금융 사기 스팸 메일은 금전적 호기심을 자극한다. 피싱 메일은 상호간의 신뢰를 기반으로 상대방을 속이는 메일을 의미한다. 거래처로 위장하여 메일을 전송하거나 위조된 악성 링크, 악성코드가 포함된 메일이 피싱 메일에 해당된다.

 

 

[그림 2] 음란물, 금융사기, 일반 광고, 피싱과 같은 스팸 메일

 

 

 

모든 스팸 메일은 프로그램을 통해 불특정 다수에게 송신되고 있다. 최근에는 스팸 메일에 바이러스, 웜, 피싱, 스파이웨어, Adware 등이 포함되고 있어 더욱 더 주의가 필요하다.

 

특히, 송신자 헤더를 사칭하여 정상적인 메일인 것처럼 무작위로 전송하는 피싱 메일은 스팸 메일의 절반 이상을 차지하고 있다. 근래의 피싱 메일은 단순 사기에만 이용되지 않고 스피어피싱, APT 공격 등으로 이용되고 있다. 통계에 따르면 전체 악성코드의 55.7%가 메일의 첨부파일, 악성링크와 같은 피싱 메일을 통해 유포된다고 한다.

 

 

 

 

[그림 3] Top 5 변종 악성코드와 유입채널로 본 이메일 위협 – 악성코드 유포 경로, 출처 : Verizon, Symantec,proofpoint, Trendmicro, OPSWAT

 

 

악성코드 및 악성링크가 메일을 통해 가장 많이 유포되고 있는 이유는 접근하기 쉽고, 상호간의 신뢰를 악용할 수 있으며 확산성이 용이하기 때문이다. 이러한 이유로 다음 ‘악성 메일을 이용한 피해 사례 통계’와 같이 최근 이슈되고 있는 보안 위협의 대부분이 악성 메일로 인해 발생하고 있는 상황이다.

 

 

 

 

[그림 4] Top 5 변종 악성코드와 유입채널로 본 이메일 위협 - 피싱 메일을 통한 피해 통계, 출처 : Verizon, Symantec,proofpoint, Trendmicro, OPSWAT

 

 

3. 스팸 메일 패턴 분석

 

일반적으로 기업에서는 스팸 메일 위협에 대응하기 위해 스팸 메일 차단 솔루션을 활용한다. 솔루션은 송·수신자 메일 계정 및 IP, 악성코드 패턴 정보, 메일 임계치 등을 기준으로 스팸 메일을 탐지한다. 실시간으로 벤더에서 가지고 있는 패턴 정보를 솔루션에 업데이트하여 스팸 메일을 탐지하게 되는데 패턴에 만족하지 않는 스팸 메일은 수신자에게 그대로 전송되는 ‘미탐’이 발생하게 된다.

 

 

  

[그림 5] 탐지되지 않고 그대로 전송된 스팸 메일

 

 

솔루션이 탐지하지 못한 스팸 메일은 사용자가 탐지 패턴을 정의하여 대응할 수 있다. 탐지 패턴은 메일 헤더 전체에 대해서 정의할 수 있기 때문에 정상 메일과 스팸 메일의 메일 헤더를 확인할 필요가 있다. 다음은 솔루션에서 확인한 정상 메일과 지속적으로 발생하였지만 탐지되지 않은 스팸 메일의 헤더 정보를 나타낸다.

 

 

  

[그림 6] 정상메일과 스팸메일의 메일 헤더 비교

 

 

기업에 따라서 수신되는 스팸 메일 유형은 차이가 있을 수 있지만 분석에 이용된 솔루션에서는 스팸 메일의 메일 헤더가 정상 메일과는 다르게 To 헤더와 Reply-To 헤더의 차이가 있는 것을 확인하였다. 스팸 메일의 메일 헤더들은 회신 주소를 나타내는 Reply-To 헤더가 없거나 “noreply“ 값으로 설정되어 있었고, To 헤더에는 계정 이름이 존재하지 않았다.

 

 

1) To 헤더

 

정상적인 메일에서 To 헤더에는 계정 이름이 포함될 수도 있고, 포함되지 않을 수도 있다. To 헤더의 계정 이름은 메일 송·수신 이력이 존재했던 수신자에게 메일을 보낼 때 포함된다. 상호 간에 메일 송·수신이 없다면 정상적으로 계정 이름이 포함되지 않는다는 것이다. 다음 그림을 통해 To 헤더에 계정 이름이 포함되는 시기를 알 수 있다.

 

 

  

[그림 7] To 헤더의 계정 이름이 포함되는 시기(정상 메일)

 

 

스크립트나 프로그램을 통해 송신되는 스팸 메일 대다수의 To 헤더에는 계정 이름 정보가 포함되어 있지 않다.

 

 

2) Reply-To 헤더

 

Reply-To 헤더 값에는 회신(답장) 받을 주소가 포함된다. Reply-To 헤더가 없는 메일은 기본적으로 From 헤더의 값이 Reply-to 헤더 역할을 하게된다. 일반적으로 Reply-To 헤더가 존재하지만 From 헤더 값과 다른 경우에는 DoS 공격을 의심해 보아야 한다. 회신한 메일이 Reply-To 헤더의 사용자에게 보내지기 때문이다.

 

 

 

 [그림 8] Reply-to 헤더에 포함된 정보에 의하여 회신 시 받는사람 자동 지정(정상 메일)

 

 

스팸 메일 스크립트나 프로그램에는 Reply-To 헤더를 생성하는 기능이 포함되어 있지 않기 때문에 대다수의 스팸 메일은 Reply-To 헤더를 포함하고 있지 않다. Reply-To 헤더는 있지만 “noreply” 계정과 같은 발신 전용 계정이 포함되는 경우도 있다.

 

 

4. 스팸 메일 탐지

 

분석된 스팸 메일의 메일 헤더에는 To 헤더에 이름이 포함되어 있지 않고 Reply-To 헤더가 없거나, “noreply”로 지정되어 있었다. 이를 근거로 만들어진 차단 필터는 다음과 같다.

 

 

메일 헤더에 적용된 정규 표현식

AND 조건

설명()

^(?i)To:s*[<"]?[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+[>"]?s?$

 포함되고

To 헤더에 이름이 없는 메일 계정만 있을 경우

To: <xxxxx@xxxxx.com>

^(?i)To:s*"?([a-zA-Z0-9-_.@]+s*){1,3}"?s*<.+@.+>s?$

포함되지 않고

To 헤더에 영문 이름이 포함된 경우

To: “ody1234” <xxxxx@xxxxx.com>

^(?i)To:s*"?=?.+=s*"?s*<.+@.+>s?$

포함되지 않고

To 헤더에 인코딩된 이름이 포함된 경우

To: =?utf-8?B?7KGw7ZiB7KO8?=

^(?i)Reply-To:

^(?i)Reply-To:s*((noreply|no-reply).)+

포함되지 않고

Reply-To 헤더가 없거나, noreply가 포함된 경우

 

※ 해당 솔루션은 64byte까지의 정규식만 입력 가능하였음

 

 

위의 차단 필터를 적용한 결과, 동일한 유형의 스팸 메일은 모두 차단할 수 있었지만 업무에 필요한 정상 메일도 탐지하는 ‘오탐‘이 발생하였다. 보안 관점에서는 정상 메일이 ‘오탐’되는 것보다 스팸 메일 유입이 보안 위협에 대한 우선순위가 높기 때문에 스팸 메일 필터를 우선 차단한 후 ‘오탐’에 대한 예외 처리를 적용해야 한다.

 

 

[그림 9] 차단 필터 적용 전(왼), 차단 필터 적용 후(오른)

 

 

11월 21일 차단 필터를 정용한 후 스팸 탐지 통계를 확인한 결과, 적용한 이후 탐지한 스팸 메일 건수가 폭발적으로 증가한 것을 확인할 수 있다.

 

 

[그림 10] 차단 필터 적용 후 증가한 스팸 메일 탐지 건수

 

 

가끔 탐지된 스팸 메일 중에서 정상 메일(오탐)이 확인되었다. 오탐된 메일 유형은 ‘솔루션 알림 메일’, ‘라이선스 발급 확인‘ 등과 같은 메일이었으며 예외처리를 진행하여 정상 메일로 처리할 수 있다. 다음과 같이 관리자 이외의 일반 사용자도 탐지된 메일에 대한 예외 처리를 진행할 수 있다.

 

  

[그림 11] ‘오탐’ 메일 예외 처리

 

 

5. 참고자료

 

[1] 출처 : Verizon, Symantec,proofpoint, Trendmicro, OPSWAT

 

[2] Hojung’s Lab – 메일 헤더 분석

http://www.ylabs.co.kr/index.php?document_srl=6020&mid=board_centos&search_target=regdate&search_keyword=201009&sort_index=readed_count&order_type=desc

 

[3] Email Header Trace

https://www.ip-adress.com/trace-email-address