정적 분석 도구
Exeinfo PE (링크)
- 오른쪽 폴더 모양 아이콘을 클릭하여 실행 파일(.exe)을 등록한 후 돋보기 모양을 클릭한다.
- entry point, file offset, linker info, subsystem, first bytes 등을 확인할 수 있다.
- 가장 주목할 점은 하단의 파란 두 줄로 아래의 사실들을 확인할 수 있다.
- '해당 파일은 Microsoft Visual C++ ver 5.0/6.0으로 제작되었고',
- '해당 파일은 패킹되지 않았다. (Not packed)'
PEiD (링크)
- PE 실행 파일에서 발견된 packer, cryptor, 그리고 컴파일러를 탐지하는 애플리케이션이다.
- Entry Point : 프로그램이 시작되는 메모리 주소
- File Offset : 실제 PE 파일 내부에서 entry point의 위치
- Linker Info : 실행 파일을 생성하는 데 사용된 linker의 버전 정보
- EP section : entry point가 존재하는 실행 파일의 section.
- ex. 코드-'.text', 변수-'.data', 커스텀-'snk1'
- First Bytes : 실행 파일의 처음 몇 바이트. 주로 시그니처나 사용된 packer 식별에 사용
- Subsystem : 실행파일이 설계된 서브시스템.
- Nothing Found *
- PEiD 스캔이 어떤 packer나 보호 알고리즘도 탐지하지 못했음을 의미한다.
- 패킹된 파일을 스캔한다면 패킹한 형식을 출력한다. (ex. SVKP 1.11 -> Pavol Cerven)
BinText (링크)
- 파일 내의 Ascii, Unicode 및 Resource 문자열을 찾아낸다.
- 위 그림은 msedge.exe를 스캔한 결과이다.
- msedge와 chrome을 실행하는 .exe 파일, 여러 프로그램에서 동시에 사용할 수 있는 동적 라이브러리인 .dll 파일 등을 확인할 수 있다.
Strings (링크)
- 악성코드 내에서 하드코딩된 문자열을 추출하여 분석한다.
- 이를 통해 C&C 서버 주소, 파일 경로, 사용자 계정 정보 등을 파악할 수 있다.
PEview (링크)
- 윈도우 용 실행파일인 PE의 구조를 확인할 수 있다.
- IMAGE_DOS_HEADER
- MS-DOS 호환 모드 내 프로그램 실행을 위한 정보 포함함.
- MS-DOS Stub Program
- 파일이 DOS 환경에서 실행 중인지 나타내는 메시지 표시
- IMAGE_NT_HEADERS
- PE 시그니처 (16진법-'50 45', Ascii-'PE')로 시작하는 헤더로, PE 파일임을 나타낸다.
- IMAGE_SECTION_HEADER
- 실행 파일의 특정 부분을 각각 나타내는 여러 헤더들을 포함한 영역
- Section-Specific Fields
- Raw Data - Values
- IMAGE_DOS_HEADER
- 그림을 보면 4D 5A('MZ')을 통해 해당 파일이 실행 파일임을 다시 한번 확인할 수 있다.
동적 분석 도구
Cports
- 네트워크 모니터링을 위한 유틸리티로, 로컬 컴퓨터에 열린 모든 TCP/IP와 UDP 포트를 확인할 수 있다.
- 프로세스 이름과 ID, 경로, 버전 정보, 프로세스 생성 시간 등을 포함한 상세 정보를 확인할 수 있다.
- 의심스러운 포트는 분홍색으로 표시되며, 원하지 않는 연결은 종료할 수 있다.
ProcessMonitor
- 실시간으로 파일 시스템, 레지스트리, 프로세스 및 스레드 활동을 추적하는 도구이다.
- 주로 시스템 문제 디버깅 및 분석에 유용하다.
- 특정 파일을 누가 잠궜는지
- 프로그램이 실행되면서 레지스트리에 어떤 변화를 주는지 추적
- CPU 및 메모리 과다 사용 프로그램이 어디서 병목을 일으키는지 확인
악성코드 분석 시에는 target 악성코드의 실행 성공/실패 여부 확인, 성공 시 수행하는 동작 추적에 사용된다.
ProcessExplorer
- 시스템에서 실행 중인 프로세스와 해당 프로세스의 자세한 정보를 제공한다.
- 주로 세부적인 프로세스 관리와 디버깅에 유용하다.
- 프로세스 리소스 사용량 분석
- DLL 충돌 문제 해결
- 바이러스 및 악성코드 탐지
악성코드 분석 시에는 target 악성코드 실행의 여파로 생성 / 삭제되는 프로세스들을 확인하는 데 사용된다.
SystemExplorer
- Windows OS에서 실행 중인 프로세스, 서비스, 네트워크 연결 등을 모니터링 및 관리할 수 있다.
- 주로 실행 중인 프로세스에 대한 자세한 정보 제공, 파일 모니터링 등의 기능을 수행한다.
악성코드 분석 시에는 Snapshot 기능을 사용하여 target 악성코드의 실행 전과 후를 비교하는 데 사용한다.
Autoruns
- Windows 시스템 부팅 시 자동으로 실행되는 프로그램, 서비스, 드라이버, 레지스트리 키 등을 상세히 확인할 수 있다.
- 각 항목을 VirusTotal 등과 연동하여 악성코드가 OS 설정을 변경하였는지 확인하는 보안 검사 기능도 제공한다.
- 악성코드가 자동 실행되도록 시작 프로그램에 등록하는지 감시한다.
악성코드 분석 시에는 파일 실행 전후의 시작프로그램과 서비스 변화를 확인하는 데 사용한다.
SmartSniff
- 호스트의 네트워크 어댑터를 거치는 TCP/IP 패킷을 포착한다.
- 포착한 데이터를 클라이언트와 서버 간의 대화 형식으로 나열한다.
- 세부적인 TCP/IP 대화 내역은 ASCII 코드 형식 혹은 16진수 덤프 형태로 확인할 수 있다.
Wireshark
- 네트워크 트래픽을 캡처하고 분석할 수 있는 오픈소스 패킷 분석기
- 주로 네트워크 인터페이스에서 실시간으로 전송되는 데이터를 캡처하여 각 패킷의 상세 정보 분석을 돕는다.
'리팩토링' 카테고리의 다른 글
리팩토링 15주차. 악성코드 분석 실습(2) (1) | 2024.10.23 |
---|---|
리팩토링 14주차. 악성코드 분석 실습 (1) | 2024.10.10 |
리팩토링 12주차. 악성코드 분석 환경 구성 & 악성코드 샘플링 웹사이트 (1) | 2024.09.24 |
리팩토링 11주차. 악성 코드 분석 방법 (1) | 2024.09.10 |
리팩토링 10주차. VirusTotal (2) | 2024.09.02 |