상세 컨텐츠

본문 제목

망분리 환경을 타겟으로 하는 APT 공격 정리

국내외 보안동향

by 알약(Alyac) 2017. 7. 17. 14:29

본문

위키리크스는 2017년 6월 22일, CIA Vault7의 제 12번째 문서인 "Brutal Kangaroo"와 "Emotional Simian"을 공개하였습니다. 이 프로젝트가 공개되면서, 미국 정보기관이 폐쇄망 혹은 독립적인 보안네트워크(Air-Gapped Devices)에 성공적으로 침투가 가능하였는지 알 수 있게 되었습니다. 


일반적으로 금융기관, 군사기구, 국가기반시설 등은 외부 인터넷과 단절되어 있는 폐쇄망으로 보안을 강화하며, 해커들의 공격위협을 최소화 하고자 합니다. 하지만 폐쇄망이 곧 보안은 아닙니다. 폐쇄망은 외부 네트워크 단절만을 뜻하는 것이며, 물리적으로는 여전히 연결(예 : USB, 마우스, 키보드 등)되어 있기 때문입니다.

 

"Stuxnet3세대" 폐쇄망 공격 과정 개요

 

2010년 6월, Stuxnet 악성코드가 처음 발견되었습니다. 이 악성코드는 4개의 윈도우 제로데이 취약점으로 이란의 핵무기시설을 공격하였으며, 발견 직후 '세상에서 제일 복잡한 사이버 무기'라고 불리웠습니다. 이것이 바로 'Stuxnet 1세대' 입니다. 그 후 2년 뒤인 2012년 5월, 새로 등장한 'Flame' 악성코드는 Stuxnet과 동일한 윈도우 취약점을 가지고 여러 나라를 공격하였으며, Stuxnet 기능에 새로운 공격기술과 제로데이 취약점이 추기되었기 때문에 Stuxnet 2세대로 불리우게 되었습니다. 그 후 공개된 CIA 자료들에서의 폐쇄망 공격방식과 지금까지 발견된 Stuxnet의 공격방식이 매우 유사할 뿐만 아니라, 알려지지 않은 새로운 공격기술도 포함되어 있어 'Stuxnet 3세대'로 명명하였습니다.

 

공개된 CIA 툴들은 주로 MS Windows를 타겟으로 하고 있으며, 폐쇄망 공격에 USB를 이용하였습니다. 공격 방식은 다음과 같았습니다.

 

1) 공격자는 우선 타겟 시스템과 관련이 있고, 인터넷 연결이 가능한 PC를 악성코드에 감염시킵니다.


2) 그 후, 감염 PC에 이동식 저장매체가 연결되면, 해당 매체에 또한번 악성코드를 감염시켜 악성코드의 이동 매개체가 되도록 합니다.


3) 만약 감염된 USB가 폐쇄망에 있는 어느 PC에 연결되면, USB는 해당 폐쇄망 PC를 감염시키는 동시에 PC의 주요 정보를 USB에 저장합니다.


4) 그 후 USB가 다시 또 다른 인터넷이 연결된 다른 PC에 연결되면, 저장해 놓았던 주요 정보들을 CIA에 전송합니다.

 

더욱 무서운 것은, 폐쇄망 내부에 감염된 PC들끼리 서로 하나의 비밀스런 네트워크를 생성하여, 서로 데이터를 교환하거나 공동작업을 할 뿐만 아니라, 지속적으로 공격을 진행하였습니다.

 


"Stuxnet 3세대" 폐쇄망 공격 방식 분석

 

폐쇄망 공격의 가장 중요한 기술은 바로 USB를 감염시키는 기술입니다. 'Stuxnet 1세대' 악성코드 에서는 해당 기술을 윈도우 바로가기 취약점(CVE-2010-2568/MS10-046)을 이용하였습니다. 이 취약점은 Windows가 바로가기 파일(ink 파일 등)들을 처리하는 과정에서 존재하며, 시스템이 자동으로 공격자가 지정한 dll 파일을 로딩하고 포함되어 있는 악성코드를 실행하도록 허용합니다. 해당 취약점을 이용하면 안정성과 은폐성이 강할 뿐만 아니라, 매우 강력한 유포능력도 포함하고 있습니다. 이에 취약한 바로가기 파일을 USB에 생성해 놓는다면, 사용자가 이동식디스크 실행하는것 만으로도 자동으로 감염시킬 수 있습니다.

 

'Stuxnet 2세대' 악성코드는 desktop.ini 파일 중 shellclassinfo 필드를 통하여 classid를 설정하여, 폴더를 Junction 폴더로 리다이렉션 시킵니다. Junction은 Windows(NTFS)의 특수한 연결방식으로,  Symbol link와 유사하지만, 폴더만을 타겟으로 합니다. 감염PC 사용자가 폴더를 클릭하면 target.link 취약점 공격 트리거를 열고, 동시에 폴더에 악성파일과 lnk 취약점 파일을 숨겨놓습니다.

  

