아파치 스트럿츠 Java EE 웹 애플리케이션 개발을 위한 MVC 프레임워크 기반 오픈소스 CMS입니다. Apache Struts는 수년간 많은 포춘 100대 기업과 정부 기관에서 웹 애플리케이션 개발에 널리 사용되어 왔습니다. 하지만 CMS를 사용하여 구축된 웹사이트는 CMS 프레임워크의 취약점이 전체 웹사이트의 보안에 직접적인 영향을 미치기 때문에 웹 애플리케이션 서버의 CMS 버전을 지속적으로 업그레이드해야 합니다.
Quick Heal Security Labs의 조사에 따르면 Apache Struts는 2018년 XNUMX월부터 주로 러시아와 중국 해커들의 표적이 되어 왔습니다.

Apache Struts 공격에 대한 IDS/IPS 원격 측정에서 이러한 지속적인 공격이 발견된 것은 해커가 더 오랫동안 프레임워크를 표적으로 삼을 것임을 시사합니다.
Quick Heal IDS/IPS가 차단하는 주요 Apache Struts 원격 코드 실행 취약점은 다음과 같습니다.
- CVE-2017-5638
- CVE-2017-12611
- CVE-2017-9791
- CVE-2017-9805
세부 정보 이러한 취약점에 대해
CVE-2017-5638 Apache가 2017년에 수정한 첫 번째 심각한 취약점입니다. 이 취약점은 CVSS 점수를 받았습니다.10점 만점에 e는 해당 공격의 심각성을 나타냅니다. 이 취약점은 Jakarta Multipart 파서에 존재하며, 파일 업로드를 부적절하게 처리하는 과정에서 발생합니다. 임의의 명령은 조작된 Content-Type HTTP 헤더를 통해 전송됩니다.

2017년 XNUMX월 아파치(Apache)가 권고문을 발표한 지 며칠 만에, 악용 시도가 실제로 발생했습니다. 당시에는 이 취약점을 인지하는 사람이 많지 않았기 때문에 해커들은 이를 악용하여 패치되지 않은 취약한 스트럿츠(Struts) 버전을 찾기 위해 서버를 스캔하기 시작했습니다.
에퀴 팩스주요 신용 보고 기관인 는 역사상 가장 큰 데이터 유출 사건 중 하나로 이어지는 이러한 공격의 희생자가 되었습니다. 해커들은 기밀 데이터를 훔칠 수 있었습니다. 143 만 사용자동일한 취약점에 대한 패치를 배포하지 않은 것이 침해의 원인이었습니다.
그런 다음 온 CVE-2017-9791 Apache가 7월에 패치한 이 취약점은 신뢰할 수 없는 입력이 ActionMessage 클래스의 오류 메시지의 일부로 전달될 때 RCE 공격을 수행할 수 있도록 합니다. 아래는 "/struts-showcase/integration/saveGangster.action” URI.

이 취약점은 Struts Showcase 애플리케이션에 존재하며 RCE는 CVE-2017-5638에서 사용된 것과 같은 방식으로 OGNL 표현식을 사용하여 악성 코드를 실행함으로써 달성됩니다.
CVE-2017-9805 2017년 XNUMX월에 수정된 원격 코드 실행 공격입니다. 이 버그는 Struts REST 플러그인을 XStream 핸들러와 함께 사용하여 XML 페이로드를 처리할 때 발생합니다. XStream 핸들러의 toObject() 메서드는 사용자가 XML 요청 형태로 전송한 객체를 잘못 역직렬화합니다.

마찬가지로, CVE-2017-12611 Apache 서버에서 실행되는 일련의 명령을 포함하는 조작된 URI를 통해 악용될 수 있는 또 다른 Apache Struts 취약점이 발견되었습니다. 이 취약점은 문자열 리터럴 대신 Freemarker 태그에 의도치 않은 표현식을 사용하여 RCE 공격으로 이어집니다.
이 취약점에 대한 악용 페이로드는 아래와 같이 URL 문자열에 나타납니다.

The OGNL (Object Graph Navigation Library)는 Java 객체의 속성을 가져오고 설정하는 데 사용되는 오픈 소스 표현 언어(EL)입니다. 공격자가 임의의 OGNL 표현식을 평가할 수 있다면, 임의의 코드를 실행하거나 애플리케이션 서버에 저장된 리소스를 수정할 수 있습니다.
CVE-2017-9805를 제외한 나머지 세 가지 익스플로잇은 RCE(무작위 공격)를 수행하기 위해 OGNL 표현식을 사용했습니다. 따라서 웹사이트 관리자는 제로데이 취약점에 의한 익스플로잇을 방지하기 위해 OGNL이 포함된 요청을 지속적으로 감시할 것을 권고합니다.
하자'화장실이 있어요우리가 목격한 공격의 지리적 분포를 살펴보겠습니다.
아래에 표시된 지리적 지도는 언급된 모든 공격자 IP의 위치를 보여줍니다.

공격 소스 IP의 약 83%가 러시아와 중국에 있습니다.
이러한 공격이 가장 많이 관찰되는 IP 목록은 다음과 같습니다.
- 5.188.10.105
- 222.186.50.75
- 123.249.27.28
- 120.203.197.58
- 115.236.16.26
- 62.196.180.28
- 119.249.54.93
- 58.215.65.231
- 211.159.187.138
- 122.112.224.61
반면, 공격의 대상 IP 위치는 상당히 분산되어 있어 공격이 광범위한 성격을 띠고 있으며 특정 국가나 지역을 덜 표적으로 삼고 있음을 알 수 있습니다. 아래 그림과 같이 유럽, 미국, 인도, 중국, 그리고 아프리카 일부 지역에서 이러한 공격이 대량으로 발생한 것으로 보입니다.

우리는 주로 공격자들이 리눅스 백도어를 설치하고 암호화폐 채굴 소프트웨어를 설치하기 위해 서버를 노리는 것을 보았습니다. 암호화폐와 같은 모네로 엄청난 수익을 가져다주기 때문에 공격자들은 가능한 한 많은 서버를 해킹하여 최대한 많은 코인을 생성하려고 합니다.
사용자 여러분께 Apache Struts 설치를 최신 소프트웨어 릴리스로 업그레이드하고 Quick Heal의 최신 보안 업데이트를 적용할 것을 강력히 권장합니다.
참고자료:
- CVE-2017-5638 – Apache Struts 2 원격 코드 실행 취약점
- CVE-2017-9805 | Apache Struts 2 원격 코드 실행 취약점 – Quick Heal Security Labs 분석
- Equifax는 Apache Struts 취약점을 두 번이나 발견하지 못해 침해가 발생했습니다.
주제별 전문가
사미르 파틸 | 퀵힐 보안 랩스



