가. 취약점 개요
■ 내용 : r-command 서비스 비활성화 여부 점검
■ 목적 : r-command 사용을 통한 원격 접속은 NET Backup 또는 클러스터링 등 용 도로 사용되기도 하나, 인증 없이 관리자 원격접속이 가능하여 이에 대한 보 안위협을 방지하고자 함
■ 보안 위협
- rsh, rlogin, rexec 등의 r command를 이용하여 원격에서 인증절차 없이 터 미널 접속, 쉘 명령어를 실행이 가능함
■ 참고
※ Finger(사용자 정보 확인 서비스): who 명령어가 현재 사용 중인 사용자들에 대한 간단한 정보만을 보여주는 데 반해 finger 명령은 옵션에 따른 시스템에 등록된 사용자뿐 만 아니라 네트워크를 통하여 연결되어 있는 다른 시스템에 등록된 사용자들에 대한 자세한 정보를 보여줌
나. 점검방법
■ 대상 : SOLARIS, LINUX, AIX, HP-UX 등
■ 판단기준
- 양호 : 불필요한 r 계열 서비스가 비활성화 되어 있는 경우
- 취약 : 불필요한 r 계열 서비스가 활성화 되어 있는 경우
■ 점검 명령어
OS | 점검 파일 |
- SOLARIS 5.9 이하 버전 |
r-command 서비스 활성화 여부 확인 #vi /etc/inetd.conf |
AIX |
#cat /etc/inetd.conf | grep rlogin (# 처리되어 있으면 비활성화) #cat /etc/inetd.conf | grep rsh (# 처리되어 있으면 비활성화) |
- HP-UX | #vi /etc/inetd.conf r로 시작하는 필드 존재 시 취약 |
SOLARIS 5.10 - 이상 버전 |
#inetadm | egrep "shell|rlogin|rexec" r command 관련 데몬 확인 |
LINUX (xinetd 일 경우) |
rsh, rlogin, rexec (shell, login, exec) 서비스 구동 확인 #ls -alL /etc/xinetd.d/* | egrep "rsh|rlogin|rexec" | egrep -v "grep|klogin|kshell|kexec" |
위에 제시된 파일 내 "r-command 계열“ 서비스가 활성화 된 경우 아래의 보안설정 방법에 따라 서비스 중지 |
다. 조치방법
■ 조치방법 : NET Backup등 특별한 용도로 사용하지 않는다면 아래의 서비스 중지
shell(514), login(513), exec(512)
■ SOLARIS 5.9 이하, HP-UX
Step 1) r 계열 서비스 활성화 여부 확인
# vi /etc/inetd.conf
Step 2) r로 시작하는 필드 주석처리 후 재가동
(수정 전)
shell stream tcp nowait root /usr/sbin/in.rshd in.rshd
shell stream tcp6 nowait root /usr/sbin/in.rshd in.rshd
login stream tcp nowait root /usr/sbin/in.rlogin.d in.rlogind
exec stream tcp nowait root /usr/sbin/in.rexecd in.rexecd
exec stream tcp6 nowait root /usr/sbin/in.rexecd in.rexecd
(수정 후)
#shell stream tcp nowait root /usr/sbin/in.rshd in.rshd
#shell stream tcp nowait root /usr/sbin/in.rshd in.rshd
#shell stream tcp6 nowait root /usr/sbin/in.rshd in.rshd
#login stream tcp6 nowait root /usr/sbin/in.rlogind in.rlogind
#exec stream tcp nowait root /usr/sbin/in.rexecd in.rexecd
#exec stream tcp6 nowait root /usr/sbin/in.rexecd in.rexecd
SOLARIS) # kill -HUP [inetd PID]
HP-UX) # inetd -c
■ AIX
Step 1) r 계열 서비스 활성화 여부 확인
#cat /etc/inetd.conf |grep rlogin (# 처리 되어 있으면 비활성화)
#cat /etc/inetd.conf |grep rsh (# 처리 되어 있으면 비활성화)
#cat /etc/inetd.conf |grep exec (# 처리 되어 있으면 비활성화)
Step 2) /etc/hosts.equiv 파일은 TRUSTED 시스템을 등록
Step 3) .rhosts 파일은 사용자 별로 'r'command를 통해 접근이 가능하도록 설정할 수 있음 ($HOME/.rhosts)
■ SOLARIS 5.10 이상 버전
Step 1) r’command 관련 데몬 확인
svc:/network/login:rlogin svc:/network/rexec:default svc:/network/shell:kshell |
Step 2) inetadm –d “중지하고자 하는 데몬“ 명령으로 데몬 중지
#inetadm -d svc:/network/login:rlogin
#inetadm -d svc:/network/rexec:default
#inetadm -d svc:/network/shell:kshell
■ LINUX (xinetd일 경우)
Step 1) vi 편집기를 이용하여 “/etc/xinetd.d/” 디렉터리 내 rlogin, rsh, rexec 파일 열기
Step 2) 아래와 같이 설정 (Disable = yes 설정)
/etc/xinetd.d/rlogin 파일 /etc/xinetd.d/rsh 파일 /etc/xinetd.d/rexec 파일 service rlogin { socket_type = stream wait = no user = nobody log_on_success += USERID log_on_failure += USERID server = /usr/sdin/in.fingerd disable = yes } |
Step 3) xinetd 서비스 재시작
#service xinetd restart
■ r-command 사용시 보안설정(U-17 점검항목 참고)
Step 1) r command 사용을 허용하는 호스트 및 계정 설정
.rhosts, hosts.equiv 파일에 접근을 허용하는 hostname(IP) 명시
※ IP 등록시 공인 IP 설정은 금지
.rhosts, hosts.equiv 파일의 퍼미션을 600 이하로 설정
필요시 TCP_Wrapper를 이용하여 접근을 허용하는 IP를 등록하여 추가 보안 설정
라. 조치시 영향
■ rlogin, rshell, rexec 서비스는 backup, 클러스터링 등의 용도로 종종 사용되고 있으므로 해당 서비스 사용 유무를 확인하여 미사용시 서비스 중지
(/etc/hosts.equiv 또는 각 홈 디렉터리 밑에 있는 .rhosts 파일에 설정 유무를 확인하여 해당 서비스 사용여부 확인 - 파일이 존재하지 않거나 해당파일 내에 설정이 없다면 사용하지 않는 것으로 파악)