'Bayesian'에 해당되는 글 1건

  1. 2007/08/17 이메일 안티스팸 시스템의 역사
이메일이 우리 생활에서 아주 중요한 커뮤니케이션 수단으로 자리매김한 것도 어언 10여년이 흘렀다. 동시에 이메일 스팸이 우리를 귀찮게 한 역사도 거의 그와 유사할 것이다. 한동안 이메일 안티스팸에 관한 포스팅을 하지 않았는데, 이번엔 이메일 스팸과 그 스팸을 차단하고 걸러내기 위한 안티스팸의 역사와 종류에 대해서 간략히 정리해보고자 한다. (빠진 것도 많다. 왜냐하면 너무 자세히 적을 경우, 스패머들에겐 아주 좋은 정보가 될 수도 있으므로 그러지 못함을 널리 양해를 구하는 바이다.)

안티스팸 시스템의 변화는 항상 인터넷 사용 환경 및 인터넷 기술의 변화(Spam trend)와 밀접한 관련이 있었다.
우선 아래 연대표를 통해 살펴보도록 하자.

- 90년대 후반
IP 및 static keyword 기반의 white/black list

- 2000 년대 초반 ~ 현재
Traffic shape (dictionary attack 을 대비)
Spam 신고를 통한 reputation
통계적인 방법(Bayesian)

- 2000 년대 후반 : 현재 ~
image detection 등 보다 진화된 기술들


90년대

이메일 안티스팸 기술은 당연히 스팸 기술의 발전과 그 궤를 같이 한다. 그리고 스팸기술은 인터넷 환경 및 기술의 발전의 영향을 받아왔다. 가령, 90년대 후반 PC 방이 아니면 인터넷 전용선을 구경하기 힘들던 시절에는 스패머들도 전용선을 사용하는 이른바 "서버" 를 통하지 않고는 스팸을 보내기가 힘들었다. 그도 그럴 것이 isdn 이나 dial-up modem 따위로는 도저히 ROI 가 안나오기 때문이다. 아무리 허술한 시스템이라고 해도 text 몇자로 구성된 메일 한통 보내는데 적어도 수초가 걸렸을테니까 말이다.

White/Black List 및 Static Keyword 차단
그래서 이 시절에는 안티스팸이 매우 간단했다. 이 스패머들이 사용하는 IP 와 특정 키워드 몇개만 알면 간단하게 막을 수 있었기 때문이다. 스패머들의 IP 는 black list, 선량한 IP 들은 white list 에만 넣어두고 가끔 산발적으로 수신되는 스팸을 차단하기 위해 "sex" 나 "포커" 이런 식의 static keyword 로 체크를 하거나 bad mailfrom 등의  보조수단을 활용하면 거의 완벽했던 시절이다.


2000 년 ~ 현재

2000 년대에는 인터넷 전용선이 대부분의 가정에 보급이 되었고, 2000년대 초반에는 이메일이 커뮤니케이션 수단으로서 아주아주 각광을 받던 시절이다. 그래서 2000년대 초반 이메일 스팸이 굉장히 급증하고 기술도 상당히 다양해지게 된다.

우선 가장 큰 변화가, 전용선 보급으로인해 스패머들이 상당히 빠르고 변화무쌍한 공격이 가능해졌다는 것이다. 수많은 ip 자원과 isdn 이나 dial-up modem 와는 비교도 되지않을 정도의 속도의 전용선을 통해 동시다발적인 그리고 차단되면 얼마든지 ip 를 바꿔가면서 공격이 가능해진 것이다. 사실 이 방법은 아직까지도 제대로 해결하고 있지 못하다. (KisaRBL, Spamhaus 같은 것이 바로 이러한 놈들을 차단하기 위한 방법이지만 쉽지않다.)

스팸 신고제 (Reputation)
이러한 변화를 보다 효과적으로 막기위해 안티스팸 엔지니어들이 고안해낸 방법이 바로 "스팸신고제" 즉 ip 에대한 reputation(평가)를 유저들로부터 직접 받는 것이다. 이 방법의 장점은 요즘 web2.0 에서도 주목받고 있는 개념인 "집단지성"을 활용하는 것이라 하겠다. 그 어떤 인공지능 시스템보다 더 정확한 사람의 생각을 이용한 것이니 신뢰도가 가장 높다할 수 있다.

물론 단점도 있다. 사람이 잠드는 시간 즉 새벽이나 심야 시간을 이용하면 사람이 평가를 내리기 이전에 다 배달이 되버린다는 것이다. 그리고 무한한 ip 자원을 이용할 수 있는 스패머들에게 메일서버란 것은 한낱 공략하기 쉬운 장난감에 불과하다는 것. 언제어디서든 자유롭게 테스트 할 수 있기때문에 고정된 수치 기준에 의한 평가시스템은 스패머들에게 아주 간단하게 뚫릴 수 있다.

