정적분석 특징
1. 정적분석(Static Analysis)
- 어떤 프로그램을 분석할 때 그 프로그램을 실행시키지 않고 그 자체를 분석하는 것.
- 프로그램에 내재한 논리적 오류는 보통 프로그램을 실행하여 확인하지 않으면 찾기가 힘들지만, 정적분석은 이러한 오류를 찾아내는 데 도움을 줄 수 있음.
2. 특징
- 파일의 메타데이터, 해시 값, 문자열 패턴 등을 확인할 수 있음.
- 디스어셈블러나 리버스 엔지니어링 도구를 사용하여 소스 코드를 검사할 수 있음.
- 비교적 안전한 분석 방법이지만 가상 환경에서 분석하는 것이 좋음.
- 비교적 신속하게 정보 획득.
- 복잡한 악성코드의 경우 완전한 정보 제공이 어려울 수 있음.
동적분석 특징
1. 동적분석(Dynamic Analysis)
- 프로그램의 실행을 기초로 하여 프로그램을 평가하는 과정.
- 악성코드 실행 전후 상태를 조사 및 분석하여 프로그램의 기능을 파악.
2. 특징
- 프로그램의 영향을 파악하는 데에 가장 직관적인 방법.
- 가상 환경같이 격리된 환경에서 이루어져야 함.
- 네트워크 트래픽, 메모리 사용량, 파일 시스템 활동 등을 모니터링.
- 확실한 분석을 위해 2회 이상 분석 진행해야 정상 프로세스 오인을 막을 수 있음.
- 비교적 시간이 많이 소요됨.
차이점
분석 Tool
1. 정적분석 Tool
- Exeinfo PE: PE 형식의 파일에 대한 다양한 정보를 확인할 수 있음.
- PeStudio: 악성코드 분석에 사용되는 Windows용 툴로, 파일을 분석하여 여러 가지 정보를 제공.
- BinText: 실행 파일, 바이너리 파일 등에서 ASCII 문자열과 Unicode 문자열을 추출하는 도구.
- IDA Pro: 디스어셈블러이자 디버거로, 바이너리 코드를 어셈블리 코드로 변환하여 분석하게해줌.
- OllyDbg: Windows 환경에서 사용되는 32비트 어셈블러 레벨 분석 디버거.
2. 동적분석 Tool
- Process Monitor: Windows 운영 체제에서 실행 중인 프로세스의 파일 시스템, 레지스트리, 네트워크 활동 등을 실시간으로 모니터링하고 로깅하는 데 사용.
- Autoruns: Windows 시작 시 자동으로 실행되는 프로그램들을 관리하고 분석하는 데 사용.
- Wireshark: 네트워크 트래픽을 실시간으로 캡처하고 분석하는데 사용되는 오픈소스 도구.
- CurrPorts: 현재 시스템에서 열려 있는 모든 TCP/IP 및 UDP 포트를 나열하고 이에 대한 상세 정보를 제공.
- Cuckoo Sandbox: 악성코드를 격리된 환경에서 실행하고 그 결과를 보고해주는 자동화 분석 시스템.