가. 취약점 개요
■ 내용 : cron 관련 파일의 권한 적절성 점검
■ 목적 : 관리자외 cron 서비스를 사용할 수 없도록 설정하고 있는지 점검하는 것을 목적으로 함
■ 보안 위협
- root 외 일반사용자에게도 crontab 명령어를 사용할 수 있도록 할 경우, 고의 또는 실수로 불법적인 예약 파일 실행으로 시스템 피해를 일으킬 수 있음
■ 참고 :
※ Cron 시스템: 특정 작업을 정해진 시간에 주기적이고 반복적으로 실행하기 위한 데몬 및 설정
※ cron.allow: 사용자 ID를 등록하면 등록된 사용자는 crontab 명령어 사용이 가능함
※ cron.deny: 사용자 ID를 등록하면 등록된 사용자는 crontab 명령어 사용이 불가능함
나. 점검방법
■ 대상 : SOLARIS, LINUX, AIX, HP-UX 등
■ 판단기준
- 양호 : crontab 명령어 일반사용자 금지 및 cron 관련 파일 640 이하인 경우
- 취약 : crontab 명령어 일반사용자 사용가능하거나, crond 관련 파일 640 이상인 경우
■ 점검 명령어
OS | 점검 명령어 |
SOLARIS, LINUX, AIX, HP-UX | cron 관련 파일 권한 확인 #ls -al /usr/bin/crontab rw-r root <cron 접근제어 파일> |
OS 별 점검 파일 위치 | ||
SOLARIS | /etc/cron.d/ | crontab <- 예약작업을 등록하는 파일 cron.hourly <- 시간단위 실행 스크립트 등록 cron.daily <- 일단위 실행 스크립트 등록 cron.weekly <- 주단위 실행 스크립트 등록 cron.monthly <- 월 단위 실행 스크립트 등록 cron.allow <- crontab 명령어 허용 사용자 cron.deny <- crontab 명령어 차단 사용자 |
LINUX | /etc/ | |
AIX, HP-UX |
/var/adm/cron/ |
|
공통 | /var/spool/cron/ 또는 /var/spool/cron/crontabs/ |
사용자별 설정된 cron 작업 목록 |
"cron" 접근제어 설정이 적절하지 않은 경우 아래의 보안설정방법에 따라 설정을 변경함 |
다. 조치방법
■ 조치방법 : crontab 명령어 750 이하, cron 관련 파일 소유자 및 권한 변경(소유자 root, 권한 640 이하)
■ 공통설정
Step 1) crontab 명령어 일반사용자 권한 삭제 (crontab 명령어 위치는 OS별 다를수 있음)
※ crontab 명령어는 SUID가 설정되어 있으므로 SUID 설정 제거
# ls -l /usr/bin/crontab
# chmod 750 /usr/bin/crontab
Step 2) cron 관련 설정파일 소유자 및 권한 설정
# chown root <cron 관련 파일>
# chmod 640 <cron 관련 파일>
관련 설정파일 | 설명 |
<cron 디렉터리>/crontab | <- 예약작업을 등록하는 파일 |
/etc/cron.hourly, /etc/cron.daily, etc/cron.weekly, /etc/cron.monthly | <- 시간,일, 주, 월 단위 실행스크립트 등록 |
/var/spool/cron/ 또는 /var/spool/cron/crontabs/ |
<- 사용자별 설정된 cron 작업 목록 |
cron.allow, cron.deny | <- crontab 명령어 허용(차단) 사용자 등록 |
운영체제 | 관련 설정파일 위치 |
SOLARIS | /etc/cron.d/ |
LINUX | /etc/ |
AIX, HP-UX | /var/adm/cron/ |
■ crontab 명령어를 일반사용자에게 허용하는 경우
Step 1) “/etc/cron.d/cron.allow” 및 “/etc/cron.d/cron.deny” 파일의 소유자 및 권한 변경
#chown root /etc/cron.d/cron.allow
#chmod 640 /etc/cron.d/cron.allow
#chown root /etc/cron.d/cron.deny
#chmod 640 /etc/cron.d/cron.deny
Step 2) “/etc/cron.d/cron.allow” 및 “/etc/cron.d/cron.deny” 파일에 사용자 등록
# cat /etc/cron.allow (crontab 명령어 사용을 허용하는 사용자 등록)
# cat /etc/cron.deny (crontabl 명령어 사용을 차단하는 사용자 등록)
라. 조치시 영향
■ 일반적인 경우 영향 없음