Top

루트킷 [윈도우 커널 조작의 미학]

  • 원서명Rootkits: Subverting the Windows Kernel (ISBN 9780321294319)
  • 지은이그렉 호글런드, 제임스 버틀러
  • 옮긴이윤근용
  • ISBN : 9788960770256
  • 33,000원
  • 2007년 11월 30일 펴냄 (절판)
  • 페이퍼백 | 360쪽 | 188*250mm
  • 시리즈 : 윈도우 시스템 프로그래밍, 해킹과 보안

판매처

  • 현재 이 도서는 구매할 수 없습니다.

책 소개

소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/skykami/www.rootkit.com)

위 [다운로드] 메뉴에서 소스코드 파일을 내려받으셨다면 압축 파일의 암호는 "security"입니다. 압축 해제 시 파일 중 일부가 백신에 탐지될 수 있습니다.

루트킷은 해커들이 공격하고자 하는 시스템에 지속적이면서 탐지되지 않은 채로 교묘히 접근할 수 있는 최고의 백도어라고 할 수 있다. 루트킷에 관한 최고의 전문가 두 명이 최초로 종합적인 루트킷 가이드를 집필했다. 루트킷이 무엇이고 어떻게 작동하며 제작하는지, 어떻게 루트킷을 탐지하는지 등에 대해 차례로 설명한다.

[ 책 소개 ]

rootkit.com의 그렉 호글런드와 제임스 버틀러는 블랙 햇에서 루트킷과 관련한 유명한 교육을 만들고 꾸준히 강의도 해오고 있다.
이 책에서는 그들이 지금까지 공개한 바 없는 루트킷 기술들을 다루고 있다. 어떻게 하면 공격 시스템에 침투해서 몇 년 동안이나 탐지되지 않을 수 있는지 배울 수 있다.
저자들은 윈도우XP와 윈도우2000의 커널 조작 방법을 보여준다. 그리고 윈도우 서버 2003이나 리눅스, 유닉스에 쉽게 적용할 수 있는 공격 개념을 설명한다. 이 책에 나와있는 다운로드 가능한 다양한 예제를 통해 루트킷 프로그래밍 기술을 배울 수 있으며, 운영체제 드라이버나 디버거 같은 다양한 분야의 보안 툴 제작에 도움을 얻을 수 있다.


[ 이 책에서 다루는 내용 ]

■ 원격 명령이나 제어, 소프트웨어 감청에서 루트킷의 역할
■ 프로세스, 파일, 디렉토리를 숨길 수 있는 커널 루트킷 제작방법
■ 후킹, 런타임 패치, 커널 오브젝트 조작 같은 루트킷의 핵심적인 프로그래밍 기술
■ 계층 드라이버를 이용한 키보드 스니퍼와 파일 필터 드라이버 구현
■ 루트킷 공격을 방어하기 위한 루트킷 탐지나 호스트 기반 침입 방지 시스템 제작 방법

루트킷의 개념은 리눅스를 비롯한 다양한 운영체제에 적용되지만 이 책에서는 윈도우 루트킷만을 설명한다. 그 중에서도 특히 커널 루트킷에 초점을 맞춘다. 커널 루트킷이 가장 탐지하기 어렵기 때문이다. 대부분의 알려진 윈도우 루트킷은 유저 모드 루트킷이다. 이는 알려지지 않은 윈도우 커널의 복잡한 동작 방식을 이해하지 않아도 되므로 그만큼 구현이 쉽다.
이 책은 특정한 실제 루트킷을 다루기보다는 모든 루트킷이 사용하는 일반적인 접근 방법을 설명한다. 각 장마다 기본적인 기술 개념과 목적을 설명하고 이어서 샘플 코드를 이용해 그것을 어떻게 구현하는지를 보여준다. 이렇게 제공된 정보를 이용해 여러분은 샘플 코드가 다양한 작업을 수행하도록 확장시킬 수 있다. 커널 레벨에서는 여러분이 상상할 수 있는 모든 작업을 수행하도록 할 수 있다.


[ 이 책의 대상 독자 ]

