카스퍼스키의 SDT Relocation




이번 마소 5월호 "백신을 공격하는 악성코드" 편에서 마감 이후에 갑자기 필자메모를 하나 추가해달라길래, 작성해 드렸는데 막상 잡지가 나오고 난 뒤에 보니 그것이 편집 당해 있네요 뭫미 ;;; 재미없는 글이지만 아깝기도 하고 그 일을 고자질도 할 겸(이모 기자님 미워요 ㅠㅠ) 이렇게 블로그에 붙혀넣습니다 :)


Kaspersky 의 SDT Relocation

이번 코드게이트 2009 발표시에 크리스는 악성코드의 비 공식화된 행동이 잦아짐에 따라, 안티바이러스 개발자들의 악몽이 시작되는 것이라 표현하였다. 악몽이라니 그것은 무슨 의미일까? 악성코드는 백신을 공격하거나, 탐지되지 않게 우회할 때 프로그래밍 방법론에 있어서 정석적인 방법이 아니라 비 문서화 된 기술을 주로 이용한다. 이렇게 상대가 Undocumented 하게 구현하여 활개치고 다니게 되면, 백신을 개발하는 입장에서도 그런 변칙적인 활동을 캣취하기 위해서는 같이 Undocumented 한 기술을 사용할 수 밖에 없다.

여기서 바로 플랫폼의 한계라는 것에 대해 부딪치게 된다. 악성코드는 버그가 좀 발생하게 개발해도 무방한 프로그램이고 사용자의 PC 에 문제를 일으켜도 무시하면 그만이다. 하지만 안티바이러스는 여러 사용자의 PC에서 안정적으로 실행되어야만 하고, 문제 발생시 많은 클레임을 겪게 된다. Undocumented 기술을 사용하자니 문제가 발생하여 고객센터에 난리가 나고, 그 기술을 사용하지 않으려니 악성코드를 잡지 못하는 등 개발자들은 가치관의 혼동이 일어나게 된다.

이런 연유로 Undocumented 에 대해 안티바이러스 개발자들의 악몽이라고 표현하고 있다. Undocumented 기술이라는 것은 비 표준화된 방법이고 문서화 된 것이 없기 때문에 언제 어디서 폭탄이 터질 지 전혀 알 수 없는 위험한 기술이다. 아무렇게나 만들어도 그만인 악성코드와 안정성도 함께 고려해야만 하는 백신 개발자가 짊어지고 가는 Undocumented 사용 지불에 대한 무게는 너무도 차이가 크다. 그런 의미에서 Undocumented 한 기술의 하나인 SDT 릴로케이션 기법을 완전히 안정화시켜 정식 기능으로 사용하고 있는 카스퍼스키 안티바이러스는 정말 대단하다고 생각된다.
Posted by window31


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

