클라우드 컴퓨팅이 필요하신가요? 지금 시작해보세요

네트워크 비정상을 이용한 프로세스 주입의 새로운 탐지

오피르 센(Ofir Shen)

에 의해 작성

Ofir Shen

December 19, 2023

오피르 센(Ofir Shen)

에 의해 작성

Ofir Shen

오피르 센은 Akamai Hunt 팀의 수석 보안 연구원입니다. 전문 분야는 탐지 방법론, 인시던트 대응, 포렌식 등입니다.

PowerPoint Presentation

편집 및 추가 설명: 트리샤 하워드(Tricia Howard)

핵심 요약

  • Akamai 연구원들은 네트워크 비정상을 분석하여 프로세스 주입을 탐지하는 새로운 기술을 개발했습니다.

  • 현재 탐지 메커니즘은 새로운 공격 기법으로 우회할 수 있는 호스트 기반 요소에 의존하고 있기 때문에 위협을 식별하기 위한 새로운 방법이 필요합니다.

  • 이러한 공격 기법이 발전함에 따라 방어 메커니즘도 발전해야 하며, 가능한 한 오탐률을 줄여야 합니다.

  • 프로세스 주입 공격이 성공하면 측면 이동, 권한 확대, 백도어 설치 등 여러 가지 치명적인 결과가 발생할 수 있습니다.

  • Akamai의 탐지 방법론은 프로세스의 네트워크 동작을 관찰하기 때문에 위협이 탐지되지 않은 상태로 남아있기가 매우 어렵습니다.

  • WannaMine 크립토재킹 캠페인과 관련이 있다는 사실이 밝혀진 실제 인시던트를 통해 이 방법론의 실제 사례를 소개합니다.

서론

프로세스 주입은 거의 모든 공격 작업에 사용됩니다. 공격자들은 이미 활성화된 프로세스 내에서 페이로드를 숨기고 실행하는 등 보안 솔루션을 조작할 방법을 계속 찾고 있습니다.

주입 기술은 수년에 걸쳐 크게 발전한 위협 중 하나입니다. 매우 정교한 메모리 전용 기술로, EDR(엔드포인트 탐지 및 대응)과 같은 최신 보안 솔루션에서 쉽게 탐지할 수 있는 기존의 주입 기술을 빠르게 대체하고 있습니다.

공격자의 최종 단계와 관계없이, 주입에 성공하면 측면 이동, 네트워크 스캔, 백도어 역할을 할 수신기 설치를 시도할 수 있습니다. 이로써 끊임없는 추격 게임이 시작됩니다. 공격자는 새로운 공격 기법을 찾아내고, 보안 벤더사는 그에 따라 탐지 기능을 업데이트합니다.

새로운 탐지 기술은 매월 도입됩니다. 즉 EDR 기술은 최소한의 오탐율로 탐지를 업데이트해야 합니다. 성공적인 주입이 야기하는 위험 수준을 고려할 때, “우리는 무엇을 다르게 할 수 있을까?”라고 자문해야 했습니다.

대부분의 탐지 메커니즘에는 API 호출 추적, 메모리 보호 플래그 변경, 할당, 기타 호스트 기반 아티팩트 등의 기술이 포함됩니다. 그러나 우리는 이러한 메커니즘이 새로운 기술과 위협에 의해 조작될 수 있다는 것을 알고 있습니다. 이 새로운 주입 기술은 EDR 우회 방법과 연계되어 일관되게 탐지되고 차단되지 않습니다. 위협 연구원으로서 우리는 AV(바이러스 백신) 또는 EDR 솔루션에만 의존해 이런 호스트 기반 공격을 방어할 수 없으며, 성공적인 공격을 효율적으로 탐지할 수 있는 방법이 필요합니다.

