목차

안녕하세요 IT몽상가입니다.
리눅스 보안에 세번째 분류인 서비스 관리에 대해서 알아보고자 하는데요.
서비스 관리는 리눅스에서 제공하는 서비스 중 불필요한 서비스나 보안적으로 위험한 서비스를 사용하고 있는지를 확인하는 것인데요.
이번에 알아보고자 하는 항목은 “DoS 공격에 취약한 서비스 비활성화”입니다.
DoS 공격은 시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격인데요.
특정 서버에게 수많은 접속시도를 만들어 다른 이용자가 정상적으로 서비스 이용을 하지 못하게 하거나, 서버의 TCP 연결을 바닥내는 공격을 이야기 합니다.
간단하게 이야기 하자만 서비스에 장애를 목적으로 공격하는 것을 이야기 하는데요.
DDoS 공격과 동일하다고 생각하면 됩니다.
이러한 공격에 사용되는 서비스 중 불필요한 서비스가 실행 중 인가를 확인 하는 점검 항목 입니다.
– DoS 공격에 취약한 서비스 비활성화 내용 및 목적
DoS공격에 사용되는 서비스가 불필요하게 오픈되어 있는지 확인하는 것인데요.
현재 취약하다고 할 수 있는 서비스는 echo, discard, daytime, chargen, ntp, snmp 등을 이야기 하고 있습니다.
하지만 서비스 운영을 위하여 사용되는 ntp, snmp 등은 무족건 취약하다고 볼수는 없습니다.
– Dos 공격에 취약한 서비스 비활성화 보안 위협
DoS 공격에 사용되는 불필요한 서비스가 활성화 되어 있는 경우 해당 서비스를 이용하여 DoS공격이 가능 한데요.
물론 해당 서비스가 아닌 다른 서비스를 통해서 공격은 얼마든지 가능합니다.
하지만 불필요하게 오픈되어있는 서비스의 경우 더욱더 신경쓰는 일이 없기에 방치되어 있을수 있는데요.
그렇기에 이러한 서비스를 통해 더욱 손쉽게 DoS공격이 가능하며, 해당 공격을 통하여 서비스 장애를 발생시켜 피해를 야기 할 수 있습니다.
– DoS 공격에 취약한 서비스 비활성화 방법 및 점검 방법
현재 사용되고 있지 않는 불필요 서비스를 비활성화 하면 되는데요.
DoS 공격에 주로 사용되는 서비스는 아래와 같습니다.
| echo(7) | 클라이언트에서 보내는 메시를 단순히 재전송 |
| discard(9) | 수신되는 임의 사용자의 데이터를 폐기하는 서비스 |
| daytime(13) | daytime은 클라이언트의 직의에 응답하여 아스키 형태로 현재 시간과 날짜를 출력하는 데몬 |
| chargen(19) | 임의 길이의 문자를 반환하는 서비스 |
| NTP(123) | 네트워크로 연결되어 있는 컴퓨터들끼리 클록 시각을 동기화시키는데 사용되는 서비스 |
| DNS(53) | 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행하는데 사용되는 서비스 |
| SNMP(161/162) | 네트워크 장비들로부터 필요한 정보를 가져와 장비 상태를 모니터링 하거나 설정값을 변경하는 등의 작업을 하여 네트워크 장비를 관리하는데 사용되는 서비스 |
| SMTP(25) | 인터넷에서 메일을 보내기 위해 사용되는 서비스 |
해당 서비스가 활성화 되어 있는 경우 취약으로 이야기 할 수 도 있는데요.
물론 서비스에 사용되는 ntp, dns, snmp, smtp 등은 활성화 되어 있다고 무조건 취약으로 볼수는 없습니다.
하지만 보편적으로 사용하지 않는 서비스인 echo, discard, daytime, chargen의 경우는 취약을 판단할 수 있는데요.
물론 경우에 따라 사용할 수도 있으나, 보편적으로 불필요한 서비스이기에 사용하는 경우 사용하는 이유에대하여 명확하게 확인이 필요합니다.
- SOLARIS
* 설정 방법
불필요한 서비스를 비활성화 하면 되는데요.
#svcadm disable svc:/network/echo(불필요 서비스 입력):dgram
#svcadm disable svc:/network/echo(불필요 서비스 입력):stream
이렇게 불필요 서비스를 비활성화 하면 됩니다.
* 점검 방법
불필요 서비스 활성화 확인입니다.
#svcs -a | grep echo(불필요 서비스 입력)
이렇게 명려어를 입력하여 불필요 서비스가 활성화 되어 있는지 확인 합니다.
- LINUX
* 설정 방법
Llinus의 경우는 데몬에서 해당 서비스가 돌아가는데요.
그렇기에 데몬파일을 확인하여 하나씩 비활성화 하여야 합니다.
/etc/xinetd.d/echo(불필요 서비스 파일명) 파일 (echo-dgram, echo-stream)
| service echo { disable = yes id = echo-stream type = internal wait = no socket_type = stream } |
여기서 중요한 옵션은 Disable로 해당 값이 yes로 되어 있어야 비활성화 됩니다.
설정 후 #service xinetd restart 로 데몬을 재부팅하면 됩니다.
* 점검 방법
데몬 활성화 여부 확인인데요.
사실 현재 데몬이 동작하고 있는 시스템이 많지 않습니다.
하지만 동작하고 있다면 확인이 필요한데요.
파일을 확인하여 동작하고 있는지를 확인하고 해당 파일 자체가 없는 경우에는 그냥 양호로 판단하여도 됩니다.
- AIX, HP-UX
* 설정 방법
두 서버 모두 동일한 파일에서 관리하고 있는데요.
설정 파일에서 주석 처리 하면 됩니다.
#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 #echo dgram udp wait root internal #discard dgram udp wait root internal #chargen dgram udp wait root internal #daytime dgram udp wait root internal |
#refresh -s inetd
* 점검 방법
#vi /etc/inetd.conf 해당 파일에 서비스가 주석이 풀려 있는지 확인 하면 됩니다.
– DoS 공격에 취약한 서비스 비활성화 방법 및 점검 테스트
실제 서버에서 확인해 보겠는데요.
우선 테스트 환경은 제가 작성하였던 VMware 다운로드 및 설치 방법(무료 설치)와 CentOS Linux Containers 설치하기!를 참조하시면 됩니다.
테스트 환경은 CentOS 7 버전에서 진행 됩니다.
#cd /etc/xinetd.d 입력하여 확인 합니다.

이렇게 점검해야 하는 폴더를 확인합니다.
해당 파일 및 폴더가 없는 경우 양호로 판단하여도 됩니다.
– 마무리
DoS 공격에 취약한 서비스 비활성화에 대하여 알아봤습니다.
DoS에 악용될 수 있는 서비스를 필요하게 사용하는 경우 해당 서비스를 비활성화 하게 하는 것인데요.
대부분을 서비스는 사용하지 않는 서비스로 기본값으로 설치되어 있지 않습니다.
그렇기에 별도로 설정하지 않는 경우 해당 폴더에 파일이 존재하지 않은데요.
이러한 경우에는 그냥 양호로 판단하는 것이 좋습니다.
