2015.12.23 17:41
■ 디렉토리 리스팅
웹 브라우저에서 사용자가 URL을 입력했을 경우, Apache 웹서버는 3가지 방법 응답한다. 정상적으로 웹 내용을 보여주든지, 디렉토리 리스트를 보여주든지, 에러 메시지를 보여준다.
원격의 공격자가 시스템에 대한 많은 정보를 획득할수록 보안 허점을 발견하기가 용이해 진다. 디렉토리 리스트를 보여주는 것 또한 불필요한 정보를 공격자에게 제공하여 공격에 이용될 수 있다. 백업 데이터, CGI 소스코드들, 필요에 의해 만들어놓은 심블릭 링크 등 서버 관리자가 실수로 지우지 않은 파일들이 공격자의 손에 들어갈 수 있다. DocumentRoot 디렉토리 내의 모든 파일들이 리스팅되는 것을 방지하기 위해서 Options 지시자에서 Indexes 옵션을 제거하여야 한다.
■ 심블릭 링크
몇몇 서버는 심블릭 링크를 이용해서 기존의 웹 문서 이외의 파일시스템에 접근 가능하도록 하고 있다. 이러한 방법은 편리할 수는 있지만 심각한 보안 문제를 야기시킬 수 있다. 가령 시스템 자체의 root 디렉토리(/ )를 링크 걸게 되면 웹서버 구동사용자 권한(nobody)으로 모든 파일시스템의 파일에 접근할 수 있게 된다. 즉,/etc/passwd와 같은 대단히 민감한 파일까지 누구나 열람가능하게 된다.
Options 지시자에서 심블릭 링크를 가능하게 하는 옵션인 FollowSymLinks를 제거함으로써 이를 막을 수 있다.
PUT과 POST의 제한
원격 사용자는 DocumentRoot 디렉토리 구조에 파일을 업로드 하거나 수정하는 행위가 제한되어야 한다. 물론 DocumentRoot의 파일/ 디렉토리 퍼미션을 사용해서도 웹을 통한 파일 업로드 및 수정을 막을 수는 있다. 하지만, 적절한 제한이 이루어지지 않을 경우 홈페이지가 변조되거나 웹 사이트가 침해당할 수 있으므로 <Limit>태그를 이용하여 각 디렉토리별로 HTTP Method의 사용여부를 통제할 수 있다. 파일 업로드 및 파일의 수정을 위해서 사용되는 HTTP Method는 PUT과 POST이다.
사용시 주석문 해재하고 적절히 수정한다.
#<Directory /home/*/public_html>
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
# <Limit GET POST OPTIONS PROPFIND>
# Order allow,deny
# Allow from all
# </Limit>
# <LimitExcept GET POST OPTIONS PROPFIND>
# Order deny,allow
# Deny from all
# </LimitExcept>
#</Directory>
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
54 | 500번대 error | 소울 | 2016.07.12 | 5124 |
53 | modsecurity 설치후 간단히 작동확인 | 소울 | 2016.07.05 | 6151 |
52 | apache 동접자 확인 | 소울 | 2016.01.26 | 5798 |
51 | ssl.conf 파일중 파일넣는곳 | 소울 | 2016.01.11 | 6085 |
» | PUT과 POST의 제한 | 소울 | 2015.12.23 | 7729 |
49 | mpm | 소울 | 2015.11.12 | 6012 |
48 | nginx connections 늘리기 | 소울 | 2015.11.03 | 7064 |
47 | 접근 로그에 이미지에 대한 요청을 로그하지 않기 | 소울 | 2015.08.12 | 6271 |
46 | access_log 예) | 소울 | 2015.08.12 | 7866 |
45 | KeepAlive | 소울 | 2014.07.03 | 9902 |
44 | ssl 패스워드 skip | 소울 | 2014.06.20 | 7534 |
43 | nginx 리다이렉트 | 소울 | 2014.06.17 | 9720 |
42 | 세션(Session)과 쿠키(Cookie)의 차이점 | 소울 | 2014.06.17 | 10394 |
41 | Name or service not known: mod_unique_id: unable to find IPv4 address of ~ 에러뜨면서 아파치 구동 안될때 | 소울 | 2014.05.20 | 7364 |
40 | 한글파일업로드시 깨지는것 해결 mod_url | 소울 | 2014.04.29 | 7905 |
39 | index.php 에서 주소 넘기는방법 | 소울 | 2014.04.29 | 6782 |
38 | mod_headers, mod_expires, mod_deflate, mod_unique_id 설치 | 소울 | 2014.04.29 | 8052 |
37 | Openssl 사설인증기관(CA) 만들기 주소 [펌] | 소울 | 2014.04.29 | 7246 |
36 | .htaccess 이용한 301 Redirect | 소울 | 2014.04.29 | 9145 |
35 | 특정디렉토리 php 실행안되게 설정 | 소울 | 2014.03.23 | 7130 |