공공기관 사업을 하다 보면 웹 취약점 점검을 완료해야 ANY(*.*.*.*) 모든 IP에 대해서 허용해 주는 방화벽을 허용해 준다.
구축 사업을 하다 보면 다른 것은 AP업체에서 조치를 잘하지만 "취약한 메소스 설정" 항목에 대해서 몇 번 퇴자를 맞는 경우를 확인했다.
큰 공공기관의 경우에는 공문으로 취약점 조치 및 결과를 받아서 오랜 시간이 걸린다. 그래서 되도록이면 한 번에 끝내는 게 좋다.
아파치는 찾아서 적용했는데 취약하다고 또 나온다.
Apache 적용 완료
<LimitExcept GET POST HEAD OPTIONS>
order deny,allow
Deny from all
</LimitExcept>HTML
추가적으로 Tomcat(WAS) 소스에 적용을 해줘야 한다.
AP소스위치/WEB-INF/conf/web.xml 파일 안 </ web-app> 위에 추가
가끔 다른 파일 안에 <security-constraint> 구문이 있으니 있으면 안에 추가해야 한다.
<security-constraint>
<display-name>Forbidden</display-name>
<web-resource-collection>
<web-resource-name>Protected Context</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
<http-method>TRACE</http-method>
<http-method>CONNECT</http-method>
</web-resource-collection>
<auth-constraint></auth-constraint>
</security-constraint>HTML
메소드 설명
메소드 | 설명 |
GET | 요청받은 URI의 정보를 검색하여 응답한다. |
POST | Request body 내용에 데이터를 담아 전송하는데 사용하며, 생성이나 수정 용도로 사용된다. |
HEAD | GET 방식과 동일하지만, 응답에 BODY가 없고 응답코드와 HEAD만 응답한다. |
PUT | POST방식과 유사하게 데이터를 전송하고 요청된 자원을 수정한다. |
DELETE | 요청된 자원을 삭제할 것을 요청한다. |
OPTIONS | 웹 서비스에서 지원되는 메소드의 종류를 확인할 경우 사용 |
TRACE | 원격지 서버에 루프백 메시지 호출하기 위해 사용 |
CONNECT | 동적으로 터널 모드를 교환, 프록시 기능을 요청시 사용 |
1. Apache
http.conf or vhost.conf 추가
<LimitExcept GET POST HEAD OPTIONS>
order deny,allow
Deny from all
</LimitExcept>HTML
2. Tomcat / Jboss
소스디렉토리위치/WEB-INF/conf/web.xml 추가
<security-constraint>
<display-name>Forbidden</display-name>
<web-resource-collection>
<web-resource-name>Protected Context</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
<http-method>TRACE</http-method>
<http-method>CONNECT</http-method>
</web-resource-collection>
<auth-constraint></auth-constraint>
</security-constraint>HTML
3. IIS
IIS 홈 디렉토리의 web.config파일안 필드 내에 설정을 추가하여 메소드를 차단 (IIS 7.0, 7.5, 8.0, 8.5, IIS 10)
<configuration>
<system.webServer>
<security>
<requestFiltering>
<verbs>
<add verb="PUT" allowed="false" />
<add verb="DELETE" allowed="false" />
<add verb="TRACE" allowed="false" />
<add verb="CONNECT" allowed="false" />
</verbs>
</requestFiltering>
</security>
</system.webServer>
</configuration>HTML
3. ngnix
ngnix 홈 디렉토리의 ngnix.conf 파일안 수정을 통하여 메소드를 차단
server{
listen 80;
server_name abc.co.kr;
access_log log/access.log;
location / {
limit_except GET POST {
deny all;
}
}HTML
4. WebtoB
WebtoB 홈 디렉토리/config/환경파일 파일안 Method를 수정하여 메소드를 차단한다.
webmain WEBTOBDIR = "/usr/local/webtob",
SHMKEY = 69000,
DOCROOT = "/usr/local/webto/docs",
User = "nobody",
Group = "nobody",
IndexName = "Index.html",
UserDir = "public_html",
DirIndex = "Index",
Method = "-PUT, -DELETE, -TRACE, -CONNECT",
LanguagePrio = "kr"HTML
5. Resin
Resin 홈 디렉토리/resisn.conf 파일안 <web-app> 필드 내에 설정을 추가하여 메소드를 차단한다.
<security-constraint>
<web-resource-collection>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
<http-method>TRACE</http-method>
<http-method>CONNECT</http-method>
</web-resource-collection>
<auth-constraint role-name='user'/>
</security-constraint>HTML
참조
출처: https://mokpo.tistory.com/202 [MSS:티스토리]
'IT이야기' 카테고리의 다른 글
[오라클] 오라클 점검 스크립트(Oracle Check Script) (0) | 2024.02.15 |
---|---|
[APACHE] 최대 접속자(maxclient) 확인 및 설정하기 (0) | 2024.02.14 |
[Tomcat] DBCP 설정 이후 서비스 중단 문제 (0) | 2024.02.05 |
[아파치] 아파치(Apache) 한글 도메인(Domain) 적용하기 (0) | 2024.02.03 |
[톰켓] 톰켓(Tomcat) 로그 로테이션 방법 (0) | 2024.02.03 |