본문 바로가기

Infra/리눅스 서버

[리눅스 보안] 서버 관리 - DoS 공격에 취약한 서비스 비활성화

[리눅스 보안] 서버 관리 - DoS 공격에 취약한 서비스 비활성화



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


■ 취약점 개요

    - *DoS(서비스 거부 공격)에 취약한 echo, discard, daytime, chargen 서비스는 취약점이 많이 발표된 불필요한 서비스들로 해당 서비스 사용을 중지하여야 함.

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

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


■ 보안대책

    - 양호 : DoS 공격에 취약한 echo, discard, daytime, chargen 서비스가 비활성화 된 경우

    - 취약 : DoS 공격에 취약한 echo, discard, daytime, chargen 서비스 활성화 된 경우


■ 조치방법

    - "cron.allow", "cron.deny" 파일 소유자 및 권한 변경 (소유자 root, 권한 640 이하)


■ 보안설정 방법

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

        - SunOS

          #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 필드 주석처리 확인

        - SunOS 5.10 이상 버전

          #inetadm | grep enabled | egrep "echo|discard|daytime|chargen" 명령으로 기타 서비스 데몬 확인

    ※ 아래 제시된 DoS 공격에 취약한 서비스가 활성화된 경우 아래의 보안설정 방법에 따라 서비스 중지


    ◆ DoS 공격에 취약한 서비스

        - echo(7) : 클라이언트에서 보내는 메시지를 단순히 재전송

        - discard(9) : 수신되는 임의 사용자의 데이터를 폐기하는 서비스

        - daytime(13) : daytime은 클라이언트의 질의에 응답하여 아스키 형태로 현재 시간과 날짜를 출력하는 데몬

        - chargen(19) : 임의 길이의 문자열을 반환하는 서비스


■ SunOS

    1. echo 서비스 비활성화 설정

       #svcs -a | grep echo

       #svcadm disable svc:/netwrok/echo:dgrm

       #svcadm disable svc:/network/echo:stream

    2. discard 서비스 비활성화 설정

       #svcs -a | grep discard

       #svcadm disable svc:/network/discard:dgrm

       #svcadm disable svc:/network/discard:stream

    3. daytime 서비스 비활성화 설정

       #svcs -a | grep daytime

       #svcadm daytime svc:/network/daytime:dgrm

       #svcadm daytime svc:/network/daytime:stream

    4. chargen 서비스 비활성화 설정

       #svcs -a | grep chargen

       #svcadm disable svc:/network/chargen:dgrm

       #svcadm disable svc:/network/chargen:stream


■ AIX

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

       #vi /etc/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


■ HP-UX

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

       #vi /etc/inetd.conf

    2. 필드 주석처리 후 재가동

       #inetd -c


■ SunOS 5.10 이상 버전

    1. 기타 서비스 데몬 확

 svc:/network/echo:dgram

 svc:/network/daytime:dgram

 svc:/network/echo:stream

 svc:/network/daytime:stream

 svc:/network/discard:dgram

 svc:/network/chargen:dgram

 svc:/network/discard:stream

 svc:/network/chargen:stream








    2. inetadm -d "중지하고자 하는 데몬" 명령으로 서비스 데몬 중지

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


■ Linux (xinetd일 경우)

    1. vi 편집기를 이용하여 "/etc/xinetd.d/" 디렉토리 내 echo, discard, daytime, chargen 파일을 연 후

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

       - /etc/xinetd.d/echo 파일

       - /etc/xinetd.d/daytime 파일

       - /etc/xinetd.d/discard 파일

       - /etc/xinetd.d/chargen 파일


service echo

{

disable            = yes

id                   = echo-stream

type                = INTERNAL

wait                = no

socket_type      = stream

}


    3. xinetd 서비스 재시작

       #service xinetd restart




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


문의 사항 남기기