위키리크스가 공개한 CIA 툴에는 3가지의 알려지지 않은 Windows 바로가기 파일 취약점 공격방식과 몇몇 취약점을 이용한 공격 방식이 포함되어 있었습니다. 이 3가지 알려지지 않은 공격은 Giraffe Links、Lachesis LinkFiles 및 Riverjack 공격방식으로, MS가 2017년 6월 13일 패치한 새로운 바로가기 취약점 CVE-2017-8464으로 추정됩니다. 다음은 3가지 폐쇄망을 공격하는 방식입니다.

 

1) Giraffe Links

이 공격의 특징은 바탕화면에 바로가기 파일이 보이면 바로 자동으로 악성 dll을 로딩하여 실행하는 것입니다. 이 공격은 Windows XP를 제외한 거의 모든 Windows 시스템에서 가능합니다. 이 공격은 모든 바로가기 공격을 포함하며, 이동식 디스크 상의 바로가기 파일이든, 시스템 중의 바로가기 파일이든 컴퓨터에 바로가기만 존재하면 공격이 가능합니다.

 

2) Lachesis LinkFiles

이 공격의 특징은 autorun.inf 파일과 결합하는 바로가기 파일이 필요합니다. 이동식디스크가 PC에 연결되었을 때, autorun.inf 파일을 로딩한 후 자동으로 dll을 로드하여 악성코드를 실행합니다. 이 공격은 이동식 디스크를 연결할 수 있는 윈도우 7 PC에서만 가능합니다.

 

3. Riverjack

이 공격의 특징은 Windows 파일탐색기의 '라이브러리'기능을 이용한 공격으로, 바로가기 파일을 노출시킬 필요 없이 숨길 수 있습니다. 이 공격은 윈도우 7,8,8.1에서 가능합니다. 기술적인 측면에서 보았을 때 윈도우 파일탐색기의 '라이브러리'기능은 Windows7 및 그 이상의 os에서만 지원하기 때문에, 이 기능은 공격기술 은폐 혹은 취약점을 이용한 보호기술이 확장된 기능입니다.

 

Riverjack 공격방식은 CIA 문서에 자세히 기술되어 있으며, 공격방식은 크게 바로가기 폴더, Junction 폴더, "라이브러리"파일과 바로가기 파일 크게 네가지 부분으로 구성되어 있습니다. 앞에 3번째 부분까지는 공격을 숨기는 기술로 정상적인 시스템에 바로가기 파일을 숨기는 취약점 공격방식이며, 4번째 부분과 접목하여 더 발견하기 어렵게 하여 오랫동안 자신을 숨기고 공격할 수 있도록 합니다.

 

우선 정상적인 폴더명을 지정된 유형의 classid(예를들어 <MyFolder>.<CLSID>)로 변경하며, 이를 통하여 이 폴더는 Junction Foldersrs가 되는 것입니다.

 

만약 폴더에 존재하지 않은 classid이름인 24138469-5DDA-479D-A150-3695B9365DC0}로 설정해 놓았다고 가정해 봅니다.


이 폴더 실행 하면, 데스크톱 프로세스는 존재하지 않는 classid 레지스트리를 검색합니다.

 

그 후, 만약 직접 이 레지스트리 키를 특정 지정된 위치의 dll폴더로 설정해 놓았다면, 이 폴더를 실행하는 것만으로 관련된 verclsid.exe가 dll 코드를 로드하게 되는것입니다.

 

동시에 만약 사용자가 시작목록에 이 Junction 파일을 추가한다면, 컴퓨터가 부팅 될 때마다 해당 악성 dll파일을 로드하게 될 것입니다.

  

다음은 CIA 문서 중 Windows Library 파일을 이용한 공격 은폐 기술을 설명하겠습니다. 이는 Windows7 및 그 이상 버전의 OS의 파일탐색기에 존재하는 바로가기 특징으로, 이 것의 본질은 xml 설정파일 입니다. 이는 위에서 언급된 Junction 폴더를 지원하며, xml파일 중 지정된 foldertype과 knownfolder 필드를 악성 '라이브러리' 바로가기 방식으로 구성할 수 있습니다.

 

결국 Riverjack과 스턱스넷, 1,2세대를 비교해 보면 시스템 특징을 이용하여 새로운 공격기술이 업데이트 된 것을 확인할 수 있습니다. 하지만 여전히 windows 바로가기의 취약점을 악용했다는 것이 핵심입니다. 


Stuxnet 1세대 악성코드가 사용한 취약점은 윈도우 바로가기 취약점(CVE-2010-2568/MS10-046)이며, 5년 뒤, 보안연구원 Michael Heerklotz가 해당 취약점 패치를 우회하여 두번째 윈도우 바로가기 취약점(CVE-2015-0096/MS15-020 )을 발견하였는데, 이 취약점에 관련된 세부적인 기술이 공개되면서 많은 해커들에게 악용되었습니다. 그리고 최근, MS가 6월 13일날 세번째 바로가기 취약점(CVE-2017-8464)을 공개하였습니다. 하지만 이번에 패치가 공개된 CVE-2017-8464 취약점은 그 취약점이 어디서 나왔는지 공개되지 않았으며, 해커가 해당 취약점을 악용한 경우도 아직까지 발견되지 않았습니다.

 

