악성코드 분석개요
2023. 9. 1. 15:53ㆍ보안관제
목차
- 정적 분석 개요
- 정적 분석 장단점
- 동적 분석 개요
- 동적 분석 장단점
- 정적 분석 도구
- 동적 분석 도구
정적 분석 개요
- 파일을 실행시키지 않고 분석함
- 각 파일의 소스코드나 기타 해시 값을 기준으로 파일의 속성을 보여줌
- 분석 기준이 되는 정보로는 흔히 파일의 종류, 크기, 헤더정보, Import/Export API, 내부 문자열, 실행 압축 여부, 등록정보, 디버깅 정보 등이 있음.
정적 분석 장단점
장점
1.프로그램 전체 구조 파악하기 쉬움
- 프로그램이 어떤 함수로 구성됐고 서로 어떤 호출관계를 갖는지, 어떤 API를 사용하며 어떤 문자열을 포함하는지 등을 종합적으로 파악 가능
2. 분석 환경의 제약에서도 비교적자유로움
- 실행을 전제로 하는 동적 분석을 윈도우 환경에서 apk를 대상으로 하기는 다소 번거로움.
- 그러나 정적 분석은 적절한 도구만 갖춘다면 시도 가능.
3. 악성 프로그램 위협으로부터 상대적 안전
- 정적 분석은 프로그램을 실행하지 않고 분석하므로 동적분석보단 감염 우려가 낮음.
- 그러나 안에 있는 문자열, 함숫 값을 실수로 실행시킬 수도 있으니 항상 가상환경에서 실행시켜야함
단점
1. 난독화 적용시 분석이 매우 어려워짐
- 최근 많은 개발자가 자신의 소프트웨어를 리버싱으로부터 보호하기 위해 난독화 기법을 사용
- 난독화가 적용되면 실행 흐름을 파악하기가 어려워짐
2. 다양한 동적 요소 고려하기가 힘듦
- 프로그램은 실행 중 영향을 주고 받는 여러 함수로 구성되기 때문에 어떤 함수가 특정 시점에 정확히 어떤 인자와 어떤 전역 변수를 가지고 실행될지는 정적으로 알기 어려움.
동적 분석 개요
- 파일을 실행 시켜 그 결과를 토대로 어떠한 행위를 하는지 판단을 내리는 것을 말함.
- 파일 실행으로 인한 파일 자체나 레지스트리, 네트워크등을 관찰하면서 프로그램 행위를 분석함.
동적 분석의 장단점
장점
1. 코드를 자세히 분석하지 않고도 개략적으로 동작 파악 가능
- 어떤 입력에 대한 개별 함수 또는 프로그램의 출력을 빠르게 확인할 수 있으므로, 이 출력값들을 기반으로 동작 추론 가능
- 항상 두번 세번 반복해서 악성코드에 의해서 행해지는 게 맞는지 정확하게 확인하는 것은 필수
단점
1. 분석 환경을 구축하기 어려울 수 있음.
- 프로그램을 실행하지 못하면 동적 분석을 진행할 수 없음. 다른 환경의 프로그램을 동적 분석할 때에는 가상 머신을 구축하거나 프로그램을 실행할 수 있는 장치를 구매해야 하는데, 이 과정이 대상에 따라 매우 번거롭고 어려울 수 있음.
2. 또한, 동적 분석의 일종인 디버깅을 방해하는 안티디버깅(Anti Debugging)이 있음.
- Ex) 아래의 코드처럼 자신이 디버깅 당하고 있는지 검사하고, 디버깅 중이면 프로그램을 강제로 종료시키는 방법이 있음.
정적 분석 도구
Exeinfo
- 본 소프트웨어는 PEiD 와 같은 분석 툴이며, 해당 프로그램이 어느 언어로 컴파일 되었는지, 또 패킹, 크립팅, 프로텍팅 여부와 어느 툴에 의해 패킹되었는지 볼 수 있음
Bintext
- 파일에 포함된 문자열들을 GUI의 형태로 보여주는 툴
- 패킹시 문자가 제대로 보여지기 안기에 언패킹 이후에 진행
- import한 DLL 정보, 해당 파일에 포함된 사용된 함수, IP, URL 정보등도 확인가능
동적 분석 도구
- 파일 과 레지스트리: Autoruns(전과 후 레지스트리),
- 프로세스: process monitor + explorer(프로세스 변화)
- 네트워크 패킷: smart sniff
Autorun
- Autoruns는 윈도우 시스템에서 부팅 후 자동시작되는 시작프로그램이나 서비스들을 보여주고 관리하는 모니터링 프로그램
- AutoRuns 프로그램을 실행 후 상단의 Everything 탭에서는 로그인 시 자동으로 실행되는 시작 레지스트리에 등록된 파일 목록, 시작 프로그램에 등록된 파일 목록등을 확인가능
Process Explorer
- 현재 동작 중인 모든 프로세스를 실시간으로 보여주고, 새로 실행되거나 종료되는 프로세스도 보여줌
process Monitor
- 시스템에서 File의 변화(추가, 삭제)를 실시간으로 모니터링하는 도구이다. Registry의 변화 역시 실시간으로 모니터해주며, 시간별로 로그가 계속해서 기록
smartsniff
- 송수신 패킷 쉽고 간편하게 볼 수 있는 프로그램
- IP 프로토콜 포트 등등 다 확인 가능하며
- 필터 기능을 통해 특정 프로토콜이나 IP 포트 등 조건 걸어서 해당 조건만 확인 하거나 걸러내거나 할 수 있음
'보안관제' 카테고리의 다른 글
정적, 동적 Tool 실습 (0) | 2023.09.18 |
---|---|
악성코드 샘플 분석 환경 구성 (0) | 2023.09.18 |
Virustotal (0) | 2023.08.24 |
보안관제 (0) | 2023.08.24 |
악성코드 (0) | 2023.08.10 |