[리눅스/서비스 관리] Apache 링크 사용금지 (U-39)

주요정보통신기반시설 Apache 링크 사용금지에 대해서 알아보겠습니다.

apache 링크 사용 금지

 

취약점 개요

■ 위험도
- 상

■ 점검 목적
- 무분별한 심볼릭 링크, aliases 사용제한으로 시스템 권한의 탈취 방지를 목적으로 함

■ 보안 위협
- 시스템 자체의 root 디렉토리(/) 에 링크를 걸게 되면 웹 서버 구동 사용자 권한(nobody)으로 모든 파일 시스템의 파일에 접근할 수 있게 되어 "/etc/passwd" 파일과 같은 민감한 파일을 누구나 열람할 수 있게 됨

 

 

점검 및 조치 방법


■ 판단 기준
- 양호 : 심볼릭 링크, aliases 사용을 제한한 경우
- 취약 : 심볼릭 링크, aliases 사용을 제한하지 않은 경우

■ 조치 방법
- 심볼릭 링크, aliases 사용 제한
(/[Apache_home]/conf/httpd.conf 파일에 설정된 모든 디렉토리의 Options 지시자에서 심볼릭 링크를 가능하게 하는 FollowSymLinks 옵션 제거)

■ 점검 및 조치 사례

 

SOLARIS, LINUX, AIX, HP-UX

Step 1) vi 편집기를 이용하여 /[Apache_home]/conf/httpd.conf 파일 열기
# vi /[Apache_home]/conf/httpd.conf
Step 2) 설정된 모든 디렉토리의 Options 지시자에서 FollowSymLinks 옵션제거

(수정 전) Options 지시자에 FollowSymLinks 옵션이 설정되어 있음

apache followsymlinks


(수정 후) Options 지시자에 None 변경 후 저장

apache options


■ 스크립트

echo "U-39 START"
echo " "																							>>	$COMPUTERNAME 2>&1
echo "[ U-39 Apache 링크 사용금지 ]"																	>>	$COMPUTERNAME 2>&1
if [ `ps -ef | grep httpd | grep -v "grep" | wc -l` -eq 0 ]									
then									
	echo "Apache 미실행중입니다."																		>>	$COMPUTERNAME 2>&1
else									
	if [ `grep -n -i followsymlinks $HTTPD_CONF | grep -v '#' | wc -l` -eq 0 ]									
	then									
		echo "해당 항목의 설정이 없습니다."																>>	$COMPUTERNAME 2>&1
	else									
		grep -n -i followsymlinks $HTTPD_CONF | grep -v '#'											>>	$COMPUTERNAME 2>&1
	fi									
fi									
echo " "																							>>	$COMPUTERNAME 2>&1
echo "U-39 END"																						>>	$COMPUTERNAME 2>&1
echo "======================================================================================"		>>	$COMPUTERNAME 2>&1
echo " "																							>>	$COMPUTERNAME 2>&1
echo " "


■ 용어 설명 / 팁
※ 심볼릭 링크(Symbolic link, 소프트 링크) : 윈도우 운영체제의 바로가기 아이콘과 비슷함. 링크 생성 시 파일 내용은 존재하지 않으나 사용자가 파일을 요청하면 링크가 가리키고 있는 원본 데이터에서 데이터를 가져와서 전달함. 직접 원본을 가리키지 않고 원본 데이터를 가리키는 포인터를 참조함으로써 원본데이터가 삭제, 이동, 수정 되면 사용이 불가함

댓글

Designed by JB FACTORY