악성코드 분석개요

2023. 9. 1. 15:53보안관제

목차

  • 정적 분석 개요
  • 정적 분석 장단점
  • 동적 분석 개요
  • 동적 분석 장단점
  • 정적 분석 도구
  • 동적 분석 도구

 

 

정적 분석 개요

  • 파일을 실행시키지 않고 분석함
  • 각 파일의 소스코드나 기타 해시 값을 기준으로 파일의 속성을 보여줌
  • 분석 기준이 되는 정보로는 흔히 파일의 종류, 크기, 헤더정보, Import/Export API, 내부 문자열, 실행 압축 여부, 등록정보, 디버깅 정보 등이 있음.

 

 

정적 분석 장단점

 

장점

 

1.프로그램 전체 구조 파악하기 쉬움

  • 프로그램이 어떤 함수로 구성됐고 서로 어떤 호출관계를 갖는지, 어떤 API를 사용하며 어떤 문자열을 포함하는지 등을 종합적으로 파악 가능

 

2. 분석 환경의 제약에서도 비교적자유로움

  • 실행을 전제로 하는 동적 분석을 윈도우 환경에서 apk를 대상으로 하기는 다소 번거로움. 
  • 그러나 정적 분석은 적절한 도구만 갖춘다면 시도 가능.

   

3. 악성 프로그램 위협으로부터 상대적 안전

  • 정적 분석은 프로그램을 실행하지 않고 분석하므로 동적분석보단 감염 우려가 낮음.
  • 그러나 안에 있는 문자열, 함숫 값을 실수로 실행시킬 수도 있으니 항상 가상환경에서 실행시켜야함

 

 

단점

 

1. 난독화 적용시 분석이 매우 어려워짐

  • 최근 많은 개발자가 자신의 소프트웨어를 리버싱으로부터 보호하기 위해 난독화 기법을 사용
  • 난독화가 적용되면 실행 흐름을 파악하기가 어려워짐

 

2. 다양한 동적 요소 고려하기가 힘듦

  • 프로그램은 실행 중 영향을 주고 받는 여러 함수로 구성되기 때문에 어떤 함수가 특정 시점에 정확히 어떤 인자와 어떤 전역 변수를 가지고 실행될지는 정적으로 알기 어려움.

 

 

동적 분석 개요

  • 파일을 실행 시켜 그 결과를 토대로 어떠한 행위를 하는지 판단을 내리는 것을 말함.
  • 파일 실행으로 인한 파일 자체나 레지스트리, 네트워크등을 관찰하면서 프로그램 행위를 분석함.

 

 

동적 분석의 장단점

 

장점

 

1. 코드를 자세히 분석하지 않고도 개략적으로 동작 파악 가능

  • 어떤 입력에 대한 개별 함수 또는 프로그램의 출력을 빠르게 확인할 수 있으므로, 이 출력값들을 기반으로 동작 추론 가능
  • 항상 두번 세번 반복해서 악성코드에 의해서 행해지는 게 맞는지 정확하게 확인하는 것은 필수

 

 

단점

 

1. 분석 환경을 구축하기 어려울 수 있음.

  • 프로그램을 실행하지 못하면 동적 분석을 진행할 수 없음. 다른 환경의 프로그램을 동적 분석할 때에는 가상 머신을 구축하거나 프로그램을 실행할 수 있는 장치를 구매해야 하는데, 이 과정이 대상에 따라 매우 번거롭고 어려울 수 있음.

 

2. 또한, 동적 분석의 일종인 디버깅을 방해하는 안티디버깅(Anti Debugging)이 있음.

  • Ex) 아래의 코드처럼 자신이 디버깅 당하고 있는지 검사하고, 디버깅 중이면 프로그램을 강제로 종료시키는 방법이 있음.

 

 

 

 

정적 분석 도구

 

Exeinfo

  • 본 소프트웨어는 PEiD 와 같은 분석 툴이며, 해당 프로그램이 어느 언어로 컴파일 되었는지, 또 패킹, 크립팅, 프로텍팅 여부와 어느 툴에 의해 패킹되었는지 볼 수 있음

 

Bintext

  • 파일에 포함된 문자열들을 GUI의 형태로 보여주는 툴
  • 패킹시 문자가 제대로 보여지기 안기에 언패킹 이후에 진행
  • import한 DLL 정보, 해당 파일에 포함된 사용된 함수, IP, URL 정보등도 확인가능

 

 

동적 분석 도구

  1. 파일 과 레지스트리: Autoruns(전과 후 레지스트리), 
  2. 프로세스: process monitor + explorer(프로세스 변화)
  3. 네트워크 패킷: smart sniff

 

Autorun

  • Autoruns는 윈도우 시스템에서 부팅 후 자동시작되는 시작프로그램이나 서비스들을 보여주고 관리하는 모니터링 프로그램
  • AutoRuns 프로그램을 실행 후 상단의 Everything 탭에서는 로그인 시 자동으로 실행되는 시작 레지스트리에 등록된 파일 목록, 시작 프로그램에 등록된 파일 목록등을 확인가능

 

Process Explorer

  • 현재 동작 중인 모든 프로세스를 실시간으로 보여주고, 새로 실행되거나 종료되는 프로세스도 보여줌

 

process Monitor

  • 시스템에서 File의 변화(추가, 삭제)를 실시간으로 모니터링하는 도구이다. Registry의 변화 역시 실시간으로 모니터해주며, 시간별로 로그가 계속해서 기록

 

smartsniff

  • 송수신 패킷 쉽고 간편하게 볼 수 있는 프로그램
  • IP 프로토콜 포트 등등 다 확인 가능하며
  • 필터 기능을 통해 특정 프로토콜이나 IP 포트 등 조건 걸어서 해당 조건만 확인 하거나 걸러내거나 할 수 있음

'보안관제' 카테고리의 다른 글

정적, 동적 Tool 실습  (0) 2023.09.18
악성코드 샘플 분석 환경 구성  (0) 2023.09.18
Virustotal  (0) 2023.08.24
보안관제  (0) 2023.08.24
악성코드  (0) 2023.08.10