Threat Hunting T1140
2020, Sep 07  
데이터분석팀

Threat Hunting T1140 : Deobfuscate/Decode Files or Information(T1140)

Overview

본 글에서는 MITRE ATT&CK 에서 정의하는 Tech(T1140)에 대한 위협 헌팅(Threat Hunting) 과정을 자세히 설명합니다. 이 과정에서 공격자의 행위는 자사제품 ARES를 사용하여 시뮬레이션하고, Monster Threat Hunting Platform을 통해 호스트 행위 이벤트 수집, 위협 헌팅 과정 및 결과 활용 방법을 소개합니다.

MITRE ATT&CK Matrix

MITRE는 미국 연방정부의 지원을 받는 비영리 연구개발 단체이고, 국가간 사이버 공격의 영향력과 피해가 커지면서 사이버 공격에 대한 연구가 시작되어 발간된 것이 ATT&CK입니다. ATT&CK는 실제 발생한 사이버 공격 사례를 기반으로 공격자의 전술과 공격 기술에 관한 정보를 구축해놓은 지식 베이스로 무료로 오픈되어 있습니다.

공격자가 목표로 하는 섹션별로 PRE-ATTACK, Enterprise, Mobile로 구분하고 있으며, 각 섹터에서 공격자가 주로 활용하는 공격 전술과 기술에 대한 정보를 제공합니다. 본 글에서는 아래 그림과 같이 Enterprise 섹션에 관한 내용을 설명합니다. Enterprise 섹션에서는 총 11단계의 Tactics으로 구성되어 있습니다.

matrix

Tactics

