Apache Tomcat의 CVE-2017-12617 취약점 분석과 대응 방법

CVE201712617 취약점 분석 Apache Tomcat

아파치 톰캣(Apache Tomcat)은 아파치 소프트웨어 재단에서 개발한 자바 서블릿 및 JSP(JavaServer Pages) 기술을 구현하는 오픈 소스 웹 애플리케이션 서버입니다. 이 서버는 웹 애플리케이션의 실행 환경을 제공하여 개발자들에게 널리 사용되고 있습니다. 그러나 아파치 톰캣도 예외 없이 보안 취약점에 노출될 수 있습니다. 특히, 2017년 발견된 CVE-2017-12617 취약점은 PUT 메소드가 활성화된 서버에서 조작된 파일을 업로드하여 실행할 수 있는 위험한 취약점으로, 많은 시스템에 심각한 위협을 초래할 수 있습니다. 이번 포스팅에서는 CVE-2017-12617 취약점에 대한 심층적인 분석과 위협 요소, 대응 방안 등을 자세히 살펴보겠습니다.


CVE-2017-12617 취약점 개요

CVE-2017-12617은 아파치 톰캣의 7.x부터 9.x 버전까지 영향을 미치는 취약점으로, PUT 메소드가 활성화된 서버에서 공격자가 임의로 파일을 업로드하고 실행할 수 있는 경로를 제공합니다. 이 취약점은 특정 설정 조건 하에서 발생하며, 아파치 톰캣의 기본 설정에서는 PUT, DELETE 메소드 등이 비활성화되어 있습니다. 하지만, 이러한 기본 설정이 변경되거나 사용자가 PUT 메소드를 활성화한 경우, 공격자는 쉽게 악의적인 파일을 업로드하여 원격 코드 실행을 이끌어낼 수 있습니다.

취약한 버전 표

구분 제품명 버전
취약한 대상 Apache Tomcat 9.0.0.M1 ~ 9.0.0, 8.0.0.RC1 ~ 8.0.46, 7.0.0 ~ 7.0.81
권고 대상 Apache Tomcat 9.0.18, 8.5.23, 8.0.47, 7.0.82

위 표는 CVE-2017-12617 취약점에 영향을 받는 Apache Tomcat의 특정 버전을 나타냅니다. 이를 통해 사용자들은 자신이 사용하는 버전이 취약점에 노출되어 있는지 확인할 수 있습니다.

취약점 공격 경로

해당 취약점은 파일 업로드를 통한 공격이므로, 공격자는 다음과 같은 과정을 통해 공격을 수행할 수 있습니다:

  1. 환경 설정: 공격자는 아파치 톰캣 서버의 web.xml 파일에서 기본 서블릿의 읽기 전용 초기화 변수를 false로 설정하여 PUT 메소드를 활성화해야 합니다.
  2. 파일 업로드: 공격자가 PUT 메소드를 이용해 조작된 JSP 파일을 업로드합니다. 이때, 일반적인 파일 이름을 사용하여 서버에 요청을 보내게 되며, 서버가 해당 요청을 처리할 경우 취약점이 발생합니다.
  3. 악성 코드 실행: 업로드된 악성 JSP 파일을 GET 방식으로 요청함으로써, 공격자는 서버에서 악성 코드를 실행할 수 있습니다.

이와 같은 과정은 보안 설정이 부실한 서버에서 쉽게 이루어질 수 있으며, 이를 통해 원격 제어를 허용하는 다양한 형태의 공격이 발생할 수 있습니다.

취약점 발생 원리

CVE-2017-12617 취약점의 핵심 원리는 web.xml 파일의 서블릿 매핑 방식에 있습니다. .jsp, .jspx 파일은 jsp 서블릿에 의해 처리되며, 그 외의 파일은 기본 서블릿이 처리합니다. 공격자가 test1.jsp/를 요청할 경우, 기본 서블릿으로 PUT 메소드를 처리하게 되고, 이를 통해 파일 업로드가 가능해집니다.

파일 업로드 공격 예시

  • 공격자는 다음과 같은 URL을 사용해 JSP 파일을 업로드합니다: /upload/test.jsp
  • 서버 응답 코드로 201을 받게 되면, 업로드가 성공적으로 이루어진 것입니다.
  • 이후 GET 메소드를 사용해 test.jsp 파일을 요청함으로써, 해당 파일이 서버에서 실행됩니다.

