2024-04-16 14:40 (화)
어도비 플래시 제로데이 취약점 악용 중국 해킹그룹의 피싱 공격 과정
상태바
어도비 플래시 제로데이 취약점 악용 중국 해킹그룹의 피싱 공격 과정
  • 길민권
  • 승인 2015.07.12 11:57
이 기사를 공유합니다

해당 취약점을 악용해 ‘은밀한 여우’라는 공격을 벌인 것으로 드러나
파이어아이 애즈 어 서비스 팀, 어도비 플래시 플레이어 제로데이 취약점 공격 실시간으로 포착해 신속한 대응 지원
 
파이어아이(지사장 전수홍)가 싱가포르에 있는 자사의 ‘파이어아이 애즈 어 서비스(FireEye as a Service)’팀이 어도비 플래시 플레이어(Adob??e Flash Player)의 제로데이 취약점 ‘CVE-2015-3113‘을 이용한 피싱 공격을 포착했다고 밝혔다.
 
APT3는 파이어아이 인텔리전스가 쫓고 있는 가장 정교한 해킹 그룹 중 하나로 인터넷 익스플로러, 파이어폭스(Firefox) 및 어도비 플래시 플레이어 등 브라우저 기반의 새로운 제로 데이 익스플로잇을 유포해왔다. 해당 그룹은 대상 호스트에 성공적으로 침투한 후에 신속하게 크리덴셜을 버리고 다른 호스트들로 내부이동하며, 커스텀 백도어를 설치한다. 전반적인 공격 캠페인 동안 중첩되는 부분이 거의 없어 APT3의 명령 및 CnC 서버 추적이 어려운 것이 특징이다.
 
이번 익스플로잇은 파이어아이가 추적하고 있는 중국 기반의 해킹 그룹인 APT3(혹은 UPS)의 소행이며 해당 취약점을 악용해 ‘은밀한 여우(Operation Clandestine Fox)’라는 공격을 벌인 것으로 밝혀졌다.
 
공격자의 이메일에는 제로데이 취약점인 ‘CVE-2015-3113’을 악용하는 정상 파일로 위장한(benign) 콘텐츠 또는 플래시 플레이어 파일의 유포를 노리고 사전에 해킹된 웹서버로 연결되는 링크가 포함돼 있었다.
 
파이어아이 MVX는 이번 공격을 웹 감염으로 탐지하고, IPS 엔진에서 취약점 ‘CVE-2015-3113’을 이용한 공격으로 확인했으며, ‘SHOUTPUT 백도어’는 [Backdoor.APT.CookieCutter]로 보고됐다.
 
현재 어도비는 대외적인 보안 권고문을 통해 ‘CVE-2015-3113’에 대한 패치를 발표한 상태며, 파이어아이측은 어도비 플래시 플레이어 사용자들에게 가능한 한 빨리 최신 버전으로 업데이트 할 것을 권장했다.
 
파이어아이의 김현준 기술이사는 “APT3는 일단 공격 대상 네트워크에 접근하면 신속하게 작업을 진행하며, 지속성을 유지하기 위해 다른 호스트들로 내부이동하면서 영향력을 넓히는데 매우 능숙하다”며 “이 해킹 그룹은 제로 데이 익스플로잇을 악용하고, 지속적으로 커스텀 백도어를 업데이트하며, 한 번 사용한 CnC 서버는 바로 버리기 때문에 추적이 어려운 것이 특징이다”라고 설명했다.
 
자세한 해킹 과정은 아래와 같다.
◇백도어 설치 과정
지난 몇 주 동안, APT3 해커들은 항공 우주 및 방위, 건설 및 엔지니어링, 하이테크, 통신, 교통 등의 산업 조직에 대한 대규모 피싱 공격을 벌인 것으로 드러났다. 사용자가 피싱 이메일에 포함된 URL을 클릭하면 자바스크립트(JavaScript)를 호스팅하는 침해된 서버로 자동 연결한다. 일단 공격 대상 호스트가 프로파일되면, 악성 어도비 플래시 플레이어 SWF 파일 및 플래시 비디오(Flash Video, 이하 FLV) 파일이 다운받아 지고, 궁극적으로 파이어아이가 탐지한 [Backdoor.APT.CookieCutter]가 전달돼 피해자의 시스템에 ‘SHOTPUT’으로 알려진 커스텀 백도어가 설치된다.
 
