가상화 (Virtualization)




가상화(Virtualization)에 대해서 잘 아실겁니다.

그런데 이 Virtualization이 종류가 여러개죠. 하드웨어 쪽 가상화도 있고
비스타에서의 가상화도 있고, Code Replace 도 있습니다.

그런데 생각외로 많은 분들이 Virtualization에 대해 완전한 이해를 하지 못하고 있어
좀 아쉬운 부분이 없지 않아 있습니다.

머 완전한 이해라고 하니 좀 말이 거시기 한데, 최소한의 정의 정도는 알고있어야
하지 않을까 하는 생각이 듭니다(적어도 자기 분야의 가상화 기술은)

제가 아는 쪽의 Virtualization은 당연히 Code Replace밖에 없습니다(비스타 예외)
그리고 관련 업무도 당연 그렇고요.

그런데 보안관계자들 가끔 모여서 얘기하면 가상화에 대해 참 왜곡된 이해를 하고
계시는 경우가 많네요 ;

이번에 면접을 봤을때의 얘기를 잠깐 하자면,
리버서를 뽑는데, 버철라이제이션에 대해 아는대로 말해보라니까 하드웨어 얘길 하더군요-_-
그래서 코드 리플레이스에 대해 알고있냐니까 역시 모르는 경우가 많았고요
그 용어 자체가 생소할 수 있으니까, Poly Buffer나 VM_ 매크로 등에 대해서도 물어봤는데
역시 대부분이 모르더군요 ;;

사실 알만한 사람은 다 아는 기술이고 이것이 코드 세상에서의 가상화 기술 중의 하나인데
언론에서 혹은 보안 잇슈로 하드웨어 가상화만 다루어져서 그런지 대부분 그것밖에 모르고
그거를 이쪽과 결부 시킨다는 생각 조차 안해봤다는 느낌이 들어 걍 그게 좀 아쉬웠습니다.

뭐 저도 잘난 건 아니고 다 아는 건 아니지만
최소한의 자기 분야에 대해 어긋난 이해를 하고 있어서는 안된다고 생각합니다.


2008년 3월,


Posted by window31


트랙백 보낼 주소 : http://window31.com/trackback/138 관련글 쓰기