이 책은 컴퓨터 보안에 관심이 있고 정확한 시각으로 보안 위협을 바라보고자 하는 사람들을 대상으로 한다. 침입자가 어떤 방법으로 컴퓨터 시스템에 대한 접근 권한을 획득하는지 설명하는 책들은 많지만 일단 공격자가 그런 권한을 획득하면 어떤 일이 발생할 수 있는지 설명하는 책들은 많지 않다. 이 책은 공격자가 공격 대상 시스템에서 은닉하기 위해 무엇을 할 수 있는지를 설명할 것이다.

마이크로소프트를 포함한 대부분의 소프트웨어 제조사들은 루트킷을 그렇게 심각하게 받아들이지 않고 있다. 이 점이 바로 우리가 이 책을 출판하게 된 계기라고 할 수 있다. 이 책의 내용은 루트킷이나 운영체제 분야에 수년간 종사해 온 사람들에게는 그리 혁신적인 것은 아니지만 대부분의 사람들에게 루트킷이 대단히 심각한 위협이라는 것을 보여주고 있다. 또한 여러분의 바이러스 스캐너나 데스크톱 방화벽만으로는 충분하지 않다는 사실을 깨닫게 하며, 루트킷이 여러분의 시스템에 침투해서 몇 년 동안이나 몰래 존재할 수 있다는 것을 보여준다.

루트킷 정보를 최대한 잘 전달하기 위해 우리는 공격자의 입장에서 전반적으로 이 책의 내용을 작성했지만 마지막 부분에서는 방어적인 측면의 내용으로 채워진다. 이 책을 통해 공격자의 목적과 기술을 배워 나감으로써 여러분은 시스템의 약점과 그것을 보완하는 방법에 대해 알게 될 것이다. 또한 이 책은 여러분의 시스템 보안성을 향상시키고 보안 소프트웨어 구입시에 합리적인 결정을 내릴 수 있도록 도와줄 것이다.


[ 소스코드 다운로드 ]

이 책에서 제시하는 대부분의 소스 코드는 rootkit.com을 통해 다운로드할 수 있으며, 책 전반에 걸쳐 각 예제 소스를 다운로드할 수 있는 URL을 알려 주고 있다. 여러 루트킷 제작자들 또한 rootkit.com 사이트에 그들의 연구 결과를 올리기 때문에 여러분은 rootkit.com을 통해 최신의 유용한 기술을 접할 수 있을 것이다.
이 책에서 사용된 소스 코드와 프로그램은 http://www.acornpub.co.kr/book/rootkit에서도 내려받을 수 있다.

저자/역자 소개

[ 저자 소개 ]

그렉 호글런드
소프트웨어 보안 분야의 개척자 역할을 수행해 왔다. 그는 현재 소프트웨어 보안 검증 서비스를 선도적으로 제공하는 기업인 HBGray 사의 CEO이다. 그렉은 최초의 네트워크 보안 취약점 스캐너(포춘 500대 기업의 절반 이상에 설치되었다) 중 하나를 제작한 후 최초의 윈도우NT 기반 루트킷을 작성하고 그것을 문서화했다. 또한 블랙 햇, RSA와 그 밖의 보안 컨퍼런스의 단골 발표자로도 활동하고 있고, 베스트셀러인 『Exploiting Software: How to Break Code』(Addison-Wesley, 2004)의 공동 저자이기도 하다.

제임스 버틀러
HBGray의 기술 이사인 제임스 버틀러는 커널 프로그래밍과 루트킷 개발 분야의 최고 전문가 중 한명으로 손꼽히며, 호스트 기반 침입 탐지 시스템에 대한 폭넓은 경험을 갖췄다. 루트킷 탐지와 포렌식 시스템을 위한 VICE 프로그램의 개발자로, 과거 Enterasys의 보안 소프트웨어 선임 엔지니어 및 미국국가안전보장국의 컴퓨터 과학자로 재직한 바 있다. 또한 블랙 햇 보안 컨퍼런스의 단골 발표자이자 트레이너이며 매릴랜드 볼티모어 카운티 대학에서 컴퓨터공학 석사 학위를 취득했다. 그의 논문으로는 ‘IEEE Information Assurance Workshop’, ‘Phrack, USENIX ;login:’, ‘Information Management and Computer Security’ 등이 있다.


