3.1 악성코드 분석 방법
01 기초 정적 분석
비실행 실행간략분석 | 기초 정적 분석 | 기초 동적 분석 |
상세분석 | 고급 정적 분석 | 고급 동적 분석 |
악성코드 분석의 네 가지 접근 방법
- 완전 자동화 분석
- 정적 분석 및 동적 분석을 통해 악의적인 행위를 판단
- 자동 분석 수행(파일 생성 수정 과정의 분석, 레지스트리 분석, 네트워크 분석 등)
- 전문가에 의해 분석되는 만큼 상세하거나 정확하지 않을 수 있음
- 악성코드 분석 제공 서비스
- 정적 속성 분석
- 악성코드의 추가 분석을 위해 필요한 단계
- 문자열 헤더 정보, 해시 값, 리소스 정보, 패킹 여부 등 신속하게 정보 획득
- 정보들을 활용해 실행 파일 간의 비교 데이터베이스를 구성
- 바이러스 토탈 서비스
- 대화형 동적 분석
- 레지스트리, 파일시스템, 프로세스. 네트워크 활동을 이해하기 위해 분리된 가상 머신 환경에서 실행하며 분석
- 메모리 분석을 위해 다른 행위를 추가적으로 분석
- 악의적인 행위의 상세한 과정들을 확인
- 분석가들의 분석 시간이 많이 소요
- 수동 코드 역공학 분석
- 위 과정이 완료된 후에 추가적인 정보를 획득하기 위해 분석하는 행위
- 수동 코드 역공한 분석이 필요한 예
- 특정 루틴에 난독화가 되어서 복호화가 이루어지는 부분을 더 분석해 추가적인 정보를 획득
- 악의적인 도메인 이름 생성 과정의 알고리즘 분석
- 행동 분석 과정에서 자신을 숨기고 보여주지 않았던 부분으로 발생되는 다른 기능 이해
3.2.1 기초 정적 분석
- 기초 정적 분석이란?
- 악성코드 분석 시 가장 먼저 진행(악성코드 연구의 시작 단걔)
- 프로그램의 기능을 파악하기 위해 코드나 프로그램의 구조를 분석(프로그램을 실행시키지 않음)
- 분석방법
- 악성 여부를 판단하는 안티바이러스 도구 사용
- 악성코드 판별 해시 사용
- 파일의 문자열, 함수, 헤더에서 개략적인
02 기초 정적 분석 도구
- 악성코드의 지문 확인
- 해시를 이름으로 사용
- 악성코드 식별을 위해 해시 공유
- 식별 여부를 위해 해시 검색
- 문자열 검색
- 프로그램 메시지 출력
- URL 접속
- 특정 위치로 파일 복사
- 패킹 확인
- 패킹 여부를 확인하고 언패킹하여 리버싱을 보다 쉽게 하기 위한 단계
- PE세부 구조를 확인
- 패킹징후
- size of Raw Data(원래 데이터 크기)보다 Virtual Size(가상크기)가 월등히 크다면 다른 파일을 올리기 위함으로 의심해 볼 수 있다.
- 섹션의 이름이 변경됨
- 패킹징후
- DLL 의존성 조사
- Dependency Walker
- Kernel32.dll : 메모리, 파일, 하드웨어 접근과 조작
- Advapi32.dll: 서비스 관리자, 레지스트리 같은 추가 윈도우 핵심 컴포넌트
- User32.dll: 유저 인터페이스(버튼, 스크롤바, 사용자 행위 제어, 반응 컴포넌트)
- Gdi32.dll: 그래픽 보기 및 조작
- Ntdll.dll: 윈도우 커널 인터페이스
- WS2_32.dll: 윈도우 소켓 네트워크
- Wininet.dll: FTP, HTT
- P, NTP와 같은 상위 수준 프로토콜 구현
- Dependency Walker
- 리소스 확인
- 리소스 해커 사용
- 아이콘 섹션
- 메뉴 섹션
- 대화상자 섹션
- 문자열 테이블
- 버전정보 세션
3.2.2 기초 정적 분석 실습
1. virustotal에 분석할 샘플 파일을 올린다.
2. winmd5free를 통해서 해시값을 알아낼 수 있다. (파일끌어오기)
질문2: 이 파일은 언제 컴파일 되었는가?
3. PEview를 확인한다. 2010년 12월 19일을 확인할 수 있다.
질문3: 이 파일이 패킹되거나 난독화 징후가 있는기? 그렇다면 무엇으로 판단했는가?
4. text section을 통해서 확인할 수 있다. raw데이터나 virtual size를 통해서 판단한다. (정상)
5. PEiD로도 확인가능하다. 마이크로 비주얼 C++로 뜨는 것을 보아 패킹이 안되어있는 것을 알 수 있다.
질문5:임포트를 보고 악성코드 행위를 알아낼 수 있는가? 그렇다면 어떤 임포트인가?
6. import adress table로 들어간다. ws2_32→ 소켓통신을 통해서 프로세스를 만들기 떄문에 백도어일 가능성이 있다.
질문6: 감염된 시스템에서 검색할 수 있는 다른 파일이나 호스트 기반의 증거가 존재하는가?
7. strings를 통해 문자열 추출, 위장파일을 만들어서 백도어를 만들려는 것을 볼 수 있음
질문6: 감염된 장비에서 이 악성코드를 발견하기 위해 사용한 네트워크 기반의 증거는 무엇인가?
8. ip 주소를 통해서 탐지한다. 127로 시작하면 다 로컬호스트, 26.152.13가 들어있으면 악성코드 가능성을 판단할 수 있다.
질문7: 이 파일의 목적은 무엇인가: 백도어
3.3.1 기초 동적 분석
01 기초 동적 분석 개요
- 기초 동적 분석이란?
- 프로그램을 직접 실행하여 분석
- 악성코드 분석에서 가장 프로그램의 영향을 쉽게 파악
- 프로그램의 기능을 파악하기 위해 악성코드 실행 전후 상태를 조사 및 분석
- 분석방법
- 악성코드 실습 시 발생하는 호스트/네트워크 환경 구성
- 파일, 프로그램 실행, 레지스트리, 서비스 등 관련 항목 변경 사항 확인
- 실행 시 발생하는 네트워크 트래픽 분석
02 기초 동적 분석 도구
- 프로세스 모니터 : 특정 레지스트리, 파일 시스템, 네트워크, 프로세스, 스레드 행위를 모니터링 하는 고급 도구
- promon의 한계: 특정 gui와 장치 i/0 제어를 통한 루트킷 탐지 불가, 네트워크 행위에 대해 일관성 있는 탐지 불가
- 프로세스 익스플로러 : 프로세스에 관련된 많은 내용을 확인 가능
- RegShot: 두 레지스트리 의 스냅샷을 찍고 비교하는 툴, 악성코드는 자동실행을 위해 레지스트리를 자주 건드림
- INetSim: 가짜 서비스를 제공하기에 최고의 도구, 일반적인 로깅 및 중앙 집중식 제어 기능을 사용하여 다양한 인터넷 서비스를 시뮬레이션 할 수 있음, 알려지지 않은 멀웨어 샘플의 네트워크 동작에 대해 런타임 분석을 수행하기 위한 도구, 실험실 환경에서 멀웨어가 일반적으로 사용하는 인터넷 서비스를 시뮬레이트, http, https, ftp, irc, dns, smtp 등 서비스를 실행
- wireShark 개요 : 네트워크 분석 프로그램, 네트워크 상에서 캡처한 데이터에 대한 네트워크/상위 레이어 프로토콜의 정보를 제공, 패킷을 캡처하기 위해 pcap 네트워크 라이브러리를 사용, 설치가 쉽고, gui 인터페이스를 이용한 간단하게 사용할 수 있다. 다양한 기능 제공
- 와이어샤크 화면
메뉴 설명
File | 캡처 데이터를 열거나 저장 |
Edit | 패킷을 찾거나 표시, 프로그램 전역적인 속성들을 설정 |
View | wireshark 플랫폼의 보이는 모양을 설정 |
Go | 캡처된 데이터의 특정 위치로 이동 |
Capture | 캡처 필터 옵션을 설정하고 캡처를 시작 |
Analyze | 분석 옵션을 설정 |
Statistics | wireshark의 통계 데이터를 사용 |
Telephony | |
Wireless | |
Tools | |
Help | 오프라인 혹은 온라인 도움말 보기 |
3.3.2 기초 동적 분석 실습
와이어샤크 사용
동적분석초기 스냅샷을 찍어둔다.
해당 악성 코드를 실행시킨 후 탐지되는 모습을 볼 수 있다. 두번째 샷을 찍고 compare(에러가 날 경우 데스크탑으로 경로 변경)
레지스트에 추가된 부분과 변경된 부분을 확인할 수 있다.
네트워크는 특별히 별 반응 없어보인다.
파일을 불러와서 무언가 시도하는 것을 볼 수 있다.
vmx32to64.exe를 통해서 무언가 하는 것을 볼 수있음. 파일을 새로 써준 흔적과 레지스트리 오픈과 셋팅한 모습도 확인할 수 있다.
레그샷에 찍힌 흔적을 볼 수 있음
해쉬값이 같은 것을 통해 자기 자신을 자동실행하도록 설계 되어있다고 볼 수 있다.
'4-3. 2023-2 심화 스터디 > 윈도우 악성코드 분석' 카테고리의 다른 글
[2023.11.11] 인프런 윈도우 악성코드(malware) 분석 입문 과정 강의 수강 - 섹션 4 (1) | 2023.11.17 |
---|---|
[2023.11.04] 인프런 윈도우 악성코드(malware) 분석 입문 과정 강의 수강 - 섹션 3 (0) | 2023.11.10 |
[2023.10.07] 인프런 윈도우 악성코드(malware) 분석 입문 과정 강의 수강 - 섹션 0, 섹션 1 (1) | 2023.10.09 |
[2023.09.23] 인프런 윈도우 악성코드(malware) 분석 입문 과정 강의 수강 - 섹션 0의 1.1~1.5 (0) | 2023.09.28 |