이글은 ModSecurity 2.x를 기준으로 작성 되었습니다.

아래에 나열되는 User-Agent(이하 ua)들은 현재 이서버에서 차단하는 ua들이고 확실히 정상적인 ua는 아니라고
판단, 차단하고 있습니다. 실제 적용시에는 SecRuleEngine 설정을 DetectionOnly로 설정후 테스트 해보시기 바랍니다.

#file modsecurity_crs_10_config.conf
SecRuleEngine DetectionOnly

또한 corerule에 포함된 설정은 제외했고 추가 ua차단 rule에 대해서만 기술(?)합니다.

특정 ua차단의 경우 apache 웹서버단에서도 가능하지만 좀더 유연하고 여러가지 다양한 설정이 가능하고
개인적으로 선호(?)하는 modsecurity를 이용한 차단을 하고 있습니다.

운영중인 서버에 남은 apache log, auditlog를 오랜기간 분석(?)해 추려낸 ua 목록입니다.

아래 설정중 severity, rule id, msg등은 변경가능 합니다. "#"는 주석, ""는 줄바꿈의 의미로 사용되었습니다.

# ua header에 "가 있는 ua
SecRule REQUEST_HEADERS:User-Agent """
        "log,phase:1,auditlog,drop,exec:/usr/bin/modsec2ipt.pl,msg:'MZ5'"

# ua header 처음이 user-agent또는 webcollage로 시작하는 ua
SecRule REQUEST_HEADERS:User-Agent "^user-agent|webcollage"
"log,auditlog,drop,msg:'UA',,id:'990902',severity:'2'"

# 기타 차단 ua들
SecRule REQUEST_HEADERS:User-Agent "b(ax)$"
     "log,auditlog,drop,exec:/usr/bin/modsec2ipt.pl,msg:'ax',severity:'2'"

SecRule REQUEST_HEADERS:User-Agent "webripper|w0000t|larbin|anonymous|avwvaxsrwhrvpcbvmwot"
"log,auditlog,drop,exec:/usr/bin/modsec2ipt.pl,msg:'WebRipper',severity:'2'"

# 중국쪽 게시판 스패머들이 사용한것으로 확인된 ua (google 검색을 이용해 게시판을 찾기도 하더군요.)
# 게시판 검색시 쓰인 검색어: "board.php 사이트주소 HTML 글쓴이 비밀번호"
# qqdownload의 경우 스패머가 아닌 정상적인 사용자일 가능성이 있으므로 사용에 주의 요망
SecRule REQUEST_HEADERS:User-Agent "qqdownload|tencenttraveler|psp|webster|cncdialer"
"log,auditlog,drop,exec:/usr/bin/modsec2ipt.pl,msg:'UA',id:'990902',severity:'2'"

SecRule REQUEST_HEADERS:User-Agent "^java|windows 95|hmsbot|Toata dragostea mea pentru diavola"
"log,auditlog,drop,exec:/usr/bin/modsec2ipt.pl,msg:'UA',id:'990902',severity:'2'"

SecRule REQUEST_HEADERS:User-Agent "plantynet|compatible;msie"
"log,auditlog,drop,msg:'PlantyNet',,id:'990902',severity:'2'"

# 이 rule의 경우도 정상적인 사용자가 있을 수 있으나 극히(?) 적을것으로 예상됩니다.
SecRule REQUEST_HEADERS:User-Agent "win 9x 4.90)$"
"log,auditlog,drop,msg:'Win 9x 4.90',id:'990902',severity:'2'"

SecRule REQUEST_HEADERS:User-Agent "b5.1;1813)$"
"log,auditlog,drop,msg:'UA',severity:'2'"

SecRule REQUEST_HEADERS:User-Agent "bwindows xp)$"
"log,auditlog,drop,msg:'XP',severity:'2'"

# 정상적인 ua는 아닌것으로 보이나 특정 프로그램(webhard등)이 이 ua를 달고 오는 경우가 있습니다.
SecRule REQUEST_HEADERS:User-Agent "mozilla/3.0 (compatible)$"
"log,auditlog,drop,msg:'mozilla30'"

# crank라는 hack tool이 사용하는 ua
SecRule REQUEST_HEADERS:User-Agent "^cr4nk.ws"
"auditlog,phase:1,drop,exec:/usr/bin/modsec2ipt.pl,msg:'cra4nk',,id:'990902',severity:'2'"

# ua header가 비어있는 경우
SecRule REQUEST_HEADERS:User-Agent "^$"
"log,auditlog,phase:1,drop,msg:'UA require',,id:'990902',severity:'2'"

# coppermine gallery의 보안 취약점을 공격했던 ua
SecRule REQUEST_HEADERS:User-Agent "winnie poh"
"log,auditlog,phase:1,drop,exec:/usr/bin/modsec2ipt.pl,msg:'UA2',,id:'990902',severity:'2'"

# mozilla/7.0이라는 괴상한(?) ua를 달고 오는 녀석도 있습니다.
SecRule REQUEST_HEADERS:User-Agent "^Mozilla/7.0"
"log,auditlog,phase:1,drop,exec:/usr/bin/modsec2ipt.pl,msg:'Mozilla7',,id:'990902',severity:'2'"

Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; DigExt)라는 ua를 달고 오는 녀석들도 있는데 이메일 수집기
(또는 유사 프로그램)일 가능성이 매우 높습니다. 주기적으로 모니터링한 결과 10여개의 ip가 수집되었고 국내가
대부분이고 해외에서 접속하는 경우도 약간 있습니다. 저처럼 스패머를 혐오(?)하는 관리자 분들이라면 모니터링
해보시고 차단하기를 조심스래(?) 권해봅니다 :)
현재는 이 ua가 접근하면 무작위 이메일을 만들어 뿌려주게 설정해 뒀습니다.

[root@free4u tmp]# cat apache_dir/logs/access_log | grep -i "digext" | wc -l
28
오늘만해도 벌써 28번이나 다녀(?)가셨군요.

위에 사용된 regex(정규표현식)이 정확한 것인지는 확신할 수 없으나 현재 잘 돌아가는것을 보니 별 문제는
없는듯 합니다.
regex에 관한것은 서버에 저정해 두었던 한동훈님이 작성한 글을 링크합니다.

문서 제목 : [강좌] Regex (정규표현식) 라이브러리
작성자 : 한동훈 ddoch@email.protected

regex.txt




  1. Favicon of http://free4u.wo.tc/ EcusE 2009.06.10 14:55

    user-agent 목록 참고 사이트 : http://www.user-agents.org/ http://www.useragentstring.com/pages/useragentstring.php

+ Recent posts