정보보안 직무에 몸을 담구면서 악성코드 분석에 관심이 생겼다.
현재 보안담당자로 근무하고 있지만, 아무래도 나는 컴퓨터와 좀 더 친하게 지내고, 컴퓨터를 이해하고 분석하는 일을 좋아하는 것 같다. 실제로, 회사 업무를 볼 때도, 특정 현상에 대해 원인을 분석하고, 그것을 기술적으로 해결하는 일을 할 때는 어느순간 몰입하는 나를 발견하고는 한다. 😃
앞으로 꾸준하게 악성코드 분석에 대해 공부하고, 그 내용에 대해 틈틈이 정리하고자 한다.
올해 목표는 내가 분석한 Windows 프로그램들에 대해 포트폴리오까지 만들어보는 것이다.
악성코드 분석 공부를 시작하기 위해 책 한 권을 구매했다.
예전에 '리버싱 핵심원리'(일명 나뭇잎책)라는 도서로 공부한 적이 있는데, 생각보다 진입장벽이 높고
그래서 유튜브와 구글링을 통해 악성코드 분석에 입문하기 좋은 책을 찾아보았다.
악성코드 분석을 처음 공부할 때, 다른 큰 사전지식이 없어도 쉽게 공부할 수 있다고 하여 구매했다.
분석 공부를 하기 위해 가장 먼저 해야할 것은 환경구성이다.
어떤 IT 공부를 하든 가장 시간이 오래 걸리고, 헤매는 단계가 바로 환경구성이다.
이에 이번 구축과 동시에 블로그 포스팅을 통해 나중에 참고용으로 작성한다.
VMware 설치
가상머신을 구축하기 위해 VirtualBox와 함께 가장 많이 사용되는 프로그램인 VMware 설치 단계이다.
VMware Workstation Player 17 다운 URL:
https://www.vmware.com/kr/products/workstation-player/workstation-player-evaluation.html
큰 어려움없이 비상업용을 다운 받아 사용하였다.
과거에는 Pro 버전도 무료로 배포했던 것 같은데, 지금은 Player만 무료로 사용할 수 있는 것 같다.
리눅스 VM 환경 구축
1. VM 설치(Ubuntu 16.04)
가상 이미지 다운로드 URL:
https://releases.ubuntu.com/xenial/
중요한 것은 Network Adapter 값이 NAT. 우선 빠른 세팅을 위해 NAT로 설정하고, 추후에 변경
● 드라이브 용량: 40.0GB
● 메모리: 2GB
● 프로세스 코어수: 2
기분좋게 다 설치했는가 싶었는데,, VMware tools 가 안 깔린다.
VMware tools는 Host와 Guest PC간 파일 및 텍스트 복사 붙여넣기, 드래그 앤 드롭과 같은 기능을 손쉽게 사용할 수 있게 해주는 프로그램인데, Install VMware Tools 기능이 비활성화(disabled) 되어 있었다.
한 시간 넘게 구글링하여 찾아낸 결과, 가상 호스트의 여유분의 CD/DVD를 만들어줘야 한다는 것이었다.
다음 과정을 통해 해결하였다.
1. 모든 플로피 디스크, CD 드라이브 삭제
2. 새로운 CD 드라이브 추가
3. Install VMware Tools 버튼 활성화 확인
2. 필요 패키지 설치
$ sudo apt-get update
$ sudo apt-get install python3-pip
$ pip3 install --upgrade pip==20.3
$ python3 -m pip install --upgrade pip
책은 python2를 사용하였지만, 나는 python3가 더 익숙하기에 pip3를 사용하였다.
pip 버전 명시를 안 해주게 되면, 8.0대 버전이 다운 받아지는데, 최신 버전으로 한 번에 업그레이드가 안 된다.
그러므로 반드시, 20.3 명시를 해주어야 한다.
다음으로 필요한 패키지와 모듈들을 설치해준다... 겁나 많다... -ㅅ-
아래 과정을 진행하면서 정말로 많은 에러들이 발생하였지만, 그건 각자 알아서 해결하길...
대부분 다른 명령어를 입력해주어야 하거나 의존성 문제이다.
$ sudo apt-get install python3-magic
$ sudo apt-get install upx
$ sudo pip3 install pefile
$ sudo apt-get install yara
$ sudo apt-get install python3-yara
$ sudo apt-get install ssdeep
$ sudo apt-get install build-essential
$ sudo apt-get install libffi-dev
$ sudo apt-get install python3
$ sudo apt-get install python3-dev
$ sudo apt-get install libfuzzy-dev
$ sudo apt-get install python3-ssedeep
$ sudo apt-get install python3-cffi
$ sudo apt-get install wireshark
$ sudo apt-get install tshark
마지막으로 inetsim 설치 진행
$ sudo su
# echo "deb http://www.inetsim.org/debian/ binary/" > /etc/apt/sources.list.d/inetsim.list
# echo "deb-src http://www.inetsim.org/debian/ source/" >> /etc/apt/sources.list.d/inetsim.list
# wget -O - https://www.inetsim.org/inetsim-archive-signing-key.asc --no-check-certificate | apt-key add -
# apt update
# apt install inetsim
3. 네트워크 설정
마지막으로 NAT로 되어있던 네트워크 인터페이스를 Host-only로 변경해준다.
악성코드 분석 실습을 진행하면서 분석환경에서의 악성코드가 내 호스트 PC로 전이되지 않게끔 네트워크를 완전 분리해주어야 한다.
$ sudo vi /etc/network/interfaces
---interfaces 내용을 다음과 같이 수정---
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet static
address 192.168.1.100
netmask 255.255.255.0
위와 같이 수정 후, 재부팅
4. inetsim 바인딩 수정
지금은 뭔지 잘 모르지만, inetsim에서 인식하는 IP주소를 변경해주어야 한다. (내가 설정한 IP주소로)
$ sudo vi /etc/inetsim/inetsim.conf
---다음과 같이 내용 수정---
#########################################
# service_bind_address
#
# IP address to bind services to
#
# Syntax: service_bind_address <IP address>
#
# Default: 127.0.0.1
#
#service_bind_address 10.10.10.1
service_bind_address 192.168.1.100
#########################################
# dns_default_ip
#
# Default IP address to return with DNS replies
#
# Syntax: dns_default_ip <IP address>
#
# Default: 127.0.0.1
#
#dns_default_ip 10.10.10.1
dns_default_ip 192.168.1.100
inetsim 서비스 재시작
$ sudo service inetsim restart
윈도우 VM 환경 구축
1. VM 설치(Windows 7, Windows 10)
Windows 7의 경우, 구글링을 통해 빠르게 찾을 수 있다.
Windows 10의 경우, microsoft에서 제공하는 iso 이미지 도구를 통해 생성할 수 있다.
URL:
https://www.microsoft.com/ko-kr/software-download/windows10
이후 Ubuntu와 같은 방법으로 VMware Tool 을 설치해준다.
Windows7은 또.. 에러가 발생하면서 정상적으로 설치되지 않는데,
https://www.catalog.update.microsoft.com/search.aspx?q=kb4474419
에 접속하여 KB4474419를 업데이트하면 거짓말처럼 된다..!!!😋
2. Python3 설치
Windows용 Python3 공식 사이트:
https://www.python.org/downloads/windows/
Windows 7은 Python3 installer 실행이 3.6부터 되는 것 같다. installer가 존재하는 버전인 3.6.8을 다운로드하였다.
Windows10도 같은 설치파일로 Python3 설치 진행!!
3. 네트워크 설정
Windows 7, 10 모두 NAT → Host-only로 변경 후, 다음과 같이 IP주소 설정
실행창에 ncpa.cpl 입력 후, 이더넷 우클릭 - 속성 - 인터넷 프로토콜 버전 4(TCP/IPv4) 클릭
[Windows 7]
IP 주소: 192.168.1.101
서브넷 마스크: 255.255.255.0
게이트웨이: 192.168.1.100
DNS: 192.168.1.100
[Windows 10]
IP 주소: 192.168.1.102
서브넷 마스크: 255.255.255.0
게이트웨이: 192.168.1.100
DNS: 192.168.1.100
여기서 게이트웨이는 처음에 설치한 Linux PC의 IP 주소이다.
추후 Linux PC에서 실행한 Wireshark를 활용해 트래픽을 모니터링 하려는 것 같다!
4. 방화벽 설정
추후 악성코드 샘플 실행할 때, 방해가 될 수 있는 방화벽을 해제해야 한다.
윈도우 검색에 'Windows 방화벽' (Windows 10의 경우, Windows Defender) 이라고 입력하면 손쉽게 메뉴에 접근할 수 있고, 왼쪽 메뉴바 중 'Windows 방화벽 설정 또는 해제' 를 눌러 모든 방화벽을 비활성화 시켜준다.
환경 구성 확인
이제 다 왔다...
설치한 모든 VM을 실행 시켜준다. (Ubuntu16, Windows 7, Windows 10)
방화벽이 정상적으로 해제 되었다면, 서로간의 통신이 전부 확인되어야 한다.
모든 VM에서 다음 명령어를 수행해보자!
ping 192.168.1.100
ping 192.168.1.101
ping 192.168.1.102
백업
정말 애석하게도 VMware Players는 스냅샷(Snapshot)을 지원하지 않는다...
매번 악성코드 분석을 수행하고, 깨끗한 처음 설치했을 때로 되돌리기 위해 파일을 통째로 백업해야 한다.😭
알집을 통해 열심히 압축해서 정리한다.
VM 3개를 설치하고 구성하는데 하루종일 걸렸다.
역시 환경 구축은 쉽지 않은 작업이다. 가이드대로만 된다면 더 없이 좋겠지만, 항상 예상치 못한 에러가 발생하고, 내 마음대로 되질 않는 것이 환경 구축이다. 시스템 엔지니어들의 고충이 조금이나마 이해가 된다.
가장 힘든 것이 끝났으니 앞으로는 공부만 열심히, 꾸준히 하면 된다!!
'리버싱(Reversing) > '악성코드 분석 시작하기' 정복' 카테고리의 다른 글
[악성코드 분석]#4 어셈블리어와 디스어셈블리 - part(1/3) (0) | 2023.06.28 |
---|---|
[악성코드 분석]#3 동적 분석 - part(2/2) (0) | 2023.06.21 |
[악성코드 분석]#3 동적 분석 - part(1/2) (1) | 2023.06.20 |
[악성코드 분석]#2 정적 분석 - part(2/2) (0) | 2023.06.15 |
[악성코드 분석]#2 정적 분석 - part(1/2) (0) | 2023.06.14 |