이메일을 적으시면 보안관련 소식을 받을수 있습니다.
이메일:
작성자: 청정산소
편집자: 엔시스 (sis@sis.pe.kr)


인터넷과 IT분야의 발전과 더불어 그의 역풍으로 요즘의 인터넷 세계를 '악성코드의 홍수'라 할만하다.


  # 악성코드 [惡性─, malicious code]


    악의적인 목적을 위해 작성된 실행 가능한 코드의 통칭으로 자기 복제 능력과 감염 대상 유무에 따라 바이러스,   
    윔, 트로이목마 등으로 분류된다
.

악성코드의 감염경로는 실로 다양하다.

Active X, 메신저, E-mail, USB 등으로 우리가 손쉽게 접할 수 있는 환경이다.


지금부터 여러 가지 악성코드 유포방법 중, 실행파일로 악성코드를 유포하는 원리와 분석 방법에 대하여 알아보자.


그 전에, Windows PE구조와 Packer에 대한 지식이 필요하다.



Win32 Platform에서 실행 가능한 파일을 PE(Portable Excutable) 파일이라고 부른다. 우리가 많이 보는 실행파일인 EXE파일과 동적라이브러리(DLL) 파일을 예로 들 수 있다.



Packer는 PE파일을 실행 가능한 형태로 파일을 압축시켜주는 프로그램을 통 털어서 말하고, 그 종류에는 압축시키면서 프로텍팅(Anti-Debugging, 암호화 등)을 해주는 프로텍터와 단순히 파일 사이즈만 줄여주는 패커 등이 있다.
 


※ 여기서 잠깐!

악성코드를 분석하는데 저런걸 왜 알아야 할까? 그냥 코드나 보면서 분석하면 되지 않을까? 이런 의문점이 드는 사람도 있을 것이다.

대부분의 악성코드는 ‘자기가 컴퓨터에서 어떤 일을 수행하는지 모르게 활동해야 한다.’라는 사명감이 있다. 그래서 악성코드 제작자는 악성코드 스크립트 또는 프로그램을 분석가가 분석하지 못하게 암호화하고 Anti-Debugging기술을 탑재해야 하고 PE구조를 이용하여 코드를 비꼬는 것이다.

백신업체에서 근무하는 분석가들이 Unpacking하여 분석하는 시간을 길게 하여 그 만큼 악성코드의 활동시간을 늘리는 것이다.(와..나쁜 악성코드 같으니라고..!!)


오늘은 Packer의 종류와 대표적인 Packer의 활용법에 대해서 다루겠다.


인터넷상에 떠도는 Packer의 종류는 수십~수백개가 존재한다.

필자의 업무 중 하나는 인터넷상에 떠도는 Packer를 수집하여 샘플을 Packing하는 일이 있다. Packing을 한 샘플을 Ollydbg나 IDA를 이용해 원본 샘플과 비교하여 어떻게 Packing이 되었고, 어떤 기술을 이용했는지 Unpacking하여 분석하는 것이다.


위에서 잠깐 언급했던 Packer의 종류에는 Armadillo, MoleBox, YodaCrypter, Themida, Pecompact 등 프로텍션 기능이 포함된 패커와 UPX, Aspack 등 단순 암호와 파일사이즈를 줄여주는 패커 들이 있다.


사용자들이 많이 쓰는 Packer인 Armadillo에 대하여 자세히 알아보자.

Armadillo는 09.03.23 현재 6.40 release버전까지 출시되었다.


http://www.siliconrealms.com/software-passport-armadillo.html 

이곳에서 다운받을 수 있다.



1. Armadillo를 실행 후 프로젝트를 열어 Packing할 파일을 선택한다.

그림1. Armadillo Project 실행화면

2. 자기가 원하는  Protection Options을 선택 할 수 있다. Debug-Blocker옵션이 눈에 띈다.

그림2. Protection Options 선택

3. 자기가 원하는 Compression Options을 선택 할 수 있다. 압축률을 지정한다.

그림3. Compression Options 선택

4. Project 설정을 마치고 Protecting을 수행한다.

그림4. Protecting 수행

5. Protecting 완료

그림5. Protecting Success !


