반복되는 악성 워드 유포, 달라지는 공격 방식
악성 워드(Word) 문서를 이용한 공격은 과거부터 현재까지 꾸준히 발견되고 있다. 사용자들이 가장 많이 사용하는 파일 형식 중 하나가 워드 문서라는 점을 악용한 것이다. 공격자는 주로 피싱 메일을 통해 악성 워드 파일을 유포하고, 타깃 대상에 따라 내용을 변경하거나 유포 방식을 업그레이드하는 등 더욱 교묘한 방법으로 공격을 펼치고 있다.
이번 글에서는 2021년부터 2022년 초까지 가장 활발하게 유포된 악성 워드 문서 유형과 동작 과정의 변화를 집중적으로 살펴본다.
악성 워드 문서를 이용한 공격은 정보 탈취 등의 악성 행위를 수행하기 위해 사용자 시스템에 악성코드를 유포한다. 이때 유포되는 악성코드는 유포 및 변형 방식이 매우 다양한 양상을 보인다. 2021년부터 2022년 초까지 가장 활발히 유포된 악성 워드 문서는 TA551(Shathak) 공격 그룹이 사용한 워드 문서 유형이다. 이런 유형이 최근에 발견된 것은 아니지만, 2020년에는 동일 유형의 워드 문서를 통해 IcedID 악성코드만 지속적으로 유포한 반면 2021년부터는 IcedID, Qakbot, Trickbot, BazarLoader 등 여러 종류의 악성코드를 유포했다는 점이 주목할 만하다. TA551 그룹이 사용한 워드 문서 유형(이하 ‘TA551 유형’)의 주요 특징을 알아본다.
TA551 유형의 악성 워드 유포 방식
대부분의 악성 워드 문서 파일은 다수의 기업 사용자들을 대상으로 한 피싱 메일에 첨부되어 유포된다. 공격자는 특정 사용자를 타깃하기 위해 사용자와 관련 내용을 포함한 본문 또는 워드 파일을 이용할 수 있으며, 불특정 다수를 타깃하기 위해서는 주문서, 견적서 등의 일반적인 내용을 포함한 악성 워드 문서를 사용할 수 있다. 그중 TA551 그룹이 사용한 방식은 후자다. 주문서로 위장한 워드 파일을 암호화해 압축 파일 형태로 첨부했으며, 메일 본문은 사용자가 첨부 파일을 실행하도록 유도하는 내용을 포함하고 있다([그림 1] 참고).
[그림 1] 악성 워드 문서 첨부 피싱 메일
2021년 6월 이후에 다량 유포된 TA551 유형의 워드 문서들은 꾸준한 변형으로 유포되었다. 변형의 주요 골자로는 매크로 코드의 스타일 변화, 최종 악성코드 다운로드 프로세스 증가, 최종 악성코드 종류 변형 등을 예로 들 수 있다. 다만, 이러한 변화 과정에서 문서 파일명과 파일 내용 포맷은 크게 변화하지 않았고 높은 유사성을 보였다.
아래 [표 1]은 2021년 한 해 동안 유포된 TA551 악성 워드 문서 파일명 중 일부를 나타낸 것이다. TA551 유형의 워드 문서는 매크로가 실행되면 HTA 파일을 드롭(Drop) 후 추가 악성코드를 다운로드하는 형식으로 동작하기 때문에 세 종류의 파일에 대한 파일명을 기재했다.
[표 1] 유포 파일명 (일부)
동작 방식 및 특징
악성 워드 문서 파일의 전체적인 동작 과정은 [그림 2]와 같다.
[그림 2] 악성 워드 문서 파일 동작 과정
피싱 메일에 첨부된 악성 워드 문서 파일은 악성 VBA 매크로 파일 내부의 매크로가 동작하는 과정에서 HTA(HTML Application) 파일이 생성된다. HTA 파일의 데이터는 워드 본문 영역을 활용해 흰색 색상 그리고 1pt 사이즈의 텍스트로 은닉하는 방식을 사용했다. HTA 파일이 실행되면 외부 URL을 통해 추가 악성코드를 다운로드한다.
HTA 파일은 인터넷 브라우저 보안 정책에 영향을 받지 않기 때문에 신뢰할 수 없는 프로그램을 실행할 수 있고 파워쉘(PowerShell) 또한 이용 가능해 공격자들이 자주 악용하고 있다.
[그림 3] TA551 유형의 워드 파일 본문
TA551 유형의 워드 파일의 주요 특징은 [그림 3]과 같이 매크로 허용을 유도하는 이미지를 단독으로 삽입한 것이다. 2020년부터 확인된 TA551 유형의 워드 파일은 대부분 유사한 이미지를 사용해왔다.
매크로 허용을 유도하는 그림 파일을 지워보면 흰색 글자로 데이터가 은닉되어 있는 것을 확인할 수 있다. 글자 속성을 변경해 보면 [그림 4]와 같이 HTML 소스코드가 드러난다. 해당 데이터는 워드 문서 매크로가 동작할 경우 로컬 경로에 다운로드되는 HTA 파일의 내용이 된다.
[그림 4] 악성 워드 파일 내 숨겨진 HTML 소스코드
매크로 코드가 동작하게 되면 문서 전체의 내용을 기반으로 HTA 파일이 생성되고 이후 explorer.exe 는 mshta.exe 를 통해 해당 HTA 파일을 실행하게 된다.
[그림 5] RAPIT(악성코드 자동 분석 인프라) 프로세스 트리
안랩 RAPIT 인프라에서 프로세스 트리(Process Tree)를 확인해 보면 mshta.exe 프로세스에 의해 HTA 파일이 실행되어 ‘jpg 확장자의 파일’이 다운로드 된 후 rundll32.exe에 로드되어 실행되는 것을 확인할 수 있다. 실제로는 HTA 스크립트가 실행되어 연결되는 URL에서 DLL 실행 파일(Portable Executable)을 다운로드하지만, 그 과정에서 직접적으로 .dll의 확장자를 사용하지 않고 jpg 확장자를 사용한 것으로 확인됐다.
이는 실행 파일을 다운로드하는 의심 행위에서 차단되지 않기 위한 것으로 추정되는데, 이러한 방식은 TA551 유형의 워드 문서에서 공통적으로 사용된 방법이다.
동작 방식의 변화
앞서 소개한 악성 워드 문서의 동작 과정은 큰 틀에서 변함이 없다. 그러나 매크로 동작 과정에서 두 가지 유형의 변형이 발생하는 것을 확인할 수 있다. 그것은 바로 ‘VBA 매크로 코드 및 HTA 파일의 변형 ‘과 ‘유포 단계 확장에 따른 최종 악성코드 종류의 변화’이다.
그중 VBA 매크로 코드 스타일의 변형은 빈번하게 발생했다. HTA 파일의 데이터 자체를 본문 영역이 아닌 VBA 매크로를 이용한 사례도 있었고, HTA 파일이 생성되지 않고 바로 Installer DLL을 다운로드한 사례도 있었다. TA551 유형의 워드 파일이 유포되는 과정에서 확인된 변형을 하나씩 살펴보자.
1. VBA 매크로 코드 및 HTA 파일의 변형
2021년 초에 유포된 악성 워드 문서를 살펴보면 공격자는 VBA 매크로 코드의 사용자 정의 폼을 활용했다. 이는 워드 본문 영역의 데이터를 활용해 HTA 파일을 생성했던 기존 방식과 다소 다르다.
[그림 6] 2021년 2월에 유포된 악성 VBA 코드
또한 편집 제안 설정이 되어 있던 것도 기존 방식과는 다른데, 이는 의도적으로 ‘매크로 허용 유도 이미지’가 삽입된 이미지라는 것을 알아채기 어렵도록 하기 위한 것으로 추정된다.
전반적으로 인코딩 과정에서 복잡한 난독화는 사용하지 않았다. 공격자는 기본적으로 VBA 매크로 코드의 사용자 정의 폼과 모듈을 활용했으며, 각각에 담기는 데이터에 대해 XOR 연산과 아스키 값 변환 방식을 주로 사용했다. 다만, VBA 매크로 코드에서 사용할 수 있는 여러 가지의 인코딩 방법을 시기에 따라 번갈아가며 사용했고, 이전의 방법과 혼용하기도 하며 TA551 유형의 특징을 드러냈다. 이는 공격자가 안티바이러스 제품의 탐지를 우회하고자 유포 시기에 따라 지속적인 변형을 준 것으로 추정된다.
2021년 3월에 유포된 악성 워드 문서는 Ursnif 악성코드를 유포하기 위해 HTA 데이터가 VBA 코드 내부에 존재하는 유형이다. HTA 파일에 포함될 데이터를 특정 함수를 사용해 배열의 형식으로 저장했다. 이때 유포된 워드 파일들은 잘못 작성된 매크로 코드로 인해 정상 실행되지 않았다.
2021년 7월에 유포된 악성 워드 문서는 본문 내 HTA 데이터가 난독화된 유형이다. 본문 내 데이터이 인코딩되었고 매크로 코드도 기본적인 연산을 거쳐야 디코딩 되도록 제작됐다. 본문 내 데이터는 [그림 7]과 같이 매크로 허용을 유도하는 이미지 뒤에 숨겨져 있다.
[그림 7] 매크로 허용 유도 이미지 뒤에 숨겨져 있는 텍스트
매크로 코드 동작 과정에서 생성된 HTA 파일 내 데이터를 코드 내용의 의도대로 디코딩 시 추가 악성코드 다운로드 URL과 로컬 저장 경로 등을 명시한다. 유포 과정에서 확인되는 샘플을 추적해 보니, ‘http://[도메인]/adda/~’ 와 같은 방식으로 path의 첫 번째 값이 꽤 긴 기간 동안 통일성을 갖고 유지되는 점도 확인할 수 있었다. 다운로드되는 dll 파일은 2021년 7월 당시 Trickbot 악성코드로 동작한 것으로 확인된다.
그 밖에도 매크로 동작 과정에서 HTA 파일을 생성하지 않고 매크로 보안 설정을 변경하기 위해 레지스트리 키를 등록 후 VBA 코드를 직접 실행하는 유형도 확인됐다.
앞서 소개한 악성 VBA 매크로 유형 외에도 다수의 변형 파일이 존재할 수 있다. 기존 인코딩 및 데이터 은닉 방식을 혼용하기도 하며 더 복잡한 형태로 계속해서 변화하는 것을 확인할 수 있다.
2. 최종 유포되는 악성코드 종류의 변화
2020년 하반기에 확인된 TA551 유형의 워드 파일은 주로 IcedID와 Qakbot 악성코드를 유포했다. 그런데 2021년 하반기를 지나며 유포하는 악성코드의 종류 또한 증가했다. 더불어 직접 악성코드를 유포하던 방식에서 여러 단계를 거쳐 악성코드를 다운로드하는 과정으로 변형됐다.
2021년 상반기까지 수집된 TA551 유형의 워드 파일은 HTA 스크립트 코드에 인코딩 되어 있는 URL을 통해 악성코드를 직접 다운로드했다. 이때 주로 다운로드된 악성코드는 Qakbot, Bokbot, Ursnif, Trickbot 등의 뱅킹형 악성코드이다.
또한, 워드 매크로 동작 과정에서 두 가지의 악성코드가 다운로드 되는 사례도 다수 확인되었다.
[그림 8] 추가 악성코드를 다운로드 하는 과정
2021년 9월에 확인된 TA551 유형에서는 HTA 스크립트 코드에 인코딩 되어 있는 URL을 통해 BazarLoader DLL 파일을 다운로드했다. BazarLoader DLL는 메모리 상에서 백도어를 다운로드하고 정상 프로세스에 인젝션하는 악성코드이다. 그 이후, C2 연결을 통해 Trickbot과 같은 추가 악성코드를 다운로드했다.
안랩은 TA551와 김수키(Kimsuky) 유형 외에도 외부(External) 연결 기능을 악용한 악성 워드 문서와 이모텟 악성코드를 유포하는 악성 워드 문서에 관한 내용도 확인했다.
결론
공격자들은 악성 워드 문서를 이용한 공격을 계속해서 펼치고 있다. 그중 안랩은 TA551 공격 그룹이 사용한 워드 문서의 동작 과정과 주요 특징들을 집중적으로 살펴보았다. 해당 공격은 워드 파일뿐만 아니라 다양한 유형의 악성 워드 문서가 존재하고, 끊임없는 변형을 주며 유포되고 있기 때문에 각별한 주의가 요구된다.
악성 워드 파일은 대부분 이메일을 통해 유포되고 있다. 따라서 사용자들은 출처가 불분명한 메일 열람 시 주의해야 한다. 또한, V3를 포함한 보안 제품의 업데이트를 최신으로 유지해 악성코드의 감염을 사전에 차단할 수 있도록 신경 써야 한다.
출처 : AhnLab