본문 바로가기
IT_정보보안/보안관제 프로젝트

13. 정적, 동적 Tool 실습

by jys275 2024. 1. 24.

이번 글에서는 아래의 Tool을 직접 사용해 볼 것이다.

 

Exeinfo PE, bintext, PEview, Process Explorer, Process Moniter, System Explorer,

Autoruns, Currport, Smartsniff, Wireshark

 

위의 Tool 외에도 정말 많은 Tool이 존재하지만,

실무에서는 위에 해당하는 툴을 통해서 분석하는 것이 가장 일반적이다.

 

그렇기 때문에 위의 Tool을 우선으로 명확하게 잘 이해하면서 사용법을 익혀 주는 것이 좋다.

이후에 좀 더 시간이 된다면 다른 추가적인 툴은 없을지 찾아보는 것도 좋은 방법이 될 수 있다.

 

정적분석 및 동적분석으로 나누어 자세히 알아보자.

 

 


 

 

정적분석 : 패킹 - Exeinfo PE

 

 

정적 분석을 진행할 때는 우선 분석하고자 하는 파일이 암호화가 되어 있는지,

아니면 암호화가 되어 있지 않아서 평문으로 제공되는지에 대한 여부를 파악해야한다.

 

이를 위해선 위의 Exeinfo PE를 주로 사용한다.

 

전문용어로 암호화를 패킹(Packing),

암호화가 되어 있지 않을 때 암호화를 해제했을 때는 언패킹(Unpacking)이라는 식으로 표현한다. 

 

즉, 패킹이 되어있다면 언패킹을 진행해야만

내부에 존재하는 문자열들을 평문으로 볼 수 있을 것이다.

 

Tool을 실행시킨 후에 원하는 파일을 드래그 앤 드롭 시 위와 같은 화면이 출력된다.

 

아래에서 제공해 주는 정보를 확인해 보면 UPX packer가 사용됨을 확인할 수 있다.

 

Entry Point(프로그램의 코드 실행이 시작되는 메모리 주소)
EP Section(Entry Point가 속한 섹션의 정보, Entry Point는 특정 섹션에 속해 있으며, 해당 섹션의 
이름 및 기타 정보를 표시) 등의 정보 또한 제공한다.

 

즉, 우리는 위에서 제공받은 정보를 바탕으로

패킹 여부 및 사용된 패커를 확인하여, 알맞은 언패킹 프로그램을 활용 후 압축을 풀어 악성코드를 분석할 수 있다.

 

해당 이미지는 패킹이 되어있지 않는 경우이다.

패킹이 되어있지 않은 프로그램을 넣을 시, 무슨 언어로 작성되었는지 확인이 가능하다. 

 

C++로 작성된 것을 확인할 수 있다.

 

 

 

정적분석 : 문자열 및 String - bintext

 

 

이제 위에서 패킹 여부를 확인하고, 파일을 언패킹을 했을 경우 안에 있는 문자열들을 평문으로 볼 수 있을 것이다.

그러면 우리는 bintext를 통해서 툴 내부에 있는 문자열들을 평문으로 편리하게 볼 수 있다.

 

하지만 문자열들이 정말 많을 것이다. 그렇다고 안에 있는 문자열들을 모두 봐야 하는 것은 아니다.

 

즉, 문자열 내에서도 중요하게 여겨지는 포인트들이 존재한다.

 

1. IP 주소

2. URL 주소

3. 실행 파일

4. 명령어

5. 자체적으로 쓰이는 함수 

 

다섯 가지 항목들을 bintext를 통해서 확인을 한다.

 

만약 위의 항목들이 확인이 된다면 추후에 네트워크 관련 동적분석을 진행할 때,

확인했던 IP 또는 URL 주소가 겹치는 부분이 존재하는지 확인할 수 있다.

 

이 경우에는 분석하고자 하는 것이 악성 코드에 의해서 일어나는 행위가 맞을 것이라고 추정할 수 있다.

 

파일을 드래그 앤 드롭 혹은 직접 불러온 후 ”Go” 버튼을 누르면, 해당 파일에서 추출한 문자열을 위와 같이 나열해 준다.

 

악성코드는 종종 특정한 문자열 패턴을 사용하기에,

bintext를 활용해 키워드가 될 수 있는 문자열을 찾기 용이한 점도 존재한다.

 

 

 

정적분석 : *PE 파일 - PEview

 

*PE(Portable Excutable)파일

Windows 운영체제 기본 파일형식(exe, scr, sys, dll...)

윈도우에서 가장 많이 악성코드로 제작되어 배포되는 것이 PE 파일이다.

 

PEview는 여태 분석 도구들이 제공해 주었던 여러 가지 기능들을 복합적으로 포함하고 있는 툴이다.

 

