독까의 이야기

특정 업체의 보안 정책에 따른 IIS 설정 변경이 필요함.

[재현절차]
 1.[보안] Response 값 헤더에 서버정보 노출
   ex) server : Microsoft-IIS/8.5
 
 [결함내용]
 1.[보안] 부적절한 환경 설정 - 불필요한 서버 정보 노출

 

OS : Windows 2012 R2 / IIS 8.5

URL Rewrite 2.0 다운로드 및 설치


IIS 최상단 트리의 URL Rewrite 기본 설정 진행.

 

[아웃바운드 정책 추가]

RESPONSE_SERVER

 RESPONSE_X-POWERED-BY

RESPONSE_X-ASPNET-VERSION

 

웹사이트 출력 후, 개발자 도구를 이용하여 응답 헤더 조회시 아래와 같이 결과 확인 가능.

 

그런데, 위의 설정으로는 정상적으로 호출이 완료 된 웹페이지에 대해서만 적용되는 걸로 확인 됨.

존재하지 않는 페이지 호출이나, .net 호출시에는 안 먹힘. (서버 정보가 그대로 노출 됨)

 

어떻게 처리를 해야 하나 구글 검색을 했는데, 모듈을 생성해서 적용하는 것을 권장 했음.

"How to remove IIS/ASP.NET Response Headers"

https://serverfault.com/questions/24885/how-to-remove-iis-asp-net-response-headers

 

본문에 있는 내용을 적용해볼까도 했는데, 이미 만들어진 모듈이 있을 것 같아서 다시 검색.

 

EASILY REMOVE UNWANTED HTTP HEADERS IN IIS 7.0 TO 8.5

https://www.dionach.com/blog/easily-remove-unwanted-http-headers-in-iis-70-to-85

내용을 읽어보니 설치 후 바로 적용이 가능한 것으로 보임.

개발 페이지에 접속하여 내용을 확인.

https://github.com/dionach/stripheaders

MS에서 만든것이 아닌, 서드파티 모듈 이기는 했지만 일단 적용을 해보기로 함.

 

iis_stripheaders_module_1.0.5.msi

 

이상 없이 설치 완료 후, web.config 에 아래의 구문 추가.

    <stripHeaders>
      <header name="Server" />
      <header name="X-Powered-By" />
      <header name="X-Aspnet-Version" />

    </stripHeaders>

    </system.webServer>

 

웹페이지 호출 테스트 진행을 해보니, Server 정보 부분이 제거 되어 있음을 확인.

보안에 대한 검증이 완료 된 것이라면, 이 모듈을 사용하는 것이 간편해서 좋을 것 같음.