728x90
반응형
Apache(아파치)를 이용하여 서비스 구동 시 해당 서비스에 여러 User-Agent(UA)로 접근이 된다.
이때 정상적으로 사용하는 사용자는 크게 상관이 없으나, 크롤러, 취약점 스캐너 혹은 공격 Tool 등을 이용하여 해당 서비스에 대해서 정보 수집을 하는 경우가 있다.
그럴 경우, 취약점 발견 혹은 서비스 장애 등이 발생되어 현재 사용되는 서비스에 영향을 줄 수 있다.
그렇다면 이런 경우 어떻게 대비를 해야 하는지 아래와 같이 한번 알아보도록 하자.
Apache에서는 이런 경우를 대비하기 위해 User-Agent 제한을 하거나 특정 User-Agent만 사용하도록 할 수 있다.
1. User-Agent 제한 설정
Apache의 기본 설정 파일인 http.conf 파일에 아래와 같이 설정하여 User-Agent(UA)에 대해서 제한을 설정할 수 있다.
현재 기본적으로 넣어놓은 User-Agent는 일반적으로 많이 사용되는 취약점 스캐너, 공격 Tool에서 사용하는 User-Agent이다.
- Paros|ZmEu|nikto|dirbuster|sqlmap|openvas|w3af|Morfeus|JCE|Zollard|Arachni|Brutus|bsqlbf|Grendel-Scan|Havij|Hydra|N-Stealth|Netsparker|Pangolin|pmafind|webinspect
$ vi http.conf
... 이하 생략 ...
SetEnvIfNoCase User-Agent "(Paros|ZmEu|nikto|dirbuster|sqlmap|openvas|w3af|Morfeus|JCE|Zollard|Arachni|Brutus|bsqlbf|Grendel-Scan|Havij|Hydra|N-Stealth|Netsparker|Pangolin|pmafind|webinspect)" BAD-AGENT
... 이하 생략 ...
<Location />
Order Allow,Deny
Allow from all
Deny from env=BAD-AGENT
Deny from env=BAD-HEADER
</Location>
# 미적용시
$ curl -i -X GET -H "User-Agent: paros" http://test.com
HTTP/1.1 200 OK
Server: Apache
... 이하 생략 ...
# 적용시
$ curl -i -X POST -H "User-Agent: paros" http://test.com
HTTP/1.1 404 Not Found
Server: Apache
... 이하 생략 ...
2. 특정 User-Agent 허용 설정
반대로 특정 User-Agent에 대해서만 설정하여 사용하는 방법도 있다.
이 방법은 어떻게 사용하느냐에 따라 다르겠지만, 가급적 Rest API 혹은 특정 서비스와 연동 등과 같이 특정 영역에서만 접근을 하는 경우에 허용 IP ACL과 같이 허용된 User-Agent를 통해서만 서비스가 되도록 할 때 사용하는 편이 좋을 것 같다.
$ vi http.conf
... 이하 생략 ...
SetEnvIfNoCase User-Agent "^test$" WHITE-AGENT
... 이하 생략 ...
<Location />
Order Deny,Allow
Deny from all
Allow from env=WHITE-AGENT
</Location>
... 이하 생략 ...
# 미적용시
$ curl -i -X GET -H "User-Agent: test" http://test.com
HTTP/1.1 200 OK
Server: Apache
... 이하 생략 ...
# 적용시
$ curl -i -X POST -H "User-Agent: paros" http://test.com
HTTP/1.1 404 Not Found
Server: Apache
이제 쉽게 User-Agent 설정만을 통해서 서비스 접속에 대한 제한 / 허용 등을 하는 방법을 알아보았다.
3. 같이 보면 좋은 문서
728x90
반응형
'+ Security > 보안 가이드' 카테고리의 다른 글
[보안가이드] Nginx Header Version 정보 노출 방지 (0) | 2021.07.31 |
---|---|
[보안가이드] Nginx User-Agent 제한 설정 (0) | 2021.07.31 |
[보안가이드] Apache(아파치) Header Version 정보 노출 방지 (0) | 2021.07.31 |
[보안가이드] 주요정보통신기반시설 기술적 취약점 분석 평가 상세가이드 (0) | 2021.01.01 |
[보안가이드] KISA 클라우드 취약점 점검 가이드 (0) | 2020.12.31 |
댓글