◇익스플로잇 분석 내용
APT3는 본 공격에 스팸과 유사한 매우 일반적인 피싱 이메일을 사용했으며, 어도비 플래시 플레이어가 FLV 파일을 파싱(pares)하는 방식으로 제로데이 취약점을 악용했다. 해당 익스플로잇은 ASLR(Address Space Layout Randomization)을 우회하기 위해 일반적인 벡터 코럽션(corruption) 기술을 사용했으며, 데이터 실행 방지(DEP)를 우회하는 ROP(Return-Oriented Programming)를 사용했다. 이들은 ROP 기술에 간단한 트릭을 더해 ROP 탐지 기법을 피하고 보다 쉽게 공격을 실행할 수 있었다.
 
쉘코드(Shellcode)는 암호화 해독을 위한 키와 함께 어도비 플래시 플레이어 익스플로잇 파일에 저장돼 있었으며, 페이로드(Payload)는 XOR로 인코딩(Encoding)되어 이미지(GIF) 파일에 숨겨져 있었다.
 
어도비 플래시 플레이어 익스플로잇은 간단한 RC4 패커에 포함되어 있었으며, RC4 키와 암호문은 패커가 레이어 2 어도비 플래시 플레이어 파일을 복호화시키기 위해 사용하는 바이너리 데이터(BinaryData) 형식(bolds)이다. 레이어2는 일단 복호화되면 [Loader.loadBytes]로 실행된다.
 
◇벡터 코럽션(Vector Corruption)
레이어 2는 클래식 어도비 플래시 플레이어 코럽션 기술을 사용한다. 이는 [ActionScript3]를 사용할 수 있는 완전한 읽기/쓰기에 힙(heap) 코럽션 취약점을 활용한다(develop). 이 기술에서 공격자는 어도비 플래시 플레이어 벡터를 힙에 배포하고, 벡터 중 하나의 크기를 변화시키기 위해 쓰기 취약성을 트리거한다. 그 후, 공격자는 AS3로부터 코럽티드된 벡터 객체의 정해진 경계 밖에서 메모리에 후속적인 읽기 및 쓰기를 실행할 수 있다. 이 기술에 대한 보다 자세한 내용은 2015년 플래시에서 확인 가능하다.
 
공격자가 일단 메모리에 읽기 및 쓰기 액세스를 제한하고 나면, 0x3fffffff 바이트의 범위에 대한 접근을 높이기 위해 두 번째 벡터를 코럽트(corrupt)시키며, 두 번째 벡터는 남은 공격 과정에 사용된다.
 
◇ROP(Return-Oriented Programming) 기법
공격자는 [kernel32!VirtualAlloc]를 불러내 그들의 쉘코드를 건너 뛰기 전, 해당 쉘코드가 실행 가능하다는 것을 표시하기 위해 ROP 체인을 사용한다. 그들은 ROP 체인을 쉘코드 및 페이로드와 함께 힙에 쓰는(write) 방식이 아닌 다른 기술을 사용했다. 일반적으로 익스플로잇 개발자들은 사운드(Sound) 객체와 같이 어도비 플래시 플레이어에 빌트인된 객체를 코럽트시키는데 반해 APT3 공격자들은 많은 논란거리가 되는 기능으로 AS3에서 자신들의 실력을 보여줬다.
 
그리고 나서 공격자는 스택 포인터를 추가하고, 피봇(pivot)을 ROP로 돌려보낼 수 있는 도구를 이용해 간단하게 기능 포인터에 오버라이트(overwrite)를 실행할 수 있다. 그들은 절대적인 ROP 체인 주소를 식별하거나 이를 전형적인 ‘xchg reg32’, 특히 피봇을 위해 등록할 필요가 없다. 또한, ROP 체인을 스택에 저장함으로써 스택 포인터가 스레드(thread) 스택 외의 위치(region)를 가리킬 때를 포착하도록 설계된 ROP 탐지 메커니즘을 회피할 수 있다.
 
마지막으로 ROP 체인은 [VirtualAlloc]을 호출하기 위한 ‘ROPsled’를 확보한다. 이는 단지 개발의 아티팩트(artifact)가 되거나 [VirtualAlloc]을 호출할 때 제한된 깊이에서 유효한 리턴 주소를 테스트하는 탐지 메커니즘을 회피하도록 설계 될 수 있다.
 
★정보보안 대표 미디어 데일리시큐!★
 
<데일리시큐 길민권 기자> mkgil@dailysecu.com
■ 보안 사건사고 제보 하기

▷ 이메일 : mkgil@dailysecu.com

▷ 제보 내용 : 보안 관련 어떤 내용이든 제보를 기다립니다!

▷ 광고문의 : jywoo@dailysecu.com

★정보보안 대표 미디어 데일리시큐 / Dailysecu, Korea's leading security media!★