2020.12.03

엑셀 4.0 매크로 공격이 급증하는 이유

Andrada Fiscutean | CSO
엑셀 4.0 매크로는 거의 30년째 사용되어 왔지만, 올해 공격자들은 이를 무기화 할 새로운 방법을 찾아냈다. 엑셀 4.0 매크로에 여전히 크게 의존하고 있는 기업에겐 안 좋은 소식이다.

VM웨어 보안 연구원인 제임스 호옴과 스테파노 오르톨라니, 바이바브 싱은 올해 수천 개의 샘플을 관찰해 10월에 개최된 VB2020 컨퍼런스에서 결과를 발표했다. 이들은 악성코드 작성자가 악성 스프레드시트를 더욱 정교하게 만들어 탐지를 회피하게 만든 방법에 주목해 샘플을 별개의 유형으로 그룹화했다.

XL4 매크로라고도 하는 엑셀 4.0 매크로 공격은 2월에 유독 급증했다. 일반적으로 피해자는 이메일로 악성 XLS 파일을 받고 매크로를 활성화하도록 유도된다. 그렇게 되면, 공격자는 네트워크에 액세스해 더 영구적으로 피해를 줄 수 있는 악성코드를 추가로 심을 수 있다. 

트릭봇(Trickbot)과 다나봇(Danabot), 고지(Gozi), 지로더(ZLoader)를 비롯한 여러 상용 악성코드 제품군은 이 아이디어를 사용해 목표 네트워크에 침입 발판을 마련했다. 실제로 연구진은 이런 유형의 악성코드가 광범위한 공격 가능성의 문을 열어준다고 말했다.

연구진은 엑셀 4.0 매크로를 현재 (공격과 보안) 양측이 지속적으로 새로운 트릭을 배우는 ‘미지의 영역’으로 보고 있다. 악성코드 작성자는 새로운 탐지 회피 방법을 찾아내며 경계를 계속 확장하는 반면, 보안 연구진은 엑셀 문서를 더 잘 평가하는 방법을 밝히려고 한다.

쫓고 쫓기는 게임은 앞으로도 계속될 것이다. 마이크로소프트는 사용자가 엑셀 4.0 매크로를 버리고 최신인 VBA(Visual Basic for Application)로 바꾸도록 권장한다. 그러나 많은 기업이 여전히 엑셀 4.0 매크로에 의존하고 있어, 당장 이 기능이 폐기될 가능성은 적다.
 

엑셀 4.0 매크로란?

오르톨라니는 엑셀 4.0 매크로는 “믿을 수 없을 정도로 오래됐지만, 놀라울 정도로 멋진 것은 아니다”라고 말했다. 화면에 메시지를 표시하거나 윈도우 앱을 실행할 수 있는 간단한 매크로를 만드는 데 30초가 걸린다. 반복적인 작업을 자동화하는 매크로를 만들 수 있게 하자는 아이디어는 엑셀이 처음 시작됐을 때부터 있었으며, XLM은 엑셀 4.0이 출시된 1992년에 기본 매크로 언어가 됐다.

엑셀 4.0 매크로는 만들기 쉬울 뿐만 아니라 강력하다. 계산기를 표시하는 =EXEC(“calc.exe”)처럼 간단한 매크로도 있지만, 파일 시스템과 레지스트리, WinAPI 등에 액세스를 허용하는 여러 줄의 복잡한 코드도 만들 수 있다. 이에 반해, 표준 매크로는 통합문서 관련 계산으로 제한되며 낮은 수준에서 시스템과 상호작용할 수 없다.
 

매크로 공격은 어떻게 진화했나

VM웨어 연구진은 엑셀 4.0 매크로 공격 위협이 지난 1년 동안 어떻게 진화했는지 이해하기 위해 수천 개의 샘플을 모았다. 일반적으로 1~2주 간격으로 총 15번의 공격을 집계했다. 오르톨라니는 “각 공격은 매우 고유하며, 시간이 지나면서 점점 더 정교해졌다”라고 말했다.

