본문 바로가기
Hacking/infra 진단

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

by 알거음슴 2021. 8. 17.
취약점 개요
점검 내용 /etc/passwd 파일 권한 적절성 점검
점검 목적 /etc/passwd 파일의 임의적인 변경을 차단하기 위함을 통해 비인가자가 권한 상승하는 것을 막기 위함
보안 위협 관리자(root) 외 사용자가 "/etc/passwd” 파일의 사용자 정보를 변조하여shell 변경, 사용자 추가/삭제 등 root를 포함한 사용자 권한 획득 가능
참고 /etc/passwd: 사용자의 ID, 패스워드, UID, GID, 홈 디렉터리, 쉘 정보를 담고 있는 파일
점검대상 및 판단 기준
대상 LINUX
판단기준 양호 : /etc/passwd 파일의 소유자가 root이고, 권한이 644 이하인 경우
취약 : /etc/passwd 파일의 소유자가 root가 아니거나, 권한이 644 이하가 아닌 경우
조치 방법 /etc/passwd” 파일의 소유자 및 권한 변경 (소유자 root, 권한 644)

 

점검 및 조치
점검 “/etc/passwd” 파일의 소유자 및 권한 확인
#ls -l /etc/passwd
r-------- root <passwd 파일>
passwd” 파일의 소유자가 root가 아니거나 파일의 권한이 644 이하가 아닌 경우
아래의 보안설정방법에 따라 설정을 변경함
조치 /etc/passwd” 파일의 소유자 및 권한 변경 (소유자 root, 권한 644)
 #chown root /etc/passwd
 #chmod 644 /etc/passwd

 

점검 스크립트

#!/bin/bash

. function.sh

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

CHECK=0
ls /etc/passwd > /dev/null 2>&1
if [ $? = 0 ] ; then
	CHECK=1
fi

if [ $CHECK != 0 ] ; then
	CHOWN1=`ls -l /etc/passwd | awk '{print $3}'`
	if [ $CHOWN1 = root ] ; then
		OK /etc/passwd 파일이 존재하며 소유자는 root입니다.
	else	
		WARN /etc/passwd 파일이 존재하지만 소유자는 root가 아닙니다.
	fi
elif [ $CHECK = 0 ] ; then
	INFO /etc/passwd 파일이 존재하지 않습니다.
fi

if [ $CHECK = 1 ] ; then
	find /etc/passwd -type f -perm -644 -ls | grep -v 'rw-r--r--' >/dev/null 2>&1
	if [ $? = 0 ] ; then
		WARN passwd 파일의 권한이 `ls -l /etc/passwd | awk '{print $1}'`로 설정되어 644보다 높습니다.
	else
		OK passwd 파일의 권한이 644이하 입니다.
	fi
fi

cat $RESULT