[리눅스/서비스 관리] Apache 링크 사용금지 (U-39)
- 취약점 점검/리눅스
- 2021. 7. 8.
주요정보통신기반시설 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 옵션이 설정되어 있음
(수정 후) Options 지시자에 None 변경 후 저장
■ 스크립트
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, 소프트 링크) : 윈도우 운영체제의 바로가기 아이콘과 비슷함. 링크 생성 시 파일 내용은 존재하지 않으나 사용자가 파일을 요청하면 링크가 가리키고 있는 원본 데이터에서 데이터를 가져와서 전달함. 직접 원본을 가리키지 않고 원본 데이터를 가리키는 포인터를 참조함으로써 원본데이터가 삭제, 이동, 수정 되면 사용이 불가함