본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

악성코드 분석은, 어떤 코드가 악성코드인지 판별하는 것 부터 그 코드가 어떤 악성 행위를 하는지를 파악하고 차단하기 위한 분석 행위까지 포함한다.

프로그램을 실행시키지 않고 분석한다.

  • 소스코드, 파일 헤더, 매니페스트, 프로그램 구조 분석
  • 난독화를 할 경우 분석이 힘들어진다.


실제로 실행시켜 보고 분석한다.

  • 입력값을 변화에 따른 결과값을 분석한다.
  • 코드가 동작할수 있는 환경을 조성하는데 어려움이 있다.

동적 분석 방해

편집 원본 편집

분석되는 것을 방지하기 위해 특정 조건 하에서만 동작하도록 하는 기법을 이용한다. 예를 들면 아래와 같다.

  • 예물레이터, 루팅된 폰에서 동작 안함
  • 침해가 가능한 기종에서만 동작함
  • 침해 대상 정보가 있는 환경에서만 동작함

특정 시간이 되어야 동작하도록 한다. 잠복기를 부여하는 클래식한 방법이다.

특정 조건이 되어야 동작하도록 한다. 예를 들어 C&C서버로 부터 특정 값을 받아야 동작하도록 한다.

분석 도구와 방해 기법

편집 원본 편집
구분 도구·기법 하는 일
정적 분석 디스어셈블러, 디컴파일러 실행 파일을 어셈블리나 고급 언어 형태로 되돌려 읽는다
동적 분석 디버거, 샌드박스 실행하면서 한 명령씩 멈추고 레지스터·메모리·API 호출을 본다
분석 준비 언패킹 실행 압축·암호화된 파일에서 원래 코드를 풀어낸다 → 패커

악성코드는 분석을 늦추려고 다음 기법을 쓴다.

  • 난독화 : 무의미한 코드를 끼워 넣고 실행 순서를 섞어 디스어셈블한 결과를 읽기 어렵게 한다
  • 패킹 : 원래 코드를 압축·암호화해 감춘다 → 패커
  • 안티 디버깅 : 디버거가 붙어 있는지 확인해 다르게 동작한다
  • 안티 VM : 가상 머신·샌드박스에서는 악성 행위를 하지 않는다

디스어셈블·디버깅·언패킹은 분석가가 쓰는 기법이고, 난독화는 분석을 방해하는 기법이다.