본문 바로가기
Hacking/infra 진단

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

by 알거음슴 2021. 8. 23.
취약점 개요
점검 내용 /etc/hosts 파일의 권한 적절성 점검
점검 목적 /etc/hosts 파일을 관리자만 제어할 수 있게 하여 비인가자들의 임의적인 파일 변조를 방지하기 위함
보안 위협 hosts 파일에 비인가자 쓰기 권한이 부여된 경우, 공격자는 hosts파일에 악의적인 시스템을 등록하여, 이를 통해 정상적인 DNS를 우회하여 악성사이트로의 접속을 유도하는 파밍(Pharming) 공격 등에 악용될 수 있음
hosts파일에 소유자외 쓰기 권한이 부여된 경우, 일반사용자 권한으로 hosts파일에 변조된 IP주소를 등록하여 정상적인 DNS를 방해하고 악성사이트로의 접속을 유도하는 파밍(Pharming) 공격 등에 악용될 수 있음
참고 /etc/hosts: IP 주소와 호스트네임을 매핑하는 파일. 일반적으로 인터넷 통신 시 주소를 찾기 위해 도메인 네임 서비스(DNS)보다 hosts 파일을 먼저 참조함. hosts 파일은 문자열 주소로부터 IP 주소를 수신 받는 DNS 서버와는 달리, 파일 내에 직접 문자열 주소와 IP 주소를 매칭하여 기록하며, DNS 서버 접근 이전에 확인하여 해당 문자열 주소가 목록에 존재할 시 그 문자열 주소에 해당하는 IP 주소로 연결함
※ 파밍(Pharming): 사용자의 DNS 또는 hosts 파일을 번조함으로써 정상적인 사이트로 오인하여 접속하도록 유도한 뒤 개인정보를 훔치는 새로운 컴퓨터 범죄 수법
점검대상 및 판단 기준
대상 LINUX
판단기준 양호 : /etc/hosts 파일의 소유자가 root이고, 권한이 600인 이하인 경우
취약 : /etc/hosts 파일의 소유자가 root가 아니거나, 권한이 600 이상인 경우
조치 방법 /etc/hosts” 파일의 소유자 및 권한 변경 (소유자 root, 권한 600)

 

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

 

점검 스크립트

#!/bin/bash

. function.sh

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

CHECK1=$(ls -l /etc/hosts | awk '{print $3}')
CHECK2=$(stat -c"%a" /etc/hosts)

if [ $CHECK1 == 'root' ] && [ $CHECK2 -le 600 ]; then
	OK " /etc/hosts 파일의 소유자가 root이고, 권한이 600인 이하경우"
else
	VULN "/etc/hosts 파일의 소유자가 root가 아니거나, 권한이 600 이상인 경우"
fi

cat $RESULT