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