연구진은 서로 다른 공격에서 샘플을 비교함으로써 악성코드 작성자가 어떻게 고급 회피 및 난독화 기술 사용법을 배웠는지 연구할 수 있었다. 공격은 정교해졌으나, EXE나 DLL 파일 같은 페이로드를 다운로드하고 실행하는 기본 기능은 유지됐다.

연구지는 2월 중순에 첫 공격을 감지했다. 호옴은 “이 첫 번째 클러스터는 이후의 모든 클러스터의 발판을 마련한다. 대부분 이후 클러스터는 단순히 기존 코드를 확장하거나 기반으로 삼아 구축되기 때문이다”라고 설명했다. 이 첫 번째 공격 샘플은 마이크로소프트 오피스 로고가 포함된 피싱 이미지를 특징으로 했다. 사용자는 ‘편집 활성화’ 및 ‘콘텐츠 활성화’ 버튼을 클릭하라는 안내를 받았다.

첫 번째 공격에서 감지된 모든 샘플에는 페이로드를 포함한 숨겨진 매크로 시트가 있었다. 숨김 해제는 매우 쉬웠으며, 코드는 전혀 난독화되지 않았다. 아마도 이 클러스터의 가장 중요한 기능은 안티 샌드박싱(anti-sandboxing)이 적용되어 있다는 점이다. 호옴은 “VBA 매크로에서는 안티 샌드박싱을 찾아볼 수 없지만, 여기서는 3종류의 환경 검사를 확인할 수 있었다”라고 설명했다.

이런 환경 검사는 매크로 시트의 A1과 A2, A3 셀에 기록된다. 첫 번째 A1은 사용자와 메시지 상자 간의 상호 작용이 필요하다. 여기에는 팝업 창이 뜨고 “일부 콘텐츠에 문제가 있습니다. 최대한 복구하시겠습니까?”라고 표시된다

이는 악성코드가 덜 강력한 자동화된 샌드박스를 회피하는 데 도움이 된다. 호옴은 “샌드박스에 이 팝업을 클릭하는 사용자의 완전한 에뮬레이션이 없으면, 계속 실행되지 않고 샘플의 전체 동작을 볼 수 없다”라고 설명했다. 다음의 A2와 A3는, 마우스와 오디오 기능을 확인하는 데 사용된다.

이런 환경 검사가 수행되면, 악성코드는 웹 쿼리를 통해 더 지속적인 페이로드를 다운로드한다. 그런 다음 페이로드가 성공적으로 다운로드됐는지 확인한다.

두 번째 공격은 2월 말에 이어졌으며, 여러모로 비슷했다. 다만, 몇 가지 사소한 난독화 기술을 사용했다. 코드는 매크로 시트에 흩어져 있었고 흰색 배경에 흰색 글꼴을 사용해 작성됐다. 호옴은 “이는 아직 인상적이거나 획기적이지는 않지만, 악성코드 작성자가 엑셀 4.0으로 가능한 공격을 탐색하기 시작했음을 보여준다”라고 말했다.

다음 공격은 확장된 샌드박스 회피 기능과 함께 왔다. 이 공격의 샘플에는 작업공간의 디스플레이 크기와 치수를 확인하는 추가 환경 검사가 있었다. 또한 매크로 시트는 Hidden 대신 VeryHidden 플래그를 사용해 숨겨졌다.

호움은 “두 공격 사이의 차이점은 사용자가 엑셀 인터페이스에서 VeryHidden 매크로 시트를 숨김 해제할 수 없다는 것이다. 사용자는 스크립트를 사용해야 하거나, VBA 코드에서 하거나, 16진수 편집기에서 수동으로 숨김 해제해야 한다”라고 설명했다.
 

점점 복잡해지는 XL4 매크로

이어진 공격은 악성코드 작성자가 얼마나 빨리 기술을 향상했는지 보여준다. 3월 중순에는 매크로가 문자를 ASCII 코드로 변환하는 CHAR(integer) 함수를 대량으로 사용했다. 페이로드의 각 문자는 해당하는 CHAR 함수를 사용해 작성된 다음, 문자열이 연결됐다. 이는 다양한 다른 형식으로 나타나는 일반적인 난독화 기술이다.