이와 같은 내용은 실제 공격 시나리오에서 매우 흔하게 발생하며, 공격자는 다양한 확장자 우회 패턴과 파일 이름 변경 기법을 통해 보안 점검을 우회할 수 있습니다.

💡 기업 수익성을 결정짓는 중요한 요소를 알아보세요. 💡


취약점 대응 방안

1. 업그레이드

가장 기본적이고 효과적인 대응 방안은 아파치 톰캣의 최신 안정 버전으로 업그레이드하는 것입니다. 추천하는 버전은 다음과 같습니다:

  • Apache Tomcat 9.x 버전 사용자: 아파치 톰캣 9.0.18 이상으로 업그레이드
  • Apache Tomcat 8.x 버전 사용자: 아파치 톰캣 8.5.23 또는 8.0.47로 업그레이드
  • Apache Tomcat 7.x 버전 사용자: 아파치 톰캣 7.0.82로 업그레이드

업그레이드를 통해 다양한 보안 취약점과 버그 수정이 이루어지므로, 자신의 서버를 보호할 수 있는 최선의 방법입니다.

2. 메소드 제한 및 설정 변경

서버의 web.xml 파일에서 PUT 메소드를 비활성화하여 사용자가 임의로 파일을 업로드하는 것을 방지할 수 있습니다. 또한, 기본 서블릿의 읽기 전용 초기화 변수를 true로 설정하여, 불필요한 메소드 접근을 차단하는 것이 중요합니다.

3. 보안 모니터링 및 로그 분석

서버에 대한 지속적인 보안 모니터링 및 로그 분석을 수행함으로써, 이상 징후를 조기에 발견할 수 있습니다. 이를 통해 미비한 보안 설정이나 공격 시도를 즉시 발견하고 대응할 수 있습니다.

💡 전자카드 제도가 당신의 개인정보를 안전하게 지켜줄까요? 지금 확인해 보세요. 💡


결론

CVE-2017-12617 취약점은 아파치 톰캣 서버의 중요한 보안 이슈로, 이를 통해 공격자는 원격지에서 악성 코드를 실행할 수 있는 가능성을 지니고 있습니다. 해당 취약점을 예방하기 위해서는 우선적으로 서버의 버전을 최신으로 유지하고, 불필요한 메소드를 비활성화하며, 보안 모니터링 및 로그 분석을 통해 의심스러운 행동을 사전에 탐지하는 것이 매우 중요합니다. 모든 시스템 관리자는 이 취약점에 대한 경각심을 가지고, 필요한 보안 조치를 즉시 시행해야 할 것입니다.

💡 전자카드 제도의 개인정보 보호가 정말 안전한지 알아보세요! 💡


자주 묻는 질문과 답변

💡 근로자 보호를 위한 필수 대응 수칙을 알아보세요. 💡

Q1: CVE-2017-12617 취약점은 어떤 버전의 아파치 톰캣에 영향을 미치나요?

답변1: CVE-2017-12617 취약점은 아파치 톰캣 7.x부터 9.x 버전까지 영향을 미칩니다.

Q2: 이 취약점을 피해가기 위한 가장 효과적인 방법은 무엇인가요?

답변2: 가장 효과적인 방법은 서버의 아파치 톰캣을 최신 안정 버전으로 업그레이드하고, PUT 메소드를 비활성화하는 것입니다.

Q3: 취약점 공격의 확인 여부는 어떻게 할 수 있나요?

답변3: 서버 로그를 통해 의심스러운 요청을 확인하거나 보안 도구를 사용해 취약점 존재 여부를 체크할 수 있습니다.

Q4: 아파치 톰캣의 기본 설정을 어떻게 변경하나요?

답변4: web.xml 파일을 수정하여 메소드를 활성화하거나 비활성화할 수 있습니다. 이 파일은 톰캣의 conf 디렉토리 아래에 위치합니다.

Q5: 추가적인 보안 조치는 무엇이 있을까요?

답변5: 보안 모니터링 툴을 사용하여 실시간으로 서버를 감시하고, 정기적인 보안 점검을 수행하는 것이 좋습니다.

Apache Tomcat의 CVE-2017-12617 취약점 분석과 대응 방법

Apache Tomcat의 CVE-2017-12617 취약점 분석과 대응 방법

Apache Tomcat의 CVE-2017-12617 취약점 분석과 대응 방법