이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제
버그 헌터‘s 다이어리
베스트
IT 모바일 top100 1주
가격
20,000
10 18,000
YES포인트?
200원 (1%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  해외배송 가능?
  •  문화비소득공제 가능

책소개

목차

CHAPTER 1 버그 사냥
1.1 재미와 금전적 이득
1.2 일반적인 기술들
저자가 선호하는 기법들
잠재적으로 취약한 코드의 위치
퍼징
추가 자료
1.3 메모리 오류
1.4 도구
디버거
디스어셈블러
1.5 EIP = 41414141
1.6 이것만은 알아두자
참고자료

CHAPTER 2 응답하라 1990년대
2.1 취약점 발견
1단계: VLC의 디먹서 목록을 나열한다.
2단계: 입력 데이터를 분석한다.
3단계: 입력 데이터를 추적한다.
2.2 익스플로잇
1단계: TiVo 미디어 파일 샘플을 확보한다.
2단계: 취약점 코드가 실행되기 위한 코드 경로를 찾는다.
3단계: VLC 프로그램에서 충돌이 발생하도록 TiVo 동영상 파일을 조작한다.
4단계: EIP의 제어권을 얻을 수 있도록 TiVo 동영상 파일을 조작한다.
2.3 취약점 해결
2.4 교훈
2.5 추가 정보
참고자료

CHAPTER 3 WWW 존에서 탈출하기
3.1 취약점 발견
1단계: 커널의 IOCTL 목록을 구한다.
2단계: 입력 데이터를 파악한다.
3단계: 입력 데이터를 추적한다.
3.2 익스플로잇
1단계: NULL 포인터 역참조를 발생시켜 서비스를 거부한다.
2단계: EIP/RIP를 제어하기 위해 제로 페이지를 사용한다.
3.3 취약점 해결
3.4 교훈
3.5 추가 정보
참고자료

CHAPTER 4 널 포인터 FTW
4.1 취약점 발견
1단계: FFmpeg의 디먹서 목록을 나열한다.
2단계: 입력 데이터를 분석한다.
3단계: 입력 데이터를 추적한다.
4.2 익스플로잇
1단계: strk 청크 값이 정상적인 4X 동영상 샘플 파일을 구한다.
2단계: strk 청크의 레이아웃을 파악한다.
3단계: FFmpeg가 충돌하도록 strk 청크를 조작한다.
4단계: EIP를 제어하기 위해서 strk 청크를 조작한다.
4.3 취약점 해결
4.4 교훈
4.5 추가 정보
참고자료

CHAPTER 5 웹 사이트에 접속하면 게임 끝
5.1 취약점 발견
1단계: 등록된 WebEx 객체와 각 객체에서 외부로 공개된 함수들을 나열한다.
2단계: 브라우저에서 외부로 공개된 함수들을 시험한다.
3단계: 바이너리에서 객체 메서드를 찾는다.
4단계: 사용자 지정 입력값을 찾는다.
5단계: 객체 메서드를 역공학한다.
5.2 익스플로잇
5.3 취약점 해결
5.4 교훈
5.5 추가 정보
참고자료

CHAPTER 6 전지전능하신 커널님
6.1 취약점 발견
1단계: 커널 디버깅을 위해 VMware 게스트 머신을 준비한다.
2단계: avast!가 생성하는 드라이버와 디바이스 객체 목록을 구한다.
3단계: 디바이스 보안 설정을 검사한다.
4단계: IOCTL 목록을 구한다.
5단계: 사용자 지정 입력값을 찾는다.
6단계: IOCTL 핸들러를 역공학한다.
6.2 익스플로잇
6.3 취약점 해결
6.4 교훈
6.5 추가 정보
참고자료

CHAPTER 7 4.4BSD보다도 더 오래된 버그
7.1 취약점 발견
1단계: 커널의 IOCTL 목록을 나열한다.
2단계: 입력 데이터를 식별한다.
3단계: 입력 데이터를 추적한다.
7.2 익스플로잇
1단계: 시스템을 충돌시켜(서비스 거부) 버그를 발생시킨다.
2단계: 커널 디버깅 환경을 준비한다.
3단계: 디버거를 대상 시스템에 연결한다.
4단계: EIP에 대한 제어권을 얻는다.
7.3 취약점 치료
7.4 교훈
7.5 추가 정보
참고자료

CHAPTER 8 죽음의 벨소리
8.1 취약점 발견
1단계: iPhone의 오디오 기능 파악하기
2단계: 간단한 퍼저를 만들어 iPhone 퍼징하기
8.2 충돌 분석과 익스플로잇
8.3 취약점 해결
8.4 교훈
8.5 추가 정보
참고자료

APPENDIX A 디버깅
A.1 스택 버퍼 오버플로우
예제: Linux에서의 스택 버퍼 오버플로우
예제: Windows에서의 스택 버퍼 오버플로우
A.2 NULL 포인터 역참조
A.3 C언어에서의 형변환
A.4 GOT 덮어쓰기
참고자료

APPENDIX B 디버깅
B.1 Solaris 모듈 디버거(mdb)
mdb 실행하고 종료하기
일반 명령
중단점
디버기 실행
데이터 살펴보기
정보 출력하기
다른 명령들
B.2 Windows 디버거(WinDbg)
디버깅 세션 실행하고 종료하기
일반 명령
중단점
디버기 실행
데이터 표시하기
정보 명령
다른 명령들
B.3 Windows 커널 디버깅
1단계: 원격 커널 디버깅을 위해 VMWare 게스트 시스템을 구성한다.
2단계: 게스트 시스템의 boot.ini를 변경한다.
3단계: Windows 커널 디버깅을 위해 VMWare 호스트에 WinDbg를 구성한다.
B.4 GNU 디버거(gdb)
gdb 실행하고 종료하기
일반 명령
중단점
디버기 실행
데이터 살펴보기
정보 출력하기
다른 명령들
B.5 Linux를 Mac OS X 커널 디버깅 호스트로 사용하기
1단계: Red Hat 7.3 Linux 운영체제를 설치한다.
2단계: 필요한 소프트웨어 패키지를 구한다.
3단계: Linux 호스트에 Apple용 디버거를 빌드한다.
4단계: 디버깅 환경을 준비한다.
참고 자료

APPENDIX C 위험 완화 기법
C.1 위험 완화 기법들
주소 공간 무작위 재배치 기법(ASLR)
보안 쿠키(/GS), 스택 스매싱 보호(SSP), 스택 카나리
데이터 실행 보호(DEP), 실행 불가(NX: No eXecute)
익스플로잇 완화 기법 탐지하기
C.2 RELRO
부분 RELRO
전체 RELRO
테스트 사례 1: 부분 RELRO
테스트 사례 2: 전체 RELRO
결론
C.3 Solaris Zone
용어
Solaris 지역 영역 구성하기
참고자료

저자 소개

저자 : 토비아스 클라인
정보 보안 컨설팅과 연구를 수행하는 NESO Security Labs의 창업자이자 보안 연구원이다. 두 권의 정보 보안 서적을 집필하였다.
역자 : 서우석
파인드스티브 대표이사, 지경부 소프트웨어 마에스트로 멘토이다. 안철수 연구소 엔진팀, 국가기관 보안 연구원에 근무했으며 디버깅 전문 사이트, 디버그랩 운영을 했다.

품목정보

발행일
2013년 02월 12일
쪽수, 무게, 크기
280쪽 | 410g | 153*224*20mm
ISBN13
9788993827545

출판사 리뷰

해커, 누군가에게는 꿈일 수도 있고 누군가에게는 끔찍한 대상일 수도 있다. 활용하기에 따라 동전의 양면과 같은 기술들을 다루는 사람들을 우리는 해커라고 한다. 누구나 다 꿈꾼다고 해커가 될 수는 없다. 그동안 역자가 경험한 해커들은 자신만의 기술과 논리, 그리고 노하우로 무장되어 있다. 마치 자신만의 요리 레시피가 있는 요리사처럼 말이다. ‘자칭’ 해커라고 하는 사람들 중에서 자신만의 기술을 보유한 사람은 많지 않았다. 버그 헌터’s 다이어리는 이러한 면에서 다소 파격적이다. 저자가 대상을 선정하고 버그를 찾아내고 익스플로잇을 만들어내는 과정을 읽다보면 마치 물의 흐름에 따라 유유하게 이동하는 한 마리의 물고기가 생각날 정도로 자연스럽고 간결하다. 물론 저자가 이러한 내공을 갖기까지 얼마나 많은 밤을 지새웠는지를 잘 알고 있기에 그의 분석 기법이 더욱 빛을 발한다고 할까. 역자는 취약점 분석 분야의 전문가는 아니지만, 관련 분야의 일을 현업에서 5년 이상 해오면서 직간접적으로 겪은 경험이 이 책을 우리글로 전달하는 데 큰 도움이 되었다.

이 책은 우리가 자주 사용하고 널리 알려진 소프트웨어들을 대상으로 취약점 공격 기법을 알려준다. VLC 미디어 플레이어, iOS의 웹 브라우저, ActiveX 플러그인, 심지어는 백신 소프트웨어까지 저자의 분석 대상에는 불가능이란 없어 보인다. 저자는 소프트웨어의 복잡한 논리 속에 내포된 버그를 무서울 만큼 완벽하게 이해하고 있으며 마치 당연하다는 듯이 버그를 찾고 익스플로잇을 만들어 낸다. 그리고 각 단원에서 제시하는 일기는 비교적 내용이 길지 않고 분석 과정에서 필요한 핵심 정보만 소개하고 있어 보안 전문가가 아니더라도 이해하는 데 어려움이 없을 것이다. 전체적인 내용은 펠릭스 린드너가 “누군가에게 익스플로잇 하나를 주면 그는 하루 동안 해커가 될 수 있다. 그러나 버그를 익스플로잇할 수 있는 방법을 가르치면 그를 평생 해커로 만들 수 있다.”라고 언급한 것에 매우 적합하게 구성되어 있다

오늘날 소프트웨어 개발자들은 보안에 대해서 논리적으로 접근하지 않고 도구를 활용한 보안에 치중하고 있다. 패킹을 하고 컴파일러나 링커에서 제공하는 보안 기법, 운영체제에서 제공하는 분석 방지 기법들을 활용한다. 하지만 그 어떤 방법을 사용하더라도 소프트웨어 자체의 논리적인 오류는 결국 치명적인 보안 구멍이 될 수 있다. 그런 면에서 이 책이 취약점에 관심을 갖고 있는 보안 연구원들뿐만 아니라 일반 소프트웨어 개발자들도 한번쯤은 관심의 대상이 되길 바란다.

리뷰/한줄평2

리뷰

9.6 리뷰 총점

한줄평

첫번째 한줄평을 남겨주세요.