이 블로그 게시물에서는 Akamai Hunt 팀이 위에 나열된 호스트 기반 아티팩트가 아니라 네트워크 비정상 탐지를 활용해 개발한 프로세스 주입 탐지 기술을 소개합니다. 이 기술은 프로세스의 네트워크 동작에 초점을 맞춥니다. 네트워크 동작은 API 호출 또는 파일 시스템 변경과 같은 호스트 아티팩트보다 훨씬 더 숨기기 어렵습니다. 우리는 이 기법과 기타 여러 기법을 활용해 고객사 네트워크에서 멀웨어, 측면 이동, 데이터 유출 및 기타 종류의 공격을 탐지합니다.

탐지는 다음과 같은 세 가지 주요 단계로 이뤄집니다.

  1. 프로세스 통신을 포트 그룹으로 분류

  2. 정상적인 프로세스 통신을 위한 슬라이딩 윈도우 기준선 작성

  3. 기준선과 새 프로세스 데이터 비교

이 게시물에설명된 논리를 보안팀에서 구축하도록 하세요. Akamai Hunt가 보유한 엄청난 양의 데이터가 없어도자체 데이터만으로 흥미로운 결과를 얻을 수 있을 것입니다.

정상적인 프로세스 통신을 위한 기준선 작성

프로세스 통신 방법

프로세스 통신은 대부분 일관적이라고 가정하기 쉽습니다. 즉, 서로 다른 네트워크에 있어도 동일한 프로세스는 동일한 통신 패턴을 가지고 있다고 가정하기 쉽습니다. 일부 프로세스의 경우 이것이 맞지만 일부 프로세스는 전혀 그렇지 않습니다. 우리는 OS 네이티브 프로세스가 유사한 도메인과 통신하고 동일한 네트워크 프로토콜을 사용하여 비슷하게 동작할 것으로 예상하지만, 이 가정에는 여러 변수가 영향을 미칩니다. OS 빌드, 지역, 프록시 서버 및 기타 네트워크별 구성은 모두 통신 대상 및 사용된 네트워크 프로토콜에 영향을 줄 수 있습니다(그림 1).

우리는 OS 네이티브 프로세스가 유사한 도메인과 통신하고 동일한 네트워크 프로토콜을 사용하여 비슷하게 동작할 것으로 예상하지만, 이 가정에는 여러 변수가 영향을 미칩니다. OS 빌드, 지역, 프록시 서버, 기타 네트워크별 구성이 모두 통신 대상 및 사용된 네트워크 프로토콜에 영향을 줄 수 있습니다(그림 1). 그림 1: 각 시스템 프로세스에서 사용하는 고유 포트 수

Akamai Guardicore Segmentation에서 수집된 이 데이터를 통해포트 사용의 불일치를 확인할 수 있습니다. 이는 그 자체로 탐지를 매우 어렵게 만들 수 있으므로, 분석할 수 있는 형식으로 데이터를 구문 분석하는 방법을 찾아야 했습니다. 바로 포트 그룹을 이용하는 것입니다.

포트 그룹을 이용한 프로세스 통신 분류

우리는 리서치를 통해 유사한 포트를 그룹화하고 특정 애플리케이션과 연결하면, 탐지 알고리즘에 맥락을 제공하고 통신 패턴을 더 쉽게 찾을 수 있다는 것을 알게 되었습니다. 그러면 통신 패턴에서 비정상을 탐지하는 데 도움이 됩니다.

예를 들어, 한 네트워크에서는 포트 636과 포트 389를 사용하고 다른 네트워크에서는 포트 3268과 포트 3269를 사용해 통신하는 특정 프로세스를 관찰한다고 가정해 보겠습니다. 이 포트는 모두 LDAP(Lightweight Directory Access Protocol)의 일부이기 때문에 모두 하나의 포트 그룹인 LDAP 통신으로 분류할 수 있습니다.

이 방법은 대부분의 애플리케이션에서 잘 작동하지만, 유효한 포트의 전체 범위를 분류하는 것은 까다롭습니다. 많은 포트가 둘 이상의 애플리케이션에서 사용되므로, 다른 소프트웨어와 공유되는 포트를 사용할 때 프로세스가 잘못 분류될 수 있습니다. 따라서 포트 분류를 한 가지 종류의 애플리케이션에 주로 사용되는 포트로 좁히고 상위 포트 범위는 하나의 포트 그룹으로 남겨두었습니다.

