장바구니 담기 close

장바구니에 상품을 담았습니다.

임베디드 해킹 렉처노트

임베디드 해킹 렉처노트

  • ahrik
  • |
  • 에이콘출판
  • |
  • 2024-12-16 출간
  • |
  • 504페이지
  • |
  • 188 X 235 X 24mm
  • |
  • ISBN 9791161759272
판매가

40,000원

즉시할인가

36,000

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
36,000

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

◈ 이 책에서 다루는 내용 ◈

◆ 하드웨어 해킹 입문자를 위한 하드웨어 기초 지식
◆ 임베디드 시스템의 구성
◆ 임베디드 장비의 펌웨어 추출 방법론
◆ UART, JTAG 디버깅 포트를 이용한 시리얼 분석 방법론
◆ 임베디드 시스템 해킹을 위한 기초 지식
◆ 에뮬레이팅의 다양한 기술
◆ 임베디드 해킹의 현업 노하우
◆ ARM 아키텍처 바이너리 공격 기법


◈ 이 책의 대상 독자 ◈

◆ 복합기, 월패드, 공유기, NAS 같은 임베디드 시스템 해킹에 대한 기초 지식을 쌓고 싶은 독자
◆ 하드웨어 해킹에 대한 기초 지식을 쌓고 싶은 독자
◆ 다양한 임베디드 공격 방법론에 대한 공부를 하고 싶은 독자

목차

1장. 프롤로그 - 누구를 위한 책인가? 해킹의 흐름

2장. 해킹의 흐름
2.1 타깃 선정
2.2 장비 분석
2.3 펌웨어 얻기
2.3.1 1-Day 공격 코드 활용하기
2.3.2 하드웨어 해킹 - 디버깅 포트 활용하기
2.3.3 플래시 메모리 덤프
2.4 펌웨어 분석
2.4.1 시스템 구성 분석
2.4.2 펌웨어 이미지 분석하기
2.4.3 동적 분석하기
2.5 펌웨어 이미지 수정하기
2.6 취약점 공략하기
2.7 ARM Exploitation

3장. 해킹 타깃 선정
3.1 합법과 불법 사이
3.2 공격 포인트 선정
3.3 공격 표면
3.4 공격 모델과 공격 벡터
3.5 위협 모델과 보안 자산
3.6 해커답게 생각하기
3.7 버그 바운티
3.8 마무리