그 후, 연구진은 더 많은 WinAPI 활동을 봤고, 매크로가 레지스트리에서 엑셀의 특정 보안 설정을 확인하기 시작했음을 발견했다. 또한, 특정 날짜에 실행돼야 하는 몇 가지 샘플을 수집했다. 이 날짜는 페이로드의 난독화를 해제하는 열쇠로 사용됐다. 매크로가 다른 날짜에 실행되면, 난독 해제 프로세스의 결과는 이해할 수 없는 문자열이었다.

4월 말에는 수십 개의 독립적인 매크로 시트에 페이로드가 숨겨진 첫 번째 샘플이 나타났다. 악성코드 작성자는 분석가가 흥미로운 코드 블록을 식별하는 것을 더 어렵게 만들었다.

5월 중순에는 또 다른 개선된 회피 기술이 나타났으며, 이 기술의 샘플은 엑셀 창을 숨기거나 최소화했는지 확인하기 시작했다. 이는 일반 사용자가 보지 못했음을 시사할 수 있는 동작이다. 악성코드 작성자는 또한 샘플이 단일 단계 모드에서 실행됐는지 여부를 조사했다. 이는 보안 연구원이 매크로의 각 동작 결과를 관찰하는 데 도움이 될 수 있는 디버깅 전략이다.

비슷한 시기에, 호옴은 또 다른 흥미로운 사실을 발견했다. 일반적인 CHAR 함수를 활용하는 대신, MID 함수를 사용해 문자열에서 하위 문자열을 추출하는 샘플을 찾은 것이다. 호옴은 “이는 CHAR을 예상하는 난독화 관련 서명을 깨기 위한 시도다. 샘플을 찾기 전에는 XL4가 아닌 VBA 매크로에서 사용하는 MID 함수만을 봤다”라고 말했다.

싱은 6, 7월에는, 샘플이 더 나은 기술을 선보였다고 말했다. 악성코드 작성자는 페이로드에서 VBS(Visual Basic Script)에 크게 의존하기 시작했다. 또한 컴퓨터가 32비트 또는 64비트 아키텍처를 사용하는지 확인하고 해당 페이로드를 다운로드했다.

싱은 “32비트 컴퓨터의 경우, 이전 공격과 유사한 기술을 사용했다. 그러나 64비트 아키텍처의 경우, 악성코드 작성자는 2개의 VBS 스크립트를 사용했다. 하나는 DLL을 다운로드했고, 다른 하나는 이를 실행했다”라고 설명했다.

여름 동안, VM웨어 연구진은 powershell.exe를 사용해 파워셸 스크립트를 2단계 페이로드로 다운로드하고 실행하는 마지막 흥미로운 공격을 목격했다. 싱은 이 클러스터가 늦봄에 나타난 VeryHidden 옵션을 사용하지만, 정교한 회피 또는 난독화 기술은 없다고 말했다.

싱은 “악성코드 작성자가 의도적으로 그렇게 만들었을 수 있다. 때로 난독화와 회피 기술을 너무 많이 추가하면 탐지 엔진이 감지하기 더 쉬워진다”라고 설명했다.
 

여전한 엑셀 4.0 매크로 공격

여름이 끝날 무렵, 연구진은 공격이 감소하는 것을 보았다. 하지만 악성코드 작성자를 무시하거나 과소평가해서는 안 된다고 말한다. 호옴은 이들이 올해 기술을 상당히 개선했고, 특히 환경 검사와 난독화 분야는 더욱 발전했다고 말했다.

난독화의 경우, 흰색 바탕에 흰색 글꼴을 사용한 코드 작성에서 시작해 CHAR과 DIM 함수 사용으로 빠르게 넘어갔다. 호옴은 “이제 우리는 인수로 전달되는 중첩 연산을 통해 여러 수학적 계산을 수행하고 일부 값을 디코딩한다”라고 말했다.

오르톨라니는 엑셀 4.0 매크로가 계속 사용되리라 생각한다. 그는 “사용하기 쉽지만, 복잡해지기도 쉽다. 좋은 소식은 탐지 도구가 향상됐다는 점이다”라고 덧붙였다. editor@itworld.co.kr
 



