본문 바로가기

보안/리버싱

#2 동적분석과 정적분석

Dreamhack ReversingCource #2

정적 분석(Static Analysis)

  • 악성 프로그램을 분석하여 실제로 실행하지 않고 도구에서 특징 및 특성 확인.
  • 파일의 종류, 크기, PE 헤더 정보, imprt/export API, 디버깅 정보 등... 다양한 내용 확인함
  • 디스어셈블러를 이용해서 내부 코드와 그 구조를 확인하는 것
  • 분석 환경의 제약에서 비교적 자유로움. (분석을 지원하는 도구만 존재한다면)
  • 프로그램에 난독화(Obfuscation)가 적용되면 분석에 어려움이 생길 수 있다.
  • 다양한 동적 요소를 고려하기 어려움
  • Ex) IDA

 

동적 분석(Dynamic Analysis)

  • 격리된 환경에서 의심 바이너리를 실행한 후 그 행위를 모니터링하는 방법
  • 어떤 입력에 대한 개별 함수 또는 프로그램의 출력을 빠르게 확인 가능. -> 출력값 통해 동작 추론 가능
  • 수행하기 쉬워 유용하지만, 악의적인 프로그램이 가진 모든 기능을 찾아낼 순 없다.
  • 분석환경을 구축하기 어려울 수 있음.
  • 디버깅을 방해하는 안티디버깅의 존재로 분석에 어려움 생길 수 있음.
  • Ex) x64dbg

또다른 분석 방법

 

코드 분석(code analysis)

  • 바이너리 내부 동작을 이해하기 위한 악성코드 분석 방법이다.
  • 정적 분석과 동적 분석을 통해 파악 불가능한 정보를 얻을 수 있음.
  • 정적 코드 분석과 동적 코드 분석으로 나뉜다.
  • 정적 코드 분석: 의심 바이너리를 디스어셈블링한 후 프로그램의 동작을 이해하고자 의심 바이너리를 통제된 방법으로 디버깅
  • 동적 코드 분석: 소스코드 자체를 분석하는 것이 아닌, 시나리오를 설계하여 적용 후 실행과정에서 문제가 발생하는지를 점검하는 방법.

 

메모리 분석(memory analysis, memory forensic)

  • 메모리 아티팩트(사용흔적)를 위해 컴퓨터 메모리를 분석하는 기법
  • 악성코드 분석에 포렌식 기술을 활용함으로써 감염 후 악성코드 행위를 이해하는 데 도움을 준다.
  • 메모리분석은 악성코드의 은닉 또는 회피능력을 파악하는데 특히 유용

 

 

※ 악성코드 분석 수행하면서 다양한 분석기술을 융합하면 가치있는 많은 정보를 얻을 수 있음.

 

 

악성코드 분석 시작하기 ◀

책 참고하여 작성하였다. 좋다 책^

'보안 > 리버싱' 카테고리의 다른 글

reversing.kr - Easy ELF  (0) 2024.08.26
x64 assembly basic  (0) 2022.07.10
Dreamhack Quiz: x86 Assembly 2  (0) 2022.07.10
86 Assembly: Essential Part(1) quiz  (0) 2022.07.08
#1 리버싱이란?  (0) 2022.07.01