Be myself :: 'Malware' 카테고리의 글 목록

달력

32024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'Malware'에 해당되는 글 2건

  1. 2014.07.11 기초 동적분석
  2. 2014.07.10 악성코드 기초 정적분석

기초 동적분석

Malware 2014. 7. 11. 12:50

1 기초 동적 분석

동적 분석은 악성코드를 실행시켜 어떤 행위를 하는지 모니터링 하는 행위이다. 동적 분석은 정적 분석 이후 좀 더 자세한 분석을 위해서거나 패킹되어 있어 정적 분석으로 특별한 정보를 얻을 수 없을 때 수행한다. 여기선 기초 동적 분석과정을 다룰 텐데, 어셈블리를 분석하지 않고 그냥 모니터링 하는 방법을 설명하겠다. IDA로 어셈을 분석하는 부분은 고급 동적 분석부분에서 설명한다.

1 샌드박스
가상환경을 이용하여 실제 시스템의 감염 위험을 줄여 테스트한다. GFI 샌드박스, 아누비스, 죠 샌드박스 등이 있는데 이런 샌드박스는 해당 웹사이트에 악성코드를 보내기만 하면 이해하기 쉬운 형태로 결과를 제공해 초기 분류를 용이하게 한다.
하지만 단점도 존재하는데, 악성코드가 샌드박스 OS에선 동작하지 않는다거나, VM을 탐지해 다른 방식으로 동작한다거나 할 가능성이 있어 샌드박스의 리포트를 너무 믿어선 안된다.

2 악성코드 DLL실행
rundll32.exe툴을 이용하거나 PE 파일헤더의 Characteristics필드를 수정하여 실행파일로 인식하도록 하고, 실행시킨다. PE를 수정해 실행했을 땐, DllMain부분만 실행 되지만, 만약 dllmain부분에서 주요한 악성행위가 일어난다면 분석하기엔 충분하다.

3 프로세스 모니터를 통한 모니터링
Process Monitor 또는 ProcMon는 특정 레지스트리, 파일 시스템, 네트워크, 프로세스와 스레드 행위를 모니터링 할 수 있는 툴이다. ProcMon은 윈도우 시스템콜을 모두 감시한다.

4 프로세스 익스플로러
활성화된 프로세스, 프로세스가 로딩한 DLL 등 다양한 프로세스 특성과 전반적인 시스템 정보를 볼 수 있다. 프로세스명을 더블클릭하면 Properties창이 뜨는데 Image탭에서 Verify옵션은 디스크상의 이미지가 마이크로소프트에서 서명한 바이너리인지 검증할 수 있다. 하지만 메모리 상의 이미지가 아니라 디스크상의 이미지를 검증하므로 완전히 신뢰할 수 없다.

5 Regshot을 이용한 레지스트리 스냅샷 비교
악성코드를 실행시키기 전에 레지스터의 스냅샷을 찍고 실행시키고 난 후 스냅샷을 찍어 두 개의 스냅샷을 비교한다.

6 ApateDNS + netcat or 와이어샤크
악성코드가 C&C서버로 접속하기 위해 DNS쿼리를 날리는데 이 때, 우린 ApateDNS로 가상로컬DNS서버를 설치하여 DNS질의를 받는다. IP를 설정하면 우리가 자체적으로 설치한 웹 서버로 DNS응답패킷을 보낼 수 있다. 즉, DNS서버를 리다이렉션한 다음 와이어샤크나 넷캣을 이용해 패킷을 분석할 수 있다.

7 INetSim
INetSim은 인터넷 서비스를 제공하는 리눅스 기반의 소프트웨어 모음이다. INetSim은 HTTP, HTTPS, FTP, IRC, DNS등과 같은 서비스를 에뮬레이션해 악성코드 샘플의 네트워크 행위를 분석할 수 있다.

2 도구 활용

지금까지 살펴본 툴들을 어떻게 활용하는 지 알아보자.

1. ProcMon을 실행해 악성코드명으로 필터를 설정한다.(시스템콜 확인)
2. 프로세스 익스플로러를 시작한다.(프로세스 확인)
3. RegShot을 이용해 레지스터의 첫 스냅샷을 수집한다.(레지스터 변경 확인)
4. ApteDNS와 INetSim을 사용해 네트워크환경을 구성한다. (네트워크 활동 확인)
5. 와이어샤크로 트래픽을 로깅한다.(네트워크 활동 분석)

'Malware' 카테고리의 다른 글

악성코드 기초 정적분석  (0) 2014.07.10
Posted by flack3r
|

1 기초 정적분석

실행하지 않고 간단하게 파일이 악성코드인지 아닌지 판단하는 방법이다. 다음과 같은 방법들이 있다.

1. 바이러스 토탈을 이용한다.
http://www.virustotal.com/에 접속하여 스캐닝 해본다.

2. 해시
만약 두개의 파일의 해시값이 같다면 두 파일은 완전한 동일한 파일이라는 의미가 된다. 따라서 파일의 해시값을 구해 인터넷에서 확인해 보고 다운로드 받은 파일이 정상적인 파일인지 확인하는 방법이 있다.

3. 문자열 확인
문자열을 확인하여 대략적으로 악성코드가 어떤 일을 하는지 파악 할 수 있다. 예를 들면 IP주소가 적히고 메일시스템 관련 Dll이 로드되어 있다면, 스팸메일을 보내는 악성코드 일 가능성이 높다가 추측할 수 있다.

(strings툴로 확인하였다.)

4. 패킹유무 확인
패킹이 되어있다고 해서 악성코드 인 것은 아니지만, 의심해 볼만하긴 하다. PEiD나 ExeInfoPE등의 툴을 이용해서 패킹을 확인 해 본다.

5. PE구조 분석
어떤 DLL을 이용해 어떤 함수들이 임포트 되어 있는지 확인한다. 물론, 악성파일이 분석가들을 혼돈시키기 위하여 쓸데없는 함수들을 전부 로드시킬 수 있지만, 정적분석으로써의 가치는 지닌다. 이 때, Dependency Walker프로그램을 이용해 임포트된 함수들을 더욱 편리하게 확인 할 수 있다.

'Malware' 카테고리의 다른 글

기초 동적분석  (0) 2014.07.11
Posted by flack3r
|