[2026 주요정보통신기반시설] WEB-15 웹서비스의불필요한스크립트매핑제거

스크립트 매핑은 웹 서버에서 특정 파일 확장자를 처리 프로그램에 연결하는 기능입니다. 예를 들어 `.asp` 파일은 `asp.dll`이 처리하고 `.php` 파일은 PHP 엔진이

WEB-15 웹서비스의불필요한스크립트매핑제거

가이드라인 원문

항목내용
항목코드WEB-15
점검내용스크립트 매핑은 웹 서버에서 특정 파일 확장자를 처리 프로그램에 연결하는 기능입니다. 예를 들어 .asp 파일은 asp.dll이 처리하고 .php 파일은 PHP 엔진이
점검대상Tomcat, IIS, JEUS
판단기준양호: 불필요한 스크립트 매핑이 존재하지 않는 경우
판단기준취약: 불필요한 스크립트 매핑이 존재하는 경우
조치방법상세 조치 방법 참고


상세 설명

1. 항목 개요

스크립트 매핑은 웹 서버에서 특정 파일 확장자를 처리 프로그램에 연결하는 기능입니다. 예를 들어 .asp 파일은 asp.dll이 처리하고 .php 파일은 PHP 엔진이 처리합니다. 하지만 사용하지 않는 스크립트 매핑이 남아 있으면 공격자는 해당 확장자의 알려진 취약점을 악용할 수 있습니다. 마치 쓰지 않는 전기 기구의 코드를 콘센트에 꽂아두는 것과 같습니다.

2. 왜 이 항목이 필요한가요?

실제 시나리오:

  • 웹 서버에 .htr, .idq, .printer 등의 오래된 스크립트 매핑이 설정되어 있습니다.
  • 이 확장자들은 과거에 심각한 보안 취약점이 발견되었습니다.
  • 공격자가 이러한 확장자를 요청하여 버퍼 오버플로우 취약점을 공격합니다.
  • 서버 권한을 획득하거나 서비스 거부 상태를 만듭니다.

불필요한 스크립트 매핑 위험성:

  • 버퍼 오버플로우: 알려진 취약점으로 시스템 장악
  • 서비스 거부: 악의적인 요청으로 서버 다운
  • 코드 실행: 임의 코드 실행으로 서버 장악
  • 정보 노출: 소스 코드, 시스템 정보 유출

취약한 확장자 예시:

확장자명기능취약점
.aspActive Server Pages 기능 지원Buffer Overflow (MS02-018)
.htr웹 기반 비밀번호 재설정.htr 소스 공개 취약점 (MS01-004)
.idcInternet Database ConnectorWeb 디렉터리 경로 공개
.stm/.shtmlServer-Side IncludesBuffer Overflow (MS01-044)
.printer인터넷 프린팅Buffer Overflow (MS01-023)
.ida/.idqIndex Server 쿼리Buffer Overflow (MS01-033)
.htwIndex Server WebhitWebhit 소스 공개 취약점 (MS00-006)

3. 점검 대상

  • Tomcat: Apache Tomcat 웹 서버
  • IIS: Microsoft Internet Information Services
  • JEUS: Tmax JEUS 웹 애플리케이션 서버

4. 판단 기준

  • 양호: 불필요한 스크립트 매핑이 존재하지 않는 경우
  • 취약: 불필요한 스크립트 매핑이 존재하는 경우

5. 점검 방법

Tomcat

1
2
# Servlet 매핑 확인
grep -A 5 "servlet-mapping" /<Tomcat 설치 디렉터리>/conf/web.xml

IIS

1
2
# 처리기 매핑 확인
# IIS 관리자 > 처리기 매핑에서 확인

JEUS

1
2
# Servlet 매핑 확인
grep -A 5 "servlet-mapping" /<JEUS 설치 디렉터리>/web.xml

6. 조치 방법

Tomcat

Step 1) 설정 파일의 불필요 스크립트 매핑 제거

1
vi /<Tomcat 설치 디렉터리>/conf/web.xml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<!-- 변경 전 (취약) -->
<servlet-mapping>
    <servlet-name>UnuseServlet</servlet-name>
    <url-pattern>/example/*</url-pattern>
</servlet-mapping>

<!-- 변경 후 (양호) - 주석 처리 또는 제거 -->
<!--
<servlet-mapping>
    <servlet-name>UnuseServlet</servlet-name>
    <url-pattern>/example/*</url-pattern>
</servlet-mapping>
-->

Step 2) Tomcat 재시작

1
systemctl restart tomcat

참고: context.xml 파일 내 명시된 설정 파일에서도 DB 연결 확인이 필요합니다.

IIS

Step 1) 취약한 매핑 설정 확인 및 제거

다음 확장자 매핑 확인 및 제거:

  • .htr, .idc, .stm, .shtm, .shtml, .printer, .htw, .ida, .idq
  1. 시작 > 실행 > INETMGR 입력
  2. 웹사이트 > 해당 웹사이트 선택
  3. ‘처리기 매핑’ 더블클릭
  4. 미사용 확장자 매핑 선택 후 제거 클릭

취약한 확장자별 조치:

확장자명양호 버전조치 방법
.aspWin 2000 SP3 이상최신 패치 적용 또는 매핑 제거
.htrWin 2000 SP3, NT SP7.0 이상최신 패치 적용 또는 매핑 제거
.idcNT 4.0, NT SP6a 이상최신 패치 적용 또는 매핑 제거
.stm/.shtmlWin 2000 SP3 이상최신 패치 적용 또는 매핑 제거
.printerWin 2000 SP2 이상최신 패치 적용 또는 매핑 제거
.ida/.idqWin 2000 SP3 이상최신 패치 적용 또는 매핑 제거
.htwWin 2000 SP1 이상최신 패치 적용 또는 매핑 제거

Step 2) IIS 재시작

1
2
3
iisreset
# 또는
Restart-Service W3SVC

JEUS

Step 1) web.xml 파일 내 servlet-mapping 요소에서 불필요 매핑 확인 및 제거

1
vi /<JEUS 설치 디렉터리>/conf/web.xml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<!-- 변경 전 (취약) -->
<servlet-mapping>
    <url-pattern>/welcome</url-pattern>
    <servlet-name>jsp</servlet-name>
</servlet-mapping>

<!-- 변경 후 (양호) - 주석 처리 또는 제거 -->
<!--
<servlet-mapping>
    <url-pattern>/welcome</url-pattern>
    <servlet-name>jsp</servlet-name>
</servlet-mapping>
-->

Step 2) JEUS 재시작

1
2
3
4
5
# 서버 중지
./stopServer -host <도메인명>:<포트 번호>

# 서버 시작
./startDomainAdminServer -host <도메인명>:<포트 번호>

7. 조치 시 주의사항

  • 일반적인 경우 영향이 없습니다.
  • 실제 사용 중인 스크립트 매핑인지 확인 후 제거해야 합니다.
  • 확장자를 사용하는 웹 애플리케이션이 있는 경우 제거하면 서비스가 중단됩니다.
  • 매핑 제거 전에 웹사이트에서 해당 확장자를 사용하는지 검색해야 합니다.
  • 제거 후 웹사이트 정상 작동 여부를 테스트해야 합니다.
  • 정기적으로 불필요한 매핑이 추가되지 않았는지 감사해야 합니다.

8. 참고 자료

요약

웹 서비스에서 사용하지 않는 불필요한 스크립트 매핑을 제거하여 알려진 취약점을 악용한 공격을 방지해야 합니다.

Hugo로 만듦
JimmyStack 테마 사용 중