무료로 악성코드를 무제한으로 다운받을 수 있는 MalwareBazzar 사이트에 접속
최근 24시간 이내에 사람들이 가장 많이 확인한 가운데에 위치한 악성코드 ‘AgentTesla’ 다운로드
이 AgentTesla 악성코드는 첨부파일 실행 시 사용자 계정을 탈취하는 악성코드
MalwareBazzar 사이트에서는 특정 파일의 각 종류별 해시암호와 파일의 크기, 업로드된 날짜 등 다양한 정보 확인이 가능
정보 확인 후 AgentTesla 악성코드 샘플파일 다운로드
겉으로는 pdf파일로 보이나 실제로는 .exe 실행파일인 악성코드
C언어를 이용해 만들어진 실행파일로 보이며,
보통 패킹되어있지 않다면 Not packed라고 뜨는데 그런 글이 없는 것으로 보아 WARN : NET RES : 649.25 KB 로 패킹되어 있다고 추측 가능
Bintext에 나타난 문자열들을 해석하여 악성코드 파일인지 확인 가능
오른쪽 밑에 Save 버튼을 누르면 현재 Bintext 나와있는 형식을 텍스트파일로 저장 가능
위에 Exeinfo PE에서 패킹이 되어있는지 안되어있는지 확실한 정보가 없어 패킹되어있다고 추측만 했었는데,
아래 그림에서 Virtual Size와 Size of Raw Data의 데이터를 비교해보니 둘이 다른 것을 확인할 수 있음
=> 패킹이 되어있다는 뜻
악성코드를 실행하기 전 Net Framework 설치에 계속 문제가 생겨서
동적분석은 실제 악성코드 실행은 못했다는 점 양해 부탁드립니다.
Autoruns은 특정 악성파일을 실행하기 전 스냅샷과 실행 후 스냅샷을 비교하여 악성코드 감염여부를 확인하는 동적분석 방법 중 하나
Open : 파일을 엶
Save : 저장
Analyze Offline System : 오프라인일 때 시스템 분석
Compare : 악성코드 실행 전과 실행 후를 비교
Refresh : 새로고침
Options > Configure Colors로 이동하면 각 프로세스별 색깔이 정의되어 있음
녹색 : 프로세스 실행
빨간색 : 프로세스 종료
분홍색 : 서비스 프로세스
파란색 : 사용자 프로세스
보라색 : 패킹 이미지 파일
무색 : 시스템 영역 프로세스
실행중인 프로세스에 마우스 오른쪽 버튼을 클릭하면 프로세스 강제 종료, 프로세스 재시작, 디버깅, 덤프 등 다양한 기능 제공
Set Priority : 프로세스에 대한 기본 스케줄링, 우선순위 확인 및 설정
Kill Process : 프로세스 강제 종료
Kill Process Tree : 프로세스의 자식 프로세스까지 종료
Restart : 프로세스 재시작
Suspend : 프로세스 일시정지
Debug : 프로세스 디버깅
Create Dump : 프로세스의 전체 메모리 또는 최소한의 메모리를 덤프
Check Virus Total : 프로세스 바이러스 토탈 서비스 검사
Properties : 프로세스 속성
Search Online : 프로세스를 구글 서비스에서 검색
Process Moniter는 프로세스의 분석과 디버깅을 하기 위해 레지스트리, 파일, 프로세스/스레드, 네트워크 동작 등을 캡처하는 프로그램
네모 안에 왼쪽 아이콘부터 순서대로
Capture : 현재 상태 캡처
Autoscroll : 최근 활동한 프로세스 목록 이동
Clear : 프로세스 출력 내용 삭제
Filter : 필터링
Highlight : 강조할 프로세스 표시
Include Process From Window : 모니터링할 프로그램 선택
Show Process Tree : 프로세스 트리 제공
Find : 텍스트 검색
Jump to Object : 레지스트리 이동
SmartSniff는 들어오고 나가는 패킷들을 쉽고 간편하게 볼 수 있는 프로그램
아래 사진에 보이는 것처럼 실시간으로 송수신하는 패킷의 다양한 정보 확인 가능
WireShark 또한 SmartSniff와 유사하게 네트워크 패킷을 캡처하고 분석하는 프로그램
와이어샤크를 실행하면 아래 이미지와 같이 나옴
1. Packet List 영역
수집을 시작한 시점부터 중지할 때까지의 패킷 정보
2. Packet Details 영역
전송되는 패킷에 대한 정보를 계층적으로 보여줌
3. Packet Bytes 영역
패킷에 대한 정밀한 분석 내용을 16진수로 나타냄.
회사 내에서 악성코드 샘플을 수집하는 장비가 있지만 정탐률이 높진 않음.
따라서 다양한 유형을 통해 악성샘플을 수집
따라서 분석 보고서를 작성할 때는 해당 악성코드를 어디서 얻었는지 출처를 반드시 기재하도록 되어있음
정적분석 과정
패킹여부 확인 -> 패킹이 되어있다면 언패킹 -> Bintext로 문자열 확인
패킹된 상태를 Bintext로 분석하면 문자열들이 암호화되어있으서 제대로된 분석이 어려움
문자열을 확인하면 IP, 도메인 주소, 실행파일에 대한 내용, 명령어의 사용이력, 그밖에 여러가지 함수에 대한 정보 등 확인 가능
PEview라는 툴은 전반적인 내용들을 크로스체크하는 목적
파일의 원래 확장자, 파일 유형, 언제 파일이 생성됐는지, 패킹여부, 안에 있는 함수의 여러정보 확인 가능
동적분석의 유형
1. 파일 및 레지스트리 분석 - Autoruns
2. 프로세스 분석 - Process Explorer, Process Moniter
3. 네트워크 분석 - SmartSniff, Wireshark, Currport
동적분석을 할때는 똑같은 분석을 여러번 하면서 악성코드로 인해 발생된
행위가 맞는지 차근차근 천천히 검증작업을 해야함.
따라서 동적분석을 할때는 스냅샷을 잘 이용
Wireshark를 원활하게 사용하기 위해서는 네트워크 기본 지식인 TCP/UDP, TCP의 6개의 플래그 비트, 3-way handshaking, 4-way handshaking, 프로토콜의 포트번호 등을 잘 숙지하고 있어야 함