2020.12.03

엑셀 4.0 매크로 공격이 급증하는 이유

Andrada Fiscutean | CSO
엑셀 4.0 매크로는 거의 30년째 사용되어 왔지만, 올해 공격자들은 이를 무기화 할 새로운 방법을 찾아냈다. 엑셀 4.0 매크로에 여전히 크게 의존하고 있는 기업에겐 안 좋은 소식이다.

VM웨어 보안 연구원인 제임스 호옴과 스테파노 오르톨라니, 바이바브 싱은 올해 수천 개의 샘플을 관찰해 10월에 개최된 VB2020 컨퍼런스에서 결과를 발표했다. 이들은 악성코드 작성자가 악성 스프레드시트를 더욱 정교하게 만들어 탐지를 회피하게 만든 방법에 주목해 샘플을 별개의 유형으로 그룹화했다.

XL4 매크로라고도 하는 엑셀 4.0 매크로 공격은 2월에 유독 급증했다. 일반적으로 피해자는 이메일로 악성 XLS 파일을 받고 매크로를 활성화하도록 유도된다. 그렇게 되면, 공격자는 네트워크에 액세스해 더 영구적으로 피해를 줄 수 있는 악성코드를 추가로 심을 수 있다. 

트릭봇(Trickbot)과 다나봇(Danabot), 고지(Gozi), 지로더(ZLoader)를 비롯한 여러 상용 악성코드 제품군은 이 아이디어를 사용해 목표 네트워크에 침입 발판을 마련했다. 실제로 연구진은 이런 유형의 악성코드가 광범위한 공격 가능성의 문을 열어준다고 말했다.

연구진은 엑셀 4.0 매크로를 현재 (공격과 보안) 양측이 지속적으로 새로운 트릭을 배우는 ‘미지의 영역’으로 보고 있다. 악성코드 작성자는 새로운 탐지 회피 방법을 찾아내며 경계를 계속 확장하는 반면, 보안 연구진은 엑셀 문서를 더 잘 평가하는 방법을 밝히려고 한다.

쫓고 쫓기는 게임은 앞으로도 계속될 것이다. 마이크로소프트는 사용자가 엑셀 4.0 매크로를 버리고 최신인 VBA(Visual Basic for Application)로 바꾸도록 권장한다. 그러나 많은 기업이 여전히 엑셀 4.0 매크로에 의존하고 있어, 당장 이 기능이 폐기될 가능성은 적다.
 

엑셀 4.0 매크로란?

오르톨라니는 엑셀 4.0 매크로는 “믿을 수 없을 정도로 오래됐지만, 놀라울 정도로 멋진 것은 아니다”라고 말했다. 화면에 메시지를 표시하거나 윈도우 앱을 실행할 수 있는 간단한 매크로를 만드는 데 30초가 걸린다. 반복적인 작업을 자동화하는 매크로를 만들 수 있게 하자는 아이디어는 엑셀이 처음 시작됐을 때부터 있었으며, XLM은 엑셀 4.0이 출시된 1992년에 기본 매크로 언어가 됐다.

엑셀 4.0 매크로는 만들기 쉬울 뿐만 아니라 강력하다. 계산기를 표시하는 =EXEC(“calc.exe”)처럼 간단한 매크로도 있지만, 파일 시스템과 레지스트리, WinAPI 등에 액세스를 허용하는 여러 줄의 복잡한 코드도 만들 수 있다. 이에 반해, 표준 매크로는 통합문서 관련 계산으로 제한되며 낮은 수준에서 시스템과 상호작용할 수 없다.
 

매크로 공격은 어떻게 진화했나

VM웨어 연구진은 엑셀 4.0 매크로 공격 위협이 지난 1년 동안 어떻게 진화했는지 이해하기 위해 수천 개의 샘플을 모았다. 일반적으로 1~2주 간격으로 총 15번의 공격을 집계했다. 오르톨라니는 “각 공격은 매우 고유하며, 시간이 지나면서 점점 더 정교해졌다”라고 말했다.