전체 포트 매핑은 부록 A에서 확인할 수 있습니다.

결론을 도출하려면 얼마나 많은 데이터가 필요할까요?

7대의 머신에서 실행 중인 특정 프로세스가 있고, 모든 머신에서 HTTPS를 사용해 특정 웹 서버와 연결한다고 가정해 보겠습니다. 동일한 프로세스가 다른 형태의 통신을 사용해서는 안 된다는 결론을 내릴 수 있을까요? 아마 그렇지 않을 것입니다.

프로세스당 사용할 수 있는 충분한 데이터 양을 결정하기 위해 각 프로세스-포트 그룹 쌍을 바탕으로 네트워크의 수를 계산합니다.

먼저 3개 이상의 고객 네트워크에서 확인한 프로세스만 고려하는 것으로 시작하겠습니다. 프로세스가 3개 미만의 네트워크(데이터 세트에 있는 수백 개의 네트워크 중)에 나타난다면, 네트워크 프로필에 대해 확실한 결정을 내리기가 어려울 것입니다.

그런 다음, 고객별 네트워크 동작의 차이에 따라 프로세스의 안정성 수준을 결정합니다. 프로세스가 모든 고객에서 동일한 포트 그룹을 사용하여 통신하는 경우 안정적인 것으로 간주합니다. 프로세스가 각 고객 네트워크에서 완전히 다른 방식으로 통신하는 경우 불안정한 것으로 간주합니다.

또한 상위 12개, 상위 25개, 상위 100개의 안정성 수준을 추가했습니다. 가장 많이 사용되는 상위 12개, 25개, 100개 포트의 포트만 고려하는 안정성 수준입니다. 그리고 반안정적(semi-stable) 수준도 포함했습니다. 이 수준은 상위 포트 범위(49151 이상의 포트 번호)를 무시합니다.

지원과 신뢰

단일 네트워크에서 추출한 데이터로 작업하는 경우 데이터 마이닝의 세계에서 지원과 신뢰를 얻을 수 있으므로 데이터 세트 내 데이터의 이점과 관련성을 평가하는 데 도움이 됩니다.

지원은 데이터 세트의 항목 세트 빈도를 측정합니다. 신뢰는 연관 룰에서 두 항목 세트 간 관계의 안정성을 측정합니다. 여기서 다음과 같이 계산합니다.

지원(프로세스) = (프로세스를 포함하는 데이터 포인트 수) / (총 데이터 포인트 수)

지원(프로세스 –> 포트 그룹) = (프로세스가 특정 포트 그룹에서 통신한 데이터 포인트 수) / (프로세스를 포함하는 총 데이터 포인트 수)

데이터 포인트는 다음과 같이 분명하게 배열됩니다. [호스트, 프로세스, 포트 그룹]

프로세스에 필요한 최소 지원의 임계값을 설정하고 포트 그룹이 기준선의 일부로 간주되어야 하는 최소 신뢰를 설정합니다. 이것은 Apriori 알고리즘의 1단계이기도 합니다.Apriori 알고리즘은 대규모 데이터 세트에서 패턴을 찾는 데 널리 사용되는 알고리즘입니다. 평가 후, 우리는 낮은 신호 대 노이즈 비율과 함께 흥미로운 결과를 제공하는 값을 확인합니다.

슬라이딩 윈도우 기준선 작성

Akamai의 탐지 기술은 각 프로세스 통신을 과거의 행동 기준선과 비교하는 방식으로 작동합니다.

특정 날짜에 발생한 모든 프로세스 통신을 이전 달 데이터를 기준으로 비교합니다(그림 2).

이는 네트워크 변경, 시스템 배포 및 처음으로 확인한 툴이 익일에 고려되므로 고객 네트워크의 트렌드에 적응하는 데 도움을 줍니다.

