어도비 플래시 이용한 악성코드 분석 보고서

01 개요

지난 2018년 1월 31일 KrCERT/CC 는 Adobe 플래시 플레이어의 제로데이 취약점을 악용한 악성코드 유포와 관련하여 보안 공지를 발표했습니다.
해당 취약점은 플래시 플레이어 28.0.0.161 버전과 이전 버전에 발생하는 Use-After-Free 취약점으로 Primetime SDK의 미디어 플레이어 DrmManager 관련 메소드가 리스너 객체를 처리하는 과정에서 Dangling Pointer가 만들어 집니다. 공격자는 Dangling Pointer를 이용하여 임의의 메모리에 접근하여 데이터를 변조할 수 있습니다.

CVE Reference
CVE-2018-4878
Ref1. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-4878

취약점 발생 모듈
Flash32_28_0_0_137.ocx (Flash Player Version 28.0.0.137

취약점 발생 버전
Adobe Systems Flash Player Desktop Runtime 28.0.0.137버전과 이전 버전
Adobe Systems Flash Player for Google Chrome 28.0.0.137버전과 이전 버전
Adobe Systems Flash Player for Microsoft Edge and Internet Explorer 11 28.0.0.137버전과 이전 버전

취약점이 발생하는 메소드
DRM Manager 객체의 acquireLicense(), acquirePreviewLicense(), authenticate(), createMetadataFromBytes(), initialize(), joinLicenseDomain(), leaveLicenseDomain(), returnLicense(), setAuthenticationToken(), storeLicenseBytes() 메소드

취약점이 발생하는 파라미터
취약점이 발생하는 메소드의 “listener” 파라미터

 

02 Exploit 동작 원리 상세 분석

분석 환경
Windwos 7 32Bit
Adobe Systems Flash Player Desktop Runtime 28.0.0.13

취약점 발생 원인
DRM Manager의 취약한 메서드는 리스너로 전달받은 객체를 처리하는 과정에서 전달받은 주소에 대해서 메모리
해제 여부를 검증하지 않고 해당 위치에 있는 다른 객체가 해제(삭제)되며 Danglin Pointer를 만들어 Use-After-Free
취약점을 발생시킵니다.

※ 아래 PDF 파일을 다운로드하여 자세한 내용을 확인해 보세요.