본문 바로가기
Hacking/infra 진단

[Linux] U-06 (상) 파일 및 디렉터리 소유자 설정

by 알거음슴 2021. 8. 17.
취약점 개요
점검 내용 소유자 불분명한 파일이나 디렉터리가 존재하는지 여부를 점검
점검 목적 소유자가 존재하지 않는 파일 및 디렉터리를 삭제 및 관리하여 임의의 사용자가 해당파일을 열람, 수정하는 행위를 사전에 차단하기 위함
보안 위협 소유자가 존재하지 않는 파일의 UID와 동일한 값으로 특정계정의 UID값을 변경하면 해당 파일의 소유자가 되어 모든 작업이 가능함
참고 소유자가 존재하지 않는 파일 및 디렉터리는 퇴직자의 자료이거나 관리 소홀로 인해 생긴 파일인 경우 또는 해킹으로 인한 공격자가 만들어 놓은 악의적인 파일인 경우가 있음
점검대상 및 판단 기준
대상 LINUX
판단기준 양호 : 소유자가 존재하지 않는 파일 및 디렉터리가 존재하지 않는 경우
취약 : 소유자가 존재하지 않는 파일 및 디렉터리가 존재하는 경우
조치 방법 소유자가 존재하지 않는 파일 및 디렉터리 삭제 또는, 소유자 변경

 

점검 및 조치
점검 #find / -nouser –print
#find / -nogroup -print
소유자 또는 그룹이 없는 파일은 파일 속성 해당 필드에 숫자로 표시됨
예시) rwxr-xr-x 500 500 test.txt
소유자가 nouser, nogroup인 파일이나 디렉터리 존재하는 경우 아래의 보안설정방법에 따라 디렉터리 및 파일 삭제 또는, 소유자 및 그룹을 변경함
N/A
조치 Step 1) 소유자가 존재하지 않는 파일이나 디렉터리가 불필요한 경우 rm 명령으로 삭제
#rm
#rm
※ 삭제할 파일명 또는, 디렉터리명 입력
Step 2) 필요한 경우 chown 명령으로 소유자 및 그룹 변경
#chown

 

점검 스크립트

#!/bin/bash

. function.sh

BAR
CODE '[U-06] : 파일 및 디렉터리 소유자 설정'
cat << EOF >> $RESULT
[양호]: 소유자가 존재하지 않는 파일 및 디렉터리가 존재하지 않는 경우
[취약]: 소유자가 존재하지 않는 파일 및 디렉터리가 존재하는 경우
EOF
BAR

LOG_FILE=LSC_06.log
CHECK=$(find / \( -nouser -o -nogroup \) -print 2>/dev/null)

if [ -z "$CHECK" ] ; then
	OK "소유자가 존재하지 않는 파일 및 디렉터리가 존재하지 않는 경우"
else
	VULN "소유자가 존재하지 않는 파일 및 디렉터리가 존재하는 경우"
	INFO $LOG_FILE "파일을 참고하세요"
fi

> $LOG_FILE
cat << EOF >> $LOG_FILE
==================================================
소유자가 존재하지 않는 파일 및 디렉터리의 리스트 입니다 확인해주세요.
==================================================
$CHECK
==================================================
EOF

cat $RESULT