Security/보안관제

악성코드 정적, 동적분석

westcold 2024. 9. 27. 22:53

악성코드 분석에는 크게 3가지로 나눌 수 있다 기초분석, 정적분석, 동적분석
기초분석도 악성코드를 실행시켜서 하는 형태가 아니기 때문에 정적분석 범위 안에 들어갈 수 있다.

 

정적 분석

  • 정적 분석악성코드를 실행하지 않고 악성코드의 코드와 리소스를 분석하는 방법이다. 코드 실행 없이 파일의 구조와 내용을 분석하여 악성코드가 어떻게 동작할지 예측한다.

정적 분석의 특징:

  • 파일의 해시 값, 문자열 패턴, 메타데이터 확인 가능: 파일의 고유한 해시 값을 통해 파일의 동일성 및 악성 여부를 확인할 수 있으며, 문자열 패턴을 분석해 악성 활동을 추정할 수 있다.
  • 비교적 안전: 악성코드를 실행하지 않기 때문에 비교적 안전하지만, 코드 자체가 위험 요소를 포함할 수 있어 혹시나 파일이 실행하는 경우가 발생할 수 있으므로 가상 환경에서 분석하는 것이 권장된다.
  • 난독화 대응 어려움: 악성코드가 난독화된 경우, 분석이 어려울 수 있다.

정적분석 방법

  • 해당 파일의 해시값 확인 후 원본 파일의 해시값과 비교하고 다르다면 변조된 것, 해시값을 Virustotal에 검색
  • 파일 패킹 여부 확인 및 PE 구조 확인을 한다.
  • 악성 코드가 사용하는 문자열 확인한다.
  • 리소스를 확인하여 악성 코드 실행 파일에 저장된 리소스 분석

동적 분석

  • 동적 분석은 악성코드를 실제로 실행하여 실행 전후의 상태를 분석하고, 악성코드의 실제 동작을 관찰하는 방법이다. 시스템 콜, 파일 수정, 네트워크 트래픽 등 실제로 실행되는 프로그램의 행동을 확인할 수 있다.

동적 분석의 특징:

  • 직관적인 분석: 실행 중인 악성코드가 시스템에서 어떤 동작을 하는지 명확하게 파악할 수 있다.
  • 가상 환경에서 분석: 악성코드를 직접 실행하기 때문에 반드시 가상 환경에서 진행해야 한다.
  • 반복 분석 필요: 악성코드는 환경에 따라 다르게 동작할 수 있어 2회 이상 분석을 통해 더 명확한 결과를 얻을 수 있다.

동적분석 방법

  1. Vmware 또는 VirtualBox 등 을 이용해 가상 샌드박스 환경을 구축한다.
  2. 의심스러운 파일을 관리자 권한으로 실행 후 생성되는 프로세스 확인
  3. 레지스트리 및 파일 변화 확인
  4. 패킷 캡쳐 툴로 네트워크 동작 확인

(미리 보는) 동적분석 Tool

  1. 프로세스 관련 Tool  - process explore
  2. 파일 및 레지스트리 관련 Tool - autoruns
  3. 네트워크 관련 Tool - wireshark

정적 분석과 동적 분석의 차이점

구분정적 분석동적 분석

분석 방법 악성코드 실행 없이 코드와 리소스를 분석 악성코드를 실행하여 실행 전후 상태를 분석
분석 대상 파일의 해시 값, 문자열, 메타데이터 분석 실행 후 시스템 콜, 파일 수정, 네트워크 트래픽 분석
분석 시간 비교적 빠름 실행 과정 모니터링으로 시간이 더 소요됨
위험성 비교적 안전하지만 가상 환경에서 진행 필요 악성코드 실행으로 시스템에 피해를 줄 수 있음
환경 의존성 실행 환경과 무관 실행 환경에 따라 다른 결과가 나올 수 있음
반복 분석 단일 분석 가능 2회 이상 반복 분석 필요

 

정적 분석과 동적 분석은 각각의 장단점이 있어, 보다 정확한 분석을 위해서는 두 방법을 병행하는 것이 좋다.

 