연구진은 서로 다른 공격에서 샘플을 비교함으로써 악성코드 작성자가 어떻게 고급 회피 및 난독화 기술 사용법을 배웠는지 연구할 수 있었다. 공격은 정교해졌으나, EXE나 DLL 파일 같은 페이로드를 다운로드하고 실행하는 기본 기능은 유지됐다.

연구지는 2월 중순에 첫 공격을 감지했다. 호옴은 “이 첫 번째 클러스터는 이후의 모든 클러스터의 발판을 마련한다. 대부분 이후 클러스터는 단순히 기존 코드를 확장하거나 기반으로 삼아 구축되기 때문이다”라고 설명했다. 이 첫 번째 공격 샘플은 마이크로소프트 오피스 로고가 포함된 피싱 이미지를 특징으로 했다. 사용자는 ‘편집 활성화’ 및 ‘콘텐츠 활성화’ 버튼을 클릭하라는 안내를 받았다.

첫 번째 공격에서 감지된 모든 샘플에는 페이로드를 포함한 숨겨진 매크로 시트가 있었다. 숨김 해제는 매우 쉬웠으며, 코드는 전혀 난독화되지 않았다. 아마도 이 클러스터의 가장 중요한 기능은 안티 샌드박싱(anti-sandboxing)이 적용되어 있다는 점이다. 호옴은 “VBA 매크로에서는 안티 샌드박싱을 찾아볼 수 없지만, 여기서는 3종류의 환경 검사를 확인할 수 있었다”라고 설명했다.

이런 환경 검사는 매크로 시트의 A1과 A2, A3 셀에 기록된다. 첫 번째 A1은 사용자와 메시지 상자 간의 상호 작용이 필요하다. 여기에는 팝업 창이 뜨고 “일부 콘텐츠에 문제가 있습니다. 최대한 복구하시겠습니까?”라고 표시된다

이는 악성코드가 덜 강력한 자동화된 샌드박스를 회피하는 데 도움이 된다. 호옴은 “샌드박스에 이 팝업을 클릭하는 사용자의 완전한 에뮬레이션이 없으면, 계속 실행되지 않고 샘플의 전체 동작을 볼 수 없다”라고 설명했다. 다음의 A2와 A3는, 마우스와 오디오 기능을 확인하는 데 사용된다.

이런 환경 검사가 수행되면, 악성코드는 웹 쿼리를 통해 더 지속적인 페이로드를 다운로드한다. 그런 다음 페이로드가 성공적으로 다운로드됐는지 확인한다.

두 번째 공격은 2월 말에 이어졌으며, 여러모로 비슷했다. 다만, 몇 가지 사소한 난독화 기술을 사용했다. 코드는 매크로 시트에 흩어져 있었고 흰색 배경에 흰색 글꼴을 사용해 작성됐다. 호옴은 “이는 아직 인상적이거나 획기적이지는 않지만, 악성코드 작성자가 엑셀 4.0으로 가능한 공격을 탐색하기 시작했음을 보여준다”라고 말했다.

다음 공격은 확장된 샌드박스 회피 기능과 함께 왔다. 이 공격의 샘플에는 작업공간의 디스플레이 크기와 치수를 확인하는 추가 환경 검사가 있었다. 또한 매크로 시트는 Hidden 대신 VeryHidden 플래그를 사용해 숨겨졌다.

호움은 “두 공격 사이의 차이점은 사용자가 엑셀 인터페이스에서 VeryHidden 매크로 시트를 숨김 해제할 수 없다는 것이다. 사용자는 스크립트를 사용해야 하거나, VBA 코드에서 하거나, 16진수 편집기에서 수동으로 숨김 해제해야 한다”라고 설명했다.
 

점점 복잡해지는 XL4 매크로

이어진 공격은 악성코드 작성자가 얼마나 빨리 기술을 향상했는지 보여준다. 3월 중순에는 매크로가 문자를 ASCII 코드로 변환하는 CHAR(integer) 함수를 대량으로 사용했다. 페이로드의 각 문자는 해당하는 CHAR 함수를 사용해 작성된 다음, 문자열이 연결됐다. 이는 다양한 다른 형식으로 나타나는 일반적인 난독화 기술이다.

