본문 바로가기
Hacking/infra 진단

[Linux] U-25 (상) NFS 접근 통제

by 알거음슴 2021. 9. 1.
취약점 개요
점검 내용 NFS(Network File System) 사용 시 허가된 사용자만 접속할 수 있도록 접근제한 설정 적용 여부 점검
점검 목적 접근권한이 없는 비인가자의 접근을 통제함
보안 위협 접근제한 설정이 적절하지 않을 경우 인증절차 없이 비인가자의 디렉터리나 파일의 접근이 가능하며, 해당 공유 시스템에 원격으로 마운트 하여 중요 파일을 변조하거나 유출할 위험이 있음
참고 NFS(Network File System): 원격 컴퓨터의 파일시스템을 로컬 시스템에 마운트 하여 마치 로컬 파일시스템처럼 사용할 수 있는 프로그램임
NFS 서비스 사용 금지가 원칙이나 불가피하게 사용이 필요한 경우 NFS v2, v3은 평문으로 전송되는 취약점이 있기 때문에 암호화 되는 v4를 사용하는 것을 권고함
점검대상 및 판단 기준
대상 LINUX
판단기준 양호 : 불필요한 NFS 서비스를 사용하지 않거나, 불가피하게 사용 시 everyone 공유를 제한한 경우
취약 : 불필요한 NFS 서비스를 사용하고 있고, everyone 공유를 제한하지 않은 경우
조치 방법 사용하지 않는다면 NFS 서비스 중지, 사용할 경우 NFS 설정파일에 everyone 공유 설정 제거

 

점검 및 조치
점검 "/etc/exports" 파일
불가피하게 NFS 서비스를 사용하여야 하는 경우 NFS 접근제어 파일에 꼭 필요한 공유 디렉터리만 나열하고, everyone으로 시스템이 마운트 되지 않도록 설정
조치 /etc/exports 설정 예문
Step 1) /etc/exports 파일에 접근 가능한 호스트명 추가
 () /stand host1(또는 IP주소) host2
Step 1) 접속시 인증 및 클라이언트 권한 nobody 설정
 # vi /etc/export
 # /stand host1 (root_squash)
 ※ () 옵션에 인증되지 않은 엑세스를 허용하는 “insecure" 구문 설정 금지
Step 3. NFS 서비스 재구동
 #/etc/exportfs –u
 #/etc/exportfs –a

 

점검 스크립트

#!/bin/bash

. function.sh

BAR
CODE [U-25] NFS 접근 통제
cat << EOF >> $RESULT
[양호]: 불필요한 NFS 서비스를 사용하지 않거나, 불가피하게 사용 시 everyone 공유를 제한한 경우
[취약]: 불필요한 NFS 서비스를 사용하고 있고, everyone 공유를 제한하지 않은 경우
EOF
BAR

CHECK1=$(systemctl list-unit-files nfs-server.service | grep ^nfs | awk '{print $2}')
HOSTNAME=$(hostname)
CHECK2=$(showmount -e $HOSTNAME | grep everyone | wc -l)

if [ $CHECK1 == 'disabled' ] || [ $CHECK2 = 0 ]; then
	OK "불필요한 NFS 서비스를 사용하지 않거나, 불가피하게 사용 시 everyone 공유를 제한한 경우"
else
	VULN "불필요한 NFS 서비스를 사용하고 있고, everyone 공유를 제한하지 않은 경우"
fi


cat $RESULT