특정 날짜에 발생한 모든 프로세스 통신을 이전 달 데이터를 기준으로 비교합니다(그림 2). 그림 2: 기준선 구축 타임라인의 예

일반적인 오탐률 처리

일부 애플리케이션 설정은 프로세스의 네트워크 프로필을 변경할 수 있습니다. 특정 애플리케이션 설정이 IP 주소 사용에서 호스트 이름으로 수정되면 DNS 트래픽이 생성되기 시작합니다. 내부 프록시 서버를 사용할 때도 마찬가지입니다. 각 네트워크에서 동일한 용도로 서로 다른 포트를 사용할 수 있습니다. 기타 대상 포트는 오탐률이 더 적게 생성되는 경향이 있으며 원래 로직을 그대로 유지하기 위해 고객별로 허용될 수 있습니다.

이러한 오탐 수를 줄이기 위해 생성된 각 알림은 다음 로직을 이용해 검사됩니다.

프로세스의 비정상 포트가 DNS 또는 프록시 포트인 경우:

  1. 대상 IP를 추출합니다.

  2. 지난 달에 동일 포트에서 동일 대상 IP에 접속한 자산 수를 확인합니다.

  3. 이 숫자가 네트워크 호스트 수의 20%보다 크면 알림을 오탐으로 표시합니다.

이 로직은 가장 노이즈가 심한 두 가지 통신 종류인 DNS와 프록시 통신에 대한 네트워크별 설정을 처리하는 데 도움을 줍니다.

실제 위협 탐지: Hunt 고객이 받은 공격의 예

Hunt 고객을 위한 새로운 방법을 활용해 각각의 통신 기준선에서 벗어난 5가지 프로세스를 탐지했습니다. 웹 관련 포트의 매우 특정한 통신 패턴을 사용하는 이 5개의 시스템 네이티브 실행 파일은 SMB(Server Message Block) 프로토콜을 사용하여 네트워크의 다른 자산과 통신하기 시작했습니다(그림 3).

웹 관련 포트의 매우 특정한 통신 패턴을 사용하는 이 5개의 시스템 네이티브 실행 파일은 SMB(Server Message Block) 프로토콜을 사용하여 네트워크의 다른 자산과 통신하기 시작했습니다(그림 3). 그림 3: SMB를 사용한 측면 이동 시도(호스트 이름이 제거된 네트워크 맵)

프로세스의 기준선을 보면, 이중 어떤 프로세스도 SMB 통신을 시작해서는 안 된다는 것을 알 수 있습니다(그림 4).

프로세스의 기준선을 보면, 이중 어떤 프로세스도 SMB 통신을 시작해서는 안 된다는 것을 알 수 있습니다(그림 4). 그림 4: 5가지 프로세스와 각각의 기준선

알림 조사 중에 두 호스트에서 실행 중인 C:\Windows\NetworkDistribution\svchost.exe 파일 그리고

C:\Windows\System32\dllhostex.exe 파일도 찾았습니다.

또 다른 머신에서 흥미로운 악성 스크립트를 발견했습니다(그림 5).

또 다른 머신에서 흥미로운 악성 스크립트를 발견했습니다(그림 5). 그림 5: 호스트에서 실행 중인 악성 스크립트의 조각

보시다시피 스크립트는 실행 파일을 트리거하고 Windows 방화벽 룰을 추가하며 포트 65531-65533의 통신을 정상적인 DNS 서버로 터널링합니다. 또한 ‘Bluetool’이라는 예약된 작업을 사용하여 지속성을 달성합니다. 이 작업은 다른 페이로드를 다운로드하고 50분마다 실행하는 인코딩된 PowerShell 명령을 실행합니다.

우리는 이러한 아티팩트를 WannaMine으로 추적했습니다.WannaMine은 여전히 활발하게 진행 중인 크립토재킹 캠페인입니다. 패치되지 않은 시스템을 EternalBlue에 감염된 네트워크로 악용하는 것은 이 캠페인과 관련된 알려진 기법입니다.

