로그인
Sign in
1. 개요

최근 Solaris 시스템을 중심으로 Carko라는 이름의 새로운 DDoS 공격 Tool이 많이 발견되고 있어 시스템 관리자들의 특별한 주의가 요구된다. 현재까지 알려진 바에 의하면 Carko는 금년 1월 배포되었던 DDoS 공격 Tool인 "Stacheldraht v1.666 + antigl + yps"의 변종으로서 그 동작도 유사한 것으로 알려졌다.

Carko가 "Stacheldraht v1.666 + antigl + yps"의 변종으로 추정되는 유력한 근거로는 Carko binary를 strings 명령으로 분석한 결과 및 Procedure call tree가 유사하다.

현재 Carko는 주로 snmpXdmid의 buffer overflow 취약점을 이용하여 시스템관리자 권한을 획득한 후 설치되는 것으로 알려져 있다.

※ snmpXdmid의 buffer overflow 취약점은 2001년 3월 중순경에 널리 알려지기 시작한 취약점으로 대응방법은 다음 문서를 참조하기 바란다.

http://www.certcc.or.kr/advisory/ka2001/ka2001-023.txt

Top

2. Carko 탐지 방법

현재까지 CERTCC-KR에 접수된 몇 건의 사고를 분석한 결과 다음과 같이 Carko가 설치된 시스템을 찾을 수 있다. 특히, 네트워크 속도가 현저히 떨어지거나, 문제가 있을 때 Carko와 같은 DDoS Agent가 설치되어 있는지 의심해 봐야 한다.

로컬 시스템에서 검사할 경우 :

1) Carko DDoS agent 프로그램은 대부분 "/usr/share/man/mansps/ddos/" 디렉토리에 설치되어 있으므로 해당 디렉토리가 존재하는지 확인

2) Carko 프로세스를 숨기기 위해 변조된 /usr/bin/ps 프로그램을 설치하는데 다음과 같은 방법으로 확인할 수 있다.

# strings /usr/bin/ps

...

user

/proc

/dev/ptyq

SYS_TEST

...

※ 위에서 /dev/ptyq 라는 문자열이 나오면 이는 변조된 ps 프로그램이다.
이밖에 /usr/bin/adb, /usr/bin/kgmon, /usr/bin/uptime, /usr/bin/w, /usr/bin/ipcs 등의 프로그램 등도 변조된 ps와 똑같은 프로그램으로 바뀐다.

3) "/dev/ptyq" 라는 일반 파일이 있는지 점검한다.

4) 시스템 재부팅시 Carko를 실행하기 위해 시스템 시작 스크립트 파일에 프로그램을 등록해놓으므로 /etc/rc2 , /etc/rc3, ... 등의 파일에 "carko"가 있는지 검사한다.

Top

네트워크 모니터링을 통하여 탐지할 경우 :

1) carko는 ICMP Echo Reply를 이용하여 다른 프로그램과 주기적으로 통신을 하므로 다음과 같이 snoop 명령을 이용하여 탐지할 수 있다.

※ 아래 예에서 일반적인 Ping과 달리 패킷의 사이즈가 1058 bytes 이므로 쉽게 탐지가 가능하다.

[ids:root]:/user/lotus> snoop -V icmp

Using device /dev/hme (promiscuous mode)

________________________________

ids -> valeria.unr.edu.ar ETHER Type=0800 (IP), size = 1058 bytes

ids -> valeria.unr.edu.ar IP D=200.3.120.77 S=172.16.4.150 LEN=1044, ID=63605

ids -> valeria.unr.edu.ar ICMP Echo reply

________________________________

ids -> cobe48.comsat.net.ar ETHER Type=0800 (IP), size = 1058 bytes

ids -> cobe48.comsat.net.ar IP D=200.3.116.48 S=172.16.4.150 LEN=1044, ID=7729

ids -> cobe48.comsat.net.ar ICMP Echo reply

Top

2) ngrep 이라는 도구를 이용하여 carko가 다른 프로그램과 주기적으로 통신하는 내용만을 탐지할 수 있다. carko는 ICMP Echo reply 패킷안에 "skillz"라는 특정 문자열을 포함해서 통신한다.