동적/정적 분석을 위한 Tool 조사 및 사용법

정적분석

  1. VirusTotal :
    • 백신에 따른 악성코드 확인과 해시값 조회를 통한 과거 검사 이력 확인을 할 수 있다.
    • 사용법: VirusTotal에 파일을 업로드하면, 여러 보안 엔진이 파일의 해시값을 통해 악성 여부를 분석한다.
  2. Exeinfo PE :
    • 해커들은 악성코드의 크기를 줄여 빠르게 유포하고 분석하기 어렵게 악성코드를 압호화 및 압축하는 패킹기법을 사용한다
    • PE 파일(옮겨 다니면서 실행시키는 파일) 분석 도구로, 파일의 패킹 여부와 파일의 구조를 분석한다.
    • 사용법: exe 파일을 프로그램에 드래그하면 패킹 유무 및 추가 정보를(어느 언어로 작성, 그립팅, 프로테틱 등) 확인할 수 있다.
    • PEiD도 비슷한 방식으로 사용되며 패킹 여부와 어떤 툴로 패킹을 하였는지 확인한다.
      내 컴퓨터에 있는 zoom.exe 파일을 분석해봤다.

  3. BinText :
    • 실행 파일 내에서 문자열을 나열하여, 중요한 정보를 찾는 도구이다.
    • 도메인 주소, ip주소, 실행파일, 명령어, 함수 등을 분석하여 악성코드와 관련된 정보가 있는지 확인한다.
    • 패킹이 되어있을 경우에는 제대로 된 정보가 나오지 않기 때문에 언패킹을 진행한 후에 사용해야 한다.
    • 사용법: 분석할 파일을 선택하고, 추출된 문자열을 통해 의심스러운 정보를 확인한다
      왼쪽이 문자열이다.

 

동적분석

  1. Process Explorer :
    • 시스템에서 실행 중인 모든 프로세스실시간으로 모니터링하는 도구이다.
    • 실행 중인 프로세스 파악 및 우선권 변경, 정지, 강제 종료등 조치 기능을 포함하고 있다.
    • 사용법: 실행한 후, 각 프로세스를 클릭하여 CPU, 메모리 사용량과 같은 상세 정보를 확인할 수 있다.
      실행중인 프로세스를 눌러보면 보이는 상세정보 창
  2. Autoruns :
    • 시스템 시작 시 자동으로 실행되는 모든 항목을 모니터링할 수 있는 도구이다. 악성코드의 지속성 유지 기법을 분석할 때 유용하다. 
    • 주의사항: 악성 코드 분석 시 어떤 부분이 변경되었는지 확인하기 위해 해당 악성 파일을 실행하기 전 스냅샷을 촬영하고 실행 후 스냅샷과 비교추천
  3. WireShark :
    • 네트워크 트래픽을 분석하는 도구로, 악성코드가 통신하는 서버나 전송되는 데이터를 모니터링할 수 있다.
    • 사용법: 네트워크 인터페이스를 선택하고 실시간 패킷을 캡처한 후 분석한다.

 

 

이러한 도구들을 활용하면 악성코드의 정적/동적 분석을 효과적으로 수행할 수 있다.

 

참고

악성코드 정적,동적분석 (velog.io)

악성 코드 정적 분석 ( 특징, 방법, 정적 분석 툴, 패킹, PE 구조) — Maker's security (tistory.com)

Wireshark란? / 설치법 :: hongPossible (tistory.com)

자세한 사용법 : 

정적 분석 Tool ( Exeinfo PE, PEiD ) 기능 및 사용 — Maker's security (tistory.com)

파일에 포함된 문자열 확인 툴 ( BinText, Strings ) 기능 및 사용법 — Maker's security (tistory.com)

프로세스 분석 툴 기능 및 사용법 ( Process Explorer, Process Monitor, System Explorer ) — Maker's security (tistory.com)

 

 

 

ppt

[12주차]악성코드 정적,동적분석.pptx
2.82MB