[ 저자 서문 ]

컴퓨터 보안 분야에서 일을 하다 보니 루트킷에 흥미를 갖기 시작했고 루트킷에 관한 주제는 개인적인 업무(늦은 밤 또는 주말에 하는 개인적인 작업) 영역으로 빠르게 파고들었다. 이런 와중에 호글런드는 리버스 엔지니어링과 루트킷 개발에 관한 포럼인 rootkit.com을 발견하게 되었고, 우리 둘 모두 rootkit.com에 적극적으로 참여했다. 버틀러는 자신이 제작한 새롭고 강력한 루트킷인 FU에 대한 테스트를 위해 호글런드와 처음으로 웹사이트를 통해 접촉했다. 그런데 버틀러는 실수로 호글런드에게 커널 드라이버에 대한 소스 코드를 보내지 않았다. 물론 버틀러는 깜짝 놀랐지만, 호글런드는 아무런 의심도 하지 않고 그의 워크스테이션에 컴파일된 루트킷을 로드시켜 테스트했다. 그리고 FU가 올바로 동작하는 것 같다고 버틀러에게 테스트 결과를 알려줬다. 이를 계기로 우리 서로간에는 신뢰가 쌓이기 시작했다.

우리는 모두 오랫동안 윈도우 커널을 리버스 엔지니어링하는 것에 대한 대단한 집념을 가져왔다. 그래서 누군가 불가능하다고 말한 것을 결국엔 성취해 내곤 했다. 컴퓨터 보안 제품들의 동작 원리와 탐지 방법을 배워가는 것은 매우 만족스러웠으며, 이런 과정은 더욱 향상된 보안 메커니즘을 고안해 내는 데 도움이 된다.

보안 제품이 주장하는 대로 보호 기능이 항상 제대로 수행되는 것만은 아니다. 공격자의 측면에서는 항상 유리한 입장을 취할 수 있다. 공격자는 방어자가 미처 고려하지 못한 것을 한 가지만 생각해내면 되기 때문이다. 반면에, 방어자는 공격자가 취할 수 있는 모든 가능성을 생각해내야 한다. 따라서 공격자에게 확연히 유리한 게임이라고 할 수 있다.

몇 년 전부터 우리는 협력해서 ‘Offensive Aspects of Rootkit Technology’라는 교육을 제공해 왔다. 그 교육은 원래 하루 교육이었으나 지금은 수백 페이지의 설명과 예제 코드를 다루는 교육으로 확대되었으며, 그 교육에서 사용되는 교재를 기반으로 이 책이 저술되었다. 현재 우리는 블랙 햇(the Black Hat) 보안 컨퍼런스에서 한 해에 몇 번씩 루트킷 교육을 제공하고 있다. 물론 비공개적으로 교육을 제공하기도 한다.

우리는 교육을 어느 정도 함께 제공해 오면서 우리의 관계를 좀더 긴밀히 할 필요가 있다고 판단했으며 그에 따라 지금은 HBGray 사에서 같이 일하고 있다. HBGray에서 우리는 매우 복잡한 루트킷 문제와 매일 씨름하며, 오늘날 윈도우 사용자들에게 닥친 위협과 미래에 위협이 될 수 있는 것들을 다루기 위해 우리의 경험을 바탕으로 이 책을 저술했다.


[ 역자 소개 ]

윤근용
시스템 프로그래머로서 시스템에 대한 다양한 분야에 관심이 많으며 특히 보안 분야에 대한 관심이 높아 다년간 보안 업무에 종사하고 있다. 바이러스 보안 업체를 거쳐 현재는 NHN에서 보안 관련 프로젝트를 수행하고 있다. 역서로는 『웹 애플리케이션 해킹 대작전』(에이콘출판, 2007), 『실전해킹 절대내공』(에이콘출판, 2007)이 있다.


[ 역자 서문 ]