[ids:root]:/user/lotus/ngrep> ngrep -x "skillz" icmp

interface: hme0 (172.16.4.128/255.255.255.128)

filter: ip and ( icmp )

match: skillz

#

I 172.16.4.150 -> 200.3.120.77 0:0

1a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

00 00 00 00 00 00 00 00 73 6b 69 6c 6c 7a 00 00 ........skillz..

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

...

위와 같이 탐지된 경우 172.16.4.150 시스템에 carko agent가 설치되어 있음을 알 수 있다.

ngrep은 다음 사이트에서 다운로드받아 설치할 수 있다.

http://www.packetfactory.net/Projects/ngrep/

3. 대응방안

Solaris 시스템과 관련된 모든 보안패치를 적용한다. 특히, 최근의 snmpXdmid 취약점에 대하여 다음 문서를 참고하여 보안조치를 한다.

Solaris 보안관련 사이트 : http://sunsolve.sun.com/security

snmpXdmid 취약점 관련 링크 : http://www.certcc.or.kr/advisory/ka2001/ka2001-023.txt


=================
KA-2001-023 Solaris snmpXdmid Buffer Overflow Vulnerability
=================

최초 작성일 : 2001/04/3
갱신일 :
출처 : http://www.securityfocus.com/vdb/?id=2417
작성자 : 김상철, ksch@certcc.or.kr


-- 제목 --------------
Solaris snmpXdmid Buffer Overflow Vulnerability
(솔라리스 snmpXdmid 버퍼오버플로우 취약성)


-- 해당 시스템 -------
  Sun Solaris 8.0_x86
  Sun Solaris 8.0
  Sun Solaris 7.0_x86
  Sun Solaris 7.0
  Sun Solaris 2.6_x86
  Sun Solaris 2.6

-- 설명---------------
Solaris는 관리 유연성을 제공하도록 업계 표준인 SNMP 및 DMI 기반의 프로토콜을
지원하며 이러한 역활을 수행해주는 Daemon 프로그램이 "snmpXdmid"이다. Sun
Microsystem's Solaris의 2.6, 7, 8 버전에서의 snmpXdmid 서비스 Daemon은 SNMP 요구
사항을 DMI 요구 사항으로 또는 그 반대로 맵핑하기위해서 사용된다. 이때 Solaris는
매퍼(mapper)를 사용하는데 매퍼는 SNMP 요구 사항을 DMI 요구 사항으로, DMI
요구사항을 SNMP요구사항으로 바꿔주는 SNMP 뷰에이전트 기능을 수행한다. 뿐만
아니라 매퍼는 DMI 서비스 제공자와 SNMP 마스터 에이전트간의 요구 사항 및 반응을
조정하여 DMI 서비스 제공자와 상호작용한다.

snmpXdmid가 SNMP 트랩으로 악의 있는 DMI 요구사항을 해석할 때 snmpXdmid는 버퍼
오버플로우 취약점을 포함하고 있다. 뿐만아니라 snmpXdmind는 루트 권한으로
실행되기 때문에 공격자가 이 취약점을 이용해서 공격에 성공하면 슈퍼유저의 권한을
획득할 수 있다. snmpXdmid는 solaris에서 발견되는 많은 취약점을 갖고 있는 RPC
기반의 프로그램이기때문에 RPC관련 스캔도구를 사용하여 snmpXdmid서비스가 제공되고
있는지 원격에서 탐지할 수 있다.

Local상에서 lsof와 rpcinfo명령어를 사용하여 snmpXdmid 서비스가 제공되고
있는지를 확인할 수 있으며 rpc관련 스캔 프로그램(vetescan등)을 사용하여 프로그램
ID번호 및 portmap정보를 획득할 수 있다.

Local에서
# lsof | grep snmpXdmid
........중간생략
snmpXdmid   339   root 1u  inet 0x60e7ddd0    0t0   TCP *:32779 (LISTEN)
........나머지 생략

