시스템이야기2007. 3. 2. 16:06
1년전부터 메일로그를 통해 웜·바이러스메일(이하 웜메일로 표기)의 건수와 비율을 분석해왔다.
본인의 서버는 어떤 비율의 웜메일이 들어오는지 궁금한가? 우선 메일서버에 ClamAV를 설치하고, maillog를 남겨라. 그 maillog를 분석하면 된다. 분석하기가 어렵다? 저에게 얘기하면 간단한 쉘 스크립트를 제공하겠다. 단, 반드시 분석결과를 공개해야 한다. ^^*

* 분석 기간 : 2007.2.16(금) 04:00 ~ 2.26(월) 04:00 (10일간), 설연휴 포함
* 분석 방법 : - 메일로그를 활용
              - ClamAV 안티바이러스툴을 이용하여 메일이 필터링된 기준
               (따라서 필터링안된 웜메일은 분석자료에 포함하지 않음)
* 웜메일 건수 : 18,396건 (1일 평균 1,839건)

1월에는 Bagle웜이 50.27%, W32.Virut.A가 12.10%, Bagz웜이 11.32%를 차지했다. 이번에는 Bagle웜이 40.28%, Bagz웜이 35.01%, SomeFool웜이 7.08%로 Bagz웜의 활약(?)이 돋보인다.
KRCERT( http://www.krcert.or.kr/ ) 에서 발표한 '2007년 01월 해킹 바이러스 통계 및 분석 월보'의 '주요 웜·바이러스별 신고현황'에서도 1위가 Bagle, 2위가 Bagz이었다.
시간대별로는 1월에는 출근시간 이후인 오전 8~10시 사이의 비율이 높았으나, 이번에는 출근시간 이후에 밤시간대까지 4% 이상의 비슷한 비율을 유지했고, 20시대에만 7.84%의 높은 비율을 보였다.

자세한 것은 웜메일 건수와 주요 웜별 건수 분석 (2007년 2월) 을 살펴보기 바란다.
사용자 삽입 이미지

사용자 삽입 이미지

Posted by 좋은진호
시스템이야기2007. 2. 22. 23:04

* 분석 기간 : 2007.1.14(일) 04:00 ~ 1.24(수) 04:00 (10일간)
* 분석 방법 : - 메일로그를 활용
              - ClamAV 안티바이러스툴을 이용하여 메일이 필터링된 기준 (따라서 필터링안된 웜메일은 분석자료에 포함하지 않음)
* 웜메일 건수 : 18,719건 (1일 평균 1,872건)


작년 1월, 2월에는 SomeFool(Netsky웜)과 Mytob 웜이 50%이상, Exploit.HTML.IFrame 이 약 20%를 차지했으나, 이번 기간동안 웜별로는 Bagle웜이 50.27%, W32.Virut.A가 12.10%, Bagz웜이 11.32%를 차지했다. 시간대별로는 이전과 같이 출근시간 이후인 오전 8~10시 사이에 26.61%로 높은 비율을 차지했다.

자세한 것은 웜메일 건수와 주요 웜별 건수 분석 (2007년 1월) 을 살펴보기 바란다.
사용자 삽입 이미지

사용자 삽입 이미지

Posted by 좋은진호
시스템이야기2007. 2. 16. 00:05
매일경제 DNS의 SPF 레코드 설정에 잘 못된 부분이 있다. SPF는 메일주소를 위조해서 보내는 것을 방지하기 위한 스팸 필터링 정책중의 하나로, SPF에 대한 자세한 것은 '스팸필터링을 위한 SPF 설정과 운영'에 적어둔게 있으니 참고하기 바란다.

설정 실수와 관련하여
- 지난 1월에 메일을 4번(1.9, 1.13, 1.17 2번)
- 매일경제 홈페이지의 '서비스 문의'에서 2번
을 알려드렸으나 수정이 없었다. 제가 직접적으로 접근할 방법이 없는 관계로 이 글을 읽고, 매경쪽에 아시는 분이 있면 전달해 주기를 바라면서...

DNS lookup한 결과이다.

$ dig mk.co.kr txt

; <<>> DiG 9.2.4 <<>> mk.co.kr txt
;; global options:  printcmd

... 생략 ...

;; QUESTION SECTION:
;mk.co.kr.                      IN      TXT

;; ANSWER SECTION:
mk.co.kr.               86400   IN      TXT     "v=spf1 ip4:220.73.139.52 ipv4:220.73.139.81 ip4:220.73.139.82 ip4:220.73.139.201 ip4:203.238.57.9 ipv4:203.238.57.6 ~all"

;; AUTHORITY SECTION:
mk.co.kr.               86400   IN      NS      ns.mk.co.kr.
mk.co.kr.               86400   IN      NS      ns2.mk.co.kr.

위의 'ipv4:220.73.139.81' 과 'ipv4:203.238.57.6' 은 'ip4:220.73.139.81' 과 'ip4:203.238.57.6' 로 수정해야 한다. ip4를 ipv4로 잘 못 표기한 것이다. @mk.co.kr 에서 오는 메일을 받는 분 중에서는 경우에 따라 필터링되어 못 보는 경우가 생길 수 있다. (못 보는 경우가 있다는 것은 수신측 필터링 강도(softfail까지 모두 필터링해라)에 따라 달라질 수 있음을 의미함) 저는 매경 메일을 whitelist에 넣어서 잘 받고 있지만, 읽고 싶어도 필터링되어서 못 읽는 안타까운 분들이 없기를 바라는 맘이다.

SPF 레코드를 설정하신 엔지니어는 1) 본인의 설정은 잘 못된 것은 없는지, 2) 그리고 송신할 메일서버의 IP는 빠짐없이 SPF 레코드에 등록을 했는지 다시 한번 확인해보기 바란다.


