XHTML   CSS

TODAY 1,459
TOTAL 1,730,816

지엠스팸프리(ZmSpamFree) 일부가 뚫렸음을 확인했습니다.

알림판 10번

NAME지앤미 TIME2011-08-26/16:37:11READ6591
TAGPOP0

1. 소스 공개 후 2년 9개월여...

2008년 11월 1일에 소스 공개된 지엠스팸프리(ZmSpamFree)가
스팸봇에 의해 일부 뚫렸음을 개발자인 제가 직접 확인하여 알려 드립니다.
물론 그 이전에도 뚫렸다는 보고가 들어오곤 했지만
제가 직접 확인할 수 없거나,
스팸로봇일 확률이 낮은 현상들만 확인할 수 있었습니다.

이곳 홈페이지를 포함하여 제가 관리하는 홈페이지들은 아직 이러한 현상을 볼 수 없었습니다.
(어느 웹호스팅 서비스를 이용하는가의 문제도 영향을 끼칠 것으로 생각합니다.)
하지만, 지인의 홈페이지를 통해서 지엠스팸프리(ZmSpamFree)의 숫자 캅챠(CAPTHCA)가 뚫렸음을 확인할 수 있었습니다.
소스 공개 후 2년 9개월여 만의 일이고,
단순한 숫자가 아닌 '큰 수는?' 또는 '더하기' 등의 문제는
당분간 뚫기 어려울 것으로 보입니다.

아래 로그파일을 보시죠.

2. 지엠스팸프리(ZmSpamFree) 로그파일

아래 이미지는 지엠스팸프리(ZmSpamFree)에 내장된
접속로그 파일중 Denied.php 파일 내용입니다.
글쓰기를 시도하는 사람 또는 스팸봇들이
어떤 행위(?)를 하는지 낱낱이 기록됩니다.
(로그파일에 대한 자세한 설명은 잦은질문 → 14번 게시물에서 확인해 주세요.)

지엠스팸프리(ZmSpamFree) 스팸글 등록 시도 로그 분석 1


네? 뭐가 뭔지 모르겠다구요?
그래서 위 로그파일 내용을 아래와 같이 정리해 보았습니다.
위의 자료와 아래 자료는 동일한 내용입니다.

3. 지엠스팸프리(ZmSpamFree) 로그파일 분석

지엠스팸프리(ZmSpamFree) 스팸글 등록 시도 로그 분석 1


지금까지는 지엠스팸프리(ZmSpamFree) 설정을 단순하게
2자리 수만 보이는 대로 입력하도록 설정해 왔습니다.
'34' 또는 '56' 등 말이죠.
그런데 스팸글이 마구 등록되기 시작했습니다.

그래서, 어젯밤에 '큰 수, 작은 수'로 문제 종류를 바꾸었습니다.
위 도표에서 보이는 문제와 같이 말이죠.

빨간색 글자로 된 것이 스팸봇이 입력한 스팸방지코드입니다.

약 3시간 사이 차단된 스팸게시물의 로그만 봐도
스팸봇의 몇 가지 유형을 볼 수 있습니다.

1. 솔직형
위 도표에서 24번을 보시면 스팸로봇이 물음표 '?' 한 개만 남겼습니다.
모르면 모른다고 하는 솔직한 스팸봇이죠.
이 스팸봇은 '67과 93중 작은 수는?'이라는 문제를 받았습니다.
정답은 67이겠지만, 이 스팸봇은 67이라는 숫자도, 93이라는 숫자도 읽지 못하고
정직하게 물음표 한 개 남겼습니다.
전 아무리 스팸봇이라도 솔직한 녀석은 좋아합니다.
(농담입니다. 아마도 문제에서 물음표 1개만 인식한 듯...)

2. '뭐라도 써 넣자' 형
한 번쯤 겪어 보셨을 겁니다.
학창시절 수학시험 주관식 문제의 답을 도저히 몰라
-1 또는 1/2 을 써 넣었던...

'h'를 써 넣은 25번 스팸봇,
'blank'를 써 넣은 26번 스팸봇,
'taxt'를 써 넣은 32번 스팸봇이 이러한 유형입니다.

스팸방지 문제가 뭔지 신경쓰지 않고
뭐라도 입력하면 넘어가겠지... 하고 아무렇게나 써 넣고 보는
단순무식한 녀석들이지요.

3. '나 좀 읽을 줄 알거든?' 형
훌륭한 녀석들입니다.
위 로그의 대부분을 차지하고 있습니다.
1번 스팸봇: 62와 86중 큰 수는? 이라는 질문에 '6286'을 입력.
2번 스팸봇: 4와 44중 큰 수는? 이라는 질문에 '444' 입력.
5번 스팸봇: 57과 51중 작은 수는? 이라는 질문에 '5751' 입력.

이 녀석들은 이미 숫자를 읽을 줄 압니다.
스팸봇 개발자들 중 거의 대부분은 아마도 외국인일 것이기에
알파벳과 숫자를 충분히 인식할 수 있도록 개발했을 것입니다.

하지만 한 가지 안타까운 점은
두 개의 수 중 한 가지를 골라야 하는 문제인데
인식된 모든 숫자를 나열하여 써 넣는다는 것이죠.
위 도표에서 대부분의 스팸봇들의 입력값을 보시면
이처럼 두 종류의 수를 모두 읽어서 나열하여 입력한 것이 확인됩니다.

이런 훌륭한 스팸봇들의 숫자 인식률은 매우 뛰어나다는 사실을 알 수 있군요.
하지만 100%로 볼 수 없는 것이, 가끔 오답도 보입니다.

