책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > OS/Networking > 네트워크 보안/해킹
· ISBN : 9788960775961
· 쪽수 : 1116쪽
책 소개
목차
01장 웹 애플리케이션 보안
__웹 애플리케이션의 발전
____일반적인 웹 애플리케이션 기능
____웹 애플리케이션의 혜택
__웹 애플리케이션 보안
____ "이 사이트는 안전합니다."
____보안 문제의 핵심: 사용자가 임의의 입력 값을 제공할 수 있다
____주요 문제점
____새 보안 경계선
____웹 애플리케이션 보안의 미래
__정리
02장 핵심 방어 메커니즘
__사용자 접근 처리
____인증
____세션 관리
____접근 제어
__사용자 입력 값 처리
____다양한 입력 값
____입력 값 조작에 대한 처리 방법
____경계 검증
____다단계 검증과 정규화
__공격자 핸들링
____에러 핸들링
____감사 로그 관리
____관리자에 경고
____공격에 대해 반응
__애플리케이션 관리
__정리
__확인문제
03장 웹 애플리케이션 기술
__HTTP 프로토콜
____HTTP 요청
____HTTP 응답
____HTTP 메소드
____URL
____REST
____HTTP 헤더
____쿠키
____상태 코드
____HTTPS
____HTTP 프록시
____HTTP 인증
__웹 기능
____서버 측 기능
____클라이언트 측 기능
____상태와 세션
__인코딩 스키마
____URL 인코딩
____유니코드 인코딩
____HTML 인코딩
____Base64 인코딩
____Hex 인코딩
____프레임워크 원격화와 직렬화
__정리
__확인문제
04장 애플리케이션 지도 작성
__콘텐츠와 기능 수집
____웹 스파이더링
____User-Directed 스파이더링
____숨겨진 콘텐츠의 발견
__애플리케이션 페이지와 기능 경로
____숨겨진 변수 발견
____애플리케이션 분석
____사용자 입력이 가능한 곳 확인
____서버 측 기술 확인
____서버 측 기능 확인
____핵심 공격 취약 영역 매핑
__정리
__확인문제
05장 클라이언트 측 통제 우회
__클라이언트를 통한 데이터 전송
____숨겨진 폼 필드
____HTTP 쿠키
____URL 매개변수
____Referer 헤더
____변형된 데이터
____ASP 닷넷 ViewState
__사용자 데이터의 획득: HTML 폼
____길이 제한
____스크립트 기반 검증
____비활성화된 요소
__사용자 데이터의 획득: 브라우저 확장
____일반적인 브라우저 확장 기술
____브라우저 확장에 대한 접근
____브라우저 확장 트래픽 가로채기
____브라우저 확장 디컴파일
____디버거 붙이기
____네이티브 클라이언트 컴포넌트
__클라이언트 측 데이터의 안전한 처리
____클라이언트를 통한 데이터 전송
____클라이언트가 생성한 데이터 검증
____로깅과 경고
__정리
__확인문제
06장 인증 무력화
__인증 기술
__인증 메커니즘에서 발견되는 설계상 결함
____안전하지 않은 비밀번호
____무차별 대입 공격이 가능한 로그인
____불필요하게 상세한 로그인 실패 메시지
____로그인 정보의 전송 취약성
____비밀번호 변경 기능
____비밀번호 복구 기능
____ '내 정보 기억하기'의 처리
____신분 전환 기능
____사용자 신원의 불완전한 검증
____고유하지 않은 사용자명 문제
____예측 가능한 사용자명
____추측 가능한 초기 비밀번호
____사용자 신원 정보의 안전하지 않은 배포
__사용자 인증 구현상의 결함
____장애 우회를 내포한 로그인 메커니즘
____다단계 로그인 메커니즘의 결함
____사용자 신원 정보의 안전하지 않은 보관
__안전한 인증
____강력한 사용자 신원 정보 사용
____사용자 신원 정보의 안전한 처리
____적절한 신원 정보 검증
____정보 유출 방지
____무차별 대입 공격 차단
____비밀번호 변경 기능의 악용 차단
____계정 복구 기능 악용 차단
____로그, 감시, 통지
__정리
__확인문제
07장 세션 관리 공격
__상태에 대한 유지 필요
____세션 대안
____세션 토큰 생성 과정에서 발생하는 취약점
____중요한 토큰
____추측 가능한 토큰
____암호화된 토큰
__세션 토큰을 처리할 때 발생하는 취약점
____네트워크상의 토큰 노출
____로그에서 토큰 노출
____세션에 취약한 토큰 매핑
____세션 종료의 취약점
____토큰 하이재킹에 대한 클라이언트 노출
____개방적인 쿠키 범위
__안전한 세션 관리
____강력한 토큰 생성
____토큰이 생성되고 나서 없어질 때까지 안전하게 보호
____로그, 감시, 경고
__정리
__확인문제
08장 접근 통제 공격
__일반적인 취약점
____접근 통제 기능이 허술하게 돼 있는 경우
____식별자 기반 기능
____다단계 기능
____정적 파일
____잘못 설정된 플랫폼
____안전하지 않은 접근 통제 방법
__접근 통제 공격
____다른 사용자 계정으로 테스트
____다단계 프로세스 테스트
____제한된 접근에 대한 테스트
____메소드에 대한 직접 접근 테스트
____정적 리소스에 대한 통제 테스트
____HTTP 메소드에 대한 제한 테스트
__안전한 접근 통제
____다중 계층 접근 통제 모델
__정리
__확인문제
09장 데이터 저장소 공격
__인터프리터 언어 안에 공격 코드 삽입
____로그인 우회
__SQL 내에 공격 코드 삽입
____기본적인 취약점 공격
____인젝션에 이용되는 다양한 구문
____SQL 인젝션 취약점 검색
____데이터베이스에 대한 정보 수집
____UNION 연산자
____유용한 데이터 추출
____UNION을 이용한 데이터 추출
____필터 우회
____2차 SQL 인젝션
____발전된 공격
____SQL 인젝션을 넘어서: 데이터베이스 권한 상승 공격
____SQL 공격 도구 사용
____SQL 문법과 에러 참조
____SQL 인젝션 방어
__NoSQL에 인젝션
____MongoDB에 인젝션
__XPath에 인젝션
____애플리케이션 로직 파괴
____다양한 XPath 인젝션
____블라인드 XPath 인젝션
____XPath 인젝션 취약점 검색
____XPath 인젝션의 방어
__LDAP에 인젝션
____LDAP 인젝션 공격
____LDAP 인젝션 취약점 검색
____LDAP 인젝션 방어
__정리
__확인문제
10장 백엔드 컴포넌트 공격
__운영체제 명령 인젝션
____예제 1: 펄을 통한 인젝션
____예제 2: ASP를 통한 인젝션
____동적 실행을 통한 인젝션
____운영체제 명령 인젝션 취약점 검색
____동적 실행 취약점의 발견
____운영체제 명령 인젝션 공격의 방어
____스크립트 인젝션 취약점의 방어
__파일 경로 조작
____경로 탐색 취약점
____파일 포함 취약점
__XML 인터프리터 안으로 공격 코드 인젝션
____XML 외부 엔티티 코드 삽입
____SOAP 안으로 공격 코드 인젝션
____SOAP 인젝션 취약점의 검색과 공격
____SOAP 인젝션의 방어
__백엔드 HTTP 요청에 공격 코드 인젝션
____서버 측 HTTP 리다이렉션
____HTTP 매개변수 인젝션
__메일 서비스를 통한 공격 코드 인젝션
____이메일 헤더 조작
____SMTP 명령 인젝션
____SMTP 인젝션 취약점 찾기
____SMTP 인젝션의 방어
__정리
__확인문제
11장 애플리케이션 로직 공격
__로직 결함의 특징
__현실적으로 존재하는 로직 결함
____예제 1: 오라클 요청
____예제 2: 취약한 비밀번호 변경 함수
____예제 3: 체크아웃 절차
____예제 4: 보험 상품 위험성
____예제 5: 은행 털기
____예제 6: 사업 기능 제한 파괴
____예제 7: 대량 구매 할인에의 결함
____예제 8: 이스케이프 회피
____예제 9: 입력 값 검증 우회
____예제 10: 검색 기능 악용
____예제 11: 디버그 메시지 착취
____예제 12: 로그인 경쟁
__논리적 결함 회피
__정리
__확인문제
12장 사용자 공격: XSS
__XSS의 다양성
____반사된 XSS 취약점
____저장된 XSS 취약점
____DOM 기반의 XSS 취약점
__XSS 공격
____실세계 XSS 공격
____크로스사이트 스크립팅 공격 페이로드
____크로스사이트 스크립팅 공격 전달 메커니즘
__크로스사이트 스크립팅 취약점 발견과 악용
____반사된 크로스사이트 스크립팅 취약점 발견과 악용
____저장된 XSS 취약점 발견과 공격
____DOM 기반의 XSS 취약점 발견과 악용
__크로스사이트 스크립팅 공격 예방
____반사된 XSS와 저장된 XSS 예방
____DOM 기반 크로스사이트 스크립팅 예방
__정리
__확인문제
13장 사용자 공격: 기타 기법
__사용자 행동 유도
____요청 위조
____UI Redress
__크로스도메인 데이터 수집
____HTML 인젝션으로 데이터 수집
____CSS 인젝션으로 데이터 수집
____자바스크립트 하이재킹
__동일 출처 정책의 재고
____동일 출처 정책과 브라우저 확대
____동일 출처 정책과 HTML5
____프록시 서버 애플리케이션으로 도메인 교차
__기타 클라이언트 측 주입 공격
____HTTP 헤더 인젝션
____쿠키 인젝션
____오픈 리다이렉션 취약점
____클라이언트 측 SQL 인젝션
____클라이언트 측 HTTP 매개변수 오염
__로컬 프라이버시 공격
____영구적 쿠키
____캐시된 웹 콘텐츠
____브라우저 기록
____자동 완성 기능
____플래시 로컬 공유 객체
____실버라이트 독립 저장소
____인터넷 익스플로러 userData
____HTML5 로컬 저장 메커니즘
____로컬 프라이버시 공격 방어
__액티브X 컨트롤 공격
____액티브X 취약점 발견
____액티브X 취약점 예방
__브라우저 공격
____키 스트로크 기록
____기록과 검색 쿼리 훔치기
____현재 사용된 애플리케이션 목록화
____포트 스캔
____기타 네트워크 호스트 공격
____Non-HTTP 서비스 공격
____브라우저 취약점 악용
____DNS 리바인딩
____브라우저 공격 프레임워크
____중간자 공격
__정리
__확인문제
14장 맞춤 공격 자동화
__맞춤 자동화의 사용
__유효한 식별자 수집
____기본적인 접근 방법
____히트 찾기
____공격 스크립트
__JAttack
__유용한 데이터 대량 수집
__일반적인 취약점 퍼징
__공격 종합: 버프 인트루더
____페이로드 위치 설정
____페이로드 선택
____응답 분석 설정
____공격 1: 식별자 수집
____공격 2: 정보 수집
____공격 3: 애플리케이션 퍼징
__자동화의 장벽
____세션 처리 메커니즘
____CAPTCHA 컨트롤
__정리
__확인문제
15장 정보 노출 공격
__에러 메시지 공격
____스크립트 에러 메시지
____스택 추적
____디버그 메시지 정보
____서버와 데이터베이스 메시지
____공개된 정보 이용
____중요한 에러 메시지 엔지니어링
__공개된 정보 수집
__추론 이용
__정보 노출 예방
____일반적인 에러 메시지 사용
____민감한 정보 보호
____클라이언트 측의 정보 노출 최소화
__정리
__확인문제
16장 컴파일된 애플리케이션 공격
__버퍼 오버플로우 취약점
____스택 오버플로우
____힙 오버플로우
____ 'off-by-one' 취약점
____버퍼 오버플로우 취약점 탐색
__정수 취약점
____정수 오버플로우
____부호 관련 문제
____정수 취약점 탐지
__형식 문자열 취약점
____형식 문자열 취약점 탐지
__정리
__확인문제
17장 애플리케이션 아키텍처 공격
__계층적 아키텍처
____다층 아키텍처 공격
____계층화된 구조 보호
__공유 호스팅과 애플리케이션 서비스 공급자
____가상 호스팅
____공유된 애플리케이션 서비스
____공유된 환경 공격
____공유된 환경 보호
__정리
__확인문제
18장 애플리케이션 서버 공격
__웹 서버 설정 취약점
____기본 계정
____기본 콘텐츠
____디렉터리 목록화
____WebDAV 메소드
____프록시로서의 애플리케이션 서버
____잘못 설정한 가상 호스팅
____웹 서버 설정 보안
__웹 서버 소프트웨어의 취약점
____애플리케이션 프레임워크 취약점
____메모리 관리 취약점
____인코딩과 정형화 취약점
____웹 서버 취약점 발견
____웹 서버 소프트웨어 보안
__웹 애플리케이션 방화벽
__정리
__확인문제
19장 소스코드 내의 취약점 발견
__코드 검토에 대한 접근 방식
____블랙박스와 화이트박스 테스트
____코드 검토 방법론
__일반적인 취약점 패턴
____크로스사이트 스크립팅
____SQL 인젝션
____경로 탐색
____임의의 리다이렉션
____운영체제 명령 인젝션
____백도어 비밀번호
____네이티브 소프트웨어 버그
____소스코드 주석
__자바 플랫폼
____사용자가 제공한 데이터 확인
____세션 상호 작용
____잠재적으로 위험한 API
____자바 환경설정
__ASP 닷넷
____사용자가 제공한 데이터 확인
____세션 상호 작용
____잠재적으로 위험한 API
____ASP 닷넷 환경설정
__PHP
____사용자가 제공한 데이터 확인
____세션 상호 작용
____잠재적으로 위험한 API
____PHP 환경설정
__펄
____사용자가 제공한 데이터 확인
____세션 상호 작용
____잠재적으로 위험한 API
____펄 환경설정
__자바스크립트
__데이터베이스 코드 컴포넌트
____SQL 인젝션
____위험한 함수 호출
__코드 브라우징에 대한 도구
__정리
__확인문제
20장 웹 애플리케이션 해커의 도구상자
__웹 브라우저
____인터넷 익스플로러
____파이어폭스
____크롬
__통합 테스트 도구
____도구 작업 방법
____테스팅 작업 흐름
____인터셉팅 프록시의 대안
__독립적 취약점 스캐너
____스캐너에서 발견한 취약점
____스캐너의 한계
____스캐너가 직면할 기술적인 문제
____현재 사용되는 웹 스캐너
__취약점 스캐너 사용
____기타 도구
____윅토/닉토
____파이어버그
____히드라
____맞춤형 스크립트
__정리
21장 웹 애플리케이션 해커의 공격 방법론
__일반적인 가이드라인
__1. 애플리케이션 콘텐츠 맵 작성
______1.1 화면상의 콘텐츠 검토
______1.2 공개된 리소스 검색
______1.3 숨은 콘텐츠 발견
______1.4 기본 콘텐츠 발견
______1.5 식별자 지정 함수 목록화
______1.6 디버그 매개변수 검사
__2. 애플리케이션 분석
______2.1 기능 식별
______2.2 데이터 입력 지점 검색
______2.3 사용된 기술 식별
______2.4 공격 취약 영역 맵 작성
__3. 클라이언트 측 통제 검사
______3.1 클라이언트에 의해 전달되는 데이터 검사
______3.2 사용자 입력에 대한 클라이언트 측 통제 검사
______3.3 브라우저 확장 컴포넌트 검사
__4. 인증 메커니즘 검사
______4.1 메커니즘 이해
______4.2 비밀번호 강력도 검사
______4.3 사용자명 목록화 검사
______4.4 비밀번호 추측 공격 가능성 검사
______4.5 계정 복구 기능 검사
______4.6 자동 로그인 기능 검사
______4.7 사용자 도용 기능 검사
______4.8 사용자명 유일성 검사
______4.9 자동 생성 자격 증명의 예측 가능성 검사
______4.10 자격 증명의 안전 전달 검사
______4.11 자격 증명의 안전 배포 검사
______4.12 안전하지 않은 저장 검사
______4.13 로직 결함 검사
______4.14 다른 사용자의 권한을 얻기 위한 공격
__5. 세션 관리 메커니즘 검사
______5.1 메커니즘 이해
______5.2 토큰의 의미 검사
______5.3 토큰의 예측 가능성 검사
______5.4 안전하지 않은 토큰 전송 검사
______5.5 로그 내에 토큰 노출 검사
______5.6 세션에 토큰 매핑 검사
______5.7 세션 종료 검사
______5.8 세션 고정 검사
______5.9 XSRF 검사
______5.10 쿠키 영역 검사
____6. 접근 통제 검사
______6.1 접근 통제 요구 이해
______6.2 여러 계정으로 검사
______6.3 제한된 접근으로 검사
______6.4 안전하지 않은 접근 통제 방법 검사
____7. 입력 기반 취약점 검사
______7.1 모든 요청 매개변수 퍼징
______7.2 SQL 인젝션 검사
______7.3 XSS와 기타 응답 인젝션 검사
______7.4 운영체제 명령 인젝션 검사
______7.5 경로 탐색 검사
______7.6 스크립트 인젝션 검사
______7.7 파일 포함 검사
____8. 특정 기능에 대한 입력 값 취약점 검사
______8.1 SMTP 인젝션 검사
______8.2 네이티브 소프트웨어 취약점 검사
______8.4 LDAP 인젝션 검사
______8.5 XPath 인젝션 검사
______8.6 백엔드 요청 인젝션 검사
______8.7 XXE 인젝션 검사
____9. 로직 결함 검사
______9.1 핵심 공격 취약 영역 식별
______9.2 다단계 처리 검사
______9.3 불완전한 입력 값 처리 검사
______9.4. 신뢰 경계 구간 검사
______9.5 처리 로직 검사
____10. 공유된 호스팅 취약점 검사
______10.1 공유된 환경에서 애플리케이션 분리 검사
______10.2 ASP 호스팅된 애플리케이션 사이의 분리 검사
____11. 웹 서버 취약점 검사
______11.1 기본 자격 증명 검사
______11.2 기본 콘텐츠 검사
______11.3 위험한 HTTP 메소드 검사
______11.4 프록시 기능 검사
______11.5 가상 호스팅의 잘못된 설정 검사
______11.6 웹 서버 소프트웨어 버그 검사
______11.7 웹 애플리케이션 방화벽 검사
____12. 기타 다양한 검사
______12.1 DOM 기반 공격 검사
______12.2. 로컬 프라이버시 취약점 검사
______12.3 약한 SSL 암호 검사
______12.4 동일 출처 정책 설정 검사
____13. 정보 노출 추적