웹 서버 응답 헤더에 포함된
X-Powered-By정보(예: Servlet/3.1)는 불필요한 서버 정보를 노출하여 보안 취약점으로 분류됩니다. IBM WebSphere Application Server(WAS) v8.5 이상에서 웹 컨테이너 사용자 정의 속성을 통해 이 헤더를 제거하는 방법을 정리합니다.
0. 배경 및 원인 (Context)
기본적으로 WAS는 클라이언트에게 응답을 보낼 때, 자신이 사용한 기술 스택을 헤더에 포함합니다.
- X-Powered-By: 구현 기술 정보 (예:
Servlet/3.0,JSP/2.2) - Server: 웹 서버 소프트웨어 정보 (예:
WebSphere Application Server/8.5)
공격자는 이 정보를 바탕으로 특정 버전에 존재하는 알려진 취약점(CVE)을 공격할 수 있으므로, 운영 환경에서는 반드시 숨겨야 합니다.
Test Environment
- OS: CentOS 7.2
- WAS: WebSphere Application Server v8.5.5
1. X-Powered-By 헤더 제거 설정
WAS 관리 콘솔(Admin Console)에서 웹 컨테이너 설정을 변경합니다.
설정 경로
서버(Servers) > 서버 유형(Server Types) > WebSphere application servers > [서버명] > 웹 컨테이너 설정(Web Container Settings) > 웹 컨테이너(Web container) > 사용자 정의 특성(Custom properties)
속성 추가 (New)
| 이름 (Name) | 값 (Value) |
|---|---|
| com.ibm.ws.webcontainer.disablexPoweredBy | true |
보안 강도를 더 높이려면
com.ibm.ws.webcontainer.disableServerHeader 속성도 true로 설정하여 WAS 버전 정보까지 숨기는 것을 권장합니다.
2. 검증 (Verification)
설정 저장 후 서버를 반드시 재기동해야 적용됩니다. curl 명령어나 브라우저 개발자 도구(F12)를 통해 응답 헤더를 확인합니다.
명령어 확인 (Linux)
# -I 옵션으로 헤더만 조회
curl -I http://localhost:9080/
# 적용 전 (노출됨)
HTTP/1.1 200 OK
X-Powered-By: Servlet/3.0
Content-Type: text/html
...
# 적용 후 (사라짐)
HTTP/1.1 200 OK
Content-Type: text/html
...
브라우저 확인
Chrome 개발자 도구 > Network 탭 > 아무 요청 클릭 > Response Headers 섹션에서 해당 항목이 사라졌는지 확인합니다.
Next Step:
WAS 설정뿐만 아니라 앞단의 웹 서버(IHS/Apache)에서도 ServerTokens Prod 설정을 통해 Apache 버전 정보 노출을 최소화해야 완벽한 보안 조치가 됩니다.