악성코드를 분석하기 위해서는 안전한 실험실(Lab) 환경이 필요하다. 물론 거창한 것은 없고 가상화 프로그램을 이용하면 쉽게 분석 환경을 구축할 수 있다. 다음의 조건을 충족시켜야 안전한 분석이 가능하다.
- 사용하는 가상화 프로그램은 최신 버전으로 수정 전의 취약점이 없어야 한다.
- 악성코드를 실행시키는 경우 모두 가상머신에서 실행시킬 수 있어야 한다.
- 분석 환경은 외부와의 모든 통신을 차단시킬 수 있어야 한다.
- 각종 리버싱, 패킷 분석 등의 분석 작업이 가능해야 한다.
요즘은 시대가 좋아져서인지 한 번에 이걸 다 구축하는 FLARE VM 같은 것도 나왔는데, 하나하나 구축하기 귀찮다면 참고하면 좋다. 다만 좀 많이 무겁다.
악성코드 분석 환경을 구축하기 위해서는 가상화 프로그램을 사용해야 한다. 가상화 프로그램은 어떤 것이든 가능하지만, 여기서는 버추얼박스(Virtual Box)를 사용했다. 하지만 편한 다른 가상화 프로그램이 있다면 사용해도 된다.
두 개의 가상머신을 생성해서 하나에는 윈도우7을 설치하고 다른 하나에는 칼리 리눅스를 설치해서 준비한다. 이미 설치된 가상머신이 있다면 복제만 하면 된다.
잘 모르겠다면 다음의 자료를 참고하면 진짜 쉽게 나와 있다.
칼리 리눅스를 시작해보자! 칼리 리눅스 설치!
버추얼박스 윈도우7 설치 따라해봐요
설치했다면 게스트 확장을 설치해주는게 좋다. 파일을 옮기거나 창 크기를 변경하는 등의 작업에 필요한데 설치하는게 편하다. 방화벽도 해제하는게 좋다. 작업이 끝났다면 스냅샷을 찍어서 언제든지 되돌릴 수 있도록 한다.
혹시 방화벽 끄는 방법을 모른다면 이걸 참고하면 된다.
윈도우7 방화벽 해제 방법 해제하기 비활성화
앞에서 말한 것처럼 악성코드 분석 환경은 외부와의 통신을 차단시킬 수 있어야 한다. 또한, C2(C&C, Command & Control, 악성코드를 조종하는 서버)의 역할을 시뮬레이션하고 패킷 분석을 수행하는 등의 작업에 관심이 있다면 리눅스 머신과 악성코드를 실행시킬 윈도우 머신이 서로 통신이 가능해야 한다. 이 조건을 만족시키면서 네트워크를 설정해야 한다.
버추얼박스 기준 파일(F) -> 호스트 네트워크 관리자(F)에 들어간다.
위와 같은 화면에서 만들기(C)를 선택하여 새 호스트 전용 어댑터를 만든다.
이제 위 화면에서 DHCP 서버 부분을 체크해준다. 그리고 자동으로 어댑터 설정(A)를 체크한 다음 적용을 누른다.
이제 윈도우 머신과 리눅스 머신 모두 설정(S) -> 네트워크에서 다음과 같이 설정한다.
이제 두 머신을 모두 실행시킨 다음 ipconfig(윈도우), ifconfig(리눅스)를 실행시켜서 각자의 ip 주소를 확인한다. 참고로 여기서 두 머신의 ip 주소는 반드시 다르게 나와야 한다. 혹시 같게 나온다면 다시 시작해야 한다. 그래도 해결하지 못했다면 질문하면 된다.
서로 ping 명령어로 연결이 가능한지 확인한다. 혹시 연결에 실패한다면 맞게 설정하였는지 확인한 다음 질문하면 된다.
인터넷은 접속 못하는게 정상이다. 악성코드가 인터넷으로 퍼지는 것을 방지하기 위해서 이렇게 설정한 것이다. 인터넷 연결이 필요할 때에만 네트워크 설정을 NAT로 다시 바꿔준 다음 인터넷 작업을 하고 다시 돌려놓으면 된다.
분석에는 여러 프로그램이 필요하다. 하지만 그 종류가 많아서 필요할 때 따로 깔아주면 된다. 또한 앞에서 칼리 리눅스와 통신 가능하도록 하였기 때문에 패킷 분석 도구 같은 것은 칼리 리눅스에 있는 것을 이용하면 되기 때문에 비교적 설치할게 적다. 분석 프로그램 뿐만 아니라 압축이나 웹 브라우저도 목록에 포함되어 있다.
여기 있는 프로그램을 설치해주면 된다. 더 좋은 걸 안다면 그걸로 설치하면 된다.
파이썬은 오류로 인해서 구버전을 설치해야 할 수도 있다.
압축 해제 프로그램 반디집(Bandizip)
윈도우 시스템 도구 모음(Sysinternals Sutie)
웹 브라우저 크롬(Chrome)
헥스 에디터(HxD)
텍스트 에디터 메모장++(Notepad++)
올리 디비거(OllyDbg)
PE 파일 분석 프로그램(exeinfo PE)
파이썬 3.x 버전(Python 3.x)
기드라나 IDA와 같은 디컴파일러도 필요하다면 설치한다. 필수적인 것은 아니다.
기드라를 설치하고 사용하고 싶다면 다음 자료를 참고하면 된다.
기드라(Ghidra) 디버깅 툴 설치 및 기본 사용 방법
C2 서버의 도메인을 찾거나 가짜 DNS 응답을 보내는 등의 작업을 효과적으로 하기 위해서 윈도우 머신의 기본 DNS 서버를 리눅스 서버로 설정할 것이다.
해당 글을 참고하여 앞에서 확인한 리눅스 머신의 IP 로 DNS 서버를 설정해준다.
윈도우 7 DNS 설정 및 IP 주소 수동 설정하는 방법
여기까지 모두 설치했다면 분석 준비가 끝났다. 필요할 때마다 프로그램을 추가로 설치하면 된다. 악성코드를 실행시킬 때에는 외부와 연결되었는지 꼭 확인하는게 좋다.