‘과연 우리들이 사용하는 컴퓨터에는 얼마나 많은 악의적인 코드들이 발견되지 않은 채 동작하고 있을까?’ 늘 내 마음 속에 품어오던 의문점이었다. 우리들은 어떠한 이상도 느끼지 못하며 컴퓨터를 사용하고 있지만 네트워크 저편의 어느 누군가는 입가에 미소를 그리며 우리들을 조롱하고 있을 수 있다. 사실 이렇게 조롱만 한다면 고마운 일일지 모른다. 우리들의 귀중한 정보가 새나가거나 또는 우리들이 그들의 목적을 위한 또 하나의 수단으로 이용되고 있을 수 있다. 이를 정확히 증명하기란 쉽지 않은 일이지만, 분명한 현실이다. 현실이 아닌 것은 그 정도를 정확히 측정하기 힘들다는 것이다. 그럼 좀더 생각을 확장해 보자.

네트워크상에 흐르는 데이터들 가운데 어느 정도가 악의적인 목적으로 사용되고 있을까? 범죄자 없는 세상이 존재할 수 없듯이 악의적인 코드 없는 네트워크 세상이란 있을 수 없다. 하지만 문제는 악의적이든 그렇지 않든 간에 어쨌든 존재 여부를 판단할 수 있어야 한다는 것이다. 실체 없는 범죄를 과연 범죄라고 판단할 수 있을지 깊이 생각해 봐야 한다.
루트킷이 사용하는 기술을 이용해 그것을 방어하는 목적에 사용할 수 있다. 이와 반대로 방어를 위해 새롭게 고안된 기술이 악의적인 용도로 사용되면 강력한 루트킷이 될 수도 있다. 기술은 하나지만 그것을 어떤 목적으로 사용하느냐에 따라 정반대의 결과를 가져오는 셈이다. 적을 알아야 필승할 수 있듯이, 우리는 먼저 루트킷이 사용하는 기술을 자세히 알 필요가 있다. 그래야만 현재의 보안 취약점뿐만 아니라 잠재적인 취약점까지 예측하고 대비할 수 있다. 더 나아가서는 새로운 보안 기술을 위한 아이디어를 제공해 줄 수도 있다.

요즘은 하나의 목적을 위해 다양한 종류의 기술이 동시에 사용되고 있으며 루트킷 자체가 독립적인 기능을 지니기보다는 루트킷이 일부분의 역할을 수행하는 형태로 이용되는 경우가 많다. 그만큼 기술간의 경계가 모호해졌으며 융합과 통합이 이뤄졌다고 할 수 있다. 이 책에서 설명하는 기술이 루트킷이 사용하는 기술 모두를 포함하는 것은 아니지만, 지금까지 널리 알려진 루트킷 기술을 체계적으로 학습하고 정리할 수 있는 기회를 제공하는 것은 분명하다. 특히 시스템 내부에 대한 탐험 의지를 북돋우기에 충분한 책이라고 감히 말할 수 있다.

목차