Enterprise 섹션에서 설명 하고 있는 11개의 Tactics에 대해 간략하게 살펴보겠습니다.

  1. Initial Access

    Initial Acces는 다양한 진입 벡터를 사용하여 네트워크 안에서 초기 거점확보하는 Techniques로 구성됩니다. 거점을 확보에 주로 사용되는 기술은 targeted spear phishing, 웹 서버의 취약점을 사용하여 악성코드 유포 서버 구축 등이 사용됩니다.

  2. execution

    Execution은 로컬 시스템 혹은 원격 시스템에서 악성 코드(malicious code)를 실행하는 Techniques로 구성됩니다. 악성 코드를 실행하는 기술은 네트워크 탐색이나 데이터 도용과 같은 광범위한 목표를 달성하기 위해 다른 Tactic과 함께 사용됩니다.

  3. Persistence

    persistence는 공격자가 거점 확보 이후, 언제든지 공격 대상 시스템에 접속하기 위한 Techniques으로 구성됩니다. 주로 사용되는 기술로는 운영체제에서 사용하는 파일을 공격자가 만든 악의적인 파일로 대체하여 지속적인 악성 행위를 수행하거나 높은 접근 권한을 가진 계정을 생성하여 쉽게 재접근하는 방법 등이 사용됩니다.

  4. Privilege Escalation

    privilege escalation은 공격자가 시스템이나 네트워크에서 더 높은 수준의 권한을 획득 하기 위한 Techniques로 구성됩니다.

    공격자는 일반 사용자 권한을 사용하여, 내부 네트워크 탐색, 최초 거점 확보에 사용된 호스트 정보 확보 등의 작업은 가능하지만, 원래 목표(예. 내부정보 유출, 시스템 파괴 등)를 달성하려면 높은 권한을 필요합니다.

    주로 사용되는 기술로는 시스템 취약점, 시스템 구성 오류, 높은 권한을 가진 운영체제로 악의적인 파일을 삽입하는 기법 , 시스템 서비스 등록 기법 등을 사용합니다. Privilege Escalation Tactics는 종종 Elevated persistence Tactics와 중복 분류될 수 있습니다.

  5. Defense Evasion

    Defense Evasion는 공격자가 공격 대상 시스템에 설치된 보안 솔루션의 탐지를 우회하기 위해 사용되는 Techniques로 구성이 됩니다. 주로 사용되는 기술에는 보안 소프트웨어 제거/ 비활성화 또는 데이터 및 스트립트 난독화/암호화가 포함됩니다. 또한, 공격자는 신뢰할 수 있는 프로세스를 활용하여 악용하거나 자신의 malware를 숨기고 가장합니다.

  6. credential access

    Credential Access는 계정 이름 및 암호와 같은 Credential Access를 탈취하는 Techniques로 구성됩니다. 주로 사용되는 기술에는 키로깅 또는 Credential 덤핑이 포함됩니다. 정상적인 credential을 사용하면 공격자에게 시스템에 대한 접근을 허용하고 탐지하기 어렵게 만들 수 있습니다. 그리고 목적을 달성하기 위해 더 많은 계정을 만들 수도 있습니다.

  7. Discovery(탐색)

    Discovery는 시스템 내부 네트워크에 대한 지식을 얻기 위해 상대방이 사용할 수 있는 Techniques로 구성됩니다. 이러한 기술은 공격자가 어떤 행위를 해야 할지 결정하기 전에 환경을 관찰하고 방향을 정하도록 도와줍니다. 또한 공격자들이 통제할 수 있는 것과 entry point 주위에 무엇이 있는지를 탐구할 수 있도록 합니다.

  8. Lateral Movement

    Lateral Movement는 공격자가 네트워크에서 원격 시스템에 들어가고 제어하는데 사용하는 Techniques로 구성됩니다. 주요 목표를 수행하려면 종종 목표를 찾기 위해 네트워크를 탐색한 다음에 그에 대한 접근 권한을 얻어야 합니다. 공격자는 자신의 원격 액세스 도구를 설치하여 Lateral Movement를 수행하거나 기본 네트워크 및 운영체제 도구와 정상적인 자격 증명 방법으로 접근합니다.

  9. Collection

    Collection은 공격자가 정보를 수집하는 데 사용할 수 있는 Techniques과 공격자의 목표를 따르는데 관련된 정보를 수집합니다. 데이터를 수집한 후 다음 목표는 데이터를 훔치는 것입니다. 일반적인 대상에는 다양한 드라이브 유형, 브라우저, 오디오, 비디오 및 이메일이 포함됩니다. 일반적인 수집 방법에는 스크린샷 캡처 및 키보드 입력이 포함됩니다.

  10. command and control

    command and control은 공격자가 대상 네트워크 내에서 제어하는 시스템과 사용 할 수 있는 Techniques로 구성됩니다. 공격자는 네트워크 보안 장비의 탐지를 우회하기 위해 정상적인 트래픽을 모방합니다.

  11. exfiltration

    exfiltration은 공격자가 네트워크에서 데이터를 훔치기 위해 사용할 수 있는 Techniques로 구성됩니다. 유출 대상은 공격 대상 시스템에서 특정 확장자/특정 파일명 등을 가진 파일 검색 후 압축 및 암호화를 통해 확보합니다. 유출 대상을 확보한 이후 공격자에게 전달하기 위한 기술은 일반적으로 커맨드 및 제어 채널 또는 대체 채널을 통해 데이터를 전송하는 것을 포함하고, 전송에 크기 제한을 두어 여러 번 나누어 전송하는 방식을 포함합니다.

  12. impact

    impact는 운영 프로세스를 조작하여 공격자가 가용성을 방해하거나 무결성을 손상시키는 데 사용하는 Techniques로 구성됩니다. 주로 사용되는 기술에는 데이터 파괴 또는 변조가 포함될 수 있습니다. 때에 따라 비즈니스 프로세스는 괜찮아 보이지만 적의 목표에 도움이 되도록 변경되었을 수 있습니다. 이러한 기술은 공격자들이 최종 목표를 따르거나 기밀 위반을 감추기 위해 사용될 수 있습니다.

Techniques & Procedure

아래 그림은 MITRE에서 Techniques & Procedure를 세부 설명한 내용입니다.

techniques_procedure_example

한 Techniques를 설명할 때 세부 설명(그림에서 1번 내용 참조)과 실행 플랫폼, 비정상 행위 탐지에 필요한 이벤트 소스 등을 설명(그림에서 2번 내용 참조)하고 있습니다. 각 공격 그룹에서 Techniques를 실제 활용한 방법들은 Procedure(그림에서 3번 내용 참조)에 설명이 되어 있습니다.

Monster Threat Hunting Platform

