Security/리눅스 취약점 진단

[U-22] 3.4 crond 파일 소유자 및 권한 설정 점검 스크립트

2er0127 2023. 8. 9. 23:14

 

U-22 (상) 3. 서비스 관리 > 3.4 crond 파일 소유자 및 권한 설정
취약점 개요
점검 내용 Cron 관련 파일의 권한 적절성 점검
점검 목적 관리자외 cron 서비스를 사용할 수 없도록 설정하고 있는지 점검하는 것을 목적으로 함
보안 위협 root 외 일반사용자에게도 crontab 명령어를 사용할 수 있도록 할 경우, 고의 또는 실수로 불법적인 예약 파일 실행으로 시스템 피해를 일으킬 수 있음
참고 ※ Cron 시스템: 특정 작업을 정해진 시간에 주기적이고 반복적으로 실행하기 위한 데몬 및 설정
※ cron.allow: 사용자 ID를 등록하면 등록된 사용자는 crontab 명령어 사용이 가능함
※ cron.deny: 사용자 ID를 등록하면 등록된 사용자는 crontab 명령어 사용이 불가능함
점검 대상 및 판단 기준
대상 SOLARIS, Linux, AIX, HP-UX 등
판단 기준 양호 : crontab 명령어 일반사용자 금지 및 cron 관련 파일 640 이하인 경우
취약 : crontab 명령어 일반사용자 사용가능하거나, crond 관련 파일 640 이상인 경우
조치 방법 crontab 명령어 750 이하, cron 관련 파일 소유자 및 권한 변경(소유자 root, 권한 640 이하)

 

 

 

진단 스크립트 작성

#!/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-22] 3.4 crond 파일 소유자 및 권한 설정" >> $CREATE_FILE 2>&1
echo "[양호] crontab 명령어 일반사용자 금지 및 cron 관련 파일 640 이하인 경우" >> $CREATE_FILE 2>&1
echo "[취약] crontab 명령어 일반사용자 사용가능하거나, crond 관련 파일 640 이상인 경우" >> $CREATE_FILE 2>&1
echo " " >> $CREATE_FILE 2>&1
echo "=======================진단 결과=======================" >> $CREATE_FILE 2>&1

FILENAME1='/usr/bin/crontab'
FILENAME2='/etc/crontab'
FILEPRINT1=$(ls -al /usr/bin/crontab)
FILEPRINT2=$(ls -al /etc/crontab)

PERMCHECK1=$(find $FILENAME1 -perm 640)
if [ -n "$PERMCHECK1" ]
	then
        echo $FILENAME1 "파일은 [양호] crontab 명령어 일반사용자 금지 및 crond 관련 파일 권한이 640 입니다." >> $CREATE_FILE 2>&1
else   
		echo $FILENAME1 "파일은 [취약] crontab 명령어 일반사용자 사용가능하거나, crond 관련 파일 권한이 640 이상입니다." >> $CREATE_FILE 2>&1
		echo $FILEPRINT1 >> $CREATE_FILE 2>&1
fi

echo " " >> $CREATE_FILE 2>&1

PERMCHECK2=$(find $FILENAME2 -perm 640)
if [ -n "$PERMCHECK2" ]
	then
        echo $FILENAME2 "파일은 [양호] crontab 명령어 일반사용자 금지 및 crond 관련 파일 권한이 640 입니다." >> $CREATE_FILE 2>&1
else   
		echo $FILENAME2 "파일은 [취약] crontab 명령어 일반사용자 사용가능하거나, crond 관련 파일 권한이 640 이상입니다." >> $CREATE_FILE 2>&1
		echo $FILEPRINT2 >> $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