[Unix-보안] 웹 서버 HTTP Trace 기능 지원 |
■ 취약점
- 웹 서버가 HTTP Trace 기능을 지원함
■ 조치방법
- 웹 서버가 HTTP Trace 기능을 지원하지 않도록 설정
- SUN ONE 웹서버 4.1
1. 다음과 같은 내용의 소스코드(reject_trace.c) 작성
NSAPI_PUBLIC int reject_trace(pblock *pb, Session *sn, Request *rq) {
const char *method;
method = pblock_findval(""method"", rq->reqpb);
if (method && !strcmp(method, ""TRACE"")) {
param_free(pblock_remove(""transfer-encoding"",rq->headers));
param_free(pblock_remove(""content-length"", rq->headers));
pblock_nvinsert(""content-length, ""-1"", rq->headers);
log_error(LOG_WARN, ""reject-trace"", sn, rq, ""rejecting TRACE request"");
protocol_status(sn, rq, PROTOCOL_NOT_IMPLEMENTED, NULL);
return REQ_ABORTED;
}
return REQ_NOACTION;
}
2. 소스코드를 컴파일
3. $vi obj.conf
4. obj.conf 파일의 Init Section에 다음 내용을 추가
5. obj.conf 파일에 다음 내용을 추가
AuthTrans fn=""reject_trace""
6. obj.conf 파일을 저장
- WebtoB의 경우
1. config 디렉토리에 위치한 환경설정파일 오픈
2. *NODE 절의 Method 값 변경
※ 기본적으로 WebtoB에서는 모든 메소드를 허용하므로 제한하고자 하는 메소드는 메소드 이름 앞에 ""-""를 추가
*NODE
< 중 략 >
Method = ""-DELETE, -TRACE"",
< 중 략 >
3. wscfl를 이용하여 바이너리로 컴파일
- Apache의 경우
1. Apache의 mod_rewirte 모듈의 존재를 다음과 같이 확인 $ ls [설치 디렉토리]/libexec/mod_rewrite.so
※ mod_rewrite 모듈 설치시, 2∼8 과정을 건너뛰고 9 과정을 시행
2. mod_rewrite 모듈 미 설치시, 웹 브라우져로 http://mirror.apache.or.kr/httpd/ 에 접속
3. 현재 설치된 Apache 웹 서버의 버전의 소스를 /tmp 디렉토리에 내려받음
$ gzip -d <내려받은 아파치 웹서버 소스 파일명>.tar.gz
$ tar xvf <내려받은 아파치 웹서버 소스 파일명>.tar
$ cp ./<내려받은 아파치 웹서버 소스 파일명>/src/modules/standard/mod\_rewrite. - /tmp
$ cd /tmp
$ [설치 디렉토리]/bin/apxs -iac ./mod\_rewrite.c
$ vi [설치 디렉토리]/conf/httpd.con
4. httpd.conf 파일에 다음 내용을 추가
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule . - - [F]
5. httpd.conf 파일을 저장
6. $ [설치 디렉토리]/bin/apachectl restart
- SUN ONE 웹서버 6.0 SP2 이후
1. $ vi obj.conf
2. obj.conf 파일에 다음 내용을 추가
AuthTrans fn=""set-variable""
remove-headers=""transfer-encoding""
set-headers=""content-length: -1""
error=""501""
</Client>
3. obj.conf 파일을 저장
4. 웹 서버를 재실행
- SUN ONE 웹서버 6.0 및 SP1
1. 최신 Sun ONE/iPlanet 웹 서버 6.0 서비스 팩 혹은 Sun ONE/iPlanet 웹 서버 6.0 서비스 팩 2를 설치
2. $vi obj.conf
3. obj.conf 파일에 다음 내용을 추가
AuthTrans fn=""set-variable""
remove-headers=""transfer-encoding""
set-headers=""content-length: -1""
error=""501""
</Client>
4. obj.conf 파일을 저장
5. 웹 서버를 재실행
'IT Infra & OS & Security > Unix' 카테고리의 다른 글
[보안] xterm 실행 파일 권한 설정 (0) | 2017.04.01 |
---|---|
[보안] Anonymous FTP 비활성화 (0) | 2017.03.31 |
[보안] 존재하지않는 GID를 가진 디렉토리 및 파일 (0) | 2017.03.30 |
[보안] 존재하지않는 UID를 가진 디렉토리 및 파일 (0) | 2017.03.06 |
[보안] ftpusers 파일 안에 시스템 계정 미존재 (0) | 2017.03.05 |