가. 취약점 개요
■ 내용 : “..” 와 같은 문자 사용 등으로 상위 경로로 이동이 가능한지 여부 점검
■ 목적 : 상위 경로 이동 명령으로 비인가자의 특정 디렉터리에 대한 접근 및 열람을 제한하여 중요 파일 및 데이터 보호를 목적으로 함
■ 보안 위협
- 상위 경로로 이동하는 것이 가능할 경우 접근하고자 하는 디렉터리의 하위 경로에 접속하여 상위경로로 이동함으로써 악의적인 목적을 가진 사용자의 접근이 가능함
나. 점검방법
■ 대상 : SOLARIS, LINUX, AIX, HP-UX 등
■ 판단기준
- 양호 : 상위 디렉터리에 이동제한을 설정한 경우
- 취약 : 상위 디렉터리에 이동제한을 설정하지 않은 경우
■ 점검 명령어
OS | 점검 파일 |
SOLARIS, LINUX, AIX, HP-UX | AllowOverride 지시자 Authconfig 옵션 확인 #vi /[Apache_home]/conf/httpd.conf AllowOverride None |
"AllowOverride" 옵션이 “None”으로 설정된 경우 아래의 보안설정방법에 따라 옵션 설정 변경 |
다. 조치방법
■ 조치방법 :
Step 1) 사용자 인증을 하기 위해서 각 디렉터리 별로 httpd.conf 파일 내 AllowOverride 지시자의 옵션 설정을 변경 (None에서 AuthConfig 또는, All로 변경)
Step 2) 사용자 인증을 설정할 디렉터리에 .htaccess 파일 생성
Step 3) 사용자 인증 계정 생성: htpasswd -c <인증 파일> <사용자 계정>
■ SOLARIS, LINUX, AIX, HP-UX
Step 1) vi 편집기를 이용하여 /[Apache_home]/conf/httpd.conf 파일 열기
#vi /[Apache_home]/conf/httpd.conf
Step 2) 설정된 모든 디렉터리의 AllowOverride 지시자에서 AuthConfig 옵션 설정
(수정 전) AllowOverride 지시자에 None 옵션이 설정되어 있음
<Directory “/usr/local/apache2/htdocs”> AllowOverride None Allow from all </Directory> |
(수정 후) AllowOverride 지시자에 AuthConfig 옵션이 설정되어 있음
<Directory “/usr/local/apache2/htdocs”> AllowOverride AuthConfig Allow from all </Directory> |
Step 3) 사용자 인증을 설정할 디렉터리에 .htaccess 파일 생성 (아래 내용 삽입)
AuthName "디렉터리 사용자 인증" AuthType Basic AuthUserFile /usr/local/apache/test/.auth Require valid-user |
지시자 | 설명 |
AuthName | 인증 영역(웹 브라우저의 인증 창에 표시되는 문구) |
AuthType | 인증 형태(Basic 또는, Digest) |
AuthUserFile | 사용자 정보(아이디 및 패스워드) 저장 파일 위치 |
AuthGroupFile | 그룹 파일의 위치(옵션) |
Require | 접근을 허용할 사용자 또는, 그룹 정의 |
Step 4) 사용자 인증에 사용할 아이디 및 패스워드 생성
htpasswd -c /usr/local/apache/test/.auth test
New password: Re-type new password: Adding password for user test [root@localhost apache]# |
Step 5) 변경된 설정 내용을 적용하기 위하여 Apache 데몬 재시작
라. 조치시 영향
■ 해당 설정이 적용된 디렉터리 내 파일들은 아이디/패스워드 인증절차 없이는 접속이 불가능하며, 대외 서비스인 경우 해당 디렉터리에 대한 외부자의 접근 필요성을 검토 후 적용하여야 함