개요

  • 네트워크 패킷을 캡처하기 위한 방법에 대해 알아보고 이에 대해 대응방안이 무엇이 있을지 고민한 내용

 

네트워크 캡처 라이브러리

실제 wireshark와 같이 네트워크 패킷을 직접 캡처하여 패킷 내용 및 통신 IP 등을 확인

  • Packet.dll (Npcap)

  • NMAPI.dll (MS - Microsoft Network Monitor3) 

  • wpcap.dll (Winpcap)

이러한 방식의 경우 동작 중인 Process의 DLL 목록을 확인하여 대상 프로세스를 확인 할 수 있다.

 

ETW (Event Tracing for Windows)

ETW의 경우 Windows에서 제공해주는 기본 기능으로 관련 DLL은 ADVAPI32.dll로 위와 같이 탐지하기에는 너무 보편적인 경우이다. 이를 탐지하기 위해서 고려할 수 있는 방안 중 하나는 TraceSession을 이용하여 탐지하는 방식이 있을 것 같다.

1) 레지스트리 내 Autologger 목록 획득

  • 해당 프로그램(게임, 악성코드 등) 실행 시 레지스트리 Autologger에 등록된 리스트(목록1)을 획득하여 이후 비교에 사용

  • Autologger에 등록된 각 키의 ‘Start’의 값이 1인 경우 부팅 시 자동으로 실행되어 TraceSession이 생성

 

Step2) ETW TraceSession 목록을 획득하여 1번 과정에서 획득한 목록과 주기적으로 비교

게임 실행 후 Windows 기본 유틸리티인 ‘logman’ 등을 활용하여 주기적으로 활성화된 ETW TraceSession을 획득(목록2)

Autologger 레지스트리(목록1)에는 존재하지 않지만 logman을 통해 확인(목록2)했을 때 존재하는 항목을 선별하여 추가된 세션이 있는 경우 이에 대해 해당 유저 및 세션 이름을 로깅

Autologger 레지스트리에는 존재하지 않지만 활성화된 TracecSession의 경우 Privatelogger/Systemlogger 등을 통해 생성됨.

이와 같이 동작하기 위해선 registry 정보 조회, windows 기본 유틸리티인 logman 사용의 과정이 필요

 

ETC.

P2P 통신의 경우 UDP 방식을 주로 사용하고 있기에 (참고 : https://gpgstudy.com/forum/viewtopic.php?t=7421), 상대방과의 통신을 확인하기 위해 netstat 같은 명령어를 사용해도 확인할 수 없음(상대와 세션을 맺지 않기(?)때문).

그렇기에 상대방 IP 및 Port 등을 확인하려면 패킷 캡쳐 필요

'O / S > Window' 카테고리의 다른 글

Windows Event Message  (0) 2016.07.13
Windows Multi Task  (0) 2016.07.08
Windows Service  (0) 2016.06.21
Windows Boot Process (Vista 이상ver 부팅 과정)  (0) 2016.04.13
CSIDL 값  (0) 2016.02.20