[상세보고서] 우크라이나 정전사태 관련 악성코드 (update. 2016.03.25)
- 보안 정보/악성코드 분석보고서
- 2016. 2. 16. 21:11
malwares.com 악성코드 분석팀 분석 자료
< 부제 : 이제 그만 좀 하자 >
update. 2016.03.25
우크라이나의 정전사태에 대한 상세보고서가 최초 공개됐다.
관련 기사 보러가기 : [데일리시큐] 우크라이나 전력그리드 사이버공격 기법 상세보고서 최초 공개... 다운로드
[DarkReading] Lessons From The Ukraine Electric Grid Hack
분석 보고서 다운로드 : [E-ISAC] Documents-E-ISAC_SANS_Ukraine_DUC_18Mar2016.pdf
update. 2016.03.07
우크라이나의 대규모 정전사태에 대해 ICS-CERT에서 다음과 같은 보고서를 공개했다. 해당 보고서에서 "우크라이나 정전사태는 CyberAttack이며 함께 발견된 BlackEnergy에 의한 것이나 (분석된 BlackEnergy 동작이외에 정전사태와 관련된) 정확한 동작은 아직 분석되지 않은 상태"라고 밝혔다.
1. 개요
< Figure 1. 문서 파일을 통한 APT 공격 과정 >
- 파일명 : Ocenka.xls
- 파일크기 : 835,584 Bytes
- SHA-256 : 0BB5E98F77E69D85BF5068BCBC5B5876F8E5855D34D9201D1CAFFBF83460CCCC
- 연관 태그 정보 : #xls, #blackenergy #macros #ukraine
- malwares.com 정보 : https://goo.gl/eZnls9
< Figure 2. Anti-Virus 진단 정보 (malwares.com) >
파일명 : $RR143TB.doc
파일크기 : 1,194,496 Bytes
SHA-256 : 39D04828AB0BBA42A0E4CDD53FE1C04E4EEF6D7B26D0008BD0D88B06CC316A81
연관 태그 정보 : #doc #blackenergy #macros #ukraine
malwares.com 정보 : https://goo.gl/MT7AJ3
< Figure 3. Anti-Virus 진단 정보 (malwares.com) >
< Figure 4. 매크로가 존재하는 악성문서 실행 모습 >
- 실행 환경 : Windows XP SP3, Microsoft Office 2007
Figure 4는 우크라이나 정전사태를 유발한 악성 문서 파일을 실행한 모습이다. 두 악성 문서 파일을 각각 실행하면 매크로 차단 메시지가 나타난다. 이 보안 옵션을 활성화하면 악성 문서 내의 매크로가 동작하게 되고 악성코드가 생성 및 실행된다. 이는 정상 VBA 매크로 동작을 이용한 악성행위이므로 모든 Office 버전에서 동작한다.
따라서 악성 문서 파일내에 존재하는 매크로를 확인하면 정확한 동작을 확인할 수 있다.
( 참고 : 악성 문서 파일을 직접 실행하는 경우 악성 매크로가 동작하지만 Office 프로그램을 먼저 실행한 후 악성 문서 문서 파일을 Drag & Drop 하는 경우 악성 매크로가 실행되지 않는다. )
< Figure 5. 악성 문서 내부 VBA 매크로 모습 >
MS에서 제공하고 있는 CFBF 파일 상세 문서에 따르면 분석 대상 Strream의 이름만 다를 뿐 엑셀 및 워드 파일 모두 VBA Storage 하위 Stream에 VBA 매크로가 존재함을 알 수 있다. 따라서 엑셀 파일과 워드 파일 내부에 존재하는 매크로 소스를 추출해 분석하면 된다. 샘플의 경우 분석 대상 Stream 명은 다음과 같다.
엑셀 문서의 경우 분석 대상 Stream 명 : Лист1 ~ Лист3, ЭтаКнига
워드 문서의 경우 분석 대상 Stream 명 : TheDocument
4. 악성 문서 파일 분석
(1) VBA Storage 구조
< Figure 6. VBA 하위 구조 일부 >
참고 문서 : [MS-OVBA].pdf
VBA 하위에 존재하는 Stream은 Figure 6과 같은 구조로 이루어져 있다. 그 중 dir Stream은 VBA 하위에 존재하는 Stream (Module Stream, _SRP_0 등) 에 대한 정보를 갖고 있다. 따라서 CFBF 파일 포맷에 따라 Module Stream 과 같은 하위 모듈을 추출하더라도 dir Stream 분석이 선행되어야 정확한 데이터를 확인할 수 있다. 따라서 분석 대상은 다음과 같다.
< FIgure 7. VBA Storage 하위의 분석 대상 Stream >
(2) dir Stream 구조 분석
< Figure 8. dir Stream 디코딩 >
참고 문서 : [MS-OVBA].pdf
dir Stream은 첫 1Byte를 통해 인코딩 여부를 판단한다. 만약 첫 1Byte가 0x01인 경우 인코딩된 Stream으로 판단해 첫 1Byte 이후 바이너리를 디코딩 후 포맷 분석을 수행한다.
( 디코딩 알고리즘은 [MS-OVBA].pdf 의 2.4.1.3.1. Decompression Algorithm 을 참고하기 바란다. )
< Figure 9. 디코딩한 dir Stream 내부 구조 >
디코딩된 dir Stream은 크게 세 부분으로 나눌 수 있다.
PROJECTINFORMATION : 프로젝트 명, 버전 정보, 코드페이지 등 기본정보를 담고 있는 Record
PROJECTREFERENCE : 참조하는 외부 라이브러리 정보 등을 담고 있는 Record
PROJECTMODULES : 하위 Stream 명, 위치 정보 등을 담고 있는 Record
< FIgure 10. 구조 분석된 dir Straem 내부 정보 (일부) >
따라서 dir Stream의 추출된 정보를 바탕으로 하위 Stream에 대한 정확한 분석이 가능하다. 특히 그 중 dir Stream의 PROJECTINFORMATION의 코드페이지(CodePage) 정보는 이후 나오는 문자열 관련 정보를 디코딩할 때 관여하게 된다.
< Figure 11. CodePage를 이용한 디코딩 >
Figure 11에서 분석 대상 악성코드를 확인해 보았다. 악성 워드 문서의 경우 Module Name 등 문자열이 정상적으로 출력됨을 확인할 수 있다. 하지만 악성 엑셀 파일의 경우 기본적으로 인코딩이 적용되어 있어 모듈을 구분할 수 없다. 따라서 PROJECTINFORMATION 에서 CodePage 정보를 추출해 디코딩해야 한다.
(2) VBA 매크로 소스 추출 및 분석
< Figure 12. 추출된 VBA 매크로 소스코드 >
dir Stream 정보를 바탕으로 각각 대상 module Stream을 분석하면 Figure 12와 같은 VBA 매크로 소스를 확인할 수 있다.
악성 엑셀 파일 내 VBA 매크로 소스코드 모듈 : ЭтаКнига
악성 워드 파일 내 VBA 매크로 소스코드 모듈 : TheDocument
함수명 등의 차이를 제외하면 악성 문서 파일에서 추출되는 VBA 매크로 소스는 동일하다.
우선 악성 파일의 이름을 생성한다.
악성 엑셀 파일에서 생성되는 악성코드 명 : %TEMP%\test_vb.exe
악성 워드 파일에서 생성되는 악성코드 명 : %TEMP%vba_macro.exe
악성 파일을 생성하기 위한 바이너리는 128Bytes 씩 468개로 나누어 배열로 저장하고 있으므로 이를 결합하는 작업을 수행한다. 이렇게 생성된 악성코드를 실행하게 된다.
5. Anti-Virus 진단 정보
파일명 : test_vb.exe
파일크기 : 59,904 Bytes
SHA-256 : 43B69A81693488905EF655D22E395C3F8DEE2486ABA976D571D3B12433D10C93
연관 태그 정보 : #ukraine
malwares.com 정보 : https://goo.gl/XhXA7N
< Figure 13. Anti-Virus 진단 정보 (malwares.com) >
파일명 : vba_macro.exe
파일크기 : 73,235 Bytes
SHA-256 : CF52F3C07AFAA6D74E881FD6AE72C203E1CC154706DEFADE75BE02DB3962C31A
연관 태그 정보 : #ukraine
malwares.com 정보 : https://goo.gl/ar43GT
< Figure 14. Anti-Virus 진단 정보 (malwares.com) >
6. 바이너리 분석
< Figure 15. 생성 파일 실행 >
VBA 매크로에 의해 실행된 악성코드는 특정 경로에 DLL 파일을 생성하고 특정 파라미터와 함께 ShellExecute( ) API로 실행된다.
생성 경로 : c:\documents and settings\(사용자 계정)\Local Settings\Application Data
생성 파일명 : FONTCACHE.DAT
파라미터 : c:\documents and settings\(사용자 계정)\시작 메뉴\프로그램\시작프로그램\{사용자 SID}.lnk
파라미터로 전달된 lnk 바로가기 파일을 통해 PC 재부팅시 자동 시작되도록 설정된다.
lnk 바로가기 파일을 살펴보면 다음과 같은 정보를 확인할 수 있다.
파라미터 1 : %windir%\system32\rundll32.exe
파라미터 2 : FONTCACHE.DAT 파일 경로
파라미터 3 : #1
즉, lnk 바로가기 파일이 실행되면 rundll32.exe를 통해 FONTCACHE.DAT 파일을 실행하게 된다.
7. Anti-Virus 진단 정보
파일명 : FONTCACHE.DAT
원본 파일명 : Packet.dll
파일크기 : 56,832 Bytes
SHA-256 : EF380E33A854EF9D9052C93FC68D133CFEAAE3493683547C2F081DC220BEB1B3
연관 태그 정보 : #ukraine #blackenergy
malwares.com 정보 : https://goo.gl/kmZrxD
< Figure 16. Anti-Virus 진단 정보 (malwares.com) >
8. 외부 서버 접근
< Figure 17. 악성코드 실행시 네트워크 동작 >
- 서버 IP : 5.149.254.114
- SubURL : /Microsoft/Update/KC074913.php
▶ 보고서 원본 PDF 다운로드: https://goo.gl/1n595N
* 본 보고서 및 관련 컨텐츠는 저작권의 보호를 받습니다. 재배포, 영리목적의 활용 관련 법률에 의거 처벌 받을 수 있습니다.
'보안 정보 > 악성코드 분석보고서' 카테고리의 다른 글
봇넷 관련 악성코드 (systemsv08.exe) (0) | 2016.09.22 |
---|---|
랜섬웨어 복구 프로그램 종류와 원리 (1) | 2016.05.02 |
[상세보고서] 게임 모니터링 프로그램 악성코드 (0) | 2016.01.27 |
[상세보고서] APT : 악성 한글 파일을 통해 확산되는 악성코드 (2) | 2016.01.19 |
[상세보고서] Offline Ransomware (0) | 2015.12.23 |
이 글을 공유하기