블로그 이미지
redkite

카테고리

분류 전체보기 (291)
00.SI프로젝트 산출물 (0)
00.센터 운영 문서 (0)
01.DBMS ============.. (0)
01.오라클 (117)
01.MS-SQL (15)
01.MySQL (30)
01.PostgreSql (0)
01.DB튜닝 (28)
====================.. (0)
02.SERVER ==========.. (0)
02.서버-공통 (11)
02.서버-Linux (58)
02.서버-Unix (12)
02.서버-Windows (2)
====================.. (0)
03.APPLICATION =====.. (11)
====================.. (0)
04.ETC =============.. (0)
04.보안 (5)
====================.. (0)
05.개인자료 (1)
06.캠핑관련 (0)
07.OA관련 (1)
Total
Today
Yesterday

달력

« » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

최근에 올라온 글

0057. [솔라리스] DMI 서비스

* Solaris10 에서 snmpXdmid / snmp 제거 방법

1. 데몬 프로세스 확인.
# ps -ef | grep snmp
35: 636 ? S 0:03 /usr/sfw/sbin/snmpd
43: 12815 ? S 0:00 /usr/lib/snmp/snmpdx -y -c /etc/snmp/conf
45: 12839 ? S 0:00 /usr/lib/dmi/snmpXdmid -s sgn


2. 서비스 등록 확인.

# svcs | grep dmi
113:online 8월_03 svc:/application/management/dmi:default

# svcs | grep snmp
120:online 15:01:37 svc:/application/management/snmpdx:default

# svcs | grep sma
112:online 8월_03 svc:/application/management/sma:default


3. svcadm 명령으로 disable 시킨다.
# svcadm disable svc:/application/management/dmi:default
# svcadm disable svc:/application/management/snmpdx:default
# svcadm disable svc:/application/management/sma:default


4. ps 및 svcs 명령으로 정상적으로 중지되었는지 확인한다.

# ps -ef | grep snmp
# svcs | grep dmi
# svcs | grep snmp
# svcs | grep sma

  1. 개요
    DMI(Desktop Management Interface) 시스템이란 PC 시스템의 하드웨어 및 소프트웨어 구성요소

들을 중앙에서 관리하고 추적하기 위한 시스템적 접근 솔루션임. SUN의 DMI 서비스도 이와 같은

개념으로 Sun Solstice Enterprise Tools라고 불림. 그러나 DMI서비스는 중앙에서 원격에 존재하는

서버를 관리하는 개념으로 보안상 문제점이 존재함

2. 서비스 제거 방법
- SNMP 사용시 SNMP는 해제하지 말것
# ps -ef | grep snmp
root 156 1 0 6월 15 ? 0:01 /usr/sfw/sbin/snmpd
root 337 1 0 6월 15 ? 0:00 /usr/lib/dmi/snmpXdmid -s
# svcs -a |grep dmi
disabled 6월_15 svc:/network/security/kadmin:default
online 6월_15 svc:/application/management/dmi:default
# svcadm disable svc:/application/management/dmi:default
# svcadm disable svc:/application/management/snmpdx:default
# svcs -a |grep snmp
disabled 3:30:16 svc:/application/management/snmpdx:default
# svcs -a |grep dmi
disabled 6월_15 svc:/network/security/kadmin:default
disabled 3:34:54 svc:/application/management/dmi:default



-- 해당 시스템 -------
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 서비스를 제공하지 않는 것이 안전하다. /etc/rc?.d/K07dmi에서
/etc/rc?.d/s??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
====================================================================


아래도 참고하세요.

현재 Solaris 2.6/7/8 에서 구동되고 있는 snmpXdmid 라는 프로그램의
버그를 이용하여 (remote buffer overflow) carko 라는 DDos agent가 설치되고 있습니다.

우선 carko 가 설치된 위치는 /usr/man/mansps/ddos 라는 디렉토리에 설치되어 있으며
ps 프로그램이 변조되어 있어 이 변조된 ps 로는 carko 라는 process가 실행되어 있는지 확인할수 없습니다.

우선 /dev/ptyq 라는 파일이 있는지 확인한 후 이 파일을 삭제 또는
다른 디렉토리로 이동후에 ps 명령어를 실행시켜야 합니다.

# find /dev -type f
/dev/ptyq
# mv /dev/ptyq /tmp
#ps -ef | grep carko
....
# kill -9 carko_pid

또한 inetd 가 /tmp/.x 를 설정파일로 구동되어 있으므로
/usr/sbin/inetd -s /tmp/.x가 구동되어 있는지 확인해야 된다.
(즉 inetd 가 2개 구동되어 있는 셈이다.)

#ps -ef| grep inetd

그런 후 /usr/lib/dmi/snmpXdmid 의 프로세를 종료시킨다.
#ps -ef | grep snmpXdmid
...

다음으로 /etc/rc3.d에서 자동으로 구동되지 않게 한다.
# mv /etc/rc3.d/S77dmi /etc/rc3.d/k77dmi


그외 Solaris 에서 외부에서 root 권한을 얻을 수 있는 문제 가 알려진 데몬들은 다음과 같다.
받드시 다음프로그램들은 구동시키지 말도록하자.
(/etc/inetd.conf 에서 comment 시켜야 됨)
1) /usr/sbin/sadmind
2) rpc.ttdbserverd


또한 RPC에 관련된 프로그램(NFS, NIS.. )를 사용하지 않는다면
rpc 에 관련된 모든 프로그램은 구동시켜지 않도록 해야 된다.
(/usr/sbin/rpcbind 를 구동시키지 않는다)


# rpcinfo -p your_host_ip

Posted by redkite
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함