그렇기 때문에 PEview를 활용하여 분석을 진행하기보다는 여태까지 진행했던 정적분석 과정이

정말로 올바르게 진행되었는지 다시 한번 체크하고자 하는 목적으로 사용하는 툴이라고 볼 수 있다.

 

위와 같이 파일의 내부 정보를 살펴볼 수 있는 툴이다. 


파일의 컴파일 시기 파악, 패킹 여부 추측, 함수 구조 파악을 통한 프로세스 흐름 파악이 가능하며,

해당 정보들을 다시 한번 더 추가적으로 확인하는 목적으로 사용한다.

 

그중, 패킹 여부를 추측하는 방법은 Virtual Size와 Size of Raw Data를 비교하는 것이다.

 

파일이 패킹되어 있을 경우 프로세스가 메모리에 적용될 시 Virtual Size와 Size of Raw Data 간의
크기 차가 매우 크다. 또한, 패킹이 되어있을 경우 대부분 Virtual Size가 매우 크다.

 

 


 

 

동적분석을 진행을 할 때는 크게 세 가지로 구분을 해서 진행한다.

 

1. 파일, 레지스트리

2. 프로세스

3. 네트워크

 

그렇기 때문에 동적분석에서는 최소 세 가지 이상의 툴을 사용해야 할 것이다.

 

 

동적분석 : 실시간 프로세스 모니터링 - Process Explorer

 

 

해당 툴을 사용하면 악성으로 의심되는 파일을 실행시켰을 때,

육안으로는 보이지 않는 백그라운드 단에서 동작되는 프로세스들을 하나하나 확인이 가능하다.

위와 같은 화면으로 현재 실행 중인 프로세스를 실시간으로 모니터링하고 관리할 수 있다.
프로세스의 메모리 사용량, 경로, 프로세스 ID(PID), 상위 및 하위 프로세스 등이 제공된다.


특정 프로세스를 우클릭하면 위와 같이 여러 탭들이 존재하며 다양한 작업을 수행할 수 있다.

Set Priority : 우선순위 확인 및 설정
Kill Process : 프로세스 강제 종료
Kill Process Tree : 프로세스 하위 프로세스까지 종료
Restart : 프로세스 재시작
Suspend : 프로세스 일시정지
Check VirusTotal : Virustotal 검사

 

우클릭 후 Properties 클릭 시 생성되는 화면이며, 다양한 정보를 확인할 수 있다.

 

여기서 제일 유심하게 봐야 될 부분은 TCP/IP 탭이다.

해당 탭은 프로세스에 의해서 동작되는 네트워크 쪽 내용들을 확인해 볼 수 있는 기능을 가지고 있다.

 

또한, 유해 요소의 경우 CPU 사용률이 높거나 지속적으로 사용 중일 수 있다.

 

 

 

동적분석 : 실시간 프로세스 모니터링 - Process Moniter

 

 

해당 툴은 현재 내 PC에서 동작되는 모든 프로세스를 긁어와서 실시간으로 보여주는 툴이다.

 

그렇기 때문에 악성코드 분석뿐만 아니라 다른 모든 프로세스까지 모두 탐지가 되기 때문에,

사용자 입장에서는 보기가 힘들 수 있다.

 

즉, 우리는 내장된 필터링 기능을 통해서 우리가 보고자 하는 프로세스만 분석할 수 있다. 

실무에서는 이 필터링 기능을 잘 활용해야 되는 툴이다.

 

Process Explorer와 Process Moniter의 차이?

더보기

보통 더 상세하게 분석을 진행하고자 할 때, Prcoess Moniter를 더 많이 사용한다.

Process Explorer는 동작되는 것들에 대한 로그가 남는 방식은 아니다.

 

그러다 보니 뭔가 누락되는 상황들이 발생될 수 있다.

대표적인 예시로 악성 코드를 실행을 했을 때, 바로 코드가 동작되어지는 경우가 아니라

 

특정 조건이 맞아야 하거나, 일정 시간이 소모되야 하거나, 재부팅 같은 동작이 수행되어야지만

악성코드가 동작을 하는 등의 상황들이 발생될 수 있다.

 

위와 같은 상황은 우리가 Process Explorer를 통해서 캐치하기가 매우 어렵다는 단점이 있다. 

즉, Prcoess Moniter를 통해서 로그를 수집하며 어떠한 시점에 동작을 하는지 등 상세한 로그 분석이 가능하다.

 

반면에 Process Explorer를 우리가 사용하는 이유는

A라는 프로세스에 의해서 무언가 동작이 되면 이 동작에 의해 또 그다음 동작이 이루어지는 계층적인 형식의 동작을