remote에서
#rpcinfo -p 172.16.4.150
........중간생략
    100249    1   tcp  32779
........나머지 생략


현재 이 취약점을 이용한 공격도구가 제공되고 있으며, Incident List에서는
이와 관련된 사고가 접수되고 있다. 뿐만 아니라 UnderHacker(wild)들에게 사용되고
있다.
현재 이 취약점에 대한 패치가 제공되고 있지 않기 때문에 취약점의 공격으로부터
피해를 예방하기 위하여 SNMP 및 DMI관련 Management 기능을 사용하지 않으려면
아래의 해결책에 따라 대응하여야만 한다.


-- 해결책 ------------
현재 SUN사에서는 이러한 취약점을 알고 있으며, 이 취약점에 대하여 해결책을
마련하고 있다. Daemon 서비스로 제공되고 있는 DMI 서비스를 제공하지 않는 것이
안전하다. 이는 Solaris 부팅스크립트의 /etc/rc?.d/S07dmi를 /etc/rc?.d/K??dmi로
이름을 바꾸고, '/etc/init.d/init.dmi stop'을 실행하여 실행되고 있는 snmpXdimd
Daemon을 중지시켜야 한다. 또다른 방법으로는 snmpSdmid의 모든 권한을 제거하는
방법으로도 대응할 수 있다. 다음의 명령어를 실행하여 가능하다.
# chmod 000 /usr/lib/dmi/snmpXdmid

------- 참조 사이트 --------------------------
[1] Solaris snmpXdmid Buffer Overflow Vulnerability 권고문
http://www.securityfocus.com/vdb/?id=2417
[2] SNMP 및 DMI 기반의 구성요소
http://www.sun.co.kr/products/software/sys_net/fault/agent/over.html

-------------------------------------------------------------------
한국정보보호센터(Korea Information Security Agency),
Computer Emergency Response Team Coordination Center , CERTCC-KR
전화: 118 (지방 02-118)  Email: cert@certcc.or.kr
====================================================================

조회 수 :
1028
추천 수 :
37 / 0
등록일 :
2003.12.13
16:41:28 (*.193.52.140)
엮인글 :
http://bestceok.com/xe/index.php?mid=sun_faq&document_srl=2921&act=trackback&key=aa5
게시글 주소 :
http://bestceok.com/xe/index.php?mid=sun_faq&document_srl=2921
List of Articles
번호 제목 글쓴이 날짜 조회 수
51 chmod 명령어 사용법 하록 2003-12-13 1017
50 Solaris 2.X signals and their meanings 하록 2003-12-13 612
49 Mount 되어 있는 CD-ROM을 강제로 꺼내기 하록 2003-12-13 664
48 CDE : X - server can not be started on display 하록 2003-12-13 1419
47 Timeout waiting for ARP/RARP packet 하록 2003-12-13 978
46 vi 에서 입력시 한글이 깨지는 현상 하록 2003-12-13 696
45 다양한 플랫폼의 SNMP 취약점 하록 2003-12-13 1541
44 buffer overflow를 방지하는 방법 하록 2003-12-13 489
» Carko 관련 해킹 방지 방법(정보보호센터자료) 하록 2003-12-13 1028
42 tcp_wrapper 설치 하록 2003-12-13 608
41 Componet Manager 2.1 설치 하록 2003-12-13 457
40 T3 Array 재구성 하록 2003-12-13 609
39 A1000 장비에 디스크 추가 하록 2003-12-13 535
38 A5000 어레이에서 디스크 장착 위치 하록 2003-12-13 481
37 Volume manager에서 rootdg volume 만드는 방법 하록 2003-12-13 629
36 Solaris 업그레이드 후 Volume Manager 복구 하록 2003-12-13 453
35 자주 쓰이는 RAID 레벨의 종류 하록 2003-12-13 557
34 Exceed에서 Openwindows 한글 폰트 설치법 하록 2003-12-13 1150
33 메세지가 콘솔창에 뜨지 않고 화면에 직접 나타날 때 하록 2003-12-13 562
32 Unable to get pty! 하록 2003-12-13 528