이 공격을 과거의 활동과 비교하면 공격자가 툴 세트를 약간 변경한 것을 알 수 있습니다(그림 6). 또한 이 공격자가 정상적인 시스템 프로세스에 코드를 주입한 것은 이번이 처음임을 확인했습니다.

 

우리의 공격

과거 공격

예약된 기본 작업

Bluetool

블루투스, 블랙볼

기본 실행 모듈

msInstall.exe

svchost.exe

예약된 보조 작업

GZAVwVOz

DnsScan

들어오는 SMB 트래픽 차단

시스템 프로세스에  주입

그림 6: 이 공격과 과거 공격 비교

발견된 모든 결과는 문제 해결 단계 및 네트워크 정책 권장 사항과 함께 고객에게 전달되었습니다.

마무리

위협 및 공격 기법 환경에서는 정확한 탐지 방법론이 필요합니다. 모든 네트워크는 고유한 도전 과제를 가진 서로 다른 생태계이므로 탐지를 ‘표준화’하기가 어렵습니다. 많은 기업이 공격을 탐지하려고 시도했지만 실패했습니다. 공격자가 새로운 기술을 사용했거나  탐지 툴 자체가 너무 복잡했기 때문입니다.

우리는 프로세스의 통신 패턴에 집중함으로써 완전히 다른 각도에서 기존의 탐지 기술을 개선할 수 있습니다. 이러한 패턴 분석을 방대한 데이터 세트와 결합함으로써 방법론을 만들고 활용해 프로세스 네트워크 비정상을 효율적으로 탐지하고 고객 네트워크에서 공격자를 찾을 수 있었습니다.

Akamai Guardicore SegmentationAkamai Hunt 서비스는 랜섬웨어와 측면 이동 시도의 확산을 차단할 수 있으며, 공격이 발생할 때마다 이를 알려주는 탐지 서비스로 보완됩니다.

여러분도 사용해 보세요!

이 방법론을 네트워크에서 사용해 보고 어떻게 작동하는지 확인해 보세요. 데이터 세트가 다르기 때문에 구축 로직이 의사 코드로 제공되었습니다. X에서 Akamai를 방문하여   발견한 내용을 저희에게 알려주시고 Akamai의 전 세계 보안 연구원들이 어떤 작업을 수행하고 있는지에 대한 최신 정보를 확인하세요.

부록 A: 포트 그룹에 포트 매핑

포트

포트 그룹 이름

22, 23, 992

Shell

20, 21, 69, 115, 989, 990, 5402

FTP

49

TACACS

53, 5353

DNS

67, 68, 546, 547

DHCP

88, 464, 543, 544

Kerberos

80, 443, 3128, 8443, 8080, 8081, 8888, 9300

Web/Proxy

111

ONC RPC

123

NTP

135, 593

RPC

137, 138, 139

NetBIOS

161, 199, 162

SNMP

445

SMB

514, 601, 1514

Syslog

636, 389, 3268, 3269

LDAP

902, 903, 5480

VNC

25, 993, 995,585, 465, 587, 2525, 220

Mail

1080

SOCKS

1433, 1434, 1435

SQL

1719, 1720

H323 VOIP

1723

PPTP

1812, 1813, 3799, 2083

RADIUS

3306

MySQL

3389

RDP

4444

Metasploit Default Listener

5432

PostgreSQL

5601

Kibana

5938

TeamViewer

5900

VNC

5985, 5986

WinRM

6160, 6161, 6162, 6164, 6165, 6167, 6170

Veeam

7474

Neo4j

8090

Confluence

9001, 9030, 9040, 9050, 9051

TOR

27017

MongoDB

33848

Jenkins

49151 – 65535

High Port



오피르 센(Ofir Shen)

에 의해 작성

Ofir Shen

December 19, 2023

오피르 센(Ofir Shen)

에 의해 작성

Ofir Shen

오피르 센은 Akamai Hunt 팀의 수석 보안 연구원입니다. 전문 분야는 탐지 방법론, 인시던트 대응, 포렌식 등입니다.