콘텐츠로 이동

U-37: crontab 설정파일 권한 설정 미흡

분류: 01_unix

중요도: 상


개요

점검 내용

crontab 및 at 서비스 관련 파일의 권한 적절성 여부 점검

점검 목적

관리자 외에는 서비스를 사용할 수 없도록 설정하고 있는지 점검하기 위함

보안 위협

일반 사용자가 crontab 및 at 서비스를 사용할 수 있을 경우, 고의 또는 실수로 불법적인 예약 파일 실행으로 시스템 피해를 일으킬 수 있는 위험이 존재함

참고

cron 시스템

특정 작업을 정해진 시간에 주기적이고 반복적으로 실행하기 위한 데몬 및 설정

cron.allow

사용자 ID를 등록하면 등록된 사용자는 crontab 명령어 사용이 가능함

cron.deny

사용자 ID를 등록하면 등록된 사용자는 crontab 명령어 사용이 불가능함

at 서비스(일회성 작업 예약)

지정한 시간에 어떠한 작업이 실행될 수 있도록 작업 스케줄을 예약 처리해 주는 기능을 제공함. /etc/at.allow 파일에 등록된 사용자만이 at 명령을 사용할 수 있음

참고

기반시설 시스템에서 at 서비스의 이용은 원칙적으로 금지하나, 불가피하게 사용 시 소유자 및 권한 설정 등의 보안 조치를 반드시 적용해야 함

점검 대상 및 판단 기준

대상

SOLARIS, LINUX, AIX, HP-UX 등

판단 기준

✅ 양호: crontab 및 at 명령어에 일반 사용자 실행 권한이 제거되어 있으며, cron 및 at 관련 파일 권한이 640 이하인 경우

❌ 취약: crontab 및 at 명령어에 일반 사용자 실행 권한이 부여되어 있으며, cron 및 at 관련 파일 권한이 640 이상인 경우

조치 방법

crontab 및 at 명령어 파일 권한 750 이하, cron 및 at 관련 파일 소유자 및 파일 권한 640 이하 설정

조치 시 영향

일반적인 경우 영향 없음

점검 및 조치 사례

SOLARIS

  1. crontab, cron 작업 목록 파일, cron 관련 파일 소유자 및 권한 확인

    # ls –l /usr/bin/crontab
    # ls -l /var/spool/cron/crontabs/<cron 작업 목록 파일>
    # ls -l /etc/cron.d/<cron 관련 파일>
    
  2. at, at 작업 목록 파일 소유자 및 권한 확인

    # ls –l /usr/bin/at
    # ls -l /var/spool/cron/atjobs/<at 작업 목록 파일>
    
  3. crontab 파일 및 at 파일 소유자를 root로, 파일 권한을 750으로 변경

  4. cron 작업 목록 파일, cron 관련 파일 및 at 작업 목록 파일 소유자를 root로, 파일 권한을 640으로 변경

참고

crontab 및 at 명령어는 SUID가 설정되어 있으므로 SUID 설정 제거 필요

LINUX

  1. crontab, cron 작업 목록 파일, cron 관련 파일 소유자 및 권한 확인

    # ls –l /usr/bin/crontab
    # ls -l /var/spool/cron/<cron 작업 목록 파일>,
    # ls -l /var/spool/cron/crontabs/<cron 작업 목록 파일>
    # ls -l /etc/<cron 관련 파일>
    
  2. at, at 작업 목록 파일 소유자 및 권한 확인

    # ls –l /usr/bin/at
    # ls -l /var/spool/at/<at 작업 목록 파일>,
    # ls -l /var/spool/cron/atjobs/<at 작업 목록 파일>
    
  3. crontab 파일 및 at 파일 소유자를 root로, 파일 권한을 750으로 변경

  4. cron 작업 목록 파일, cron 관련 파일 및 at 작업 목록 파일 소유자를 root로, 파일 권한을 640으로 변경

참고

crontab 및 at 명령어는 SUID가 설정되어 있으므로 SUID 설정 제거 필요

AIX, HP-UX

  1. crontab, cron 작업 목록 파일, cron 관련 파일 소유자 및 권한 확인

    # ls –l /usr/bin/crontab
    # ls -l /var/spool/cron/crontabs/<cron 작업 목록 파일>
    # ls -l /var/adm/cron/<cron 관련 파일>
    
  2. at, at 작업 목록 파일 소유자 및 권한 확인

    # ls –l /usr/bin/at
    # ls -l /var/spool/cron/atjobs/<at 작업 목록 파일>
    
  3. crontab 파일 및 at 파일 소유자를 root로, 파일 권한을 750으로 변경

  4. cron 작업 목록 파일, cron 관련 파일 및 at 작업 목록 파일 소유자를 root로, 파일 권한을 640으로 변경

참고

crontab 및 at 명령어는 SUID가 설정되어 있으므로 SUID 설정 제거 필요


cron 관련 설정 파일 설명

파일명 설명
crontab 예약 작업을 등록하는 파일
cron.hourly 시간 단위 예약 실행 스크립트 등록 파일
cron.daily 일 단위 예약 실행 스크립트 등록 파일
cron.weekly 주 단위 예약 실행 스크립트 등록 파일
cron.monthly 월 단위 예약 실행 스크립트 등록 파일
cron.allow crontab 명령어 허용 사용자 등록 파일
cron.deny crontab 명령어 차단 사용자 등록 파일
/var/spool/cron 또는 /var/spool/cron/crontab 사용자별 설정된 cron 작업 목록

참고

cron.allow, cron.deny 두 파일 모두 존재하지 않을 시, root 계정만 cron 등록 가능

at 관련 설정 파일 설명

파일명 설명
at 예약 작업을 등록하는 파일
at.allow at 명령어 허용 사용자 등록 파일
at.deny at 명령어 차단 사용자 등록 파일
/var/spool/at 또는 /var/spool/cron/atjobs 사용자별 설정된 at 작업 목록

참고

at.allow, at.deny 두 파일 모두 존재하지 않을 시, root 계정만 at 등록 가능