댓글을 달아주세요

  1. 2008/03/12 01:36
    댓글 주소 수정/삭제 댓글
    Code replacement에 관련된 virtualization은 어떤건가요? 처음듣는 것이라 생소한데 괜찮으시다면 잠깐 설명 해주시면 고맙겠습니다.

    제가 아는 가상화의 종류는 (1) Xen, VMware같은 하드웨어 가상화, (2) JVM, .NET 같은 가상머신, (3) PIN 같은 dynamic instrumentation 정도가 있는데 code replacement라는 것이 정확히 무엇을 가리키나요? 어뜻 보기에는 instrumentation 같긴한데.
    • 2008/03/13 01:53
      댓글 주소 수정/삭제
      PIN이 뭔지는 잘 모르겠네요^^
      이론적인 얘기 다 생략하고 매우 간단하게 표현해서 부분 암호화라고 생각하시면 됩니다.
      바이너리를 통째로 암호화하는 일반적인 프로텍터와 달리, 암호화 하고 싶은 구역에
      소스 레벨에서 지정된 매크로 함수를 넣으면 그 부분만 가상화된 것 처럼 처리되어
      상당히 고수준의 프로텍션을 해줍니다. 대표적인 걸로는 Code Virtualizer 등이 있습니다.
  2. 2008/03/12 09:54
    댓글 주소 수정/삭제 댓글
    면접이라.. ㅎㄷㄷ
    이제껏 면접을 한번도 본적이 없어서 그런지... 무섭네.. ㅎ
    • 2008/03/13 01:53
      댓글 주소 수정/삭제
      나 별로 안무서운데 ㅋ
  3. 2008/03/12 14:39
    댓글 주소 수정/삭제 댓글
    ㅋ..^^;;
    하드웨어 가상화는 아는데 VM 매크로 같은걸 모른다고해서..
    어긋난 이해를 하고 있는건 아닌거 같아요~
    가상화에 대한 이해.. 라기보다 정보의 폭이 좁았던게 아닌가 싶은데;..
    • 2008/03/13 01:54
      댓글 주소 수정/삭제
      리버싱 경력이 어느 정도 있다 싶은 사람들에게만 물어봤지.
      그정도 리버싱을 해봤으면 VM_매크로를 직접 써서 개발해보진 않았어도
      적어도 버철라이제이션으로 묶인 바이너리를 한번쯤은
      만나봤을 거라 생각함.
      그러나 리버서로서의 대답이 아닌 전혀 엉뚱한 답이 나왔기에 그런거지.
  4. 2008/03/13 02:49
    댓글 주소 수정/삭제 댓글
    감사합니다. 굉장히 재미난 것을 알게되었네요.

    http://www.oreans.com/codevirtualizer.php

    이런걸 말씀하시는거죠? 이게 왜 가상화라는 이름이 들어갔나를 살펴보니, '가상'의 Instruction Set으로 바꾸기 때문에 그런거네요. 그런 뒤에 emulator가 붙어서 돌아가는 형식이네요. 그렇다면 제가 말한 (3) PIN과 같은 가상화와 어느정도 비슷하겠네요. PIN은 instrumentation tool이라고 하는데요, 원하는 코드를 다이나믹하게 바이너리에 끼워서 여러가지 일을 하는 강력한 툴입니다.
    • 2008/03/13 16:37
      댓글 주소 수정/삭제
      네~ 상당히 유용한 넘이죠 ASProtect에서도 제공합니다.
      안정성 문제와 속도 문제가 있어서 상용 소프트웨어에서 이걸 남발하는건 비추긴 하지만요 ;;
      PIN 이라 http://rogue.colorado.edu/pin/ 이걸 말씀하시는 것 같네요
      재밌어 보이는군요 한번 들여다 보겠습니다. 좋은 정보 감사합니다 ^^
  5. 2008/03/13 02:49
    댓글 주소 수정/삭제 댓글
    감사합니다. 굉장히 재미난 것을 알게되었네요.

    http://www.oreans.com/codevirtualizer.php

    이런걸 말씀하시는거죠? 이게 왜 가상화라는 이름이 들어갔나를 살펴보니, '가상'의 Instruction Set으로 바꾸기 때문에 그런거네요. 그런 뒤에 emulator가 붙어서 돌아가는 형식이네요. 그렇다면 제가 말한 (3) PIN과 같은 가상화와 어느정도 비슷하겠네요. PIN은 instrumentation tool이라고 하는데요, 원하는 코드를 다이나믹하게 바이너리에 끼워서 여러가지 일을 하는 강력한 툴입니다.
  6. 2008/03/13 18:32
    댓글 주소 수정/삭제 댓글
    PIN 이란 녀석도 있군요.
    전 CodeVirtualizer 와 몇몇 해커들이 공개한 코드만 봤었는데.. (코드 읽기가 너무 빡시더군요. 보다 말았습니다.-_-)
    좋은 정보 감사합니다.
    • 2008/03/14 00:36
      댓글 주소 수정/삭제
      Code Virtualizer 로 보호된 코드 리버싱하려면 졸라 빡세요 lol
      정석적인 접근으로는 머 인간이 이해할 수 있는 수준이 아니더군요. 분석하려면 적당한 꽁수가 필요한 :p
  7. rodream
    2008/03/14 16:54
    댓글 주소 수정/삭제 댓글
    단어 선택의 문제가 아니었을까요?

    어째선진 모르겠지만, 이쪽은 표준도 없고 해서 이름짓는 사람 맘대로 이름을 짓기 때문에, 용어를 외우기가 꺼려지기도 합니다...'-';
    • 2008/03/14 17:37
      댓글 주소 수정/삭제
      네. 그냥 용어를 몰랐다고 뭐라고 그러는게 아니고요
      용어는 엿장수 마음대로인 경우가 많기 때문에 이 용어로는 모르는구나 싶었던 경우는
      관련 기술을 구체적으로 읊어줬습니다. 뭐 그래도 모르더라고요.
      앞으로 이런 내용 안쓸랍니다 태클이 많아지는거 같네요 ㅠㅠ
  8. 2008/03/15 13:57
    댓글 주소 수정/삭제 댓글
    code virtualization이라~ 재미있는 내용이네요 ^^)/~
    나중에 시간나면 한번 봐야겠습니다. ^^
    • 2008/03/16 16:27
      댓글 주소 수정/삭제
      한국에서는 아직 생소하긴지만 예전에 nerd님께서
      분석하신 것도 있고 이바닥에 계신분들은 많이들 아시라 생각했는데..
      암튼 재밌는 넘입니다.

BLOG main image
by window31

카테고리

분류 전체보기 (281)
Reverse Engineering (21)
C, C++ (20)
Kernel (8)
Guitar (19)
잡담 (77)
etc (8)
who am i (8)
보안 이야기 (88)
Tools (3)
월간 마이크로소프트웨어/그.. (28)

글 보관함