"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다"
웹 애플리케이션 보안 취약점과 해결책을 한 권으로
웹 애플리케이션 보안의 정찰, 공격, 방어를 모두 다루는 실용서다. 웹 애플리케이션에 침투하기 위해 해커가
실제로 사용하는 여러 기법을 소개하고 안전을 확보하는 법을 배운다. 각 장은 OWASP 취약점 중에서도 위
험성이 높은 주제의 공격과 방어 양면을 다룬다. 책에서 다루는 기술을 익히면 웹 애플리케이션 코드베이스
의 취약 부분을 파악하고 시큐어 코드는 어떻게 작성해야 하는지 이해할 수 있다. 해커로부터 소프트웨어를
보호하는 기법을 익히고 더 안전한 웹 애플리케이션을 구축할 수 있게 될 것이다.
출판사 리뷰
웹 애플리케이션 보안의 정찰, 공격, 수비를 체계적으로 정리하고 싶은 당신을 위한 책
이 책은 영화 <이미테이션 게임> 주인공인 천재 수학자 앨런 튜링의 ‘에니그마’를 주제로 첫 장을 연다. 흥미로운 보안 주제와 역사를 간략하게 살펴보면서 부담스럽지 않게 책을 살펴볼 수 있다. 구체적인 주제를 들어가기 전 보안 용어표를 미리 정리해두어 보안 세계에 발을 내딛는 초심자도 쉽게 읽을 수 있다.
웹 애플리케이션 정찰의 중요성을 짚고 난 후 보안의 공격과 수비 기법들을 설명한다. 공격과 수비의 다양한 기법과 실제 코드는 웹 애플리케이션 보안을 개선하고 싶지만 경험이 많지 않은 독자에게 실용적이고 실제적인 도움을 준다. 특히, OWASP 취약점에서도 위험성이 높은 XSS, CSRF, XXE, DoS 등을 공격과 수비 양면으로 다루어 더 이해하고 적용하기 쉽다. 각 주제는 이전 장을 공부해야 하는 수준으로 배열이 되었고, 연관성을 갖도록 해 끝까지 몰입할 수 있다는 게 매력적이다. 웹 애플리케이션 보안 결함을 해결하고 싶고, 더 안전한 웹 애플리케이션을 만들고 싶은 독자에게 강력히 이 책을 강력히 추천한다.
추천사
웹 애플리케이션 보안에 대해 빠짐없이 다룬 책이다.
_ 체탄 카란데, OWASP NodeGoat 프로젝트 리더
웹 애플리케이션의 보안을 어떻게 설계해야 안전한지 알려줄 뿐 아니라 공격자가 어떤 생각으로 웹 애플리케이션에 침투하는지도 알려주는 훌륭한 직무 해설서이다.
_ 팀 갤로, 보안 솔루션 아키텍트
CHAPTER 1 소프트웨어 보안의 역사
__1.1 해킹의 기원
__1.2 에니그마(1930년경)
__1.3 에니그마 코드 크래킹 자동화(1940년경)
__1.4 전화 프리킹(1950년경)
__1.5 프리킹 방지 기술(1960년경)
__1.6 컴퓨터 해킹의 태동(1980년경)
__1.7 월드 와이드 웹의 부흥(2000년경)
__1.8 현대의 해커(2015년 이후)
__1.9 마치며
PART I 정찰
CHAPTER 2 웹 애플리케이션 정찰 개요
__2.1 정보 수집
__2.2 웹 애플리케이션 매핑
__2.3 마치며
CHAPTER 3 현대 웹 애플리케이션의 구조
__3.1 전통 웹 애플리케이션과 현대 웹 애플리케이션 비교
__3.2 REST API
__3.3 자바스크립트 객체 표기법
__3.4 자바스크립트
__3.5 SPA 프레임워크
__3.6 인증 및 권한 부여 시스템
__3.7 웹 서버
__3.8 서버 측 데이터베이스
__3.9 클라이언트 측 데이터 저장소
__3.10 마치며
CHAPTER 4 서브도메인 찾기
__4.1 한 도메인에 여러 애플리케이션이 있는 경우
__4.2 브라우저에 내장된 네트워크 분석 도구
__4.3 공개된 레코드를 이용하기
__4.4 존 전송 공격
__4.5 서브도메인에 대한 브루트 포싱
__4.6 딕셔너리 공격
__4.7 마치며
CHAPTER 5 API 분석
__5.1 엔드포인트 탐색
__5.2 인증 메커니즘
__5.3 엔드포인트 형상
__5.4 마치며
CHAPTER 6 서드파티 의존성 식별
__6.1 클라이언트 측 프레임워크 검출
__6.2 서버 측 프레임워크 검출
__6.3 마치며
CHAPTER 7 애플리케이션 아키텍처 약점 식별
__7.1 보안 아키텍처와 비보안 아키텍처
__7.2 다중 보안 계층
__7.3 바퀴를 재발명할 것인가
__7.4 마치며
CHAPTER 8 1부를 마치며
PART II 공격
CHAPTER 9 웹 애플리케이션 해킹 개요
__9.1 해커의 마음가짐
__9.2 정찰 기법 응용
CHAPTER 10 사이트 간 스크립팅(XSS)
__10.1 XSS 탐색과 익스플로잇
__10.2 저장 XSS
__10.3 반사 XSS
__10.4 DOM 기반 XSS
__10.5 뮤테이션 기반 XSS
__10.6 마치며
CHAPTER 11 사이트 간 요청 위조(CSRF)
__11.1 질의 매개변수 변조
__11.2 GET 페이로드 바꿔치기
__11.3 POST 엔드포인트에 대한 CSRF
__11.4 마치며
CHAPTER 12 XML 외부 엔티티(XXE)
__12.1 직접 XXE
__12.2 간접 XXE
__12.3 마치며
CHAPTER 13 인젝션
__13.1 SQL 인젝션
__13.2 코드 인젝션
__13.3 명령 인젝션
__13.4 마치며
CHAPTER 14 서비스 거부(DoS)
__14.1 정규 표현식 DoS
__14.2 논리 DoS 취약점
__14.3 분산 DoS
__14.4 마치며
CHAPTER 15 서드파티 의존성 익스플로잇
__15.1 통합 방법
__15.2 패키지 관리자
__15.3 CVE 데이터베이스
__15.4 마치며
CHAPTER 16 2부를 마치며
PART III 방어
CHAPTER 17 현대 웹 애플리케이션 보안
__17.1 방어적 소프트웨어 아키텍처
__17.2 완전한 코드 리뷰
__17.3 취약점 탐색
__17.4 취약점 분석
__17.5 취약점 관리
__17.6 회귀 테스팅
__17.7 완화 전략
__17.8 정찰과 공격 기법을 응용
CHAPTER 18 안전한 애플리케이션 아키텍처
__18.1 기능 요구사항 분석
__18.2 인증과 권한 부여
__18.3 개인 식별 정보와 금융 데이터
__18.4 검색
__18.5 마치며
CHAPTER 19 보안 코드 리뷰
__19.1 코드 리뷰 방법
__19.2 전형적인 취약점과 커스텀 로직 버그
__19.3 보안 리뷰 시작 위치
__19.4 시큐어 코딩 안티패턴
__19.5 마치며
CHAPTER 20 취약점 탐색
__20.1 보안 자동화
__20.2 ‘책임 있는 공개’ 프로그램
__20.3 버그 바운티
__20.4 서드파티 침투 테스팅
__20.5 마치며
CHAPTER 21 취약점 관리
__21.1 취약점 재현
__21.2 취약점 심각도 순위
__21.3 공통 취약점 등급 시스템
__21.4 취약점 채점 고도화
__21.5 취약점 분류와 채점 이후
__21.6 마치며
CHAPTER 22 XSS 공격 방어
__22.1 안티 XSS 코딩 모범 사례
__22.2 사용자 입력 정제
__22.3 CSS
__22.4 XSS를 방지하기 위한 콘텐츠 보안 정책
__22.5 마치며
CHAPTER 23 CSRF 공격 방어
__23.1 헤더 검증
__23.2 CSRF 토큰
__23.3 안티 CSRF 코딩 모범 사례
__23.4 마치며
CHAPTER 24 XXE 방어
__24.1 다른 데이터 포맷 평가
__24.2 고도화된 XXE 위험
__24.3 마치며
CHAPTER 25 인젝션 방어
__25.1 SQL 인젝션 완화
__25.2 일반적인 인젝션 방어
__25.3 마치며
CHAPTER 26 DoS 방어
__26.1 정규 표현식 DoS 방어
__26.2 논리 DoS 방어
__26.3 DDoS 방어
__26.4 마치며
CHAPTER 27 서드파티 의존성 보안
__27.1 의존성 트리 평가
__27.2 안전한 통합 기법
__27.3 마치며
CHAPTER 28 3부를 마치며
__28.1 소프트웨어 보안의 역사
__28.2 웹 애플리케이션 정찰
__28.3 공격
__28.4 방어
마지막으로
찾아보기