'보안'에 해당되는 글 5건

  1. 2012.07.05 악성코드 분석 환경 구축 (4)
  2. 2012.06.28 악성코드 분석 환경 구축 (3)
  3. 2012.06.27 악성코드 분석 환경 구축 (2)
  4. 2012.06.27 악성코드 분석 환경 구축 (1)
  5. 2012.06.26 Capture BAT 2.0 기본 사용법

악성코드 분석 환경 구축 (4)

보안/악성코드 분석 2012. 7. 5. 14:16

이제 앞의 내용까지 네트워크 설정부분까지는 정리가 끝났다. 이제 물리 컴퓨터 설정으로 내용은 아래와 같다.


 악성코드 분석을 위해 가상화 컴퓨터나, 물리 컴퓨터에서 악성코드 실행한다. 분석이 완료된 후, 다음 분석을 위해 컴퓨터를 원상복구시켜놔야한다. 

 가상화 컴퓨터는 가상화 소프웨어 기능 중, 스냅샷이라는 것을 이용해, 악성코드가 실행되기 이전으로 돌아가면되는데, 물리 컴퓨터는 스냅샷이라는 기능이 없고, 복구를 위한 소프트웨어를 쓴다. 그 소프트웨어는 대표적으로 3가지가 있는데, Truman, Deep Freeze, FOG가 있다.이번 장부터는 Deep Freeze, Truman, FOG를 설명한다.


Deep Freeze

 Deep Freeze는 해석해보면 "깊은 얼림"으로, 물리 컴퓨터인 윈도우 컴퓨터에서 보이지않은 시스템 파일들을 영구적으로 변하지 않게 꽝꽝 얼려버린다는 소프트웨어이다. 한마디로 내 컴터를 PC 컴터처럼 만들어, 막 이상한 거를 설치하고, 장난을 쳐도 재부팅하면 Deep Freeze 활성화시점으로 돌아 간다는 것이다. 

 해당 소프트웨어는 상용 소프트웨어로 스탠다는 엔터프라이즈로 나뉜며, 설치는 물리 컴퓨터 안에 설치하는 것으로, 우리 여기서 해볼것은 물리 컴퓨터 안에 스탠다드 평가판을 설치해 한번 체험해보자.


 Deep Freeze 설치

  step 1. http://www.faronics.com/en-uk/standard/deep-freeze_en-uk/?에 접속해서 DeepFreeze를 다운받아주자.

  step 2. 그리고 가볍게 클릭클릭 더블 클릭하여, 설치한다. (*** 설치 중간에 꽝꽝 얼리고 싶은 드라이버를 선택 !) (*** 설치 중간 우린 평가판으로 체험해볼거니 키넣지말고 아래 박스 체크)


- 그림 1. DeepFreeze 설치 -

 


 Deep Freeze 설정

  비밀번호 설정 : 설치 후, 재부팅하고 나면 Deep Freeze 비번을 설정하는 창이 나오는데, 그 때 비번을 설정해준다. 다른 방법으로는 오른쪽하단 곰돌이 트레이드를 Shift + 더블클릭을해서 설정창으로 들어가 비번을 설정할 수 있다.

  Deep Freeze 모드 비활성화 : 바탕화면 오른쪽 하단의 곰돌이 트레이를 Shift + 더블클릭하여 비밀번호를 입력하고 들어가서 보면, 아래의 그림과 같은 창이 하나 뜬다. Deep Freeze 모드 비활성화는 아래 Status on Next Boot 박스 안 Boot Thawed on Next나 Boot Thawed로 설정하여 비활성화한다. 

둘의 차이점은 전자는 옆에 Reset 박스를 이용하는 것보니, Deep Freeze 비활성화 기준을 몇번 리셋까지 비활성화인가는 말하는 거고, 후자는 아예 몇번의 재부팅에 상관없이 계속적으로 비활성화 시키는 설정이다. 


- 그림 2. Deep Freeze 설정 -


 Deep Freeze 주의사항

  Deep Freeze 사용할 경우 단순 시스템 복구프로그램이며, SeDebugPrivilege, SeSystemtimePrivilege 같은 권한을 얻지 못한다. 그래서 커널을 공격하는 악성코드의 경우, 악성코드 감염되고, 컴퓨터 재부팅 시, Deep Freeze가 시스템 복구를 못한다.


악성코드 분석가 참조 ~~ 계솎~