Posted by 좋은진호
시스템이야기2007. 2. 14. 22:38
사용자 삽입 이미지

KISA의 내부 메일을 통해서 내 블로그를 들어온게 있네?
어느 페이지를 본 것인지 확인이 안되지만 최근에 국내 DDoS공격 사례와 공격당한 root DNS, 엠파스의 장애 관련 포스팅을 한 것 때문인 것 같다. 걸어둔 '다음 웹인사이드'로 분석이 안되어서, KISA홈페이지에서 링크(메일과 무관하게) 된 거라도 있는지 무심코 살펴보았다.

 KISA 동향정보
사용자 삽입 이미지

어? KISA홈페이지의 동향정보에 '엠파스, 인터넷서비스 한때 차질'이라는 제목의 신문기사 링크가 있네? 동향정보에 올라오는 글은 보안, 해킹 관련 사항일 거라는 가정하에 다른 포털의 장애건 검색을 위해 '네이버', '장애', '차질' 검색어로 KISA 통합검색을 해봤지만 나오는게 없다. 보안 이외의 장애건에 대해서는 동향정보에 올리지 안는다라는 결론인데. 그럼 엠파스 장애는 공격때문?
국내는 큰사이트일수록 장애 원인을 발표하지 않는터라 궁금증만 커진다.


그러저나 '다음 웹인사이드'의 유입검색어 분석을 보니 9개가 DDoS공격 관련 검색어라니..
몇주전에는 UCC, 동영상, 사진, DieHard가 주검색어였는데, DDoS에 대한 관심이 대단하다.
사용자 삽입 이미지

※ 잡다한 생각이라 제목을 뭘로 써야할지 애매하더라...
Posted by 좋은진호
시스템이야기2007. 2. 13. 00:03
지난 2006년 6월 1일 FreeBSD기반의 오픈소스 NAS서버인 FreeNAS에 대해 소개한 적이 있다.

* 오픈소스 NAS 서버, FreeNAS ( 2006.6.1, 글 좋은진호 )

HowtoForge에 버전 0.68기준으로 iso파일로 CD를 구운 후 부팅과 설치하는 화면을 자세히 설명하고 있다.

http://www.howtoforge.com/network_attached_storage_with_freenas

- FreeNAS 설치
- 네트웍 인터페이스 정의
- GUI환경에서 네트웍 설정
- 스토리지 설정
- 서비스 설정 (CIFS, FTP, sshd, ...)
- RAID 구성
- ...

사용자 삽입 이미지
[ 사진출처 : 위 URL ]

