동적 악성코드 분석 (Dynamic Malware Analysis)

정보보안학
한 줄 정의: 동적 악성코드 분석은 격리된 환경에서 악성코드를 실제로 실행시켜 그 행위를 관찰함으로써 특성과 목적을 파악하는 분석 기법입니다.

쉽게 풀면

동적 분석은 의심스러운 소포를 직접 열지 않고 유리 상자 안에서 열어보며 무슨 일이 벌어지는지 지켜보는 것과 비슷합니다. 코드를 눈으로만 읽는 대신, 실제로 실행시켜 파일이 어떤 동작을 하는지, 어떤 네트워크에 접속하는지 관찰합니다. 이렇게 하면 코드만 봐서는 알기 어려운 숨겨진 동작까지 파악할 수 있습니다. 다만 안전한 실행을 위해 실제 시스템과 분리된 가상의 실험 공간에서 진행됩니다.

왜 중요한가

악성코드는 갈수록 코드 난독화가 정교해져 코드만 읽어서는 실제 행위를 파악하기 어려운 경우가 많습니다. 동적 분석은 실행 결과를 직접 관찰함으로써 이런 한계를 보완하며, 신종 악성코드의 위협을 신속히 파악하는 데 중요한 역할을 합니다. 그래서 악성코드 분류, 탐지 시그니처 생성, 위협 인텔리전스 구축 등 다양한 연구와 실무에서 활용됩니다.

논문에서는 이렇게 쓰입니다

"샌드박스 환경에서 수집한 악성코드의 API 호출 시퀀스를 동적 분석하여 행위 기반 탐지 모델을 학습시켰다."

실행 중 발생하는 API 호출 패턴을 데이터로 삼아 탐지 모델을 만든 연구입니다.

"동적 분석 결과 해당 샘플이 실행 직후 명령제어서버에 접속을 시도함을 확인하였다."

실제 실행을 통해 악성코드의 통신 행위를 관찰한 사례입니다.

조금 더 깊게 보면

동적 분석은 일반적으로 샌드박스라는 격리된 가상 환경에서 이루어지며, 파일 시스템 변화, 레지스트리 수정, 네트워크 통신, 프로세스 생성 등의 행위를 로그로 기록합니다. 정적 분석과 상호 보완적으로 사용되는 경우가 많으며, 일부 악성코드는 자신이 분석 환경에 있음을 감지하면 정상적으로 동작하지 않는 회피 기법을 사용하기도 합니다.

주의할 점

동적 분석은 관찰된 실행 경로에서 나타난 행위만 확인할 수 있으므로, 특정 조건에서만 발현되는 악성 행위는 놓칠 수 있습니다. 따라서 정적 분석 등 다른 기법과 함께 사용하는 것이 일반적입니다.

관련 용어