본문 바로가기

Infra/리눅스 서버

[리눅스 보안] 서버 관리 - RPC 서비스 확인

[리눅스 보안] 서버 관리 - RPC 서비스 확인



■ 대상 OS : SunOS, Linux, AIX, HP-UX


■ 취약점 개요

    - * RPC(Remote Procedure Call) 서비스는 분산처리 환경에서 개발을 하는 데 있어 많은 이점을 제공하지만, 아래와 같은 서비스들은 버퍼 오버플로우(Buffer Overflow)취약성이 다수 존재하여 root 권한 획득 및 침해사고 발생 위험이 있으므로 서비스를 중지하여야 함.

    rpc.cmsd, rpc.ttdbserverd, sadmind, rusersd, walld, sprayd, rstatd, rpc.nisd, rexd, rpc.pcnfsd, rpc.statd, rpc.ypupdated, rpc.rquotad, kcms_server, cachefsd


    * RPC(Remote Procedure Call) : 분산 환경에서 서버 응용프로그램에 접근하여 특정 작업을 요구하는 Call을 말함


■ 보안대책

    - 양호 : 불필요한 RPC 서비스가 비활성화 되어 있는 경우

    - 취약 : 불필요한 RPC 서비스가 활성화 되어 있는 경우


■ 조치방법

    - 일반적으로 사용하지 않는 RPC 서비스들을 inetd.conf 파일에서 주석처리한 후 inetd 재구동 (진단 보고서에 발견된 RPC 서비스 조치)


■ 보안설정 방법

    ◆ OS별 점검 파일 위치 및 점검 방법

        - Linux, AIX, HP-UX, SunOs 5.9 이하버전

          불필요한 RPC 서비스 비활성화 여부 확인

          #cat /etc/inetd.conf

        - Linux (xinetd)

          "/etc/xinetd.d" 디렉토리 내 서비스별 파일 비활성화 여부 확인

          #vi /etc/xinetd.d/[서비스별 파일명]

        - SunOS 5.10 이상 버전

          RPC 서비스 관련 데몬 확인

          #inetadm | grep rpc | grep enabled | egrep "ttdbserver | rex | rstat | rusers | spray | wall | rquota"

    ※ 불필요한 "RPC" 서비스가 활성화된 경우 아래의 보안설정 방법에 따라 서비스 데몬 중지


■ Linux, AIX, HP-UX, SunOS 5.9 이하 버전

    1. "/etc/inetd.conf " 파일에서 해당 라인 #처리(주석처리)

       (수정 전)  rpc.cmsd/2-4 dgram rpc/udp wait root /usr/dt/bin/rpc.cmsd rpc.cmsd

       (수정 후) #rpc.cmsd/2-4 dgram rpc/udp wait root /usr/dt/bin/rpc.cmsd rpc.cmsd

    2. inetd 서비스 재시작

       #ps -ef | grep inetd

         root    141    1    0    15:03:33 ?        0:01 /usr/sbin/inetd -s

       #kill -HUP 141


■ Linux (xinetd일 경우)

    1. vi 편집기를 이용하여 "/etc/xinetd.d" 디렉토리 내의 불필요한 RPC 서비스 파일을 연 후

    2. 아래와 같이 설정 (Disable = yes 설정)


        service finger

        {

disable            = yes

socket_type      = stream

wait                = no


- 이하 생략 -

   }


    3. xinetd 서비스 재시작

       #service xinetd restart


■ SunOS 5.10 이상 버전

    1. 불필요한 rpc 서비스 관련 데몬 확인

       - svc:/network/rpc/cde-ttdbserver:tcp

       - svc:/network/rpc/spray:default

       - svc:/network/rpc/rex:default

       - svc:/network/rpc/wall:default

       - svc:/network/rpc/rstat:default

       - svc:/network/fs/rquota:default

       - svc:/network/rpc/rusers:default

- 이하 생략 -

    2. svcadm disable "중지하고자 하는 데몬" 명령으로 서비스 데몬 중지

       #inetadm -d svc:/network/rpc/rusers:default


★ 불필요한 RPC 서비스

    - rpc.cmsd : 데이터베이스 관리 프로그램으로 Open Windows의 Calendar Manager와 CDE의 Calendar 프로그램에서 사용

    - rusersd : rusers 명령의 조회에 응답

    - rstatd : 커널에서 얻은 성능 통계 리턴

    - rpc.ttdbserverd : 시스템 장애 시 NFS에서 파일 복구를 위해 제공하는 lockd 프로그램 지원

    - kcms_server : kodak color management 관련된 api 와 라이브러리들은 데스크탑의 디지털 이미지들의 컬러 퍼포먼스를 컨트롤할 수 있는 Profile를 만들거나 관리하기 위해 사용

    - rpc.ttdbserverd : RPC 기반의 ToolTalk 데이터베이스 서버 프로그램

    - Walld : 다른 사용자들에게 메시지 발송

    - rpc.nids : NIS + server Daemon

    - rpc.ypupdated : Network Information Service(NIS) 맵 정보 갱신

    - cachefsd : Cache 파일 시스템 데몬

    - sadmind : remote로부터의 시스템 관리

    - sprayd : 지정된 수의 패킷을 호스트에 전송하고 성능 통계를 보고하는 spray 명령에 의해 전송된 패킷 수신

    - rpc.pcnfsd : PC-NFS (개인용 컴퓨터 네트워크 파일 시스템) 클라이언트에서의 서비스 요청 처리

    - rexd : 원격 시스템용 프로그램 실행

    - rpc.rquotad : Remote 머신에 NFS mount 되고 있는 파일 시스템에 대해 사용자에 대한 로컬 머신에서의 할당 제한치를 반환




※ 문의 사항은 메일 : jyuhm@sntkor.com 이나 070-8611-4853


문의 사항 남기기