댓글을 달아주세요

  1. 2009/05/11 02:18
    댓글 주소 수정/삭제 댓글
    저런게.. 기술력인가 싶을 정도의 기능이죠.. ;ㅅ;

    사실 Undocumented 기술을 특정 플랫폼이나 특정상황에서만 쓴다고 치면
    그리 어렵진 않은데.. 이게 보편적으로 흘려가려고 한다거나..
    문제가 안생기게 하려면. 참.. 난감하죠 ㅋㅋ

    악성코드들은 BSOD 따위는 신경도 안쓰고 막 쓰는데.. ㅠㅠ
    • 2009/05/17 17:14
      댓글 주소 수정/삭제
      ㅋㅋ 내 컴퓨터에서만 돌아가게 하는 프로그램 만들기가 가장 좋은듯 : )
      문제는 많은 개발자들이 자기 PC에서 잘돌아가는 것만 보고 문제없다며 릴리즈 하는것 ;;
      예전에 어떤 분은 빌드만 되면(컴파일 에러만 안나면)
      아 이제 릴리즈 해야지 라고 하는 분이 계셨다는 ;; ㅅㅂ ㅄ
  2. 2009/05/11 10:09
    댓글 주소 수정/삭제 댓글
    악성코드 제작자가 고의적으로 시스템의 정상적인 기능을 제한 또는 파괴하고자 한다면 이미 그 악성코드의 생명 주기(수명)도 비례적으로 축소되니 그 나마 다행이라고 해야 할까요?(자멸)

    물론 잠복기를 거치도록 만들고, ITW DAY 공격을 쓴다면 또 다시 CIH 바이러스 때 처럼 큰 카오스기를 맞이하겠지만요.

    다행히? 요즘 녀석들은 금전적인 수익성(Info Stealer)에 더 목을 매고 있고(버그 최소화 노력?) 짧은 기간 많은 변종으로 덤벼드는 인해전술 저글링 방법을 고수하고 있어 큰 파괴적인 모습을 보기기 어렵기도 하네요.

    다만 거머리처럼 계속 달라붙게 만드는게 더 골치아프게 되기도 하였지만요!

    물론 일부 고수 VX 를 표방하는 사람들은 New POC 와 0 Time Attack, Anti-Anti-AV, Rootkit Driver 기법 개발에 힘을 쓰고 있지만요. (창과 방패)

    아직 질보다 양이 우세인 상황이지만 지속적으로 질적 향상도 있고 하니, 많은 변화와 트랜드 파악에 따른 AV R&D 도 필요해 질 것 같네요.

    악몽을 꾸고 난 후 로또의 대박(언제?)이 있길 기원해 보며~~^^
    • 2009/05/17 17:15
      댓글 주소 수정/삭제
      ㅋㅋㅋㅋ 내공이 느껴지는 설명을 쭈욱 해주시다가
      갑자기 로또 얘기로 마무리 되어서 피식 ㅋㅋㅋㅋ
      거의 포스팅에 가까운 댓글 너무 감사합니다 !
  3. 2009/05/11 13:35
    댓글 주소 수정/삭제 댓글
    뭐 AV 업체들은 undocumented 쓰는 게 하루 이틀 일은 아닌듯...
    그래서 AV 제품들끼리의 충돌도 만만치 않습니다.
    충돌 나서 뜯어 보면 같은 SDT훅을 쓰고 있든지 한놈이 테이블을 옮겨 놓고 쓰던지 하여튼 가지 가지 더군요. 트렌드나 맥아피도 SDT 테이블 후킹이나 릴로케이션을 사용했던 걸로 기억... 카스퍼스키는 아주 노골적으로 사용하고 있었구요.
    • 2009/05/12 16:29
      댓글 주소 수정/삭제
      훅도 문제 많죠...ㅋㅋ

      훅 체인을 고려안하고 원본을 호출하도록 덮어서

      어느새 서로 후킹 레이싱...-_-;

      그렇다고 훅 체인 걸어놓으면 중간에 체인 무시하고 빠져 나가서 BSOD -_-;
    • 2009/05/17 17:18
      댓글 주소 수정/삭제
      네 그래서. 훅 구현할때 꼭 나만 훅을 한거라는 생각을 하면서 만드는 사람이
      꽤 많다는 것이 문제인거 같아요...
      이미 다른 프로시져로 덮어쎠져 있는데 확인도 안하고 그걸 호출하고, 블루 혹은 크래시 만세~!
      말씀하신 대로 백신들끼리 충돌도 정말 많죠... 그래서 안티 디버깅 엔진을 만들땐
      AV 테스트가 요즘 꽤나 큰 중요성을 가지는 것 같습니다.
  4. ks
    2009/05/13 01:13
    댓글 주소 수정/삭제 댓글
    아예 코모도까지 설치해 놓으면 서로가 서로를 호출하는 일까지...
    다행인 건 코모도 빼고 나머지는 모두 후킹을 해제해도 별 반응을 안 하네요...
    • 2009/05/17 17:19
      댓글 주소 수정/삭제
      코모도,,, 보안모듈과 충돌하는 케이스가 가장 많은 넘중 하나죠 ㅋ
      풀옵션으로 사용하면 훅 하는 API 가 수십개는 되더군요 ;
  5. 2009/05/16 11:07
    댓글 주소 수정/삭제 댓글
    재미있게 읽었습니다...^^ 확실히 5월 호에 보니까 빠져있네요...ㅋㅋ

    (이 글은 읽기만 하고 덧글 안달다가, 며칠 뒤 생각나서 다는... ㅠㅠ)
    • 2009/05/17 17:20
      댓글 주소 수정/삭제
      ㅎㅎ vbdream 님 재미있게 읽어주셨다고 할때마다 너무 매우 감사할 따름~!

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)

글 보관함