간편결제, 신용카드 청구할인
카카오페이 3,000원
(카카오페이 5만원 이상 결제시, 7/1~7/31 기간 중 1회)
삼성카드 6% (36,380원)
(삼성카드 6% 청구할인)
인터파크 롯데카드 5% (36,770원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (27,090원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (30,960원)
(최대할인 4만원 / 2만원 이상 결제)
Close

실전 바이너리 분석 : 자동화 취약점 탐지를 위한

원제 : Practical Binary Analysis: Build Your Own Linux Tools for Binary Instrumentation, Analysis, and Disassembly (ISBN 9781593279127)
소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 185
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

43,000원

  • 38,700 (10%할인)

    2,150P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 출고완료 후 14일 이내 마이페이지에서 적립받기한 경우만 적립됩니다.
추가혜택
배송정보
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서(33)

  • 사은품(4)

책소개

현대 사회에서 컴퓨터는 필수적이다. 특히 최근 인공지능 기술의 발전으로 컴퓨터는 상당한 수준의 고급 기능을 제공하며 인간의 생활을 윤택하게 했다. 그렇지만 그 이면을 보면, 컴퓨터가 과연 똑똑한 것인지 의문을 품게 된다. 사람은 자신의 복잡한 생각을 다양한 방식으로 처리할 수 있지만, 컴퓨터는 0과 1의 조합으로만 대상을 이해할 수 있다. 이 때문에 컴퓨터 관점의 언어를 저수준(low-level)이라고 부르고, 인간의 시각을 고수준(high-level)이라고 지칭한다. 서로 다른 국가의 사람들이 통용하는 언어가 다르듯이, 컴퓨터 역시 아키텍처나 운영체제에 따라 상이한 바이너리(이진 파일) 결과물을 사용한다. 그 때문에 사람이 다양한 종류의 컴퓨터 언어를 습득해 이해하는 것은 결코 쉽지 않다. 바이너리 분석이란 결국 이 둘 사이의 간극을 해결하는 일종의 '번역' 또는 '통역' 작업이라고 볼 수 있다. 이 책이 설명하는 여러 가지 기술을 통해, 컴퓨터와 심층적으로 소통할 수 있게 될 것이다.

추천사

데니스 앤드리스는 바이너리 분석 분야의 전문가다. 그는 굉장히 복잡한 개념을 아주 단순하게 설명하면서도, 지나치게 내용을 축소해 핵심을 놓치는 일이 없다.

허버트 보스(Herbert Bos) 교수
/암스테르담 자유대학교, 시스템 및 네트워크 보안,

목차

1부. BINARY FORMATS

1장. 바이너리란 무엇인가
1.1 C언어로 작성된 프로그램의 컴파일 과정
1.1.1 전처리 단계
1.1.2 컴파일 단계
1.1.3 어셈블 단계
1.1.4 링킹 단계
1.2 심벌과 스트립 바이너리
1.2.1 심벌 정보 확인하기
1.2.2 바이너리 스트립: 관련 정보 은닉하기
1.3 바이너리 디스어셈블
1.3.1 목적 파일
1.3.2 단독으로 실행가능한 바이너리 파일 분석하기
1.4 바이너리 로딩과 실행
1.5 이 장의 요약
연습 문제


2장. ELF 바이너리 포맷
2.1 ELF 파일 헤더
2.1.1 e_ident 배열
2.1.2 e_type, e_machine, e_version 필드
2.1.3 e_entry 필드
2.1.4 e_phoff와 e_shoff 필드들
2.1.5 e_flags 필드
2.1.6 e_ehsize 필드
2.1.7 e_*entsize 와 e_*num 필드
2.1.8 e_shstrndx 필드
2.2 섹션 헤더
2.2.1 sh_name 필드
2.2.2 sh_type 필드
2.2.3 sh_flags 필드
2.2.4 sh_addr, sh_offset, sh_size 필드
2.2.5 sh_link 필드
2.2.6 sh_info 필드
2.2.7 sh_addralign 필드
2.2.8 sh_entsize 필드
2.3 섹션
2.3.1 .init 과 .fini 섹션
2.3.2 .text 섹션
2.3.3 .bss, .data, .rodata 섹션들
2.3.4 지연 바인딩과 .plt, .got, .got.plt 섹션
2.3.5 .rel.* 과 .rela.* 섹션
2.3.6 .dynamic 섹션
2.3.7 .init_array와 .fini_array 섹션
2.3.8 .shstrtab, .symtab, .strtab, .dynsym, .dynstr 섹션
2.4 프로그램 헤더
2.4.1 p_type 필드
2.4.2 p_flags 필드
2.4.3 p_offset, p_vaddr, p_paddr, p_filesz, p_memsz 필드
2.4.4 p_align 필드
2.5 요약
연습 문제


3장. PE 바이너리 포맷요약 정리
3.1 MS-DOS 헤더와 MS-DOS 스텁
3.2 PE 시그니처, 파일 헤더, 옵션 헤더
3.2.1 PE 시그니처
3.2.2 PE 파일 헤더
3.2.3 PE 옵션 헤더
3.3 섹션 헤더 테이블
3.4 섹션
3.4.1 .edata와 .idata 섹션
3.4.2 PE코드 섹션의 패딩
3.5 요약
연습문제


4장. LIBBFD를 이용한 바이너리 로더 제작
4.1 libbfd란 무엇인가?
4.2 바이너리 로더의 기본 인터페이스
4.2.1 바이너리 클래스
4.2.2 섹션 클래스
4.2.3 심벌 클래스
4.3 바이너리 로더 구현하기
4.3.1 libbfd 초기화하고 바이너리 열기
4.3.2 바이너리 기본 정보 분석하기
4.3.3 심벌 정보 불러오기
4.3.4 섹션 정보 불러오기
4.4 바이너리 로더 테스트하기
4.5 요약
연습문제


2부. BINARY ANALYSIS FUNDAMENTALS

5장 리눅스 바이너리 분석 기초
5.1 file 명령어를 사용해 식별하기
5.2 ldd 명령어를 사용해 의존성 점검하기
ASCII 코드 신속하게 찾기
5.3 xxd 명령어를 사용해 파일 내부 내용 확인하기
5.4 readelf 명령어를 사용해 ELF 파일 형식 추출하기
5.5 nm 명령어를 사용해 심벌 정보 분석하기
5.6 strings 명령어를 사용해 단서 찾기
5.7 strace와 ltrace 명령어를 사용해 시스템콜 및 라이브러리 호출 추적하기
5.8 ojdump 명령어를 사용해 기계어 수준 동작 확인하기
5.9 gdb 명령어를 사용해 동적으로 문자열 버퍼 덤프하기
5.10 요약
연습문제


6장. 디스어셈블과 바이너리 분석 방법론
6.1 정적 디스어셈블
6.1.1 선형 디스어셈블
6.1.2 재귀적 디스어셈블
6.2 동적 디스어셈블
6.2.1 예제: gdb로 바이너리 실행 추적하기
6.2.2 코드 커버리지 전략
6.3 디스어셈블된 코드와 데이터를 구조화하기
6.3.1 코드 구조화
.eh_frame 섹션을 이용한 함수 탐지
6.3.2 데이터 구조화
6.3.3 디컴파일
6.3.4 중간 언어 표현식
6.4 주요 분석 방법론
6.4.1 바이너리 분석 요소
6.4.2 제어 흐름 분석
6.4.3 데이터 흐름 분석
6.5 디스어셈블시 컴파일러 설정 효과
6.6 요약
연습문제


7장. ELF 바이너리 코드 인젝션 기법
7.1 헥스 에디터를 이용한 원초적 수정 방법
정확한 opcode 찾기
7.1.1 한 바이트 버그 탐구하기
7.1.2 한 바이트 버그 수정하기
7.2 LD_PRELOAD를 사용해 공유 라이브러리 동작 변경하기
7.2.1 힙 오버플로 취약점
7.2.2 힙 오버플로 탐지하기
7.3 코드 섹션 끼워넣기
7.3.1 ELF 섹션 끼워넣기: 전체적 맥락
7.3.2 elfinject 를 사용해 ELF 섹션 삽입하기
7.4 삽입된 코드 호출하기
7.4.1 엔트리 포인트 개조
7.4.2 생성자와 소멸자 탈취하기
7.4.3 GOT 엔트리 탈취하기
7.4.4 PLT 엔트리 탈취하기
7.4.5 직접 및 간접 호출 조작하기
7.5 요약
연습문제


3부. ADVANCED BINARY ANALYSIS

8장. 자체 제작 디스어셈블 도구 구현
8.1 굳이 디스어셈블 과정을 자체 제작할 필요성은?4
8.1.1 자체 제작 디스어셈블 도구 사례: 난독화된 코드
난독화되지 않은 바이너리에서도 코드 겹침 기법이 적용될 수 있다
8.1.2 자체 제작 디스어셈블 도구를 개발할 또 다른 필요성
8.2 캡스톤 살펴보기
8.2.1 캡스톤 설치하기
8.2.2 캡스톤으로 선형 디스어셈블 도구 제작하기
8.2.3 캡스톤 C API 살펴보기
8.2.4 캡스톤으로 재귀적 디스어셈블 도구 제작하기
8.3 ROP 가젯 스캐너 구현
8.3.1 ROP 개요
8.3.2 ROP 가젯 탐색하기
8.4 요약
연습문제


9장. 바이너리 계측
9.1 바이너리 계측이란 무엇인가?
9.1.1 바이너리 계측 API
9.1.2 정적 및 동적 바이너리 계측 비교
9.2 정적 바이너리 계측
9.2.1 int 3 방법
9.2.2 트램펄린 방법
위치 독립 코드에 대한 트램펄린 적용
9.3 동적 바이너리 계측
9.3.1 DBI 시스템 구조
9.3.2 Pin 개요
9.4 Pin을 사용한 프로파일링
9.4.1 프로파일링 도구의 자료구조 및 초기 설정을 위한 코드
9.4.2 함수 심벌 분석하기
9.4.3 기본 블록 계측하기
9.4.4 제어 흐름 명령어 계측하기
9.4.5 명령어 개수, 제어 흐름 변경 및 시스템 콜 횟수 측정하기
9.4.6 프로파일링 프로그램 테스트하기
9.5 Pin을 사용한 자동화 바이너리 패킹 해제
9.5.1 바이너리 패킹 개요
9.5.2 언패킹 도구의 자료구조 및 설정 코드
9.5.3 메모리 사용 기록 계측하기
9.5.4 제어 흐름 명령어 계측하기
9.5.5 메모리 사용 기록 추적하기
9.5.6 OEP 탐지 및 언패킹된 바이너리 덤프하기
9.5.7 언패킹 프로그램 테스트하기
9.6 요약
연습문제


10장. 동적 오염 분석 원리
10.1 DTA란 무엇인가?
10.2 DTA의 세가지 단계: DTA의 세 가지 요소: 오염원, 오염 지역, 오염 전파
10.2.1 오염원 정의하기
10.2.2 오염 지역 설정하기
10.2.3 오염 전파 추적하기
10.3 DTA를 사용해 Heartbleed 버그 탐지하기
10.3.1 Heartbleed 취약점에 대한 간략한 요약
10.3.2 오염 분석 방법을 통해 Heartbleed 탐지하기
10.4 DTA 설계 요소: 오염 단위, 오염 색깔, 오염 정책
10.4.1 오염 단위
10.4.2 오염 색깔
10.4.3 오염 전파 정책
10.4.4 과잉 오염 및 과소 오염
10.4.5 제어 의존성
10.4.6 섀도 메모리
10.5 요약
연습문제


11장. LIBDFT를 이용한 동적 오염 분석 도구 개발
11.1 libdft 소개
11.1.1 libdft 내부 구조
11.1.2 오염 정책
11.2 DTA를 사용해 원격 제어 탈취 탐지하기
11.2.1 오염 정보 확인하기
11.2.2 오염원: 수신된 바이트의 오염
11.2.3 오염 지역: execve 함수의 매개 변수 점검하기
11.2.4 제어권 탈취 시도 탐지하기
11.3 암시적 제어 흐름을 통해 DTA 우회하기
11.4 DTA를 사용해 데이터 유출 탐지하기
11.4.1 오염원: 파일 열기 작업에 대한 오염 추적
11.4.2 오염 지역: 데이터 유출을 시도하는 네트워크 송신 감시
11.4.3 데이터 유출 시도 탐지하기
11.5 요약
연습문제


12장. 기호 실행 원리
12.1 기호 실행 개요
12.1.1 기호적 vs 구체적 실행
12.1.2 기호 실행의 다양한 방법론 분류 및 각 한계점
12.1.3 기호 실행의 확장 용이성 향상하기
12.2 Z3을 이용한 제약조건 풀이
12.2.1 명령어의 도달 가능성 증명
12.2.2 명령어의 도달 불가능성 증명
12.2.3 수식의 유효성 증명
12.2.4 표현식 간소화
12.2.5 비트 벡터를 사용해 기계어 코드의 제약 조건 모델링하기
12.2.6 비트 벡터로 표현된 모호한 표현식 풀이하기
12.3 요약
연습문제


13장. Triton을 이용한 기호 실행 실습
13.1 Triton 개요
13.2 추상 구문 트리를 이용해 상태 정보 관리하기
13.3 Triton을 이용한 백워드 슬라이싱
13.3.1 Triton 헤더 파일 및 Triton 환경 설정
13.3.2 심벌 환경 설정 파일
13.3.3 명령어 에뮬레이팅
13.3.4 Triton의 아키텍처 설정
13.3.5 백워드 슬라이스 계산
13.4 Triton을 이용한 코드 충족도 확대
13.4.1 기호 변수 생성
13.4.2 새로운 경로를 위한 모델 찾기
13.4.3 코드 충족도 도구 실행
13.5 자동으로 취약점 익스플로잇하기
13.5.1 취약한 프로그램
13.5.2 취약한 호출 지점의 주소 찾기
13.5.3 익스플로잇 생성 도구 구현
13.5.4 루트 셸 획득
13.6 요약
연습문제


4부. 부록

부록 A. 인텔 64비트 어셈블리 요점 정리
부록 B. LIBELF를 이용한 PT_NOTE 덮어쓰기 구현
부록 C. 바이너리 분석 도구 추천
부록 D. 참고 문헌

저자소개

데니스 앤드리스 [저] 신작알림 SMS신청 작가DB보기
생년월일 -
출생지 -
출간도서 0종
판매수 0권

시스템 및 네트워크 보안 분야에서 박사학위를 취득했으며, 현재 바이너리 분석 관련 연구를 수행하고 있다. ROP 등의 제어 흐름 탈취 공격으로부터 방어하기 위한 제어 흐름 무결성 보호 체계인 PathArmor의 핵심 개발자다. 또한 GameOver Zeus P2P botnet에 대한 진압 작전에 투입된 개발 요원이기도 했다.

생년월일 -
출생지 -
출간도서 0종
판매수 0권

한국항공대학교에서 컴퓨터 정보공학을 전공하고, 공군 정보통신 장교로 복무하며 정보 보안에 입문했다. 전역 후 KITRI의 Best of the Best 4기 디지털 포렌식 과정을 수료하고 한국과학기술원(KAIST) 대학원에 입학해 소프트웨어 보안을 연구했다. 석사 졸업 후 현재는 LG전자 소프트웨어 공학연구소에서 보안 기술(퍼즈 테스팅과 바이너리 분석)을 연구하고 있다.
정보처리기사, 전자계산기조직응용기사, 정보보안기사, 디지털 포렌식 전문가 2급 등을 보유하고 있다. 또한 2016년 한국정보기술연구원(KITRI) 주관의 정보 보안 스타트업 프로젝트 그랑프리 우승, 2018

펼쳐보기

이 상품의 시리즈

(총 35권 / 현재구매 가능도서 34권)

펼쳐보기

컴퓨터/인터넷 분야에서 많은 회원이 구매한 책

    리뷰

    0.0 (총 0건)

    구매 후 리뷰 작성 시, 북피니언 지수 최대 600점

    리뷰쓰기

    기대평

    작성시 유의사항

    평점
    0/200자
    등록하기

    기대평

    0.0

    교환/환불

    교환/환불 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

    교환/환불 가능 기간

    고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

    교환/환불 비용

    고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

    교환/환불 불가사유

    반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
    배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

    소비자 피해보상

    소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
    교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

    기타

    도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

    배송안내

    • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

    • 배송비

    도서(중고도서 포함) 구매

    2,000원 (1만원이상 구매 시 무료배송)

    음반/DVD/잡지/만화 구매

    2,000원 (2만원이상 구매 시 무료배송)

    도서와 음반/DVD/잡지/만화/
    중고직배송상품을 함께 구매

    2,000원 (1만원이상 구매 시 무료배송)

    업체직접배송상품 구매

    업체별 상이한 배송비 적용