4장. 임베디드 장비의 구성 요소
4.1 임베디드 하드웨어
4.1.1 임베디드 보드 소자 정리
4.1.2 임베디드 보드의 칩
4.1.3 통전 테스트
4.1.4 UART
4.1.5 JTAG
4.1.6 주변기기 장치
4.2 임베디드 소프트웨어
4.2.1 임베디드 장비의 부팅 흐름
4.2.2 부트 로더
4.2.3 PBL(Primary Boot Loader 혹은 Rom Boot Loader
4.2.4 SBL(Secondary Boot Loader)
4.2.5 UBoot
4.2.6 운영체제
4.2.7 디바이스 드라이버
4.2.8 파일시스템
4.2.9 서비스와 프로세스
4.2.10 RTOS
4.3 펌웨어 무결성 검증과 암호화
4.4 마무리

5장. 하드웨어 시리얼 통신
5.1 동기식 시리얼 통신과 비동기식 시리얼 통신
5.2 시리얼 통신 실습
5.3 Atmega128 개발 장비
5.4 Atmega128로 LED 제어 실습
5.5 Atmega128로 UART serial 구현하기
5.6 USB serial Converter 활용하기
5.7 SPI 통신
5.8 SPI 통신의 탄생
5.9 SPI 통신 파악하기
5.10 마무리

6장. 디버깅 포트로 펌웨어 얻기
6.1 UART 해킹
6.1.1 UART 디버깅의 활용
6.1.2 UART 핀 찾기
6.1.3 UART 핀 찾기 실습
6.1.4 멀티 미터기를 이용한 UART 확인하기
6.1.5 UART 시리얼 연결하기
6.1.6 로직 애널라이저를 통한 UART 신호 분석
6.1.7 UART 디버깅 메시지 분석하기
6.1.8 UART로 부트 쉘 얻기
6.1.9 부트 쉘 SPI 명령어를 활용해 펌웨어 덤프 뜨기
6.1.10 Binwalk로 펌웨어 구성 확인하기
6.1.11 부트 쉘 - md(memory display) 명령어로 펌웨어 덤프 뜨기
6.2 JTAG 해킹
6.2.1 JTAG란?
6.2.2 JTAG 연결
6.2.3 JTAG 핀 찾기
6.2.4 JTAGulator를 사용해 JTAG 핀 정의하기
6.2.5 JTAGulator를 사용해 라즈베리파이 - TJAG 핀 찾기
6.2.6 다양한 JTAG 디버거 장비
6.3 JTAG 보안

7장. 플래시 메모리
7.1 플래시 메모리 종류
7.2 우리는 왜 플래시 메모리 덤프를 떠야 하는가?
7.3 임베디드 보드에서 NAND 플래시 찾기
7.4 메모리의 패키지 형태
7.5 프로토콜별 패키징 특징
7.6 보드의 메모리 칩 후보 찾기
7.7 플래시 메모리의 일련번호 읽기
7.8 데이터 시트
7.8.1 데이터 시트 구하기
7.8.2 칩 정보 얻기
7.8.3 데이터 시트 이해하기 - SPI
7.8.4 데이터 시트 이해하기 - SPI(Read)
7.8.5 데이터 시트 이해하기 - SPI(REMS)
7.8.6 데이터 시트 이해하기 - MMC
7.8.7 데이터 시트 이해하기 - UFS
7.8.8 데이터 시트의 보안
7.9 플래시 메모리 연결
7.9.1 메모리 칩 핀에 연결하기 - 직접 납땜해 점퍼 연결하기
7.9.2 메모리 칩 핀에 연결하기 - 메모리 클립(집게) 이용하기
7.9.3 메모리 칩 핀에 연결하기 - 훅 그래버 클립
7.9.4 메모리 칩 핀에 연결하기 - BGA 디솔더링
7.9.5 메모리 칩 핀에 연결하기 - BGA 리솔더링

8장. 플래시 메모리 덤프
8.1 메모리 덤프 - Atmega128
8.1.1 SPI 통신 설정
8.1.2 Manufacturer ID 읽기
8.1.3 플래시 메모리 데이터 읽기
8.2 메모리 덤프 - 라즈베리파이
8.2.1 라즈베리파이
8.2.2 플래시 롬 프로젝트
8.2.3 라즈베리파이 운영체제 설치
8.2.4 라즈베리파이 이미지 굽기
8.2.5 라즈베리파이 SSH 설치
8.2.6 이미지 쓰기
8.2.7 라즈베리파이 SSH 접속
8.2.8 라즈베리파이 SPI 활성화
8.2.9 플래시 롬 설치하기
8.2.10 플래시 롬으로 ROM 메모리 덤프 뜨기
8.2.11 flashrom에서 지원하지 않는 칩셋 덤프 뜨기
8.2.12 SPIdev Python 패키지로 다루기
8.3 메모리 덤프-beeprog3
8.3.1 Beeprog
8.3.2 메모리 디솔더링
8.3.3 메모리 소켓 연결
8.3.4 비프로그 소프트웨어 설치
8.3.5 비프로그 연결
8.3.6 메모리 칩 덤프
8.4 메모리 덤프-Allsocket
8.4.1 올소켓 장비 구매
8.4.2 FTK Imager 덤프
8.5 마무리

9장. 펌웨어 분석하기
9.1 펌웨어의 구조 분석 순서
9.2 빈워크
9.2.1 빈워크 설치와 실행
9.2.2 이미지에서 파일시스템 추출하기
9.3 카빙
9.3.1 LZMA 카빙
9.3.2 Squashfs 카빙
9.4 정적 분석
9.4.1 정적 분석 도구 - IDA 대 Ghidra
9.4.2 IDA 대 Ghidra
9.4.3 RTOS 이미지 정적 분석 환경 구축하기
9.4.4 Base address 알아내기
9.4.5 하드웨어 변수 식별하기
9.5 동적 분석
9.5.1 펌웨어의 실행 파일 에뮬레이팅하기 - 1
9.5.2 추출한 펌웨어 바이너리 에뮬레이팅하기 - 2
9.5.3 펌웨어의 실행 흐름 추적하기 - strace
9.5.4 펌웨어의 실행 파일 동적 분석하기 - gdb
9.5.5 QEMU system 환경 구축하기
9.5.6 qemu-system-arm32 구축
9.5.7 qemu-system-aarch64 구축
9.5.8 UNICORN 에뮬레이터
9.6 부트 로더 분석
9.6.1 부트 로딩 방식
9.6.2 부트 로더 리버싱
9.6.3 오픈 소스의 활용
9.7 커널 분석
9.7.1 커널 이미지 분석 방법론
9.7.2 커널 드라이버 분석
9.7.3 커널 드라이버의 구조
9.7.4 임베디드 장비 드라이버 분석
9.8 파일시스템 분석
9.8.1 왜 파일시스템 구조를 공부해야 하는가?
9.8.2 파일시스템 다루기
9.8.3 Squashfs
9.8.4 CPIO
9.8.5 EXT4
9.8.6 JFFS와 JFFS2
9.8.7 CRAMFS
9.8.8 UBIFS
9.9 커스텀 펌웨어 분석하기
9.9.1 수정된 펌웨어 분석의 시작
9.9.2 수정된 UBIFS 이미지 분석
9.9.3 010 Editor 분석
9.9.4 수정된 UBI 데이터 분석
9.9.5 수정된 UBI에서 데이터 추출
9.10 마무리

10장. 펌웨어를 수정해 분석용 쉘 얻기
10.1 수정할 위치 정하기
10.2 백도어 심기
10.3 수정된 펌웨어로 접속 시도
10.4 다양한 백도어 여는 방법
10.4.1 원격 접속을 할 수 있는 명령어를 통한 백도어 열기
10.4.2 다운로드 명령어를 통한 백도어 열기
10.4.3 프로그램 생성을 통한 백도어 열기
10.5 디버깅 환경 구성

11장. 분석 도구 만들기
11.1 분석 도구 만들기
11.1.1 크로스 컴파일
11.1.2 크로스 컴파일 환경 맞추기
11.1.3 크로스 컴파일러 설치
11.1.4 크로스 컴파일하기
11.1.5 strace 분석 도구 정적 크로스 컴파일하기
11.1.6 strace 동작 확인
11.2 후킹을 통한 임베디드 분석 도구 만들기
11.2.1 리눅스 라이브러리 프리로드
11.2.2 프리로더를 이용한 라이브러리 후킹
11.2.3 OpenSSL 후킹 실습
11.2.4 글로벌 후킹
11.2.5 후킹으로 파일 생성, 삭제 모니터링 도구 만들기
11.2.6 후킹 모드 해지
11.3 마무리

12장. 취약점 공략하기
12.1 임베디드 시스템의 다양한 권한
12.1.1 DAC
12.1.2 Immutable sticky bit
12.1.3 MAC
12.1.4 Linux capabilities
12.1.5 RBAC
12.2 로직 버그
12.3 로직 버그 취약점 사례
12.3.1 USB Ext4 Format의 특성
12.3.2 USB 마운트 권한 설정 문제
12.3.3 USB 내에 심볼릭 링크
12.3.4 커스텀 쉘 우회
12.3.5 펌웨어 업데이트
12.3.6 인증 부재
12.4 Write what where?
12.4.1 Uevent helper
12.4.2 복합기 취약점 사례
12.4.3 마무리

13장. ARM Exploitation
13.1 메모리 오염 공격
13.2 About ARM
13.3 ARM 어셈블리 코드
13.4 ARM Thumb 모드란?
13.5 ARM 호출 규약
13.6 ARM Shellcode 만들기
13.7 thumb 모드 코드 작성
13.8 파이프라이닝
13.9 Hello world 쉘 코딩
13.10 execve shellcode 만들기
13.11 리버스 커넥션 쉘 코드 만들기
13.12 ARM 메모리 오염 공격 테크닉
13.13 ARM 스택오버플로우
13.14 ARM ROP
13.15 리얼 월드의 ARM Exploit 테크닉
13.16 마무리

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.