목차
  • 1장 흔적을 남기지 말라 ... 23
    • 공격자의 동기 이해 ... 24
      • 은닉의 역할 ... 24
      • 은닉이 필요 없는 경우 ... 25
    • 루트킷이란? ... 26
    • 왜 루트킷이 존재하는가? ... 26
      • 원격 명령 실행과 제어 ... 27
      • 소프트웨어 감청 ... 27
      • 루트킷의 합법적인 이용 ... 28
    • 루트킷의 역사 ... 29
    • 루트킷은 어떻게 동작하는가? ... 30
      • 패치 ... 30
      • 이스터 에그 ... 31
      • 스파이웨어 ... 31
      • 소스 코드 조작 ... 31
      • 소프트웨어 변경의 합법성 ... 32
    • 무엇이 루트킷이 아닌가? ... 32
      • 루트킷은 공격툴이 아니다 ... 33
      • 루트킷은 바이러스가 아니다 ... 34
    • 루트킷과 소프트웨어 공격 ... 35
      • 왜 공격 코드가 여전히 문제인가? ... 37
    • 공격을 위한 루트킷 기술 ... 38
      • HIPS ... 38
      • NIDS ... 39
      • IDS/IPS 우회하기 ... 40
      • 포렌식 툴 우회하기 ... 40
    • 결론 ... 41
  • 2장 커널 조작 ... 43
    • 커널의 중요 요소 ... 44
    • 루트킷 설계 ... 45
    • 커널 레벨 코드 소개 ... 48
    • 윈도우 디바이스 드라이버 개발 ... 49
      • Device Driver Development Kit ... 49
      • 빌드 환경 ... 50
      • 파일 ... 50
      • Build 툴 ... 52
      • 언로드 루틴 ... 53
    • 드라이버 로드, 언로드 ... 54
    • 디버그 메시지 로그하기 ... 54
    • 유저 모드와 커널 모드 요소를 모두 포함하는 루트킷 ... 55
      • IPR ... 56
      • 파일 핸들 생성 ... 60
      • 심볼릭 링크 추가 ... 61
    • 루트킷 로딩 ... 63
      • 드라이버 로드를 위한 비정상적인 방법 ... 63
      • 드라이버 로드를 위한 정상적인 방법 ... 65
    • 리소스에서 .sys 파일 추출하기 ... 67
    • 재부팅시 자동 시작 ... 69
    • 결론 ... 71
  • 3장 하드웨어 레벨의 지식 ... 73
    • 링 제로 ... 74
    • 테이블, 테이블 그리고 또 테이블 ... 76
    • 메모리 페이지 ... 77
      • 메모리 접근 검사 ... 78
      • 페이징과 주소 변환 ... 79
      • 페이지 테이블 ... 81
      • 페이지-디렉토리 엔트리 ... 83
      • 페이지-테이블 엔트리 ... 83
      • 페이지 테이블의 읽기 전용 속성 ... 84
      • 멀티 프로세스와 멀티 페이지 디렉토리 ... 84
      • 프로세스와 스레드 ... 85
    • 메모리 디스크립터 테이블 ... 86
      • 글로벌 디스크립터 테이블 ... 87
      • 로컬 디스크립터 테이블 ... 87
      • 코드 세그먼트 ... 87
      • 콜 게이트 ... 87
    • 인터럽트 디스크립터 테이블 ... 88
      • 다른 형태의 게이트 ... 91
    • 시스템 서비스 디스패치 테이블 ... 91
    • 컨트롤 레지스터 ... 92
      • 컨트롤 레지스터 0 ... 92
      • 그 밖의 컨트롤러 레지스터들 ... 93
      • EFlags 레지스터 ... 93
    • 멀티 프로세서 시스템 ... 93
    • 결론 ... 95
  • 4장 전통적인 후킹 기술 ... 97
    • 애플리케이션 레벨의 후킹 ... 97
      • 임포트 어드레스 테이블 후킹 ... 99
      • 인라인 함수 후킹 ... 100
      • 사용자 프로세스 영역으로 DLL 인젝션하기 ... 103
    • 커널 후킹 ... 108
      • 시스템 서비스 디스크립터 테이블 후킹 ... 109
      • 인터럽트 디스크립터 테이블 후킹 ... 118
      • 디바이스 드라이버 오브젝트의 Major Function 후킹 ... 123
    • 하이브리드 후킹 ... 133
      • 프로세스의 주소 공간으로 진입하기 ... 134
      • 후킹을 위한 메모리 공간 ... 138
    • 결론 ... 140
  • 5장 런타임 패치 ... 141
    • 우회 패치 ... 142
      • MigBot을 이용한 실행 흐름 변경 ... 143
      • 함수의 바이트 코드 검사 ... 145
      • 원래의 명령어 바이트 ... 146
      • NonPagedPool 메모리 이용 ... 149
      • 런타임 주소 결정 ... 149
    • 점프 템플릿 ... 153
      • 인터럽트 후킹 예제 ... 154
    • 기타 유사한 방법들 ... 161
    • 결론 ... 162
  • 6장 계층 드라이버 ... 163
    • 키보드 스니퍼 ... 164
      • IRP와 스택 로케이션 ... 166
    • KLOG 루트킷 ... 169
    • 파일 필터 드라이버 ... 183
    • 결론 ... 197
  • 7장 커널 오브젝트 직접 변경 ... 199
    • DKOM의 장점과 단점 ... 200
    • 운영체제 버전 판단하기 ... 202
      • 유저 모드에서 운영체제 버전 판단 ... 202
      • 커널 모드에서 운영체제 버전 판단 ... 204
      • 레지스트리를 이용한 운영체제 버전 판단 ... 204
    • 유저 모드 프로세스에서 디바이스 드라이버로의 통신 ... 206
    • DKOM을 이용한 은닉 ... 210
      • 프로세스 은닉 ... 210
      • 디바이스 드라이버 은닉 ... 216
      • 동기화 이슈 ... 220
    • DKOM을 이용한 토큰의 권한과 그룹 변경 ... 224
      • 프로세스 토큰 변경 ... 225
      • 윈도우 이벤트 뷰어 속이기 ... 239
    • 결론 ... 241
  • 8장 하드웨어 조작 ... 243
    • 왜 하드웨어인가? ... 245
    • 펌웨어 변경 ... 246
    • 하드웨어 접근 ... 247
      • 하드웨어 주소 지정 ... 247
      • 하드웨어 접근은 RAM에 접근하는 것과 다르다 ... 248
      • 타이밍 ... 249
      • I/O 버스 ... 249
      • BIOS에 접근 ... 251
      • PCI, PCMCIA 디바이스 접근 ... 252
    • 예 : 키보드 컨트롤러 접근 ... 252
      • 8259 키보드 컨트롤러 ... 253
      • 키보드 LED 변경 ... 253
      • 하드 리부팅 ... 260
      • 키보드 모니터링 ... 260
    • 마이크로코드 업데이트 ... 267
    • 결론 ... 268
  • 9장 은닉 채널 ... 269
    • 원격 명령 및 제어 그리고 데이터 빼내기 ... 270
    • TCP/IP 프로토콜 위장 ... 271
      • 트래픽 패턴의 인지 ... 272
      • 데이터를 있는 그대로 전송하지 말라 ... 273
      • 시간을 이용하라 ... 274
      • DNS 패킷 안에 숨겨라 ... 274
      • 아스키 문자 숨기기 ... 274
      • 다른 TCP/IP 채널 이용 ... 275
    • TDI를 이용한 루트킷 ... 276
      • 어드레스 스트럭처 생성 ... 277
      • 로컬 어드레스 오브젝트 생성 ... 279
      • TDI 엔드 포인트 생성 ... 283
      • 엔드 포인트와 로컬 어드레스 연결 ... 286
      • 리모트 서버로 연결 - TCP 핸드쉐이크 전송 ... 288
      • 리모트 서버로 데이터 전송 ... 290
    • 네트워크 패킷 변경 ... 293
      • 윈도우XP에서의 로우 소켓 구현 ... 293
      • 인터페이스에 바인딩 ... 294
      • 로우 소켓 스니핑 ... 295
      • 로우 소켓을 이용한 무차별적인 스니핑 ... 296
      • 로우 소켓을 이용한 패킷 전송 ... 297
      • 소스 포트, 주소 위조 ... 297
      • 바운싱 패킷 ... 298
    • NDIS를 이용한 루트킷 ... 299
      • 프로토콜 등록 ... 299
      • 프로토콜 드라이버 콜백 ... 304
      • 패킷 전체 이동 ... 309
    • 호스트 에뮬레이션 ... 317
      • 자체 MAC 주소 생성 ... 317
      • ARP 처리 ... 317
      • IP 게이트웨이 ... 320
      • 패킷 전송 ... 320
    • 결론 ... 325
  • 10장 루트킷 탐지 ... 327
    • 존재 탐지 ... 328
      • 출입문 보호 ... 328
      • 메모리 스캐닝 ... 331
      • 후킹 탐지 ... 331
    • 행동 탐지 ... 341
      • 숨겨진 파일과 레지스트리 키 탐지 ... 341
      • 숨겨진 프로세스 탐지 ... 342