그 후, 연구진은 더 많은 WinAPI 활동을 봤고, 매크로가 레지스트리에서 엑셀의 특정 보안 설정을 확인하기 시작했음을 발견했다. 또한, 특정 날짜에 실행돼야 하는 몇 가지 샘플을 수집했다. 이 날짜는 페이로드의 난독화를 해제하는 열쇠로 사용됐다. 매크로가 다른 날짜에 실행되면, 난독 해제 프로세스의 결과는 이해할 수 없는 문자열이었다.

4월 말에는 수십 개의 독립적인 매크로 시트에 페이로드가 숨겨진 첫 번째 샘플이 나타났다. 악성코드 작성자는 분석가가 흥미로운 코드 블록을 식별하는 것을 더 어렵게 만들었다.

5월 중순에는 또 다른 개선된 회피 기술이 나타났으며, 이 기술의 샘플은 엑셀 창을 숨기거나 최소화했는지 확인하기 시작했다. 이는 일반 사용자가 보지 못했음을 시사할 수 있는 동작이다. 악성코드 작성자는 또한 샘플이 단일 단계 모드에서 실행됐는지 여부를 조사했다. 이는 보안 연구원이 매크로의 각 동작 결과를 관찰하는 데 도움이 될 수 있는 디버깅 전략이다.

비슷한 시기에, 호옴은 또 다른 흥미로운 사실을 발견했다. 일반적인 CHAR 함수를 활용하는 대신, MID 함수를 사용해 문자열에서 하위 문자열을 추출하는 샘플을 찾은 것이다. 호옴은 “이는 CHAR을 예상하는 난독화 관련 서명을 깨기 위한 시도다. 샘플을 찾기 전에는 XL4가 아닌 VBA 매크로에서 사용하는 MID 함수만을 봤다”라고 말했다.

싱은 6, 7월에는, 샘플이 더 나은 기술을 선보였다고 말했다. 악성코드 작성자는 페이로드에서 VBS(Visual Basic Script)에 크게 의존하기 시작했다. 또한 컴퓨터가 32비트 또는 64비트 아키텍처를 사용하는지 확인하고 해당 페이로드를 다운로드했다.

싱은 “32비트 컴퓨터의 경우, 이전 공격과 유사한 기술을 사용했다. 그러나 64비트 아키텍처의 경우, 악성코드 작성자는 2개의 VBS 스크립트를 사용했다. 하나는 DLL을 다운로드했고, 다른 하나는 이를 실행했다”라고 설명했다.

여름 동안, VM웨어 연구진은 powershell.exe를 사용해 파워셸 스크립트를 2단계 페이로드로 다운로드하고 실행하는 마지막 흥미로운 공격을 목격했다. 싱은 이 클러스터가 늦봄에 나타난 VeryHidden 옵션을 사용하지만, 정교한 회피 또는 난독화 기술은 없다고 말했다.

싱은 “악성코드 작성자가 의도적으로 그렇게 만들었을 수 있다. 때로 난독화와 회피 기술을 너무 많이 추가하면 탐지 엔진이 감지하기 더 쉬워진다”라고 설명했다.
 

여전한 엑셀 4.0 매크로 공격

여름이 끝날 무렵, 연구진은 공격이 감소하는 것을 보았다. 하지만 악성코드 작성자를 무시하거나 과소평가해서는 안 된다고 말한다. 호옴은 이들이 올해 기술을 상당히 개선했고, 특히 환경 검사와 난독화 분야는 더욱 발전했다고 말했다.

난독화의 경우, 흰색 바탕에 흰색 글꼴을 사용한 코드 작성에서 시작해 CHAR과 DIM 함수 사용으로 빠르게 넘어갔다. 호옴은 “이제 우리는 인수로 전달되는 중첩 연산을 통해 여러 수학적 계산을 수행하고 일부 값을 디코딩한다”라고 말했다.

오르톨라니는 엑셀 4.0 매크로가 계속 사용되리라 생각한다. 그는 “사용하기 쉽지만, 복잡해지기도 쉽다. 좋은 소식은 탐지 도구가 향상됐다는 점이다”라고 덧붙였다. editor@itworld.co.kr
 

X