해킹 팀 데이터 유출로 인해 드러난 또 다른 제로데이 취약점

게시일: 2015-07-11 l 작성자: Peter Pi (Threats Analyst)

해킹 팀의 데이터 유출로 인해 드러난 마지막 제로데이 취약점(CVE-2015-5119) 이후 연이어 상당히 위험할 수도 있는 또 다른 어도비 플래시 플레이어 취약점(CVE-2015-5122)이 발견되었습니다. 이 취약점이 악용되면 취약한 시스템에 충동이 야기되어 공격자는 시스템을 제어할 수 있게 될 것입니다. 그리고 CVE-2015-5119와 마찬가지로 Windows, Mac 및 Linux(예, 18.0.0.203버전)의 모든 최신 버전을 감염시킬 수 있습니다.

이는 두 개의 플래시 버그와 Windows 커널 결함에 대해 다룬 ‘해킹 팀 정보 유출을 통해 밝혀진 패치되지 않은 플래시 플레이어 결함과 여러 POC’에서 소개된 취약점들과는 다른 새로운 취약점입니다. 이들 플래시 취약점들 중 하나는 각종 익스플로잇 킷에 사용되었습니다.

다행히도 이는 아직 Proof-of-Concept 과정이며 실제 공격에 사용되고 있는지 여부를 파악하고 있는 중입니다. 아직까지는 이 취약점에 대한 패치가 발표되지 않았지만 취약점을 확인한 후 즉시(7월11일 오전 10:30) 어도비에 알렸기 때문에 조만간 패치가 발표될 것입니다. 어도비는 오전 11시 40분에 이 취약점에 대한 보안 공지를 발표하였습니다.

취약점은 어떤 활동을 합니까?

취약점 분석을 통해 우리는 메서드 TextBlock.createTextLine()과 TextBlock.recreateTextLine(textLine)이 포함된 Use-After-Free 취약점이라는 사실을 확인하였습니다.

트리거에는 메서드 my_textLine.opaqueBackground = MyClass_개체가 포함되어 있으며 MyClass.prototype.valueOf가 재정의(overriden)되고 valueOf 함수가 TextBlock.recreateTextLine(my_textLine)을 호출하게 됩니다. 그러면 my_textLine 함수가 해방되어(freed) 이를 사용할 수 있게 됩니다.

우리는 X86 환경에서 POC를 디버깅하였기 때문에 취약점 트리거는 MyClass32 클래스에 들어있습니다. 익스플로잇 함수는 MyClass32의 TryExpl입니다.

익스플로잇의 단계는 다음과 같습니다:

  1. 새로운 Array의 이름은 _ar이고_ar의 길이는 _arLen = 126입니다. _ar[0…29]는 Vector. 에 의해 설정되고, 벡터 길이는 is 0x62입니다. _ar[46….125]는 Vector. 에 의해 설정되고 벡터 길이는 0x8입니다. _ar[30….45]는 _tb.createTextLine()을 이용하여 testLine에 의해 설정되고 textLine. opaqueBackground는 1로 설정됩니다.

  2. MyClass.prototype.valueOf는 MyClass.prototype.valueOf = valueOf2를 이용하여 재정의되고 _ar[_cnt].opaqueBackground = _mc를 이용하여 valueOf2 함수를 트리거합니다. _mc는 MyClass의 인스턴스입니다.

  3. valueOf2 함수는 1단계에서 할당된 textLine 함수를 해방시키기 위해 _tb. recreateTextLine(_ar[index])를 호출할 것입니다. 그런 다음 해방된 textLine의 메모리를 점유하기 위해 벡터 길이가 0x8에서 0x62까지로 설정됩니다. valueOf2 함수는 0x62 + 8 = 0x6a를 반환하게 되므로 _ar[_cnt].opaqueBackground는 valueOf2가 반환될 때까지 0x6a로 설정될 것입니다. 점유 벡터 길이 필드를 덮어쓰기 위해 valueOf2 함수는 반복 호출(recursive invocation)을 사용합니다.

  4. 벡터 길이를 0x6a로 덮어쓰기 한 후 corrupt 벡터를 검색하고 neighbor 벡터 길이를 0x40000000로 설정합니다.

POC는 calc.exe를 실행할 수 있는데 이는 곧 악성 실행 파일을 실행할 수 있도록 조작될 수 있다는 뜻입니다. 우리는 현재 이러한 사례를 감시하고 있으며 새로운 내용이 추가될 때마다 본 블로그 내용을 업데이트할 예정입니다. 우리는 사용자들이 이 취약점을 악용하는 공격을 피할 수 있도록 플래시 사용을 중단할 것을 권장하고 있습니다.

[업데이트] 2015년 7월 11일 오전 12:43, 몇 가지 기술적 세부 사항 설명.

[업데이트] 2015년 7월 12일 오후 7:46

Trend Micro Deep Security의 취약점 방지 기능은 다음의 DPI 규칙에 따라 이 취약점을 악용할 수도 있는 각종 위협들로부터 사용자 시스템을 보호합니다:

  • 1006858 – Adobe Flash ActionScript3 opaqueBackground Use After Free Vulnerability (CVE-2015-5122)

해킹 팀의 유출 정보에서 발견된 취약점에 관한 게시물

원문: Another Zero-Day Vulnerability Arises from Hacking Team Data Leak