본문 바로가기
Hacking/infra 진단

[Linux] U-04 (상) 패스워드 파일 보호

by 알거음슴 2021. 8. 17.
취약점 개요
점검 내용 시스템의 사용자 계정(root, 일반계정) 정보가 저장된 파일( /etc/passwd, /etc/shadow)에 사용자 계정 패스워드가 암호화되어 저장되어 있는지 점검
점검 목적 일부 오래된 시스템의 경우 /etc/passwd 파일에 패스워드가 평문으로 저장되므로 사용자 계정 패스워드가 암호화되어 저장되어 있는지 점검하여 비인가자의 패스워드 파일 접근 시에도 사용자 계정 패스워드가 안전하게 관리되고 있는지 확인하기 위함
보안 위협 사용자 계정 패스워드가 저장된 파일이 유출 또는 탈취 시 평문으로 저장된 패스워드 정보가 노출될 수 있음
참고 참고관련 점검 항목 : U-07(), U-08()
점검대상 및 판단 기준
대상 LINUX
판단기준 양호 : 쉐도우 패스워드를 사용하거나, 패스워드를 암호화하여 저장하는 경우
취약 : 쉐도우 패스워드를 사용하지 않고, 패스워드를 암호화하여 저장하지 않는 경우
조치 방법 패스워드 암호화 저장관리 설정 적용

 

점검 및 조치
점검 Step 1) /shadow 파일의 패스워드 암호화 존재 확인
(일반적으로 /etc 디렉터리 내 존재)
#ls /etc
Step 2) /etc/passwd 파일 내 두 번째 필드가 “x” 표시되는지 확인
#cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
(※ “passwd” 파일 구조: 부록 참조}
위에 제시한 설정이 적용되지 않은 경우 아래의 보안설정방법에 따라 설정을 변경함
조치 Step 1) #pwconv ---> 쉐도우 패스워드 정책 적용 방법
Step 2) #pwunconv ---> 일반 패스워드 정책 적용 방법

 

점검 스크립트

#!/bin/bash

. function.sh

BAR
CODE [U-04] 패스워드 파일 보호
cat << EOF >> $RESULT
[양호]: 쉐도우 패스워드를 사용하거나, 패스워드를 암호화하여 저장하는 경우
[취약]: 쉐도우 패스워드를 사용하지 않고, 패스워드를 암호화하여 저장하지 않는 경우
EOF
BAR

FILENAME1=/etc/shadow
FILENAME2=/etc/passwd


if [ -f $FILENAME ] ; then
	INFO "쉐도우 파일이 존재합니다."
	CHECK=$(cat $FILENAME2 | awk -F: '{print $2}' | grep -v 'x')
	if [ -z $CHECK ] ; then
		OK "쉐도우 패스워드를 사용하거나, 패스워드를 암호화하여 저장하는 경우"
	else
		VULN "쉐도우 패스워드를 사용하지 않고, 패스워드를 암호화하여 저장하지 않는 경우"
	fi
else
	VULN "쉐도우 파일이 존재하지 않습니다."
fi

cat $RESULT