[U-37] crontab 설정파일 권한 설정 미흡 (중요도 : 상) 본문

서버 보안 가이드/01. OS (유닉스 리눅스)

[U-37] crontab 설정파일 권한 설정 미흡 (중요도 : 상)

ª_ª 2026. 2. 12. 10:04
728x90
반응형

★ 주요정보통신기반시설 가이드 [U-37] 유닉스/리눅스 보안 설정

항목 중요도 : (예약 작업 실행 스케줄러 보호)
 

1. 항목 개요 및 보안 위협

출처 : 2026 주요정보통신기반시설 기술적 취약점 분석·평가 방법 상세가이드

[ 점검 내용 ] : cron 및 at 관련 실행 파일과 설정 파일, 작업 목록 파일의 소유자와 권한이 적절하게 설정되어 있는지 점검합니다.

[ 보안 위협 ] : crontab이나 at 관련 파일에 부적절한 권한이 부여된 경우, 일반 사용자가 예약 작업 내용을 변조할 수 있습니다. 특히 SUID가 설정된 실행 파일을 악용하거나 작업 목록을 조작하여 관리자(root) 권한으로 악성 코드를 주기적으로 실행시키는 등의 심각한 보안 사고가 발생할 수 있습니다.

 

2. [실습] OS별 crontab/at 설정 및 권한 조치

■ 점검 포인트 (공통)

Step 1) 관련 파일의 소유자 및 권한 확인

# ls -l /usr/bin/crontab /usr/bin/at
# ls -l /var/spool/cron/ (또는 /var/spool/at)
# ls -l /etc/cron.allow /etc/cron.deny

■ 권장 조치 방법

Step 3) 실행 파일 소유자 및 권한 변경

* 소유자: root, 권한: 750 (SUID 제거 권장)

# chown root /usr/bin/crontab /usr/bin/at
# chmod 750 /usr/bin/crontab /usr/bin/at
# chmod -s /usr/bin/crontab /usr/bin/at (SUID 제거 시)

Step 4) 작업 목록 및 설정 파일 권한 변경

* 소유자: root, 권한: 640

# chown root /etc/cron.allow /etc/cron.deny /etc/at.allow /etc/at.deny
# chmod 640 /etc/cron.allow /etc/cron.deny /etc/at.allow /etc/at.deny
# chown -R root /var/spool/cron /var/spool/at
# chmod -R 640 /var/spool/cron /var/spool/at

[취약 결과 예시]

# ls -l /usr/bin/crontab
-rwsr-sr-x 1 root root 57576 Feb 09 2026 /usr/bin/crontab
(권한이 755이거나 SUID가 설정되어 일반 사용자가 실행 및 변조 가능한 상태)

[양호 결과 예시]

# ls -l /usr/bin/crontab
-rwxr-x--- 1 root root 57576 Feb 09 2026 /usr/bin/crontab
(소유자가 root이고 권한이 750 이하로 적절히 제한된 경우)
 

3. 법적 근거 및 관련 지침

⚖️ 관련 법규 정보 (국가 법령 정보 센터)

 

4. 오늘 공부하며 정리한 핵심 포인트

  • SUID 관리의 중요성: crontab과 at은 명령 실행을 위해 관례적으로 SUID가 설정되어 있으나, 보안 가이드라인에서는 권한 오남용을 막기 위해 이를 제거하고 권한을 750으로 제한할 것을 강력히 권고합니다.
  • allow/deny 우선순위: cron.allow가 있으면 그 파일에 등록된 사용자만 사용 가능하며, cron.deny는 무시됩니다. 두 파일이 모두 없다면 오직 root만 사용할 수 있습니다.

다음 공부 기록 예고 : [U-38] DoS 공격에 취약한 서비스 비활성화 (중요도 : 상)

728x90
반응형
Comments