본문 바로가기
Hacking/infra 진단

[Linux] U-08 (상) /etc/shadow 파일 소유자 및 권한 설정

by 알거음슴 2021. 8. 17.
취약점 개요
점검 내용 /etc/shadow 파일 권한 적절성 점검
점검 목적 /etc/shadow 파일을 관리자만 제어할 수 있게 하여 비인가자들의 접근을 차단하도록 shadow 파일 소유자 및 권한을 관리해야 함
보안 위협 shadow파일은 패스워드를 암호화하여 저장하는 파일이며 해당 파일의 암호화된 해쉬값을 복호화하여(크래킹) 비밀번호를 탈취할 수 있음
참고 /etc/shadow : 시스템에 등록된 모든 계정의 패스워드를 암호화된 형태로 저장 및 관리하고 있는 파일
점검대상 및 판단 기준
대상 LINUX
판단기준 양호 : /etc/shadow 파일의 소유자가 root이고, 권한이 400 이하인 경우
취약 : /etc/shadow 파일의 소유자가 root가 아니거나, 권한이 400 이하가 아닌 경우
조치 방법 /etc/shadow” 파일의 소유자 및 권한 변경 (소유자 root, 권한 400)

 

점검 및 조치
점검 #ls -l /etc/shadow
r-------- root <shadow 파일>
위에 제시된 파일 및 디렉터리의 소유자가 root가 아니거나 파일의 권한이 400이 아닌 경우 아래의 보안설정방법에 따라 설정을 변경함
조치 Step 1) “/etc/shadow” 파일의 소유자 및 권한 확인
 #ls -l /etc/shadow
Step 2) “/etc/shadow” 파일의 소유자 및 권한 변경 (소유자 root, 권한 400)
 #chown root /etc/shadow
 #chmod 400 /etc/shad

 

점검 스크립트

#!/bin/bash

. function.sh

BAR
CODE [U-08] "/etc/shadow" 파일 소유자 및 권한 설정
cat << EOF >> $RESULT
[양호]: /etc/shadow 파일의 소유자가 root이고, 권한이 400 이하인 경우
[취약]: /etc/shadow 파일의 소유자가 root가 아니거나, 권한이 400 이하가 아닌 경우
EOF
BAR

FILE=/etc/shadow
USER=root
PERM=400

FILEUSER=$(ls -al $FILE | awk '{print $3}')
FILEPERM=$(stat -c '%a' /etc/shadow)

if [ $FILEUSER != $USER ] ; then
    VULN "/etc/shadow 파일의 소유자가 root가 아닙니다. "
else
    if [ $FILEPERM != $PERM ] ; then
        VULN "권한이 400이 아닙니다. 보안 설정 방법에 따라 권한을 변경하세요."
    else
        OK "/etc/shadow 파일의 소유자가 root이고, 권한이 400 이하인 경우"
    fi
fi

cat $RESULT