Monster Event Collector는 엔드포인트 행위 이벤트 수집을 담당하는 Monster Threat Hunting Platform의 구성요소로 Threat hunting에 최적화된 각종 휘발성 정보(예. 프로세스, 네트워크, 시스템 정보 등)를 능동적으로 수집합니다. Monster Event CollectorMonster Threat Hunting Platform뿐만 아니라 syslog, kafka 등의 프로토콜을 통해 기존 분석 시스템과 쉽게 연동 할 수 있습니다. 수집된 이벤트는 시스템에 유입된 악성코드 행위 추적, 비 정상적인 네트워크 활동 탐지 등 다양한 분야에 활용 할 수 있습니다.

ARES

ARES는 쏘마에서 개발하고 있는 Adversarial Behavior Simulator로, ATT&CK Enterprise Matrix에서 분류하고있는 TTP(Tactics, Techniques, Procedure)들을 기반으로 실제 발생한 APT 공격과 유사하게 공격자의 행위를 시뮬레이션합니다.

이번 글에서는 ARES를 사용하여 여러 Techniques 중 Defense Evasion에 속한 Techniques 중 하나를 시뮬레이션하고, Monster Event Collector 를 통해 시뮬레이션 과정에서 발생한 행위 이벤트를 수집합니다. 수집된 행위 이벤트를 분석(=위협 헌팅 과정)하여 비정상 행위 탐지 로직을 개발하는 과정을 설명합니다.

Deobfuscate/Decode Files or Information

Deobfuscate/Decode Files or Information(T1140)은 11가지의 TacticsDefense Evasion에 속한 Techniques입니다. ATT&CK에서는 해당 Techniques를 아래와 같이 설명합니다.

공격자는 공격 대상 시스템에 설치된 보안 시스템을 우회하기 위해 난독화된 파일 혹은 정보를 사용합니다. 그리고 난독화된 파일이나 정보를 사용하기 위해서는 그것들을 해독하거나 난독 처리를 하기 위한 별도의 메커니즘이 필요합니다. 이를 위해서는 malware, Scripting, PowerShell 또는 시스템에 있는 유틸리티에 포함된 기능을 사용합니다. 이러한 예 중 하나는 certutil을 사용하여 인증서 파일 내에 숨겨진 원격 액세스 도구 휴대용 실행 파일을 디코딩하는 것입니다. 다른 예는 Windows copy /b 명령을 사용하여 이진 조각을 악의적인 페이로드로 재조립하는 것입니다.

여기서는 Deobfuscate/Decode Files or Information Techniques에 속한 여러 Procedurecertutil.exe에 사용할것이며, certutil.exe는 APT28 그룹과 APT19 그룹이 사용한것으로 알려져있으며, APT28 그룹이 사용한 세부 방법은 아래 내용과 같습니다.

The macro prepends the string —–BEGIN CERTIFICATE—– to the beginning of the base64 encoded payload and appends —–END CERTIFICATE—– to the end of the data. The macro then writes this data to a text file in the C:\Programdata folder using a random filename with the .txt extension. The macro then uses the command certutil -decode to decode the contents of this text file and outputs the decoded content to a randomly named file with a .exe extension in the C:\Programdata folder. The macro sleeps for two seconds and then executes the newly dropped executable.

출처: paloalto 블로그

APT28 그룹에서 certutil을 사용한 사례를 보면 a.txt파일을 다운로드 한 후 a.txt 파일을 certutil.exe -decode 명령어를 사용하여 a.exe로 디코딩하여 실행한 것입니다.

앞서 설명해 드린 과정을 그림으로 표현하면 아래 그림과 같습니다. 아래 그림과 같은 과정을 ARES로 시뮬레이션하고, Monster Threat Hunting Platform을 사용하여 분석하는 예제를 다음 절에서부터 설명하겠습니다.

스크린샷 2020-04-27 오전 9.13.34

시뮬레이션 과정

여기서는 바이너리 파일을 수집 하지 않고 실시간 수집된 행위 이벤트(예. 프로세스 생성, 파일 I/O, 레지스트리 I/O)를 분석하여 악성 행위 특징을 찾는 과정(=위협 헌팅 과정)만을 설명합니다.

먼저 시뮬레이션 과정에서 사용할 인코딩된 바이너리 파일을 먼저 생성합니다. 시스템에 있는 계산기 프로그램을 인코딩하는 명령어는 다음과 같습니다.

