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