'보안 > 악성코드 분석' 카테고리의 다른 글

악성코드 분석 환경 구축 (3)  (0) 2012.06.28
악성코드 분석 환경 구축 (2)  (0) 2012.06.27
악성코드 분석 환경 구축 (1)  (0) 2012.06.27
:

악성코드 분석 환경 구축 (3)

보안/악성코드 분석 2012. 6. 28. 15:05

네트워크 트래픽 캡처와 분석

 앞의 설정으로 윈도우에서 모든 패킷은 컨트롤러로 가게 된다. 

이제 컨트롤러에서 이 패킷을 잡아서 분석을 해야하는데, 패킷 캡처(지나가는 패킷 잡기), 분석 프로그램은 세 가지가 있다. wireshark, tshark, tcpdump. 그리고 부가적으로 특정 의심 트래픽에 대해 경고를 위해 Snort IDS도 사용된다.


 wireshark

  wireshark는 네트워크 프로토콜 분석기로, 단순 패킷 캡처뿐만 아니라, 수백 개의 프로토콜에 대해 심층 분석을 할 수 있다.

  설치 방법 : $sudo apt-get install wireshark 

  (※ 인터넷이 연결되야겠죠 ? 앞에 host-only 모드서 NAT으로 바꾸고 설치해주세요.) 

- 그림 1. wireshark 설치 -


 tshark

  tshark는 wireshark의 CUI 모드라 생각하면 된다.

  설치 방법 : $sudo apt-get install tshark

- 그림 2. tshark 설치 -


  실습 : eth0 인터페이스에서 60초 동안 패킷을 캡처하는 방법 => $sudo tshark -i eth0 -a duration:60 -w output.pcap


   패킷을 캡쳐하면, 나온 결과물을 wireshark나, tshark로 분석하면 된다.(※ ㅜ ㅜ 다운받은 tshark가 버그가 있어서 실습해보진 못했네요 ㅠ)


 tcpdump

  wireshark나 tshark 같은 확장 프로토콜 분석기를 포함하고 있진 않지만, 옛날부터 사랑을 받아온 도구로 기본적인 패킷캡처와 분석을 한다.


  설치방법 : $sudo apt-get install tcpdump (※ 이미 설치되어 있을 수도 있다.)


  실습 : eth0 인터페이스에서 172.16.172.138로 오가는 패킷을 캡처하는 방법 

  => $sudo tcpdump -i eth0 -s 0 -w output.pcap host 172.16.172.138

- 그림 3. tcpdump 실습 -


 Snort IDS

  위까지 이제 패킷캡쳐, 분석은 끝나고 부가적인 '특정 의심 트래픽'에 대한 경고를 위해 Snort IDS를 설치한다. 운영 환경에서 IDS가 존재한다면, 기업 네트워크에서 동일하거나 유사한 악성코드가 존재할 경우 어떤 종류의 경고가 발생하는지를 알 수 있다.


  설치 및 시그니처 추가

   step 1. $sudo apt-get install snort

- 그림 4. Snort IDS 설치 -


   step 2. 처음 설치시 기본 설저으로 본인의 네트워크 대역을 적어주자

- 그림 6. Snort IDS 설정 -


   step 3. $sudo wget -P /etc/snort/rules http://rules.emergingthreats.net/open/snort-2.9.0/emerging-all.rules