한눈으로 볼 수 있는 기능을 제공을 해주기 때문이다.

위와 같은 화면으로 파일 시스템, 레지스트리, 프로세스, 스레드 및 네트워크 활동 등 

다양한 시스템 활동을 실시간으로 모니터링할 수 있다.

 

위의 화면은 필터링을 하는 과정이다.

프로그램 실행 시 기본적으로 모든 프로세스가 출력되기에 필터링 기능을 활용하여 원하는 프로세스만 확인할 수 있도록 해야 한다.

 

Ctrl + L(Process Moniter Filter) →
[Process Name] [is] [프로세스] [Include] → Add → OK

 

과정을 실행하면 아래와 같이 [프로세스] 부분에서 선택한 프로세스만 필터링되어 확인이 가능하다.

 

이 필터링 기능이 실무에서 활용되는 예시를 들어보면,

A라는 악성 프로그램을 분석을 하면, [프로세스]에 A프로세스를 넣을 것이고, A에 해당하는 결과가 나올 것이다.

 

하지만 분석을 하다 보면 B라는 프로세스가 생성되는 경우를 볼 것이다.

그러면 우리는 [프로세스]에 B프로세스를 Add 하여 같이 분석하는 것이다. 

 

이런 식으로 악성코드를 분석하다 보면 분석해야 하는 영역들이 점점 늘어날 것이다.

즉, 위와 같이 단계적으로 내용을 분석하다 보면 좀 더 추가적으로 많은 내용들을 얻을 수 있다.

 

 

 

동적분석 : 실시간 프로세스 모니터링 - System Explorer

 

 

해당 툴은 시스템 및 프로세스 관리를 위한 도구이며, 윈도우 작업 관리자의 확장판으로 볼 수 있다.

즉, Process Explorer, Process Moniter, 그 밖에 파일 및 레지스트리 쪽을 분석하는 통합 도구라고 볼 수 있다.

 

그렇기에 매우 무거운 툴 중에 하나이다.

 

System Explorer는 실제로 잘 사용하지 않는다. 왜냐하면 우리는 가상 환경에서 악성코드 분석을 진행하는데,

가상환경 자체는 우리가 실제로 사용하는 로컬 환경보다는 사양이 더 낮을 수밖에 없기 때문이다.

 

악성코드를 분석하면서 데이터 및 로그가 수집되는 과정에서 자연스럽게 속도가 느려져,

장비 자체에 부하가 갈 수 있다 보니나중에는 장애 상황들이 생길 수도 있다.

 

Process : 현재 실행 중인 프로세스 목록 및 세부 정보 및 동작
Performance : 시스템의 성능 및 리소스 사용량
Connection : 프로세스의 연결 정보, 프로토콜 정보

등 다양한 정보 확인 가능.

 

 

 

동적분석 : 파일 및 레지스트리 - Autoruns

 

 

해당 툴은 부팅 시 자동으로 실행되는 프로그램 및 서비스를 모니터링하고 관리하는 도구이다.
악성코드 분석 시 악성파일을 실행하기 전과 후의 스냅샷을 각각 촬영 후 비교하는 방식으로 활용이 가능하다.

악성파일 실행 전 Ctrl + S (저장) 악성파일 실행
Compare 이전에 저장한 파일 불러오기

 

위의 화면은 Compare 클릭 시 제공되는 화면이며, 이전에 저장한 파일을 불러와
두 개의 스냅샷을 비교하며, 변동사항 확인이 가능하다.


 

동적분석 : 실시간 네트워크 연결 분석 - CurrPort(Cport)

 

 

해당 툴은 현재 내 PC의 네트워크 상태를 확인하기 위한 목적으로 사용한다.

 

Cmd에서 netstate라는 명령어를 치면은 유사한 정보를 제공해주긴 하지만,

CurrPort처럼 상세한 내용들을 보여주진 않는다.

 

즉, 어떠한 프로세스에 의해서 어떤 네트워크가 동작을 하는지, 어떠한 시도를 하고 있는지 등

조금 더 친절하게 기능적인 부분을 제공해주다 보니, 네트워크 상태를 조회하기 위한 목적으로 해당 툴을 사용한다.

 

위와 같이 로컬 컴퓨터에 현재 열린 TCP/IP, UDP 포트 목록을 보여준다.

또한 표시된 포트의 정보, 프로세스 경로, 버전 정보, 생성된 날짜 등의 여러 정보를 제공해 준다.

특정 연결을 선택한 후 X 버튼(Close Selected Ports)으로 해당 포트의 접속을 종료할 수 있다.
혹은, File 메뉴에서 “Close Selected Ports”

특정 연결을 선택한 후 저장 버튼(Save Selected Items)으로 해당 연결 정보를 파일 형태로 저장 가능하다.
혹은, File 메뉴에서 Save Selected Items" 또는 "Save All Items" 선택
 

 

동적분석 : 실시간 네트워크 트래픽 및 패킷 분석 – SmartSniff

 

 

해당 툴은 사용자의 컴퓨터와 연결된 네트워크 패킷들을 실시간으로 모니터링하고 정보를 제공한다.

출발지 및 목적지 IP주소, 사용된 프로토콜, 어떤 응용 프로그램이 어떤 주소와 통신하고 있는지
통신 패턴 및 흐름, 패킷 크기 및 플래그 정보 등의 정보를 확인할 수 있다.

 

실행버튼 클릭 IP Address 클릭 OK

과정을 실행하면 아래와 같은 화면이다.

 

컴퓨터가 송수신하는 네트워크 트래픽 및 패킷을 캡처해 보기 쉽게 정리해 주는 것을 확인 가능하다.

아래에서 알아볼 Wireshark에서 또한 확인 가능하나, Smartsniff는 빠르고 편리하게 사용할 수 있는 특징을 가지고 있다.

 

 

 

동적분석 : 실시간 네트워크 트래픽 및 패킷 분석 – Wireshark

 

 

Wireshark는 Smartsniff에 비해 더 깊이 있는 패킷 분석에 중점을 둔 강력한 도구이다.

즉, 심층적인 네트워크 트래픽 검사를 가능하게 하는 네트워크 프로토콜 분석 도구이다.


네트워크 트래픽을 캡처하고 분석하여, 악성코드의 네트워크 활동을 추적하는 데 용이하며,

다양한 필터, 분석기, 통계 도구를 제공한다.


Wireshark 실행 시 위와 같이 *로컬 영역 연결, *Adapter for loopback traffic capture
두 가지 인터페이스에 대한 패킷 캡처를 확인할 수 있다.

상어 지느러미 모양처럼 해당 인터페이스에서 실제로 트래픽이 발생하고 있음을 알려준다.

*로컬 영역 연결 : 컴퓨터의 물리적인 네트워크 어댑터(이더넷 카드 등)를
통해 외부 기기(네트워크, 컴퓨터 등)와의 통신을 나타낸다.

*Adapter for loopback traffic capture : 가상 네트워크 인터페이스로,
컴퓨터 내부에서 실행 중인 프로세스나 서비스 간에 발생하는 통신을 캡처한다.

 

"로컬 영역 연결"을 클릭하면, 위와 같이 해당 인터페이스에서 발생하는 트래픽을 확인할 수 있다.

Source(패킷 출발지 주소), Destination(패킷 목적지 주소)
Protocol(프로토콜 정보), Info(패킷 상태, TCP 제어 플래그..) 등 다양한 정보를 확인할 수 있다.

여러 패킷 중 한 가지를 선택하면 아래의 왼쪽 탭(Packet Details)에서
전송되는 패킷에 대한 세부 정보를 살펴볼 수 있다.


Frame Header : 프레임 번호, 패킷 길이 등
Ethernet Header : 출발지 및 목적지 MAC주소, 이더넷 타입 등
Internet Protocol (IP) Header : 출발지 및 목적지 IP 주소, 프로토콜 종류 등
TCP 또는 UDP Header : 출발지 및 목적지 포트 등

또한 작은 좌측 화살표 버튼 클릭 시 체크섬, 플래그 등 
더욱 세세한 정보를 확인할 수 있음.

 

아래의 오른쪽 탭(Packet Bytes)은 좌측 Packet Detail탭 정보를
아스키코드로 변환하여 보여준다.

 

Wireshark 상단 해당 탭에서 필터링 기능을 사용할 수 있다.

즉, 필터링을 활용하여 캡처된 패킷을 목적에 따라 분류할 수 있으며, 다양한 명령어가 존재한다.

 

“TCP” 입력 시 TCP 프로토콜 선별.

“DNS” 입력 시 도메인 이름 조회.

“http.host” 입력 시 ‘host’라는 필드를 가진 패킷 조회.

 

등 여러 명령어가 존재하며, 매우 유용하게 사용 가능하다.

 

 


 

 

다음 글에서는 구성한 환경과 알아본 Tool을 바탕으로

악성코드 샘플을 직접 분석할 예정이다.

'IT_정보보안 > 보안관제 프로젝트' 카테고리의 다른 글

15. 악성코드 샘플 분석(2) : 상  (1) 2024.02.16
14. 악성코드 샘플 분석(1)  (1) 2024.01.28
12. 샘플 분석 환경 구성  (2) 2024.01.13
11. 정적 / 동적분석 / Tools  (2) 2024.01.09
10. Virustotal  (1) 2023.12.24