Apache Struts 원격 코드 실행 취약점 발견으로 해킹 우려

게시일: 2018-08-26 l 작성자: Trend Micro

오픈소스 자바 기반 웹 애플리케이션 개발 프레임워크인 Apache에서 원격 코드 실행 (Remote Code Execution, RCE) 취약점이 발견되어 조기에 업데이트를 하지 않을 경우 심각한 피해가 염려됩니다. 이에따라 Apache 재단은 보안 결함에 대한 기술적 세부사항과 보안 권고를(S2-057)를 발행하였습니다.


어떠한 취약점입니까?

보안 결함 (CVE-2018-11776)은 Struts 프레임워크의 핵심에서 신뢰할 수 없는 사용자 데이터의 유효성이 충분하지 않아 발생합니다. 따라서 잠재적인 RCE로 이어질 수 있는 HTTP (Hypertext Transfer Protocol) 요청을 통해 전송된 Java 객체의 속성을 설정하는데 사용되는 OGNL (Object-Graph Navigation Language) expression이 발생합니다.

Struts 구성에 따라 공격자는 리소스 (예: 문서)를 식별하는데 사용되는 URI (Uniform Resource Identifier) 쿼리의 OGNL 식을 사용하여 악성 HTTP 요청을 보낼 때 서버에서 원격 코드를 실행할 수 있습니다.

Apache Struts의 이전 RCE 취약점을 기반으로 많은 사람들이 OGNL expression을 사용했습니다. OGNL을 사용하면 Apache Struts가 대부분의 프로세스에서 OGNL을 사용하므로 공격자가 원격으로 임의의 코드를 쉽게 실행할 수 있습니다.

[InfoSec Guide: 웹 인젝션 (Web Injections)]


해당 취약점의 영향을 받는 대상은 누구입니까?

Apache Struts 2.3버전에서 2.3.34와 2.5 그리고 2.5.16의 사용자들이 대상에 속합니다. Apache Struts 기반의 웹 애플리케이션이 취약한지의 여부는 주로 정확한 구성과 아키텍처에 따라 달라집니다.

[READ: CVE-2017-5638: Apache Struts 2 취약점으로 인한 원격 코드 실행 발견]


취약점으로 인한 영향은 무엇입니까?

악성코드가 취약한 서버에서 원격으로 실행되는 최악의 시나리오가 생길 수 있습니다. Apache Struts가 웹 애플리케이션 개발에 미치는 영향을 감안할 때 포춘지가 선정한 100대 기업 중 65% 이상이 프레임워크를 사용하기 있기 때문에 그 영향은 엄청납니다. Apache Strtus의 취약성으로 인한 대표적인 사례Equifax 정보 유출 사건으로 인해 1억 4550만 명의 미국 시민의 개인 신상 정보가 유출되었습니다.

반대로 해당 취약성을 성공적으로 이용할 수 있는 사항이 있습니다. 예를 들어, 해커는 어떠한 웹 애플리케이션과 보안 결함에 취약함 “조치”를 알아내야 합니다. 조치 유형(예: 쿼리로 반환된 값 또는 코드)으로는 리디렉션 동작, 작업 체인 또는 사후 복구 결과 이어야 합니다. 또한 해커는 공격 대상의 template과 parameter를 알아야 합니다.

[READ: 은행 관련 웹 애플리케이션의 취약점으로 보는 DevOps 보안의 중요성]


취약점이 개발자 및 보안팀에게 의미하는 바는 무엇입니까?

웹 애플리케이션 개발자, 특히 DevOps 담당자에게 보안은 매우 중요합니다. 신속한 개발 및 전달이 고객과 사용자의 경험을 풍부하게 하는 한편, 애플리케이션도 설계상 안전해야 합니다. 또한 정보 유출로 인해 취약해진 웹 애플리케이션 프레임워크, 서버 또는 네트워크의 영향으로 기업의 수익에 큰 피해를 유발할 수 있습니다.

반면에 보안팀은 개발, 운영 및 기타 IT 팀이 비즈니스 프로세스에서 보안을 채택할 수 있도록 권한을 부여해야 합니다. 예를 들어 보안을 애플리케이션 개발 라이프 사이클에 적용하면 사용 중인 Apache Struts 버전이 안전한지에 대한 여부를 빠르게 식별하는데 도움이 됩니다. 또한 자동화된 툴을 이용하여 보안 및 개발팀은 타사 구성 요소를 통해 위험이 도입되는지의 여부를 판단할 수 있습니다. 또한 DevOps 문화에 충실하면 이러한 취약점을 신속하게 발견하고 해결하는데 도움이 됩니다.


트렌드마이크로 솔루션

Trend Micro™ Deep Security™ 솔루션은 가상패치 기능을 제공하여 Apache Struts와 같은 중요한 애플리케이션의 취약점을 악용한 공격으로부터 서버와 엔드포인트를 보호합니다. Trend Micro™ TippingPoint® 시스템은 DigitalVaccine™ 필터를 통해 네트워크 취약점에 대한 가상패치 및 zero-day protection 기능을 제공합니다.

Trend Micro™ Deep Security™솔루션은 아래와 같은 DPI (Deep Packet Inspection) 룰을 통해 앞서 언급한 취약점을 악용한 위협으로부터 사용자 시스템을 보호합니다:

Trend Micro™ TippingPoint® 시스템을 사용하는 고객은 아래의 DVToolkit 필터를 통해 취약점을 악용한 위협으로부터 보호됩니다:


아래는 Apache Struts 공격과 같은 위협을 막기 위해 사용되는 트렌드마이크로 솔루션 룰 내역입니다.

PRODUCT PROTECTION TYPE IDENTIFIER
Deep Security Intrusion Prevention Rule¹
  • 1009265 - Apache Struts OGNL Expression Remote Command Execution Vulnerability (CVE-2018-11776)
  • 1008610 - Block Object-Graph Navigation Language (OGNL) Expressions Initiation In Apache Struts HTTP Request
TippingPoint DV Toolkit CSW Filter¹
  • Filter C1000001: HTTP: OGNL Entity Usage in an HTTP URI
Deep Discovery Inspector DDI Rule and Patterns
  • 2726 - CVE-2018-11776 - APACHE STRUTS RCE EXPLOIT - HTTP(Request)
  • NCCP Pattern: 1.13387.00
  • NCIP Pattern: 1.134221.00

[원문: Critical Remote Code Execution Vulnerability (CVE-2018-11776) Found in Apache Struts]