certutil  -encode C:\Windows\System32\calc.exe C:\Users\suyeon\Desktop\ARESagent\bin\T1140\encode.txt

encode1

명령어 실행 후 encode.txt가 만들어진 것을 확인할 수 있습니다.

encode2

다음으로 ARES를 통해 T1140 행위를 시뮬레이션합니다. 이때, 앞에서 설명한 과정을 통해 만들어진 encode.txt 파일을 인자값으로 사용합니다.

ares1

ARES 실행 후 decode.exe라는 파일이 만들어지는 것을 확인 할 수 있습니다.

ares2

위와 같은 과정을 통해 공격자는 엔드포인트 솔루션을 우회하기 위해 악성 바이너리 파일을 인코딩한 후 실행 할 수 있습니다.

이 과정에서 공격자가 별도의 인코딩/디코딩 도구를 사용 할 수 있지만, 그 도구 역시 엔드포인트 솔루션에 탐지될 수 있기때문에 최신의 공격들은 certutil.exe 같은, 시스템에 기본설치된 도구 및 명령어들을 활용하며, 이런 방식의 공격들을 Living Off The Land 라고 합니다.

이후 앞서 시뮬레이션했던 과정에서 수집된 이벤트를 분석해보겠습니다.

분석 과정

ARES를 사용하여 시뮬레이션 후 수집된 행위 이벤트를 Monster Threat Hunting 플랫폼 구성 요소 중 MDP Query Libray를 사용하여 분석해 보겠습니다.

Note

MDP Query LibraryMonster Threat Hunting Platform 구성 요소 중 하나로, 수집된 다양한 데이터들을 분석하는데 활용하는 라이브러리입니다.

Monster Threat Hunting Platform은 위협 헌팅을 활용한 분석 방법론을 사용하고 있으며, 아래와 같은 방법을 통해 비정상 행위 탐지 룰 셋을 개발 하고 있습니다.

위의 그림에서 설명한 것과 같이 내부에서는 비정상 행위를 정의합니다.

[공격행위]
엔드포인트에 설치된 보안 솔루션을 우회하기 위해 바이너리 파일 혹은 공격 페이로드를 인코딩/디코딩하는 공격 기법의 사용이 증가하고 있으며, 시스템에 기본적으로 설치된 "certutil.exe"를 활용하여 바이너리 파일을 인코딩/디코딩 하는 기법이 많이 악용되고 있다.

이후 정의한 비정상 행위 추적을 위한 분석방법을 계획하고, 가설을 수립합니다.

  1. 호스트에서 certutil.exe 파일이 실행 된 적이 있을것이다.
  2. certutil.exe 가 실행된 흔적이 있다면 command line 값에 -decode 문자열이 포함 되는 프로세스가 있을 것이다.
  3. certutil.exe 프로세스가 새로운 바이너리 파일을 만든 흔적이 있을것이다.

이제 가설을 검증 하는 과정에서 비정상 행위의 특징을 찾고 비정상 행위 및 관련 데이터들의 특징을 기반으로 탐지 로직을 개발합니다.이 과정에서 비정상 행위 식별에 추가적인 정보가 필요하면 Monster Event Collector 에 수집 정보를 추가하고 데이터를 다시 검증합니다.

다음 절부터 위에서 세운 가설을 하나씩 검증하는 과정을 설명하겠습니다.

프로세스 이벤트 검색

수집 이벤트 중 프로세스 생성 이벤트에서 커맨드 라인에 certutil.exe-decdoe가 포함된 이벤트를 먼저 검색 해봅니다. 이때 사용한 이벤트 검색 쿼리는 다음과 같습니다.

query

위 쿼리를 실행하면 다음과 같은 프로세스 생성 정보를 확인 할 수 있습니다.

25413069-023C-4DE7-B4C6-461CE47C2FE3

certutil.exe를 사용해서 특정 파일을 디코딩하는 프로세스가 실행된 흔적을 찾을 수 있었습니다. 앞서 정의한 가설 중 첫 번째, 두 번째 내용을 찾을 수 있었습니다. 다음으로 해당 프로세스가 새로운 바이너리 파일 생성 행위를 찾을 수 있다면 시스템 내부에서 T1140 에 해당하는 악성 행위가 발생했다는 것을 알 수 있게 됩니다.

프로세스 세부 행위 추적

