Top

윈도우 시스템 보안과 해킹 세트

  • 원서명Rootkits: Subverting the Windows Kernel, Writing Secure Code for Windows Vista
  • 지은이그렉 호글런드, 제임스 버틀러, 마이클 하워드, 데이빗 르블랑
  • 옮긴이윤근용, 김홍석, 김홍근
  • ISBN : 9788960770553
  • 48,000원
  • 2010년 01월 20일 펴냄 (절판)
  • 페이퍼백 | 648쪽 | 188*250mm
  • 시리즈 : 해킹과 보안

판매처

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

책 소개

[ 세트 구성: 전2권 ]

1) 『루트킷: 윈도우 커널 조작의 미학』
2) 『윈도우 비스타 보안 프로그래밍』


『루트킷』 소개

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


『윈도우 비스타 보안 프로그래밍』 소개

윈도우 비스타 용으로 안전한 소프트웨어를 개발하려는 프로그래머의 필독서

『윈도우 비스타 보안 프로그래밍』은 윈도우 애플리케이션 개발자가 안전한 소프트웨어 제품을 만들 수 있는 보안 모범 사례를 보여주고 있다. 윈도우 비스타는 소프트웨어를 안전하게 만들게 도와주는 플랫폼 도구를 소프트웨어 작성자에게 제공하는 기능을 갖추어 설계됐다. 성공하기 위해서는 무엇보다도 사람들이 신뢰하는 기술 제품을 만들어야 한다. 이 책은 우리 모두가 근본적으로 더 안전하고 더 신뢰할 수 있는 제품을 만들어 고객에게 전달할 수 있게 도와줄 것이다.

저자/역자 소개

[ 저자 소개 ]

그렉 호글런드
소프트웨어 보안 분야의 개척자 역할을 수행해 왔다. 그는 현재 소프트웨어 보안 검증 서비스를 선도적으로 제공하는 기업인 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’ 등이 있다.

마이클 하워드
마이클 하워드는 마이크로소프트 보안 엔지니어링 팀에서 선임 보안 프로그램 매니저이며, 보안 관련 절차 개선 아키텍트이기도 하다. 수상 경력이 있는 『Writing Secure Code』, 『19 Deadly Sins of Software Security』, 『Security Development Lifecycle』를 포함해서 많은 보안 서적의 공저자이다. 대부분 데이빗 르블랑과 함께 작업했다. IEEE 보안 및 개인정보 분야 편집자이며, 마이크로소프트 출판부의 ‘안전한 소프트웨어 개발’ 시리즈의 에디터이다.

데이빗 르블랑
데이빗 르블랑은 마이크로소프트 오피스 부서의 신뢰할 수 있는 컴퓨팅 팀의 선임 개발자이다. 코드 작성 외에도, 오피스 제품의 보안 문제와 SDL 구현 방법에 대해 조언한다. 대부분 마이클 하워드와 공동 작업으로 보안 서적을 여러 권 공저하였다. 보안 업계의 다양한 방면에서 일해 왔는데, 전화 회사의 사기 방지에서부터 수상 경력이 있는 네트워크 보안 평가 도구 개발 팀 지휘, 마이크로소프트의 네트워크 보안 그룹에 대한 침투 테스트, 신뢰할 수 있는 컴퓨팅 기획 팀의 창립 회원 등이다. 책을 쓰지 않을 때엔 말을 타고 캐스케이드 지방 어딘가에 있을 것이다.


[ 역자 소개 ]

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

김홍석
한국마이크로소프트의 보안 프로그램 매니저로, 정보 보안 관련 세미나에서 마이크로소프트의 보안 기술과 전략을 널리 알리고 있으며, 국내 파트너 사들과 함께 보안 침해사고 대응을 하고 있다. 매달 둘째 화요일 밤을 새우며 윈도우 한 귀퉁이의 보안 패치 아이콘에 실릴 내용을 준비한다. 그 전에는 윈도우 디바이스 드라이버 개발을 했고 윈도우 서버 시스템 엔지니어를 거쳤다. 서울대학교 전기공학과에서 학부와 석사를 마쳤다. 새로운 컴퓨터 프로그램 익히기와 퀴즈 풀기를 즐긴다.

김홍근
서울대학교 컴퓨터공학과 박사과정을 졸업했으며, 현재 한국정보보호진흥원에서 책임연구원으로 일하고 있다. 수동적인 대상인 정보 보안에 이어 현재는 수동적인 면과 능동적인 면을 모두 가지는 소프트웨어 보안을 연구하고 있으며, 특히 소프트웨어 개발 과정에서의 보안성 향상을 위한 프로세스와 방법론에 주목하고 있다. 소프트웨어의 보안 취약성을 가시화시켜주는 기술을 “소프트웨어 보안 토마그러피”라고 스스로 작명하고 이 분야의 지평을 열기 위해 노력하고 있다.

