Security/리눅스 취약점 진단

[U-23] 3.5 DoS 공격에 취약한 서비스 비활성화 점검 스크립트

2er0127 2023. 8. 9. 23:19
U-23 (상) 3. 서비스 관리 > 3.5 DoS 공격에 취약한 서비스 비활성화
취약점 개요
점검 내용 사용하지 않는 Dos 공격에 취약한 서비스의 실행 여부 점검
점검 목적 시스템 보안성을 높이기 위해 취약점이 많이 발표된 echo, discard, daytime, chargen, ntp, snmp 등 서비스를 중지함
보안 위협 해당 서비스가 활성화되어 있는 경우 시스템 정보 유출 및 DoS(서비스 거부 공격)의 대상이 될 수 있음
참고 ※ DoS(Denial of Service attack): 시스템을 악의적으로 공격해 해당 시스템의 자원을 부족 하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격. 특정 서버에게 수많은 접속 시도를 만들어 다른 이용자가 정상적으로 서비스 이용을 하지 못하게 하거나, 서버의 TCP 연결을 바닥내는 등의 공격이 이 범위에 포함됨
점검 대상 및 판단 기준
대상 SOLARIS, Linux, AIX, HP-UX 등
판단 기준 양호 : 사용하지 않는 DoS 공격에 취약한 서비스가 비활성화 된 경우
취약 : 사용하지 않는 DoS 공격에 취약한 서비스가 활성화 된 경우
조치 방법 echo, discard, daytime, charge, ntp, dns, snmp 등 서비스 비활성화 설정

 

 

 

진단 스크립트 작성

#!/bin/sh

LANG=C
export LANG
alias ls=ls

CREATE_FILE=`hostname`"-"`date +%m%d`.txt

# root check
if [ "$EUID" -ne 0 ]
	then
		echo "root 권한이 필요합니다."
	exit
fi

echo "====================================================" >> $CREATE_FILE 2>&1
echo "*              linux_script version0.1             *" >> $CREATE_FILE 2>&1
echo "====================================================" >> $CREATE_FILE 2>&1
echo " " >> $CREATE_FILE 2>&1
echo "---------------------start time---------------------" >> $CREATE_FILE 2>&1
date >> $CREATE_FILE 2>&1
echo "----------------------------------------------------" >> $CREATE_FILE 2>&1
cat /etc/redhat-release >> $CREATE_FILE 2>&1
echo " " >> $CREATE_FILE 2>&1

echo "####################################################" >> $CREATE_FILE 2>&1
echo " " >> $CREATE_FILE 2>&1

echo "[U-23] 3.5 DoS 공격에 취약한 서비스 비활성화" >> $CREATE_FILE 2>&1
echo "[양호] 사용하지 않는 DoS 공격에 취약한 서비스가 비활성화 된 경우" >> $CREATE_FILE 2>&1
echo "[취약] 사용하지 않는 DoS 공격에 취약한 서비스가 활성화 된 경우" >> $CREATE_FILE 2>&1
echo " " >> $CREATE_FILE 2>&1
echo "=======================진단 결과=======================" >> $CREATE_FILE 2>&1

CHARGENCHECK1=$(cat /etc/xinetd.d/chargen-dgram | grep disable | awk '{print $3}')
CHARGENCHECK2=$(cat /etc/xinetd.d/chargen-stream | grep disable | awk '{print $3}')
DAYTIMECHECK1=$(cat /etc/xinetd.d/daytime-dgram | grep disable | awk '{print $3}')
DAYTIMECHECK2=$(cat /etc/xinetd.d/daytime-stream | grep disable | awk '{print $3}')
DISCARDCHECK1=$(cat /etc/xinetd.d/discard-dgram | grep disable | awk '{print $3}')
DISCARDCHECK2=$(cat /etc/xinetd.d/discard-stream | grep disable | awk '{print $3}')
ECHOCHECK1=$(cat /etc/xinetd.d/echo-dgram | grep disable | awk '{print $3}')
ECHOCHECK2=$(cat /etc/xinetd.d/echo-stream | grep disable | awk '{print $3}')

if [ $CHARGENCHECK1 == 'no' ] || [ $CHARGENCHECK2 == 'no' ]
	then
		echo "[취약] chargen 서비스가 활성화 되어 있습니다." >> $CREATE_FILE 2>&1
	else
		echo "[양호] chargen 서비스가 비활성화 되어 있습니다." >> $CREATE_FILE 2>&1
fi

if [ $DAYTIMECHECK1 == 'no' ] || [ $DAYTIMECHECK2 == 'no' ]
	then
		echo "[취약] daytime 서비스가 활성화 되어 있습니다." >> $CREATE_FILE 2>&1
	else
		echo "[양호] daytime 서비스가 비활성화 되어 있습니다." >> $CREATE_FILE 2>&1
fi

if [ $DISCARDCHECK1 == 'no' ] || [ $DISCARDCHECK2 == 'no' ]
	then
		echo "[취약] discard 서비스가 활성화 되어 있습니다." >> $CREATE_FILE 2>&1
	else
		echo "[양호] discard 서비스가 비활성화 되어 있습니다." >> $CREATE_FILE 2>&1
fi

if [ $ECHOCHECK1 == 'no' ] || [ $ECHOCHECK2 == 'no' ]
	then
		echo "[취약] echo 서비스가 활성화 되어 있습니다." >> $CREATE_FILE 2>&1
	else
		echo "[양호] echo 서비스가 비활성화 되어 있습니다." >> $CREATE_FILE 2>&1
fi

echo " " >> $CREATE_FILE 2>&1

 

 

https://github.com/2er0127/linux-vuln-chk-script

 

GitHub - 2er0127/linux-vuln-chk-script: Red Hat Enterprise Linux Server release 6.10 Vulnerability Check Script

Red Hat Enterprise Linux Server release 6.10 Vulnerability Check Script - GitHub - 2er0127/linux-vuln-chk-script: Red Hat Enterprise Linux Server release 6.10 Vulnerability Check Script

github.com

 

728x90