이상한 것은 패치가 공개된 일주일 후 위키리크스는 cia 툴인 'Brutal Kangaroo'와 ' Emotional Simian'를 공개하였는데, 기술 분석과 해당 프로젝트의 개발 시점으로 추측하였을 때 해당 프로젝트가 최근 패치된 CVE-2017-8464 취약점을 악용한 것이 아닐까라고 추측하고 있습니다.

 


HammerDrill 기술분석

 

위키리크스의 창시자인 Julian Paul Assange는 2017년 3월 9일경 폐쇄망 침투 툴인 'HammerDrill'을 설명하는 2분짜리 동영상을 공개했습니다. 그리고 3월 19일 위키리크스는 해당 프로젝트와 관련된 상세한 내용을 인터넷에 공개하였습니다.

 

HammerDrill은 윈도우 시스템 상의 버닝롬 sw를 하이재킹하여 데이터들을 감염의 매개체로 삼아 내부망에 성공적으로 침투를 하는 공격방식입니다. 해당 프로젝트에서는 버닝롬을 감염시키는 자세한 단계를 공개하였습니다.

 

1) drill에 충격을 주어 스레드를 실행시키고, wmi 인터페이스를 통해 시스템을 모니터링합니다.


2) 만약 프로세스 리스트 중 NERO.EXE, NEROEXPRESS.EXE and NEROSTARTSMART.EXE 프로세스 명이 발견되면, 해당 프로젝트에 악성 dll을 인젝션 하고 프로세스가 파일을 읽는 작업을 하이재킹합니다.


3) 만약 버닝롬이 실행가능한 PE 파일을 읽어들였을 때, 변경된 파일은 악성 shellcode를 인젝션 합니다.

 

결국, 버닝롬이 읽어들인 PE파일들은 모두 감염이 되며, 이 버닝롬은 악성코드 진원지가 되는 것입니다. 만약 롬이 폐쇄망에서 사용되고, 작업자가 실수로 혹은 그 중의 한개의 SW를 실행한다면 해커는 내부망에 침투가 가능하게 되는 것입니다. 자료는 HammerDrill 2.0의 개발일지만 공개되었으며, 높은 기술의 보안취약점을 이용 부분은 나와있지 않았습니다. 하지만 기술상 추측해 보자면, 3세대 Stuxnet의 서브 공격모듈로 사용될 가능성도 있습니다.

 


BadUSB 기술분석

 

위키리크스가 공개한 CIA 문서들에는 "BadUSB"기술도 포함되어 있습니다. 이 기술은 최근 몇년간 보안 영역에서 가장 화두가 되었던 기술 중 하나로, 해커들에게 이미 광범위하게 사용되고 있는 기술이기도 합니다. "BadUSB"는 주로 악성 HID(Human InterfaceDevice를 이용하여, 이는 컴퓨터가 직접 사람과 커뮤니케이션을 할수있는 디바이스들(예를들어 키보드, 마우스 등) 과 무선 랜카드를 공격합니다. 또한 일반적인 HID 디바이스들과 다르게 초소화 형태로 제작되었으며, 외형적으로는 일반 USB와 유사합니다.

 

일단 사용자 PC에 삽입되면, 가상 키보드가 자동으로 악성코드를 입력한 후 실행시킵니다. NSA의 또 다른 강력한 스파이 툴인 COTTONMOUTH-I 역시 외형은 일반 USB와 유사하지만, 실제로는 초소형 악성 컴퓨터로, 무선 브릿지 네트워크 엑세스 이용하여 타겟 네트워크에 접근하며, 해당 무선네트워크를 이용하여 시스템을 통제합니다.

 

그렇기 때문에, 해커들은 여전히 악성 USB를 이용하여 폐쇄망을 공격할 수 있습니다. 하지만 이러한 공격들은 Stuxnet 3세대 처럼 강력하거나 전파능력이 크지 않습니다.

 





참고 :

https://wikileaks.org/vault7/document/Emotional_Simian-v2_3-User_Guide/Emotional_Simian-v2_3-User_Guide.pdf

https://wikileaks.org/vault7/document/Brutal_Kangaroo-DriftingDeadline-V1_2-User_Guide/Brutal_Kangaroo-DriftingDeadline-V1_2-User_Guide.pdf

https://wikileaks.org/ciav7p1/cms/page_13763373.html

https://wikileaks.org/ciav7p1/cms/page_13763381.html

https://wikileaks.org/ciav7p1/cms/page_17072186.html

https://wikileaks.org/ciav7p1/cms/page_17072172.html

https://wikileaks.org/ciav7p1/cms/page_20873532.html

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-8464

https://www.symantec.com/connect/blogs/w32flamer-spreading-mechanism-tricks-and-exploits

 

 

 

 

 

 

 

 


관련글 더보기

댓글 영역