안타깝지만 직접 가서 살펴보길...
지금 졸립고, 낼 새벽에 출장을 가야해서 간단히 마무리한다.
Posted by 좋은진호
시스템이야기2007. 1. 20. 03:43
무료 Antivirus툴인 ClamAV( http://clamav.net/ )은 sendmail + ClamAV 조합으로 수신되는 메일의 바이러스를 검사할 수도 있고, 윈도에서는 ClamAV 바이러스 엔진을 사용한 ClamWin( http://www.clamwin.com/ )으로 바이러스 검사를 할 수 있다. 바로 이 clamav의 php용 라이브러리인 php-clamavlib으로 php에서 바이러스를 검사하는 방법을 'How To Automatically Scan Uploaded Files For Viruses With php-clamavlib'에서 소개하고 있다.

http://www.howtoforge.com/scan_viruses_with_php_clamavlib

사용은 간단하다.

1. php-clamavlib php extension을 설치하고
2. php.ini 을 설정
3. cl_setlimits() 함수로 검사 조건 설정한 후
4. 업로드 파일을 cl_scanfile(파일경로) 함수로 검사한 후 return 결과에 처리하면 된다.
5. 그리고, cl_info()과 clam_get_version() 함수로 clamAV 정보를 얻을 수 있다.

중요한 것은 freshclam으로 Virus DB를 업그레이드해줘야 최신 바이러스까지 검사가 가능하다.

이미지 출처 : 위에 소개한 URL에서
사용자 삽입 이미지


Posted by 좋은진호
시스템이야기2007. 1. 10. 13:43
제목을 보고 영화 'Die Hard'를 생각하고 클릭했을지도 모르겠다. 그러나 제목은 너무나도 정직하게 쓰여졌다. 보안 취약성을 막기위한 라이브러리 이름이 DieHard다. ^^* 이 라이브러리는 Linux, solaris등에서 사용하여 여러 프로그램을 보안문제로 crash되는 것을 막을 수 있으며, Windows에서는 Mozilla/Firefox (Firefox 1.5.x, 2.0.x)만 보호할 수 있는 DieHard를 제공한다.
 
http://www.diehard-software.org/
http://www.cs.umass.edu/%7Eemery/diehard/download/ (download)
 
리눅스에서 사용하는 방법은 간단하다. 위 사이트에서 download받은 후에 LD_PRELOAD 환경 변수에
DieHard 경로만 지정해주면 된다.

setenv LD_PRELOAD /path/to/diehard/libdiehard.so
 
로긴후애 항상 DieHard를 통해 사용하고 싶다면 $HOME/.bash_profile 에 위 한줄만 넣어주면 된다. 다음은 명령 실행시 libdiehard.so 라이브러리를 사용하고 있음을 확인한 것이다. 제 PC(Linux)에서 사용중인데, 지금까지 문제없이 잘 쓰고 있다.
 
# lsof |grep diehard
top       31131 truefeel  mem       REG    8,8   232204    1700624 /home/truefeel/diehard/libdiehard.so
lsof      31103 truefeel  mem       REG    8,8   232204    1700624 /home/truefeel/diehard/libdiehard.so
grep      31104 truefeel  mem       REG    8,8   232204    1700624 /home/truefeel/diehard/libdiehard.so
lsof      31105 truefeel  mem       REG    8,8   232204    1700624 /home/truefeel/diehard/libdiehard.so

개발자 Berger는 MS에서 3만달러, 인텔에서 3만달러, 미 국립과학재단(National Science Foundation)에서 30만달러를 지원받았으며, MS 연구원 Ben Zorn과 함께 개발하였다.

DieHard 라이브러리에 대한 http://www.cyberciti.biz/tips/howto-protect-bufferoverflow-security-vulnerabilities.html 도 참고해보라.
Posted by 좋은진호
시스템이야기2006. 12. 17. 22:07
커피닉스는 iptables을 이용해서 DROP시 로그를 남기도록 개인방화벽을 사용한다. 로그 남기는 것 없이 DROP만 하는 분도 있는데, 어떤 공격이 어느 정도 시도가 있는지 모르는 답답함 속에 살지 말고 꼭 남겨서 로그 확인해보면 인터넷이 얼마나 오염됐는지 확인해보길.. ^^*
(FreeBSD에서도 ipfw에 log 설정으로 남길 수 있음)

iptables -N Drop_Log
iptables -A Drop_Log -j LOG
iptables -A Drop_Log -j DROP

iptables -A INPUT ... 생략 ... -j Drop_Log  <-- 이런 룰이 몇개 쭈욱 있겠죠.

messages 등의 파일에 다음과 같은 로그가 쌓인다.

Dec 17 21:10:35 xxxxx kernel: IN=eth0 OUT= MAC=...생략... SRC=xxx.xxx.xxx.xxx DST=yyy.yyy.yyy.yyy LEN=48 TOS=0x00 PREC=0x00 TTL=120 ID=24837 PROTO=TCP SPT=4339 DPT=139 WINDOW=64240 RES=0x00 SYN URGP=0

문득 어느정도 어느 포트로 들어오나 궁금해서, 최근 몇시간 것만 뽑은 후 awk 몇 번 돌리고, uniq, sort 이용하니
- TCP 139, TCP 1433, TCP 135등 Windows용 포트와
- vnc, radmin등이 사용하는 5800, 4899포트 등이 대부분인 걸 수치로 확인할 수 있었다.

※ 맨 앞부터 건수, 다음 TCP/UDP, 포트
    71 TCP 139  (netbios-ssn)
    57 TCP 1433 (ms-sql-s)
    30 TCP 135  (epmap)
    23 TCP 5800 (vnc)
    13 TCP 4899 (radmin)
     8 UDP 1026
     8 TCP 445  (microsoft-ds)
     7 UDP 500
     6 UDP 137  (netbios-ns)
     6 TCP 5900 (vnc)
     6 TCP 443  (https)
     5 UDP 1027
     5 TCP 22   (ssh)
     4 TCP 4769
     3 TCP 8080 (proxy, web 등)
     3 TCP 2100 (amiganetfs)
     2 TCP 55055
     2 TCP 1338
     2 TCP 1024
     2 TCP 10000 (ndmp)
     1 TCP 36604
     1 TCP 35092
     1 TCP 3389

참고로 국내외의 포트스캔에 대한 정보는 다음 사이트에서.

http://ftp.kreonet.re.kr/flow/index.html

http://isc.sans.org/port_report.php
Posted by 좋은진호