악성코드 분석은, 어떤 코드가 악성코드인지 판별하는 것 부터 그 코드가 어떤 악성 행위를 하는지를 파악하고 차단하기 위한 분석 행위까지 포함한다.
정적 분석
프로그램을 실행시키지 않고 분석한다.
- 소스코드, 파일 헤더, 매니페스트, 프로그램 구조 분석
- 난독화를 할 경우 분석이 힘들어진다.
동적 분석
실제로 실행시켜 보고 분석한다.
- 입력값을 변화에 따른 결과값을 분석한다.
- 코드가 동작할수 있는 환경을 조성하는데 어려움이 있다.
동적 분석 방해
분석되는 것을 방지하기 위해 특정 조건 하에서만 동작하도록 하는 기법을 이용한다. 예를 들면 아래와 같다.
- 예물레이터, 루팅된 폰에서 동작 안함
- 침해가 가능한 기종에서만 동작함
- 침해 대상 정보가 있는 환경에서만 동작함
Time Bomb
특정 시간이 되어야 동작하도록 한다. 잠복기를 부여하는 클래식한 방법이다.
Logic Bomb
특정 조건이 되어야 동작하도록 한다. 예를 들어 C&C서버로 부터 특정 값을 받아야 동작하도록 한다.