31번의 경우에는 98 25 인데, 92 25로 입력해 놓았네요
35번의 경우에도 37 70 인데, 87 70으로 입력했구요.

그래도 어쨋든 훌륭합니다.

하지만, 이 중에서 가장 뛰어난 녀석을 발견했으니...

4. '인공지능' 형
스팸봇의 종결자는 바로 19번 스팸봇입니다.
문제가 '40과 5중 큰 수는?'이었는데, 두 수를 더해서
'45'를 입력했습니다.

만일 문제가 '40 더하기 5는?'이었다면
지엠스팸프리(ZmSpamFree)가 인간으로 인식하고 머리를 조아리며
들어 가시라고 안내했겠지요.

컴퓨터 입장에서야 40 + 5 정도의 덧셈이야 식은 죽 먹기겠지만
스팸방지이미지에서 2개의 수를 읽어 계산까지 할 정도가
현재 스팸봇 프로그램의 수준이라는 것을 알 수 있는 한 줄이었습니다.

4. 현재 스팸봇의 수준


스팸봇은 이제 이미지의 숫자, 알파벳 정도는 쉽게 인식할 수 있습니다.
그리고 덧,뺄셈과 같은 연산능력도 갖추고 있습니다.

하지만, 한 가지 다행이라면
스팸봇 개발자들의 대부분이 한국인이 아닌 외국인이고
한글까지 손을 대려면 아직 세월이 더 필요할 듯하다는 것입니다.

지엠스팸프리(ZmSpamFree)를 개발하며
'일이삼사오' 등의 숫자 한글 출력기능도 넣는 것을 생각지 못했던 것은 아닙니다.
구현이 어려웠던 것도 아니구요.
하지만, 스팸봇을 막기 위해, 한글을 모르는 외국인까지 차단시키는 프로그램을
만들고 싶지는 않았습니다.
그래서 '더하기', '빼기' 등의 한글 외에
'PLUS', 'MINUS' 등의 영문 출력 기능도 넣었던 것입니다.

웬만하면 스팸방지 이미지에
언어를 차별하는 '한글' 등의 특정 언어를 사용하고 싶지 않았습니다.
스팸봇의 진화에 따라,
앞으로 캅챠(CAPTCHA)는 어떻게 진화해 나가야 할지 생각해 볼 작금의 상황입니다.

5. 지엠스팸프리(ZmSpamFree)의 대처 방법


숫자 네 자리(예: 4591), 또는 영문(예: ADSF) 등은 더 이상
스팸방지기능을 할 수 없다고 판단됩니다.

하지만, 아래와 같은 스팸방지 문제 종류들은
여전히 제 역할을 할 것으로 기대합니다.

1: '1234 와 5678 중 큰 수는?'
2: '1234 와 5678 중 작은 수는?'
3: '83 더하기 5는?'
4: '94 빼기 3은?'

개인적으로 산수에 매우 취약한 저로서는
덧셈 뺄셈 문제를 상당히 꺼려합니다.

따라서, '큰 수' 와 '작은 수'를 구하는 정도로 설정하시면 좋을 듯합니다.

이러한 문제 설정은 지엠스팸프리의 환경설정 파일인
zsfCfg.php 를 조금만 고치시면 쉽게 바꿀 수 있습니다.

해당 파일의 약 41번째 줄의 $zsfCfg['codeForm']의 값을 아래와 같이 고치세요.

$zsfCfg['codeForm'] = array( 1, 2 );


위와 같이 설정하면 '큰 수'와 '작은 수'에 대한 문제를
무작위로 만들게 됩니다.

산수에 능한 사용자들의 커뮤니티 홈페이지라면
아래와 같이 설정하시면
무려 5 종류의 문제를 무작위로 만들어 냅니다.

$zsfCfg['codeForm'] = array( 1, 2, 3, 4, 5 );



외국인 사용자들을 위해서라면
위 환경설정 파일의 약 88번째 줄의
$zsfCfg['view'] 의 값을 바꾸시면
'88 더하기 3은?'이라는 한글 문제 대신
'88 PLUS 3?'이라는 영문 문제를 만들어낼 수도 있습니다.

지엠스팸프리(ZmSpamFree)의 대처 방법은
여기까지입니다.

2011-09-28/22:32:42 last modified.

알림판

NoCatSubjectDateRead
12 알림 숫자 4자리 문제는 쉽게 뚫립니다. 2014-02-27 4806
11 알림 지엠스팸프리(ZmSpamFree) 오픈소스 프로젝트를 마칩니다. 2011-09-08 6922
10 필독 지엠스팸프리(ZmSpamFree) 일부가 뚫렸음을 확인했습니다. 2011-08-26 6592
8 안내 지엠스팸프리(ZmSpamFree)가 뚫리고 있는 것 같습니다. 2010-12-13 3832
9 안내   └ 정정합니다. 2011-02-09 3126
7 알림 제로보드4를 사용자를 위한 지엠이지델 배포 2010-10-20 2794
6 안내 1.0 버전 배포 1주년 기념으로 1.1 버전을 공개합니다. 2009-11-02 3086
5 알림 사용하시는 분들께 딱 한 가지만 부탁 드립니다 2009-03-03 5230
4 알림 지엠스팸프리(ZmSpamFree) 1.0 배포합니다. 2009-03-01 3124
2 안내 홈페이지 및 프로젝트 정식 오픈 2008-11-02 2688
1 안내 정식 오픈 준비중입니다. 2008-10-30 2323

Elapsed 1.8398 sec.