Traffic Shapping
Traffic Shapping 이라는 방법이 있다. IP Traffic shape 의 경우, 특정 ip 에서 발생된 traffic 을 모니터링하고 있다가 어떤 임계점(Threshold) 를 넘으면 그 ip 의 traffic 을 일정 수준으로 유지시키는 것이다. 즉, 허용된 수치 이상의 트래픽은 지연처리(Deferr)하거나 반송처리(Reject) 를 하는 것이다. 이 방법은 흔히들 Dictionary Attack 이라고 불리우는 공격에 아주 효과적이다. 어떤 유효한 메일링 리스트를 확보하지 못한 스패머가 마치 금고비밀번호를 풀기위해 1부터 차례차례 번호를 눌러보듯 이메일 주소를 a@xxx.com, b@xxx.com, c@xxx.com 이런식으로 메일을 보내는 경우가 있는데, 이런 공격을 막기에 적합한 것이 바로 Traffic Shape 인 것이다.

통계적인 방법(Bayesian)
흔히들 "인공지능"이란  이름으로 통칭하여 부르는 기계학습(Machine learning)을 이용한 방법이 있다. 이 것은 기존에 특정 패턴에 대응하기 위한 방법들은 항상 스패머들이 조금만 방법을 바꿔도 무용지물이 되기 일 수 인데다, Test 가 너무 쉬워서 그 허점을 들키기도 굉장히 쉬웠다는 점을 극복하기 위한 방법 중 하나이며, 그러한 이유외에 안티스팸의 정확도를 높이기 위한 좋은 방법이기도 하다.

하지만, 아직까지 인공지능이란 분야가 실제 인간의 지능을 따라가기엔 한참 역부족인 것과 마찬가지로 이 방법 또한 그렇게 신뢰도가 높은 방법은 아니다. 어느정도 스팸이 수신이 된 이후에야 그 스팸들을 토대로 차단을 할 수 있기때문에 여러가지 변수가 있을 수 있기 때문이다. 하지만 동시에 상당수 사례에 대해 그 정확성이 어느정도 쓸만한 것도 사실이다.

간단히 설명을 하자면, 우리가 어떤 상황을 판단할때 몇몇 조건들을 기준으로 판단하게 된다. 이점을 이용해 기계를 가르친다고 생각하면 된다. 스팸으로 판단된 메일들의 샘플을 어떤어떤 기준을 갖고 판단할 지 정한 후에 그 스팸샘플들이 만족시키는 조건이 어떤 것인지를 파악한 후 그 결과를 기반으로 비슷한 유형을 보이는 메일들을 스팸이라고 판단하는 것이다. (초간단 설명이라 오해가 있을 수 있음을 인정함.. 어쨋든 이런 개념이란 것만 생각해주기 바람)

아무튼 현재까지 등장한 방법 중 가장 합리적이고, 오판의 확률이 낮은 것이 바로 이방법이라 하겠다.


현재 ~

최근 스패머들은 SpamBot(Zombie) 과 Botnet 을 이용하여, 2000년대 초반보다도 훨씬더 엄청난 자원을 활용하여 거대한 트래픽을 만들어 내고 있다. 동시에 스팸 메세지를 만들어내는 기술 또한 진보하여 링크나 텍스트를 바탕으로 한 스팸필터를 우회하기 위해 이미지를 이용하는 기발함을 보이기도 한다. 물론 이러한 방법들에 대한 대비책들이 이미 다 강구되어 있다.

※ SpamBot 은 인터넷 전용선을 사용하는 일반 가정이나 PC방, 학교, 사무실등의 컴퓨터에 몰래 스팸을 발송하는 로봇 프로그램을 심어놓고 그 것을 이용하여 스팸을 발송하는 데, 그 로봇프로그램을 Spambot 이라하고 그 Sapmbot 이 설치된 컴퓨터를 Zombie(좀비)라 부른다. 또한, Botnet 은 이러한 Spambot 들을 통제하기위해 만들어진 네트워크를 말한다.


이상으로 간략하게나마 안티스팸 기술들의 개요와 역사를 정리해보았다. 지금 이순간에도 스패머들은 자신들의 기술을 이용해 진화를 거듭하고 있으며, 빈틈을 노리고 있으니 언젠가는 분명히 또다른 신기술이 등장할 것이라 확신한다. 따라서 이 싸움은 이메일이 없어지거나 큰 변화를 거치지 않는 한, 끝이 없는 영원한 싸움이 될 것이다.

이메일의 프로토콜 자체가 허술하고 빈약함을 이미 다른 포스팅에서 수차례 밝힌 바 있다. 이 때문에, 항상 사후 약방문이 될 수밖에 없다는 것도 이 자리를 통해 알려주고 싶은 바이다. (언젠가 이 부분도 한번 따로 이야길 해보겠다.)
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 왕구라

트랙백 주소 :: http://gooranet.tistory.com/trackback/136

댓글을 달아 주세요