관련 블로그 글

[스페셜 이슈 제9호] 루트킷, 윈도우 커널 조작의 미학
하드웨어 디바이스 드라이버와 보안 모듈을 개발하고 현재 데브구루에서 커널과 시스템 분석 업무에 종사하고 있는 이상섭 개발팀장님이 윈도우 개발자들에게 큰 관심을 끌고 있는 "루트킷, 윈도우 커널 조작의 미학"이라는 제목으로 아홉 번째 스페셜 이슈 글을 기고해주셨습니다.

보안 분야는 한 마디로 창과 방패의 싸움이라고 할 수 있습니다. 기존보다 더 날카로운 창, 기존보다 더 튼튼한 방패를 계속 만들어야 하는 끊임없는 전쟁터라 할 수 있습니다. 지금도 바이러스나 해킹 프로그램들은 좀 더 악의적으로 사용자들의 정보를 이용해 자신의 이득을 취하려고 합니다. 그래서 루트킷을 이용한 바이러스 등의 피해도 점점 증가하고 있습니다.

이런 바이러스 등의 피해를 막기 위해서라도 루트킷의 원리 및 작동을 이해해 어떻게 피해를 줄일 수 있는지를 연구할 수 있을 것입니다. 앞으로 보안개발자가 되고자 하거나 일반 프로그래머들 분들도 이런 루트킷에 대해 좀 더 관심을 가지고 공부를 해 안전한 컴퓨터 세상을 만들었으면 합니다.