자식 프로세스 확인

위 프로세스의 자식 프로세스를 확인해보면 아래와 같습니다.

child

파일 I/O

file

네트워크 I/O

network

레지스트리 I/O

reg

분석 결과

본 글을 통해 우리는 다음과 같은 사실을 알 수 있었습니다.

공격자는 엔드포인트에 설치된 보안 솔루션을 우회하기 위해 "certutil.exe"과 같은 시스템 관리 도구를 사용합니다. 그 이유는 다음과 같습니다.
- "certutil.exe"과 같이 시스템 관리 도구는 기본적으로 설치된 유틸리티 프로그램
- 시스템 관리 도구 대부분은 전자 서명자가 마이크로소프트로이기 때문에 대부분의 보안 제품이 신뢰함
- 시스템 관리 도구 기능 중 일부를 악성 행위로 활용 가능(예. 인코딩된 바이너리 파일 혹은 바이너리 데이터를 디코딩, 악성 바이너리 파일 다운로드를 인증서 다운로드 과정으로 가장 등)

공격자가 보안 솔루션을 우회 하기 위해 사용 할 수 있는 도구는 다양하지만 본 글에서는 certutil.exe 를 살펴보았습니다. 이러한 도구들이 발생 한 행위 중 비정상 행위를 식별하기 위해서는 프로세스 정보파일 I/O 정보 혹은 레지스트리 IO , 네트워크 IO 등을 수집하고 연관 분석할 수 있어야 합니다.

Monster Threat Hunting Platform에서는 시스템에서 발생한 행위 이벤트를 모두 수집하고 있습니다. 먼저 앞서 설명한 것과 같이 certutil.exe 를 이용한 비정상 행위와 관련된 이벤트 중 프로세스 생성 이벤트는 아래 그림과 같습니다.

25413069-023C-4DE7-B4C6-461CE47C2FE3

다음으로 certutil.exe 프로세스가 발생시킨 File I/O 를 연관 분석하여 비정상 행위를 모두 추적 할 수 있습니다.

D510220C-EA1B-4AF6-B469-81DAF0328473

프로세스 생성 이벤트와 파일 I/O 이벤트를 연관 분석하여 다음과 같은 탐지 룰 셋을 만들면 T1140 공격을 식별 할 수 있습니다.

프로세스 정보 중 커맨드 라인에 decode 관련 문자열이 존재하고, 새로운 바이너리 파일을 생성한 경우

하지만.. 모든 공격자가 이렇게 정직하게 공격을 시도하진 않기때문에 (예. certutil.exe의 이름은 ct.exe로 변경한 뒤 위와 같은 행위를 하는 경우, 디코딩된 파일이 PE 구조를 갖는 것이 아닌 경우, 인코딩을 1번이 아니라 여러번 한 경우 등) 사실 그렇게 간단한 문제는 아닙니다.

File I/O 이벤트에서 파일 유형을 왜 수집 해야 할까요?

certutil.exe는 인증서 데이터베이스 도구로 인증서 및 키 데이터베이스 파일을 만들고 수정할 수 있는 시스템 관리 도구 이며, 원격 파일 다운로드, 파일 해시 값 검사, 인코딩, 디코딩 등의 기능을 가지고 있습니다. certutil.exe 커맨드라인에서 -decode가 포함되는 경우는 지극히 정상적인 행위로 볼 수 입니다. 그러나, 디코딩 후 생성된 파일이 실행 파일이라면 의심스러운 행위로 볼 수 있습니다. 그렇기 때문에 프로세스의 File I/O 이벤트를 수집 하는 것도 중요하지만 추가적으로 해당 파일 I/O에 해당하는 파일의 유형을 수집한 후 공격 행위 식별에 활용한다면 비정상 행위 탐지에 도움이 될 수 있습니다.

결론

본 글에서는 T1140이라는 간단한 단일 테크를 시뮬레이션하고 분석해보았지만, 나중엔 앞서 말한 APT28이나, APT3 시나리오 같은 것들을 ARES를 사용해 시뮬레이션하고 MONSTER Threat Hunting Platform을 통해 공격 행위를 분석해 보겠습니다.

마지막으로 앞서 설명한 탐지 룰 셋을 통해 공격 행위를 식별하면 다음 그림과 같습니다.

대시보드