Wins blog

글로벌 정보보안 파트너! Global Security  No.1 윈스는 국가대표 정보보안 기업에서 글로벌 강소기업으로 도약합니다.

보안 정보

앞 내용 보기 다음 내용 보기
취약점 정보[CVE-2017-8759] MS .NET Framework RCE
작성일 2017-09-15 조회 3221

개요

 
최근 0-day 공격으로 이슈가 되었던 CVE-2017-8759 취약점과 관련된 내용이다. 해당 취약점은 PrintClientProxy 함수 내에 있는 SOAL WSDL 파서 모듈에서 발생하는 것으로, 이 취약점을 통해 악의적인 행위자가 SOAP WSDL 정의 내용을 파싱하는 동안 임의의 코드를 삽입 할 수 있다.
 
 
[CVE 정보]
CVE-2017-8759
 
 
[취약한 버전]
Microsoft .NET Framework:4.7
Microsoft .NET Framework:4.6.2
Microsoft .NET Framework:4.6.1
Microsoft .NET Framework:4.6
Microsoft .NET Framework:4.5.2
Microsoft .NET Framework:3.5.1
Microsoft .NET Framework:3.5
Microsoft .NET Framework:2.0:sp2
 
 
 
[취약한 함수]
PrintClientProxy()
 
 
 

확인 내역

 
해당 취약점은 PrintClientProxy 함수(http://referencesource.microsoft.com/ - System.Runtime.Remoting / metadata / wsdlparser.cs, 6111) 내에 있는 SOAP WSDL 파서 모듈에서 발생하는 것으로, .net 라이브러리의 SOAP WSDL 구문 분석 모듈 IsValidUrl 함수에서 캐리지 리턴(CRLF)이 포함된 데이터에 대해 올바른 유효성 검사를 수행하지 않아 취약점이 발생한다.
 
[그림1] PrintClientProxy 함수
 
 
다음은 취약한 WSDL 파서 부분이다.
[그림2] 취약한 WSDL 파서
 
 
일반적으로 파일에 여러 개의 soap:address가 있다면, PrintClientProxy 함수는 첫 번째 행만 유효하고 나머지는 주석 처리 된다. ([그림2] 참고) 여기에서 캐리지 리턴(CRLF)를 포함한 데이터를 IsVlidUrl 함수에서 제대로 처리 하지 못해, 첫 번째 행을 제외한 나머지 부분에 주석 처리가 제대로 적용되지 않게 된다.
 
 
실제 취약점이 포함되어 있는 SOAP XML 파일 처리 과정을 통해 해당 취약점이 어떻게 동작하는지 살펴보도록 하겠다.
 
[그림4] SOAP XML
 
위 [그림4]는 악의적인 doc 파일 실행 시 원격 서버로부터 다운로드 된 .png 파일로 SOAP XML 파일이다. 다운로드 받은 SOAP XML 파일은 캐리지 리턴(CRLF)이 포함되어 있는 형태이다.
 
SOAP XML 파일은 .NET 라이브러리 SOAP WSDL에서 캐리지 리턴(CRLF) 데이터 처리 오류로 인해 System.Diagnostics.Process.Start 함수 호출이 삽입 된 코드를 생성하게 된다.
 
[그림5] 생성된 코드
 
생성된 코드는 .NET Framework의 csc.exe에 의해 컴파일 되고, Office 실행 파일에 의해 DLL로 로드됩니다. 위에서 삽입된 코드는 새로운 프로세스를 만들고 mshta.exe를 사용하여 동일한 서버에서 “word.db"라는 HTA 스크립트를 검색합니다. HTA 스크립트를 통해 악성코드를 다운로드 하고 실행한다.
 
 
 

대응방안

1. MS 9월 보안 업데이트
 
MS보안 권고
https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/CVE-2017-8759
 
 
2. Sniper 제품군 대응 방안
 
아래 패턴으로 대응이 가능합니다.
 
 IPS 제품
[패턴 블럭][3699] MS .NET Framework RCE
 
 UTM 제품
[805347219] MS .NET Framework RCE
 
 APTX 제품
[2891] MS .NET Framework RCE

 

 

참고

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-8759
https://www.fireeye.com/blog/threat-research/2017/09/zero-day-used-to-distribute-finspy.html 
https://github.com/vysec/CVE-2017-8759
http://www.freebuf.com/articles/system/147602.html

 

첨부파일 첨부파일이 없습니다.
태그 0-day  CVE-2017-8759  .NET Framework