주요정보통신기반기설 기술적 취약점 분석 평가 방법 상세가이드/UNIX 서버 진단

3.5. DoS 공격에 취약한 서비스 비활성화 [U-23] (상) - 주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세 가이드(2021)

재민스 2021. 11. 3. 16:09

가. 취약점 개요

    내용 : 사용하지 않는 Dos 공격에 취약한 서비스의 실행 여부 점검

    목적 : 시스템 보안성을 높이기 위해 취약점이 많이 발표된 echo, discard, daytime, chargen, ntp, snmp 등 서비스를 중지함

    보안 위협

-      해당 서비스가 활성화되어 있는 경우 시스템 정보 유출 및 DoS(서비스 거부 공격)의 대상이 될 수 있음

    참고 :

※ DoS(Denial of Service attack): 시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격. 특정 서버에게 수많은 접속 시도를 만들어 다른 이용자가 정상적으로 서비스 이용을 하지 못하게 하거나,  서버의 TCP 연결을 바닥내는 등의 공격이 이 범위에 포함됨

 

나. 점검방법

    대상 : SOLARIS, LINUX, AIX, HP-UX

    판단기준

-      양호 : 사용하지 않는 DoS 공격에 취약한 서비스가 비활성화 된 경우

-      취약 : 사용하지 않는 DoS 공격에 취약한 서비스가 활성화 된 경우

    점검 명령어

OS 점검 파일
SOLARIS #svcs -a | grep echo
#svcs -a | grep daytime
#svcs -a | grep discard
#svcs -a | grep chargen
echo, discard, daytime, chargen 서비스 활성 여부 확인
AIX, HP-UX #vi /etc/inetd.conf
echo, discard, daytime, chargen 필드 주석처리 확인
SOLARIS 5.10
이상 버전
#inetadm | grep enable | egrep "echo|discard|daytim
e|chargen" 명령으로 기타 서비스 데몬 확인
아래 제시된 DoS 공격에 취약한 서비스 중 사용하지 않는 서비스가 활성화 된 경우
아래의 보안설정방법에 따라 서비스 중지

 

DoS 공격에 취약한 서비스 예시
echo(7) 클라이언트에서 보내는 메시지를 단순히 재전송
discard(9) 수신되는 임의 사용자의 데이터를 폐기하는 서비스
daytime(13) daytime 클라이언트의 질의에 응답하여 아스키 형태로 현재 시간과 날짜를 출력하는 데몬
chargen(19) 임의 길이의 문자열을 반환하는 서비스
NTP(123) 네트워크로 연결되어 있는 컴퓨터들끼리 클록 시각을 동기화 시키는데 사용되는 서비스
DNS(53) 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행하는데 사용되는 서비스
 
SNMP(161/162)
네트워크 장비들 로부터 필요한 정보를 가져와 장비 상태를 모니터링 하거나 설정 값을 변경하는 등의 작업을 하여 네트워크 장비를 관리하는데 사용되는 서비스
SMTP(25) 인터넷에서 메일을 보내기 위해 사용되는 서비스

 

다. 조치방법

일반적으로 사용하지 않는 서비스인 echo, discard, daytime, chargen 비활성화 방법

    SOLARIS

    Step 1) echo 서비스 비활성화 설정

        #svcs -a |grep echo

        #svcadm disable svc:/network/echo:dgrm #svcadm disable svc:/network/echo:stream

    Step 2) discard 서비스 비활성화 설정

        #svcs -a |grep daytime

        #svcadm disable svc:/network/daytime:dgram #svcadm disable svc:/network/daytime:stream

    Step 3) daytime 서비스 비활성화 설정

        #svcs -a |grep discard

        #svcadm disable svc:/network/discard:dgram #svcadm disable svc:/network/discard:stream

    Step 4) chargen 서비스 비활성화 설정

        #svcs -a |grep chargen

        #svcadm disable svc:/network/chargen:dgram #svcadm disable svc:/network/chargen:stream

    AIX

    Step 1) vi 편집기를 이용하여 echo, discard, daytime, chargen 필드 주석처리

        #vi /etc/inetd.conf

        <inetd.conf>

        #echo   stream   tcp   nowait root   internal

        #discard stream tcp nowait root   internal

        #chargen stream tcp nowait root   internal

        #daytime stream tcp nowait root internal

        #echo   dgram   udp   wait    root    internal

        #discard dgram   udp   wait   root   internal

        #chargen dgram   udp   wait   root   internal

        #daytime dgram  udp  wait  root   internal

    Step 2) 필드 주석처리 재가동

        #refresh -s inetd

    HP-UX

    Step 1) vi 편집기를 이용하여 echo, discard, daytime, chargen 필드 주석처리

        #vi /etc/inetd.conf

        <inetd.conf>

        #daytime stream udp6 nowait root internal

        #daytime dgram udp6 nowait root internal

        #echo stream tcp6 nowait root internal

        #echo dgram udp6 nowait root internal

        #discard stream tcp6 nowait root internal

        #discard dgram udp6 nowait root internal

        #chargen stream tcp6 nowait root internal

        #chargen dgram udp6 nowait root internal

    Step 2) 필드 주석처리 재가동

        # inetd -c

    SOLARIS 5.10 이상 버전

    Step 1) 기타 서비스 데몬 확인

        #inetadm | grep echo

        enabled online  svc:/network/echo:dgram

        enabled online  svc:/network/echo:stream

        #inetadm | grep daytime

        enabled online  svc:/network/daytime:dgram

        enabled online  svc:/network/daytime:stream

        #inetadm | grep discard

        enabled online  svc:/network/discard:dgram

        enabled online  svc:/network/discard:stream

        #inetadm | grep chargen

        enabled online  svc:/network/chargen:dgram

        enabled online  svc:/network/chargen:stream

    Step 2) inetadm –d 중지하고자 하는 데몬 명령으로 서비스 데몬 중지

        #inetadm -d svc:/network/echo:stream

    LINUX (xinetd 경우)

    Step 1) vi 편집기를 이용하여 “/etc/xinetd.d/” 디렉터리 echo, discard, daytime, chargen 열기

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

/etc/xinetd.d/echo 파일(echo-dgram, echo-stream)
/etc/xinetd.d/discard 파일(discard-dgram, discard-stream)
/etc/xinetd.d/daytime 파일(daytime-dgram, daytime-stream)
/etc/xinetd.d/chargen 파일(chargen-dgram, chargen-stream)
 
service echo
{
disable          = yes
id                 = echo-stream
type              = internal
wait              = no
socket_type        = stream
}

    Step 3) xinetd 서비스 재시작

        #service xinetd restart

 

라. 조치시 영향

    echo, discard, daytime, chargen는 일반적으로 사용하지 않는 서비스들임