1. HTTP 응답 헤더에서의 Server 헤더
웹 애플리케이션의 보안은 다양한 방법으로 강화할 수 있으며, 그중 하나는 HTTP 응답 헤더에서 Server 헤더를 제거하는 것이다.
Server 헤더는 클라이언트에게 서버 소프트웨어 및 버전에 대한 정보를 제공하는 역할을 한다. 이를 제거하면 여러 가지 보안상의 이점을 얻을 수 있다. 다음은 Server 헤더를 제거함으로써 얻을 수 있는 주요 장점들이다.
2. Server 헤더 제거의 이점
(1) 서버 정보 노출 최소화
Server 헤더에는 웹 서버의 소프트웨어 및 버전 정보가 포함되어 있다. 이 정보는 공격자가 서버의 취약점을 찾는 데 약용될 수 있다. 예를 들어, 특정 버전의 웹 서버가 알려진 보안 취약점을 가지고 있다면, 공격자는 해당 취약점을 이용하여 서버를 공격할 수 있다. Server 헤더를 제거하면 이러한 정보를 공격자로부터 숨길 수 있다.
(2) 공격 표면 감소
공격자는 서버 소프트웨어와 버전 정보를 통해 어떤 공격 벡터를 사용할 지 결정한다. Server 헤더가 제거되면 공격자는 서버의 소프트웨어와 버전을 추측해야 하므로, 공격 시도를 어렵게 만들 수 있다. 이는 잠재적인 공격 시도를 감소시키고 서버 보안을 강화하는 데 기여한다.
(3) 보안 모범 사례 준수
많은 보안 전문가들은 Server 헤더를 제거하는 것을 권장한다. 이는 보안 모범 사례 중 하나로 간주되며, 보안 감사를 통과하거나 보안 수준을 높이기 위한 중요한 단계 중 하나이다. Server 헤더를 제거함으로써 보안 모범 사례를 준수하고 있다는 인식을 줄 수 있다.
(4) 자동화된 공격 방지
많은 자동회된 스캐너와 봇은 서버 헤더를 통해 취약점을 탐지하고 공격을 시도한다. 이러한 도구들은 서버 헤더 정보를 기반으로 공격을 계획한다. Server 헤더를 제거하면 이러한 자동회된 도구가 서버를 탐지하고 공격하는 것을 어렵게 만들 수 있다.
(5) 사용자 데이터 보호
서버의 취약점을 통해 공격자가 서버에 접근하게 되면, 사용자 데이터가 위험에 처할 수 있다. Server 헤더를 제거하여 서버의 보안을 강화하면 사용자 데이터를 보호할 수 있다. 이는 사용자 신뢰를 유지하고 법적 책임을 피하는 데 중요하다.
3. Server 헤더 제거 방법
IIS(Internet Information Services)에서 Server 헤더를 제거하려면 다음 단계를 따른다.
(1) IIS URL Rewrite 모듈을 사용하여 아웃바운드 규칙 추가
- IIS 관리자에서 URL Rewrite 모듈을 사용하여 아웃바운드 규칙을 추가하고 Server 헤더를 제거한다.
(변수 값은 마음대로 지정한다.)
(2) web.config 파일 수정
- 운영 중인 웹 애플리케이션의 web.config 파일을 열고 다음 설정을 추가한다:
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="Server" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
(3) IIS 재시작
- 변경 사항을 적용하려면 IIS를 재시작한다.
(4) 적용 확인
동일하게 HTTP Request를 요청했을 때, Server 헤더가 아래와 같이 변경되어 노출되는지 검증한다.
4.결론
Server 헤더를 제거하는 것은 웹 애플리케이션 보안을 강화하는 간단하면서도 효과적인 방법이다. 이를 통해 서버 정보 노출을 최소화하고, 공격 표면을 감소시키며, 보안 모범 사례를 준수할 수 있다. 또한, 자동화된 공격을 방지하고 사용자 데이터를 보호할 수 있다. 따라서 Server 헤더를 제거하는 것은 보안 강화 전략의 중요한 요소로 고려해야 한다.
#References
https://learn.microsoft.com/ko-kr/iis/configuration/system.webserver/httpprotocol/customheaders/add