WEB-18 웹서비스WebDAV비활성화
가이드라인 원문
| 항목 | 내용 |
|---|
| 항목코드 | WEB-18 |
| 점검내용 | WebDAV(Web Distributed Authoring and Versioning)는 웹을 통해 원격으로 파일을 읽고 쓸 수 있는 프로토콜입니다. 편리하지만 수많은 보안 취약점 |
| 점검대상 | Apache, Nginx, IIS, WebtoB |
| 판단기준 | 양호: WebDAV 서비스를 비활성화하고 있는 경우 |
| 판단기준 | 취약: WebDAV 서비스를 활성화하고 있는 경우 |
| 조치방법 | 상세 조치 방법 참고 |
상세 설명
1. 항목 개요
WebDAV(Web Distributed Authoring and Versioning)는 웹을 통해 원격으로 파일을 읽고 쓸 수 있는 프로토콜입니다. 편리하지만 수많은 보안 취약점이 발견되어 왔으며, 특히 인증 우회, 버퍼 오버플로우 등의 심각한 문제가 있습니다. 대부분의 웹사이트는 WebDAV가 필요 없으므로 비활성화하는 것이 좋습니다. 마치 집에 특별한 방문객만 위한 출입문을 만들어두었는데 그 자물쇠가 고장된 것과 같습니다.
2. 왜 이 항목이 필요한가요?
실제 시나리오:
- 웹 서버에 WebDAV가 활성화되어 있습니다.
- 공격자가 WebDAV의 인증 우회 취약점을 발견합니다.
- 인증 없이 WebDAV 리소스에 접근하여 파일을 다운로드하거나 업로드합니다.
- 악성 파일을 업로드하거나 중요 설정 파일을 탈취합니다.
WebDAV 주요 취약점:
- 인증 우회: IIS 5.0/6.0 WebDAV 인증 우회 취약점
- 버퍼 오버플로우: 악의적인 PROPFIND 요청으로 서버 다운
- 무차별 대입 공격: WebDAV를 통한 자격증명 공격
- 파일 업로드: 악성코드, 웹쉘 업로드 경로
공격 유형:
1
2
3
4
5
| 1. WebDAV 활성화 확인
2. OPTIONS / HTTP/1.1 요청으로 메서드 확인
3. PROPFIND, PUT, DELETE, MKCOL 등 WebDAV 메서드 테스트
4. 인증 우회 취약점 공격
5. 파일 열람, 다운로드, 업로드, 삭제
|
3. 점검 대상
- Apache: Apache HTTP Server
- Nginx: Nginx 웹 서버
- IIS: Microsoft Internet Information Services
- WebtoB: Tmax WebtoB 웹 서버
4. 판단 기준
- 양호: WebDAV 서비스를 비활성화하고 있는 경우
- 취약: WebDAV 서비스를 활성화하고 있는 경우
5. 점검 방법
간단한 점검 방법
1
2
3
4
5
| # curl로 WebDAV 메서드 확인
curl -X OPTIONS http://your-domain.com/
# 또는
curl -I -X PROPFIND http://your-domain.com/
|
WebDAV가 활성화된 경우 응답:
1
2
| HTTP/1.1 200 OK
Allow: GET, HEAD, POST, PUT, DELETE, OPTIONS, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK
|
Apache
1
2
3
4
5
| # DAV 모듈 확인
apache2ctl -M | grep dav
# 설정 확인
grep -r "Dav" /etc/apache2/
|
IIS
IIS 관리자 > ISAPI 및 CGI 제한에서 WebDAV 확인
6. 조치 방법
Apache
Step 1) httpd.conf 파일 내 모든 디렉터리에서 WebDAV 설정 확인
1
| cat /<Apache_Dir>/conf/httpd.conf (또는 apache2.conf)
|
1
2
3
4
| <!-- WebDAV 활성화 확인 -->
<Directory "/path/to/directory">
Dav On
</Directory>
|
Step 2) 모든 디렉터리에서 WebDAV 설정 비활성화 또는 주석 처리
1
| vi /<Apache_Dir>/conf/httpd.conf (또는 apache2.conf)
|
1
2
3
4
| <!-- 변경 후 (양호) -->
<Directory "/path/to/directory">
Dav Off
</Directory>
|
Step 3) Apache 재구동
1
| systemctl restart apache2
|
Nginx
Step 1) nginx.conf 파일 내 모든 디렉터리에서 WebDAV 설정 확인
1
| cat /<Nginx 설치 디렉터리>/conf/nginx.conf
|
1
2
3
4
5
6
| location /webdav {
root /path/to/webdav;
dav_methods PUT DELETE MKCOL COPY MOVE;
dav_access user:rw group:rw all:r;
create_full_put_path on;
}
|
Step 2) nginx.conf 파일 내 모든 디렉터리에서 WebDAV 설정 주석 처리 또는 제거
1
| vi /<Nginx 설치 디렉터리>/conf/nginx.conf
|
1
2
3
4
5
6
7
| # 변경 후 (양호) - 주석 처리
#location /webdav {
# root /path/to/webdav;
# dav_methods PUT DELETE MKCOL COPY MOVE;
# dav_access user:rw group:rw all:r;
# create_full_put_path on;
#}
|
Step 3) Nginx 재구동
1
| systemctl restart nginx
|
IIS
Step 1) WebDAV 금지 설정 확인
- 제어판 > 관리 도구 > 인터넷 정보 서비스(IIS) 관리자 실행
- 서버 선택 > IIS > ‘ISAPI 및 CGI 제한’ 더블클릭
- WebDAV 항목 선택 > ‘확장 경로 실행 허용(A)’ 체크 확인
Step 2) WebDAV 금지 설정 적용
- IIS 관리자 > 서버 선택 > IIS > ‘ISAPI 및 CGI 제한’ 선택
- WebDAV 항목 선택
- [작업]에서 제거하거나, 편집 클릭
- ‘확장 경로 실행 허용(A)’ 체크 해제
- 확인 클릭
Step 3) IIS 재시작
1
2
3
| iisreset
# 또는
Restart-Service W3SVC
|
WebtoB
Step 1) Server 설정 파일 내 NODE 절 vhost 메소드 설정 확인
1
| vi /<WebtoB 설치 디렉터리>/config/http.m
|
1
2
| *VHOST vhost1
Method = 'GET, POST, HEAD, OPTIONS, PROPFIND, PUT, DELETE, MKCOL, COPY, MOVE'
|
Step 2) NODE 절 WebDAV 설정 삭제
1
2
3
| # 변경 후 (양호)
*VHOST vhost1
Method = 'GET, POST, HEAD, OPTIONS'
|
Step 3) 설정 파일 컴파일 및 재구동
1
2
3
| wscfl -I http.m
wsdown
wsboot
|
7. 조치 시 주의사항
- 일반적인 경우 영향이 없습니다.
- WebDAV가 실제로 필요한 서비스인 경우(파일 공유, 오피스 통합 등)에는 비활성화하지 마세요.
- WebDAV가 필요한 경우 강력한 인증(SSL/TLS, 2단계 인증)과 IP 제한을 적용하세요.
- 변경 후 파일 공유 기능이 필요한 사용자에게 영향이 없는지 확인해야 합니다.
- 정기적으로 WebDAV가 재활성화되지 않았는지 감사해야 합니다.
8. 참고 자료
요약
WebDAV 서비스를 비활성화하여 인증 우회, 버퍼 오버플로우 등의 알려진 취약점을 통한 공격을 방지해야 합니다.