루트킷에 대해서는 지난 11월 출간된초난감 기업의 조건"12장. 오픈 박사와 독점권 사장의 기묘한 맞대결"이라는 부분에서도 언급이 됩니다. 소니 사가 사용자들의 불법 복제 행위를 막기 위해 자사의 CD에 은밀히 루트킷을 심어두면서 일어난 해프닝으로 이때 루트킷은 일반인들에게도 널리 알려지게 됩니다. 이 책에서 저자인 릭 채프만은 이런 일화보다도 소니 사가 그 이후에 어떤 대응책으로 더욱 초난감한 사태를 야기시키는지를 생생히 보여주고 있습니다. 이에 대한 일화에 대해 초난감 기업의 조건에서 어떻게 이야기하고 있는지는 PDF 파일로 만들어 올려두었으니 다운로드하셔서 한번 읽어보세요. 재미있거든요! ^^

한갖 소동에 불과할지도 모르겠지만, 기술적인 이슈가 어떻게 기업의 마케팅 정책과 연관되어 초우량 기업의 명성을 일순에 몰락시키는지를 보여주는 한 예라 하겠습니다. 결국 저자는 "14장. 되짚어 본 초난감 사례 분석"에서 과연 막는 것만이 능사인지, 점점 사장되어고 있는 음반 시장, 더 나아가 음악 시장을 되살릴 방법은 무엇인지에 대한 나름의 해결책을 제시하고 있습니다. 궁금하신 분들은 서점으로 달려가보시죠! :D

원점으로 다시 돌아와.. 루트킷이 무엇인지, 어떻게 작동하며 대응해야 하는지는 물론 이 책 『루트킷: 윈도우 커널 조작의 미학』을 읽어보셔야겠죠. :-)

▷▶ 스페셜 이슈 기사 읽으러 가기


CC

크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

 1쇄 오류/오탈자 

[ p4 아래에서 4행 ]
윈도우 운영체제 → 윈도우 운영체제

[ p31 아래에서 3행 ]
소스 프로젝트 → 오소스 프로젝트

[ p56 절 제목 ]
▒ IPR → ▒ IRP

[ p85 9행 ]
프로세스별 → 프로세스별

[ p90 세 번째 소스 마지막 행 ]
__asm sidt, idt_info → __asm sidt idt_info

[ p99 '임포트 어드레스 테이블 후킹' 절 3행 ]
해당 함수의 주를 → 해당 함수의 주

[ p213 표 7-1 윈도우2003 열 ]
PID Offset => 0x84
FLINK Offset => 0x88

PID Offset => 0x94
FLINK Offset => 0x98

[ p342 아래에서 6행 ]
James Butler et. al → 제임스 버틀러 외 다른 저자들

[ p342 저자주 8 ]
J. Butler et. al → 제임스 버틀러 외 지음