6. Protecting 수행 전 & 후 사이즈 비교


그림6. Protecting 수행 전 & 후 사이즈 비교

※ 여기서 잠깐!

 Packing의 목적 중에 하나는 파일 사이즈를 줄이기 위함도 있는데 80k→1032k로 파일사이즈가 오히려 늘었다. 이것은 옵션의 성격마다 파일 사이즈가 가변적이고, Protection 옵션을 많이 줄 수록 파일사이즈는 커지게 됨을 유의한다. 가벼운 프로그램일 경우 80k→30~40k로 파일사이즈가 줄어든다.

지금까지 Packer에 대하여 대략적으로 알아보았다.

다음장에 나올 PE구조에 대한 설명과 대략적인 분석툴에 대한 설명을 한 후, 실질적인 코드 분석을 해볼 것이다.
그럼 1장은 여기서 이만.



****************************************************************************************************

본 포스팅의 저작권은 보안인닷컴과 작성자에 있으며 상업적 이용을 배제하며 콘텐츠 이용시에는 반드시 출처와 링크를 이용해 주시기 바랍니다. 무단도용은 저작권법에 저촉을 받습니다..

****************************************************************************************************

Posted by 비회원

댓글을 달아 주세요

  1. 박코필 2009.03.23 17:32  댓글주소  수정/삭제  댓글쓰기

    평소 관심 있던 부분이였는데

    더 더욱 관심이 갑니다 ^^

  2. Favicon of https://eva1717.tistory.com BlogIcon eva1717 2009.03.23 23:24 신고  댓글주소  수정/삭제  댓글쓰기

    좋은 내용 감사합니다.. Dear. Tom님의 포스팅을 먼저 읽은 터라...'';;
    뒤늦게 보게되었네요...^^
    청정산소님의 포스팅을 먼저 읽고 Dear. Tom님의 포스팅을 읽을 걸...^^;
    Dear. Tom님이나 청정산소님 행여나 오해 하지 마세요..ㅠ_ㅠ
    청정산소님이 기본적인 개념부터 설명을 해주셔서 그런 겁니다...^^
    스크린샷까지 깔끔하게 정리 잘 해 주셨네요..~!
    감사합니다...!!
    앞으로의 포스팅도 기대하겠습니다..!!!^^

  3. Favicon of https://whoaru.tistory.com BlogIcon 후아유! 2009.03.24 01:18 신고  댓글주소  수정/삭제  댓글쓰기

    악성코드분석을 하기위해서 필요한 부분이네요^^
    PE구조.. 처음 접했을때 상당히 어려웠던 부분인데..
    새로 정리할수 있는 기회가 될듯하네요^^

  4. Favicon of http://www.thekimms.pe.kr BlogIcon 미남닷컴 2009.03.24 09:28  댓글주소  수정/삭제  댓글쓰기

    좋은 글 입니다 ^^.
    앞으로의 포스팅이 기대되고 도움도 많이 될 거 같네요.

    패킹한 악성코드를 찾는 것이 어려운일인데. 포스팅 보면서 고민좀 해봐야 겠습니다.

  5. Favicon of https://www.extraman.net BlogIcon ^________________^ 2009.03.25 23:50 신고  댓글주소  수정/삭제  댓글쓰기

    음..리버싱관련글에 이어 악성코드 분석글까지 있군요..(제가 포스팅을 꺼꿀로읽어서..)
    제가 많이 접하지 않은 분야라 생소하긴해도 좋은 글 감사..
    제가 얼마나 이해하는지는 잘 모르겠네여..ㅋㅋ

  6. Favicon of https://memocontrol.tistory.com BlogIcon 하얀어둠 2009.06.23 17:24 신고  댓글주소  수정/삭제  댓글쓰기

    와!! 저도 프로그래밍은 거의 바닥수준으로 모르는 데,
    너무 이해하기 쉽게 설명해주셔서 감사합니다.
    초보자는 이런글을 원했어요 ㅠㅠ
    정말 간결하면서도 이해가 쏙쏙되네요 ^^
    선생님 하셔도 되겠어요 ㅋㅋ 설마 진짜 직업이 강사 아니신가요 ㅋㅋㅋ