- 그림 7. 시그니처 다운 -


   (※ 위의 그림은 시그니처를 다운받는 방법에 관한 그림이고, 다른 시그니처를 파일을 얻어서 설치하실분은 http://rules.emergingthreats.net에 접속하여, 원하는 시그니처를 받아서 업데이트해보아요.)


   step 4. $sudo echo 'include $RULE_PATH/emerging-all.rules' >> /etc/snort/snort.conf

- 그림 8. 시그니처 추가 -


   (※ 저는 sudo를 같이 써서 추가하려 했는데, 자꾸 허가거부가 떠서 걍 sudo -s를 이용해서 시그니처 추가했습니다.)


   step 5. $sudo /etc/init.d/snort start 

- 그림 9. Snort 서비스 실행 -


  여기까지 새로운 시그니처가 추가되고 서비스도 올라가 있는 상태이다. 

 로그는 /var/log/snort에 항상 남고, 기본적으로 IDS 시그니처에 탐지되면 

 'alert'라는 탐지된 패킷의 정보를 가진 파일이 생긴다. 

  추가적으로 더 적용해야하는 부분은 아래와 같다

  - 필요에 따라 시그니처와 전체 룰셋을 활성화하거나 비활성화하기

  - 업데이트된 시그니처 유지를 위한 oinkmaster 설정하기

  - MySQL 데이터베이스에 로그와 경고를 작성하기 위해 --with-mysql 플래그를 사용한 Snort 컴파일하기. 이 경우 BASE를 설치한 후 웹 인터페이스로 경고를 열람하고 분석할 수 있다.


INetSim


 위의 과정까지 패킷을 잡아서 분석까지 했다. 이제 이 패킷을 또 어떻게 하느냐? 

 INetSim 이라는 프로그램을 이용하여, 악성코드가 생성한 트래픽을 로깅한다. INetSim는 기본적인 악성코드 트래픽 로깅(IDS 시그니처나 방화벽, 웹 프로시 로그에서 찾을 수 있는 정보)과 악성코드가 자주 통신하는 다양한 서비스를 시뮬레이션 할 수 있다.


 설치하기

  step 1. http://www.inetsim.org/requirements.html 로 접속하여 자신에게 없는 라이브러리를 다운받아서 설치

- 그림 10. 라이브러리 설치 -


  step 2. $wget http://www.inetsim.org/downloads/inetsim-1.2.tar.gz

그림 11. inetsim 다운로드 -


  step 3. $sudo groupadd inetsim

- 그림 12. inetsim 그룹추가 -


  step 4. $tar -xvf inetsim-1.2.tar.gz

- 그림 13. inetsim 압축풀기 -


  step 5. step 4에서 압축 푼 폴더로 이동하여 $sudo ./setup.sh 명령

- 그림 14. 진짜 설치 -


  step 6. 이제 입맛에 맞게 conf/inetsim.conf 파일의 설정을 변경하는데, 기본적으로 INetSim이 실행되고 있는 컨트롤러 시스템의 IP 주소 변경 (conf 폴더로 이동 후 $vi inetsim.conf)

- 그림 15. 설정 변경(1) -

   위의 그림과 같이 'service_bind_address [자기 주소]' 형식으로 추가해준다.


  step 7. 아직 설정이 끝나지 않았다. 아래 그림과 같이 redirect_enabled 값을 yes로

- 그림 16. 설정 변경(2) -

   위의 그림과 같이 'redirect_enabled yes' 추가


  step 8. 마지막 설정이다 리다이렉션을 하지 않을포트를 redirect_exclude_port 값으로 추가 대표적으로 22추가. 그래야 SSH로 컨트롤러 접속 가능

- 그림 17. 설정 변경(3) -

   위의 그림과 같이 'redirect_exclude_port tcp:22' 추가


  step 9. $sudo ./inetsim

   드디어 실행이다.. 윈도우에서 악성코드를 실행하면 INetSim은 악성코드 활도에 대한 로그를 기록한다. log/service.log에 기록이 남는다. 예를 들어 윈도우에서 인터넷을 접근했다하면, INetSim 서버가 기본 sample.html로 요청에 대해 응답을 한다. 이는 페이크 모드로 특정 HTML 내용으로 응답하게 하려면 inetsim.conf에서 리얼 모드로 설정한다.




끝 ~






 


'보안 > 악성코드 분석' 카테고리의 다른 글

악성코드 분석 환경 구축 (4)  (0) 2012.07.05
악성코드 분석 환경 구축 (2)  (0) 2012.06.27
악성코드 분석 환경 구축 (1)  (0) 2012.06.27
:

악성코드 분석 환경 구축 (2)

보안/악성코드 분석 2012. 6. 27. 11:37

개인 연구실의 네트워크 설정


 악성코드 분석을 하기위한 연구실의 네트워크는 매우 중요하다. 이 그림을 다시보자

- 그림 1. 구성도 -


  위의 그림을 보면, 물리 컴퓨터를 하나 쓰는데, 운영체제는 윈도우를 쓴다고 가정하고, 

  컨트롤러는 우분투를 쓴다고 가정할시, 각각의 운영체제의 IP는 아래와 같이 기본적으로 세팅한다.

  (※ 저는 vm웨어로 두 개의 운영체제를 돌렸는데 하나는 물리 컴퓨터인 윈도우로 하였고, 

   다른 나머지하는 우분투 12.04 버전으로 사용했습니다. 네트워크는 host-only 모드에서 진행했습니다.)


 네트워크

 값

 컨트롤러 IP

 172.16.176.130

 윈도우 컴퓨터

 172.16.176.138

 넷마스크  255.255.255.0
 DNS

 172.16.176.2

 게이트 웨이

 172.16.176.2

- 표 1. 기본 네트워크 구성 -


  이러한 구성을 한뒤 서로 ping을 날려보고 양방향 통신을 확인한다.

  (※윈도우는 방화벽꺼야 ping 받아줘요) 통신이 잘되면다면, 기본적이 셋팅은 끝이나고 이제 윈도우에서 

  날아가는 모든 패킷이 컨트롤러를 거쳐 전송되게 해야한다. 그 방법으로 아래와 같은 방법을 사용한다.


 IP 포워딩

  IP 포워딩을 통해 윈도우에서 날아가는 모든 패킷을 컨트롤러가 받고 정상적으로 패킷의 목적지로 

  날려주는 일이다. IP 포워딩을 하기 위해선 컨트롤러와 윈도우의 설정이 필요하다.


 컨트롤러 설정

   컨트롤러가 해줄 설정은 받은 패킷을 목적지로 정상적으로 날려주는 것이다.

   step 1. $sudo su , #echo 1 > /proc/sys/net/ipv4/ip_forward 명령어를 차례로 입력하여 

   IP 포워딩을 활성화 한다.

- 그림 2. IP 포워딩 설정 -


   step 2. $sudo iptables -P FORWARD ACCEPT 명령어를 이용하여, IP 포워딩시 패킷이 정상적으로 

   나갈 수 있도록 방화벽정책을 설정한다.

- 그림 3. 방화벽 설정 -


  윈도우의 설정

   윈도우에서 설정해줄 것은 윈도우에서 나가는 패킷이 모두 컨트롤러가 가게 하는 일이다.

   step 1. 실행 창에서 ncpa.cpl로 네트워크 관리로 들어간다.


- 그림 4. 실행창 ncpa.cpl 명령 -


   step 2. 네트워크 속성으로 들어가 아래 그림과 같이 IP 설정을 한다. 

   게이트 웨이를 컨트롤러로 함으로써, 윈도우에서 나가는 모든 패킷들이 컨트롤러로 향한다.

- 그림 5. IP 설정 -


이렇게 설정만해줌 이제 윈도우에서 나오는 패킷은 모두 컨트롤러로 ~~ 

구축은 또 다음에 계속.....



- 참조 : 악성코드 분석가의 비법서

'보안 > 악성코드 분석' 카테고리의 다른 글

악성코드 분석 환경 구축 (4)  (0) 2012.07.05
악성코드 분석 환경 구축 (3)  (0) 2012.06.28
악성코드 분석 환경 구축 (1)  (0) 2012.06.27
:

악성코드 분석 환경 구축 (1)

보안/악성코드 분석 2012. 6. 27. 11:27

악성코드를 분석을 하기 위한 개인 연구실을 구축해보자.


- 그림 1 개인 연구실 구성도 -



 물리 컴퓨터 : 악성코드를 실행할 윈도우 기반의 물리 컴퓨터로, Deep Freeze을 이용한 감염 예방, 

 Truman와 FOG을 이용한 이미지 복구하여, 악성코드를 분석한다. 해당 물리컴퓨터는 악성코드가 가상 환경을 

 탐지할 경우 유용하게 사용된다.


 가상 컴퓨터 : 악성코드를 실행한 윈도우 기반 가상 머신으로, 악성코드에 감염이 되어도 얼마든지 

 이전 상태로 돌아갈 수 있어, 일반적인 악성코드 분석에 많이 쓰인다. 또 호스트라고 불리기도 한다.


 컨트롤러 : 리눅스 기반의 물리 컴퓨터로, 물리 컴퓨터, 가상 컴퓨터를 통제하기 위한 컴퓨터이다. 

 물리 컴퓨터에서 FOG를 사용했다면, 컨트롤러를 경우에 따라 FOG 서버라 부르기도 한다.


구축시 주의사항

  

  악성코드 분석시 격리된 환경 만들기 때 주의할 사항은 아래와 같다


   - 가상화 소프트웨어는 항상 최신버전이여야한다. 가상화 소프트웨어에 존재하는 취약점으로 인해, 

   악성코드가 가상화 소프트웨어를 실행시키고 있는 로컬 호스트를 감염 시킬 수 있다.


   - 격리된 환경에서 내부 패킷을 차단할 수 잇게 방화벽 설정을 한다.


   - 실행된 악성코드가 인터넷으로 정송되지 못하게 가상 네트워크 카드를 비활성화하고, 

   host-only 네트워크 설정을 사용


   - USB 드라이버와 같은 이동식 디바이스 접근을 불가능하게 하고, 로컬 호스트와 악성코드를 

   실행시킬 컴퓨터 사이에는 공유 폴더를 비활성화한다.


   - 트로이목마에 감염시, 분석자의 신원을 드러낼 수 있는 정보로 시스템을 설정하지 않는다.

   

전체적인 구성이 이런식으로 진행된다. 아래 장에서는 세부적으로 네트워크와, 물리 컴퓨터의 사용에 대해 상세히 알아보자.





- 악성코드 분석가의 비법서를 참고하였습니다.


'보안 > 악성코드 분석' 카테고리의 다른 글

악성코드 분석 환경 구축 (4)  (0) 2012.07.05
악성코드 분석 환경 구축 (3)  (0) 2012.06.28
악성코드 분석 환경 구축 (2)  (0) 2012.06.27
:

Capture BAT 2.0 기본 사용법

보안/Tool 2012. 6. 26. 14:30

Capture BAT 

 Win32 OS를 위한 동적 분석툴이다. 

이 툴은 일반적인 윈도우 동작들은 잡지않고 정확히 악성코드의 동작만 잡는다. 

사용하는건 Capture BAT을 실행 중인 상태서 악성코드를 실행시켜, Capture BAT이 악성코드의 행동을 분석 


설치 방법

 step 1. https://www.honeynet.org/node/315 에서 Capture BAT 2.0 다운받아 설치

 (실행시 적어도 xp sp2이상이나, 비스타이상 필요)

 step 2. the Microsoft Visual C++ 2005 Redistributable Package 다운받아 설치

 step 3. the WinPcap 4.0.1 다운받아 설치


명령어 

 C:\Program Files\Capture > CaptureBAT.exe -c -n -l C:\temp\output.txt

  옵션의 의미 -c : 수정되거나, 삭제된 파일을 캡쳐

                 -n : 네트워크 활동을 캡쳐

                 -l : 구체적인 위치에 대한 결과를 저장

- 그림 1.Cature BAT 실행 -


  물론 실행 전에 C드라이브 아래에 temp라는 폴더를 만들어준다. 위의 그림이 악성코드의 동작을 분석하기 

 위한 대기 상태이고, 이제 이 상태에서 실행 악성코드를 실행

 예시를 위해 Zues v2 악성코드 실행 ~~~~~~~~


~~~~~~~~~~~~~~~~~~~~~~~~~  실행 ~~~~~~~~~~~~~~~~~~~~~~~~~~~


쭉 실행이되고 Capture BAT을 이제 컨트롤 + C로 꺼준다음, C:\temp\output.txt를 확인


그리고 C:\Program Files\Capture 폴더안 log라는 폴더를 보면 악성코드 실행되면서 만들어지거나, 지워진 파일들이 있다.


확인 한번 해보자.


- 그림 2. output.txt -



일단 Zeus를 실행 시킨 뒤부터 봐야니 'Zeus' 검색해주고 그 다음 줄부터 한줄씩 보면서 분석 

언듯 봐도 제우스야 왜 그리 레지스트리를 건들였니 ㅠㅠ


그리고 C:\Program Files\Capture 폴더안 log라는 폴더를 확인해보자


- 그림 3. pcap 파일 -



pcap 파일이 보인다. 위에서 -n 옵션을 주고 실행시켜서 악성코드가 던지는 패킷을 잡았나보다. 

보고 싶으면 'wireshark'를 깔아서 분석해보자 다음 그 옆에 있는 deleted_files 폴더를 보자.


폴더 안을 보면 꽤나 많은 양의 파일들이 있는데... 하나하나 분석해보면 좋지만, ㅋ 

저는 대표적으로 배치 파일이 하나 보이네요. 

배치 파일안 명령어는 악성코드와 자기 자신을 삭제하는 명령어가 들어가 있네요. 

즉, 악성코드가 다 실행되고 나면, 알아서 자기가 자기자신을 삭제 ㅡ. ㅡ


-그림 4. bat 파일 -


끝 ~






: