이미 소장하고 있다면 판매해 보세요.
|
PART Ⅰ 소프트웨어 보안
Chapter 01 리눅스 보안 개요 1.1 사용자와 그룹 1.2 허가 권한과 접근 제어 목록 1.3 특권으로 명령어 실행하기 1.4 인증 1.5 요약 Chapter 02 Set-UID 특권 프로그램과 이들에 대한 공격 2.1 특권 프로그램의 필요성 2.2 Set-UID 메커니즘 2.3 잘못될 수 있는 것: 슈퍼맨에게 일어난 일 2.4 Set-UID 프로그램의 공격 표면 2.5 다른 프로그램 인보크하기 2.6 최소 특권의 원칙 2.7 요약 Chapter 03 환경 변수를 통한 공격 3.1 환경 변수 3.2 환경 변수로 인한 공격 표면 3.3 동적 링커를 통한 공격 3.4 외부 프로그램을 통한 공격 3.5 라이브러리를 통한 공격 3.6 응용 프로그램 코드 3.7 Set-UID 방식 대 서비스 방식 3.8 요약 Chapter 04 버퍼 오버플로우 공격 4.1 프로그램 메모리 배치 4.2 스택과 함수 호출 4.3 스택 버퍼-오버플로우 공격 4.4 실험을 위한 설정 4.5 버퍼 오버플로우 공격 수행하기 4.6 주소와 버퍼 크기를 알 수 없는 공격 4.7 64비트 프로그램에 대한 버퍼 오버플로우 공격 4.8 대응책: 개요 4.9 주소 랜덤화 4.10 StackGuard 4.11 bash와 dash에서 대응책을 무력화하기 4.12 요약 Chapter 05 Return-to-libc 공격과 반환-지향 프로그래밍 5.1 개요: 실행 불가능 스택 5.2 공격 실험: 설정 5.3 Return-to-libc 공격 시작하기: 1부 5.4 Return-to-libc 공격 시작하기: 2부 5.5 쉘의 대응책 무력화하기 5.6 반환 지향 프로그래밍 5.7 요약 Chapter 06 형식 문자열 취약점 6.1 인수가 가변적인 함수 6.2 선택적 인수가 누락된 형식 문자열 6.3 취약한 프로그램과 실험 설정 6.4 형식 문자열 취약점 악용하기 6.5 형식 문자열 취약점을 이용한 코드 주입 공격 6.6 대응책 6.7 버퍼 오버플로우 공격과의 관계 6.8 요약 Chapter 07 경쟁 조건 취약성 7.1 일반적인 경쟁 조건 문제 7.2 경쟁 조건 취약성 7.3 실험 설정 7.4 경쟁 조건 취약성 악용하기 7.5 개선된 방법 7.6 대응책 7.7 요약 Chapter 08 Dirty COW 경쟁 조건 공격 8.1 mmap()을 이용한 메모리 매핑 8.2 MAP_SHARED, MAP_PRIVATE 및 Copy On Write 8.3 복사된 메모리 폐기하기 8.4 읽기 전용 파일 매핑하기 8.5 Dirty COW 취약점 8.6 Dirty COW 취약점 악용하기 8.7 요약 Chapter 09 쉘코드 9.1 개요 9.2 어셈블리 코드 작성하기 9.3 쉘코드 작성하기: 기본 아이디어 9.4 접근 방식 1: 스택 방식 9.5 접근 방식 2: 코드 세그먼트 방식 9.6 64비트 쉘코드 작성하기 9.7 일반 쉘코드 9.8 요약 Chapter 10 리버스 쉘 10.1 개요 10.2 파일 설명자와 재지정 10.3 입력/출력을 TCP 연결로 재지정하기 10.4 리버스 쉘 10.5 요약 PART Ⅱ 웹 보안 Chapter 11 웹 보안 개요 11.1 웹 구조 11.2 웹 브라우저 11.3 웹 서버: HTTP 서버와 웹 응용 프로그램 11.4 브라우저-서버 통신: HTTP 프로토콜 11.5 쿠키와 세션 11.6 자바스크립트 샌드박싱 11.7 Ajax 요청과 보안 11.8 요약 Chapter 12 사이트 간 요청 위조 12.1 사이트 간 요청과 이의 문제 12.2 사이트 간 요청 위조 공격 12.3 HTTP GET 서비스에 대한 CSRF 공격 12.4 HTTP POST 서비스에 대한 CSRF 공격 12.5 대응책 12.6 요약 Chapter 13 교차 사이트 스크립팅 공격 13.1 교차 사이트 스크립팅 공격 13.2 동작 중인 XSS 공격 13.3 자체-전파 달성하기 13.4 XSS 공격 막아내기 13.5 일반적인 자바스크립트 코드 주입 공격 13.6 요약 Chapter 14 SQL 주입 공격 14.1 SQL의 간단한 튜토리얼 14.2 웹 응용 프로그램에서 데이터베이스와 상호 작용하기 14.3 SQL 주입 공격 시작하기 14.4 근본적인 원인 14.5 대응책 14.6 요약 Chapter 15 Clickjacking 공격 15.1 전주곡 15.2 개요와 배경 15.3 투명한 iframe을 이용한 클릭재킹 공격 15.4 불투명한 iframe을 이용한 클릭재킹 15.5 대응책 15.6 iframe 보안 15.7 요약 Chapter 16 Shellshock 공격 16.1 배경: 쉘 함수 16.2 Shellshock 취약점 16.3 Set-UID 프로그램에 대한 Shellshock 공격 16.4 CGI 프로그램에 대한 Shellshock 공격 16.5 PHP에 대한 원격 공격 16.6 요약 PART Ⅲ 하드웨어 보안 Chapter 17 Meltdown 공격 17.1 개요와 유추 17.2 CPU 캐시를 통한 사이드 채널 공격 17.3 비밀을 간직한 방: 커널 17.4 가드 넘어가기: CPU에 의한 비순차적 명령어 실행 17.5 Meltdown 공격 17.6 대응책 17.7 요약 Chapter 18 Spectre 공격 18.1 개요 18.2 비순차적 실행과 분기 예측 18.3 Spectre 공격 18.4 통계적 방식을 이용한 공격 개선하기 18.5 Spectre 변종과 완화 18.6 요약 Bibliography |
Wenliang Du의 다른 상품
이재광의 다른 상품
|
이 책은 저자의 20년 교육과 연구 경험을 바탕으로 쓴 것이다. 사이버 보안의 기본 원칙을 다룬다. 이 책의 목표는 독자가 다양한 공격이 동작하는 방식, 공격의 근본적인 원인이 무엇인지, 공격을 방어하는 방법과 다양한 방어 메커니즘이 동작하는 방식을 이해하도록 돕는 것이다. 이 책의 지식을 갖춘 독자는 컴퓨터와 네트워크 시스템이 직면한 위험을 평가하고, 소프트웨어의 일반적인 취약점을 감지하고, 시스템과 네트워크를 보호하기 위한 적절한 방법을 사용하고, 공격을 차단하고 더 중요한 것은 보안 원칙을 적용하여 실제 문제를 해결하는 것이다.
저자는 “실제 해보고 알아가는 학습”을 강력히 믿기 때문에 이 책은 실험, 실습 접근 방식을 취한다. 각 보안 원칙에 관해 이 책에서는 원칙을 설명하는 데 도움이 되는 일련의 실습 활동을 제공한다. 독자는 원리를 읽는 대신에 "실제 해보는" 실험을 할 수 있다. 예를 들어 보안 원칙에 공격이 포함된 경우 이 책은 독자에게 실제로 공격을 해보도록 안내한다(격리된 환경에서). 어떤 경우에는 원칙에 보안 메커니즘과 관련된 경우 이 책은 독자에게 이 메커니즘의 미니 버전을 구현하도록 안내한다. 독자는 이러한 실습 활동을 통해 더 잘 배울 수 있다. 모든 실험, 실습 활동은 작성자가 제공한 가상 머신 이미지에서 수행된다. 다음 URL에서 다운로드할 수 있다: https://seedsecuritylabs.org. 활동에 필요한 모든 것이 설정되어 있다. 독자는 VM(무료)을 다운로드하고 VirtualBox를 사용하여 실행하기만 하면 책에서 다루는 활동을 즉시 수행할 수 있다. 이 책은 Ubuntu 20.04 VM 이미지를 기반으로 한다. 책에 있는 대부분의 활동은 전 세계의 강사들이 널리 사용하는 저자의 SEED Lab(버전 2.0)을 기반으로 한다. 이 Lab은 2002년부터 국립과학재단이 자금을 지원한 SEED라는 프로젝트에서 저자와 그의 학생들이 수행한 20년의 연구, 개발 및 테스트 노력의 결과이다. 저자는 모든 내용을 깊이 있게 다루었다. 강의에서 다루는 모든 주제에 대해 저자는 필요한 만큼 철저하게 다루고 싶었다. 저자는 학생들에게 개념만 가르치는 것은 관심이 없다. 저자는 학생들이 깊이 이해하도록 돕는 것을 좋아한다. 이 책에도 같은 철학이 반영되어 있다. 예를 들어, 버퍼 오버플로우 공격을 15분 만에 가르칠 수 있지만, 이 책은 이에 대해 2개 장을 사용하여 필수 배경 지식, 공격 세부 정보, 도전 과제, 대응책과 대응책에 대한 공격에 관해 설명한다. 저자는 기본을 믿는다. 보안은 매우 광범위한 주제이다. 새로운 기술 XYZ가 나올 때마다 “XYZ 보안”이라는 새로운 보안 주제가 생길 것이다. 이 새로운 보안 주제를 가르치는 것이 더 유행을 따르는 것처럼 보이지만 저자는 기본 교육을 믿고 있다. 이 XYZ 보안 주제의 바탕에는 유사한 보안 기본 사항이 있다. 기본 사항을 마스터한 독자는 습득한 지식을 바탕으로 새로운 보안 주제에 빠르게 적용할 수 있지만 XYZ 보안을 방금 배운 독자는 새로운 기술의 보안을 다루는 데 어려움을 겪을 것이다. 독자가 기본 사항을 마스터할 수 있도록 돕기 위해 이 책은 독자가 근본적인 유사점과 차이점을 볼 수 있도록 돕기 위해 종종 다른 것처럼 보이는 몇 가지 항목(공격 또는 방어 메커니즘)을 함께 제공한다. 또한 특정 메커니즘의 보안 문제를 분석할 때, 보안 원칙을 기반으로 체계적인 접근 방식을 취하고 탄탄한 기초를 바탕으로 추론한다. |