목차

목차
  • 『루트킷』
  • 1장 흔적을 남기지 말라
    • 공격자의 동기 이해
      • 은닉의 역할
      • 은닉이 필요 없는 경우
    • 루트킷이란?
    • 왜 루트킷이 존재하는가?
      • 원격 명령 실행과 제어
      • 소프트웨어 감청
      • 루트킷의 합법적인 이용
    • 루트킷의 역사
    • 루트킷은 어떻게 동작하는가?
      • 패치
      • 이스터 에그
      • 스파이웨어
      • 소스 코드 조작
      • 소프트웨어 변경의 합법성
    • 무엇이 루트킷이 아닌가?
      • 루트킷은 공격툴이 아니다
      • 루트킷은 바이러스가 아니다
    • 루트킷과 소프트웨어 공격
      • 왜 공격 코드가 여전히 문제인가?
    • 공격을 위한 루트킷 기술
      • HIPS
      • NIDS
      • IDS/IPS 우회하기
      • 포렌식 툴 우회하기
    • 결론
  • 2장 커널 조작
    • 커널의 중요 요소
    • 루트킷 설계
    • 커널 레벨 코드 소개
    • 윈도우 디바이스 드라이버 개발
      • Device Driver Development Kit
      • 빌드 환경
      • 파일
      • Build 툴
      • 언로드 루틴
    • 드라이버 로드, 언로드
    • 디버그 메시지 로그하기
    • 유저 모드와 커널 모드 요소를 모두 포함하는 루트킷
      • IPR
      • 파일 핸들 생성
      • 심볼릭 링크 추가
    • 루트킷 로딩
      • 드라이버 로드를 위한 비정상적인 방법
      • 드라이버 로드를 위한 정상적인 방법
    • 리소스에서 .sys 파일 추출하기
    • 재부팅시 자동 시작
    • 결론
  • 3장 하드웨어 레벨의 지식
    • 링 제로
    • 테이블, 테이블 그리고 또 테이블
    • 메모리 페이지
      • 메모리 접근 검사
      • 페이징과 주소 변환
      • 페이지 테이블
      • 페이지-디렉토리 엔트리
      • 페이지-테이블 엔트리
      • 페이지 테이블의 읽기 전용 속성
      • 멀티 프로세스와 멀티 페이지 디렉토리
      • 프로세스와 스레드
    • 메모리 디스크립터 테이블
      • 글로벌 디스크립터 테이블
      • 로컬 디스크립터 테이블
      • 코드 세그먼트
      • 콜 게이트
    • 인터럽트 디스크립터 테이블
      • 다른 형태의 게이트
    • 시스템 서비스 디스패치 테이블
    • 컨트롤 레지스터
      • 컨트롤 레지스터 0
      • 그 밖의 컨트롤러 레지스터들
      • EFlags 레지스터
    • 멀티 프로세서 시스템
    • 결론
  • 4장 전통적인 후킹 기술
    • 애플리케이션 레벨의 후킹
      • 임포트 어드레스 테이블 후킹
      • 인라인 함수 후킹
      • 사용자 프로세스 영역으로 DLL 인젝션하기
    • 커널 후킹
      • 시스템 서비스 디스크립터 테이블 후킹
      • 인터럽트 디스크립터 테이블 후킹
      • 디바이스 드라이버 오브젝트의 Major Function 후킹
    • 하이브리드 후킹
      • 프로세스의 주소 공간으로 진입하기
      • 후킹을 위한 메모리 공간
    • 결론
  • 5장 런타임 패치
    • 우회 패치
      • MigBot을 이용한 실행 흐름 변경
      • 함수의 바이트 코드 검사
      • 원래의 명령어 바이트
      • NonPagedPool 메모리 이용
      • 런타임 주소 결정
    • 점프 템플릿
      • 인터럽트 후킹 예제
    • 기타 유사한 방법들
    • 결론
  • 6장 계층 드라이버
    • 키보드 스니퍼
      • IRP와 스택 로케이션
    • KLOG 루트킷
    • 파일 필터 드라이버
    • 결론
  • 7장 커널 오브젝트 직접 변경
    • DKOM의 장점과 단점
    • 운영체제 버전 판단하기
      • 유저 모드에서 운영체제 버전 판단
      • 커널 모드에서 운영체제 버전 판단
      • 레지스트리를 이용한 운영체제 버전 판단
    • 유저 모드 프로세스에서 디바이스 드라이버로의 통신
    • DKOM을 이용한 은닉
      • 프로세스 은닉
      • 디바이스 드라이버 은닉
      • 동기화 이슈
    • DKOM을 이용한 토큰의 권한과 그룹 변경
      • 프로세스 토큰 변경
      • 윈도우 이벤트 뷰어 속이기
    • 결론
  • 8장 하드웨어 조작
    • 왜 하드웨어인가?
    • 펌웨어 변경
    • 하드웨어 접근
      • 하드웨어 주소 지정
      • 하드웨어 접근은 RAM에 접근하는 것과 다르다
      • 타이밍
      • I/O 버스
      • BIOS에 접근
      • PCI, PCMCIA 디바이스 접근
    • 예 : 키보드 컨트롤러 접근
      • 8259 키보드 컨트롤러
      • 키보드 LED 변경
      • 하드 리부팅
      • 키보드 모니터링
    • 마이크로코드 업데이트
    • 결론
  • 9장 은닉 채널
    • 원격 명령 및 제어 그리고 데이터 빼내기
    • TCP/IP 프로토콜 위장
      • 트래픽 패턴의 인지
      • 데이터를 있는 그대로 전송하지 말라
      • 시간을 이용하라
      • DNS 패킷 안에 숨겨라
      • 아스키 문자 숨기기
      • 다른 TCP/IP 채널 이용
    • TDI를 이용한 루트킷
      • 어드레스 스트럭처 생성
      • 로컬 어드레스 오브젝트 생성
      • TDI 엔드 포인트 생성
      • 엔드 포인트와 로컬 어드레스 연결
      • 리모트 서버로 연결 - TCP 핸드쉐이크 전송
      • 리모트 서버로 데이터 전송
    • 네트워크 패킷 변경
      • 윈도우XP에서의 로우 소켓 구현
      • 인터페이스에 바인딩
      • 로우 소켓 스니핑
      • 로우 소켓을 이용한 무차별적인 스니핑
      • 로우 소켓을 이용한 패킷 전송
      • 소스 포트, 주소 위조
      • 바운싱 패킷
    • NDIS를 이용한 루트킷
      • 프로토콜 등록
      • 프로토콜 드라이버 콜백
      • 패킷 전체 이동
    • 호스트 에뮬레이션
      • 자체 MAC 주소 생성
      • ARP 처리
      • IP 게이트웨이
      • 패킷 전송
    • 결론
  • 10장 루트킷 탐지
    • 존재 탐지
      • 출입문 보호
      • 메모리 스캐닝
      • 후킹 탐지
    • 행동 탐지
      • 숨겨진 파일과 레지스트리 키 탐지
      • 숨겨진 프로세스 탐지
    • 결론

  • 『윈도우 비스타 보안 프로그래밍』
  • 1장 코드 품질
    • 윈도우 비스타 품질 관문
    • 모든 C/C++ 문자열 버퍼에 SAL로 표식을 붙임
      • 예제로 보는 SAL
      • 기존의 코드에서 SAL를 활용하는 방법
    • 코드에서 금지된 API의 제거
    • 코드에서 금지된 암호화 방법의 제거
    • 버그를 찾아서 해결하기 위한 정적 분석의 활용
      • /analyze와 관련된 경고
      • 애플리케이션 검증 도구 경고
      • FxCop 경고
    • C/C++ 비관리 코드는 /GS로 컴파일하고, /SafeSEH, /DynamicBase, /NXCompat로 링크
    • 개발자가 해야 할 일
    • 참고 자료
  • 2장 사용자 계정 컨트롤, 토큰, 무결성 수준
    • 사용자 계정 컨트롤
      • 사용자 토큰
      • 관리자로 권한 상승
      • 살짝 변형된 버전, 관리자 동의 모드
      • 윈도우 비스타 토큰 형식에서 달라진 점
      • 프로세스의 권한 상승 여부 확인
      • 애플리케이션이 관리자 계정으로 실행되게 만드는 방법
      • 애플리케이션이 계정 정보 입력이나 동의 화면을 띄우게 설정
      • COM 권한 상승 모니커로 COM 구성 요소 시작
      • 권한 상승된 관리 코드 애플리케이션의 시작
    • 사용자 인터페이스 고려 사항
    • 가상화
      • 애플리케이션에서 가상화를 사용하지 않게 설정하는 방법
    • 무결성 수준
      • 무결성 설정에 대한 규칙
      • NW, NR, NX 마스크
      • 무결성 수준을 사용한 방어 모델
    • 윈도우 비스타에서 애플리케이션 호환성 문제 디버깅
      • 파일 경고
      • 레지스트리 경고
      • INI 경고
      • 토큰 경고
      • 권한 경고
      • 네임 스페이스 경고
      • 기타 객체 경고
      • 프로세스 경고
    • 코드 서명의 중요성
    • 윈도우 비스타에 새로 등장한 권한
      • SETRUSTEDCREDMANACCESSNAME
      • (“SeTrustedCredManAccessPrivilege”)
      • SETRUSTEDCREDMANACCESSPRIVILEGE (31L)
      • SERELABELNAME (“SeRelabelPrivilege”)
      • SERELABELPRIVILEGE (32L)
      • SEINCWORKINGSETNAME (“SeIncreaseWorkingSetPrivilege”)
      • SEINCWORKINGSET PRIVILEGE (33L)
      • SETIMEZONE_NAME (“SeTimeZonePrivilege” )
      • SETIMEZONE_ PRIVILEGE (34L)
      • SECREATESYMBOLICLINKNAME (“SeCreateSymbolicLinkPrivilege”)
      • SECREATESYMBOLICLINK PRIVILEGE (35L)
    • 개발자가 해야 할 일
    • 참고 자료
  • 3장 버퍼 오버런 방어
    • ASLR
      • ASLR의 한계
      • 성능과 호환성에 미치는 영향
    • 스택 임의화
      • 성능과 호환성에 미치는 영향
    • 힙 방어
    • NX
      • 성능과 호환성 영향
    • /GS
    • SafeSEH
    • 요약
    • 개발자가 해야 할 일
    • 참고 자료
  • 4장 네트워크 방어
    • IPv6 개요
      • 터리도
    • 네트워크 목록 관리자
    • 윈도우 비스타 RSS 플랫폼
    • 윈속 보안 소켓 확장
    • 고급 보안이 설정된 윈도우 방화벽
      • 전역 방화벽 설정
      • 규칙 작성
      • 규칙 그룹 다루기
    • 개발자가 해야 할 일
    • 참고 자료
  • 5장 안전한 서비스 생성
    • 서비스의 개요
    • 서비스 계정
    • 권한의 축소
    • 네트워크 액세스의 제어
    • 데스크탑과 통신
      • 단순 메시지 박스
      • 공유 메모리
      • 네임드 파이프
      • 소켓
      • RPC/COM
    • 경험에서의 교훈
    • 개발자가 해야 할 일
    • 참고 자료
  • 6장 인터넷 익스플로러 7 방어
    • 심층 방어
    • 액티브X 옵트 인
      • 보호 모드
      • 데이터 실행 방지
    • cURL과 IUri 인터페이스
    • 액티브X 컨트롤 한정
    • 인터넷 익스플로러 7에 대해 알아야 할 다른 것들
      • 클립보드 접근이 제한됨
      • URL 스크립트
      • PCT와 SSL2여 잘 가게(속이 시원하군)! AES여 어서 오게!
      • 윈도우 출처
    • 개발자가 해야 할 일
    • 참고 자료
  • 7장 암호 개선 사항
    • 커널 모드와 사용자 모드 지원
    • 암호 민첩성
      • CNG에서의 암호 민첩성
    • CNG에 포함된 신규 알고리즘
    • CNG의 사용
      • 데이터 암호화
      • 데이터 해싱
      • 데이터 MAC 연산
      • 난수 생성
    • CNG와 FIPS
    • 개선된 감사 기능
    • CNG에서 다루지 않는 것
    • 개선된 SSL/TLS
      • SSL/TLS 해지 여부의 점검과 OCSP
    • 윈도우 비스타에서의 루트 인증서
    • 윈도우 비스타에서 문제 있는 암호 기능
    • 실천 사항
    • 참고 자료
  • 8장 인증과 권한 허가
    • 윈도우 카드스페이스와 인포메이션 카드
      • 윈도우 카드스페이스와 피싱
      • PIN
      • 카드스페이스와 피싱 사례
      • 인포메이션 카드의 동작 관찰
      • 인포메이션 카드에 들어있는 정보
      • 프로그램에서의 인포메이션 카드 액세스
      • 카드스페이스 요약
    • GINA의 변경
    • 소유자 SID의 변경
    • 개발자가 해야 할 일
    • 참고 자료
  • 9장 기타 방어와 보안 관련 기술
    • 애플리케이션에 자녀 보호 기능 추가
      • 코드
      • 시간 제한
      • 450 에러
      • 파일 다운로드 차단 옵션의 사용
      • 애플리케이션이나 URL 차단 면제
      • 이벤트 로깅
    • 윈도우 디펜더 API
      • 윈도우 디펜더 정책 문서
      • 코드 서명
      • 윈도우 디펜더 “알려짐 또는 아직 분류되지 않음” 목록에 추가하기 위한 요청
      • 새로운 자격 증명 사용자 인터페이스 API
    • 보안 이벤트 로그 사용
    • 포인터 인코딩
    • 커널 모드 디버깅 문제
    • TPM 프로그래밍
      • TPM에 대한 하위 수준의 접근
    • 윈도우 사이드바와 가젯 보안 고려 사항

도서 오류 신고

도서 오류 신고

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

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

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