해킹 기법 탐지 사고분석, 웹 보안 한 번에 끝내기 세트
- 지은이마이크 셰마, 최상용, 데피드 스터타드, 마커스 핀토
- ISBN : 9788960773950
- 78,000원
- 2013년 01월 30일 펴냄 (절판)
- 페이퍼백 | 1,432쪽 | 188*250mm
- 시리즈 : 해킹과 보안
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
웹 공격의 방법과 이를 관제하고 분석하는 책을 한번에 읽을 수 있는 세트로서, 웹 해킹이 어떻게 발생되고 이를 어떻게 관제하고 분석하는지의 라이프사이클을 담았다.
최근 대부분의 해킹이 웹 서버를 대상으로 발생되고 있는 시점에서 웹 서버 보안을 위한 3가지 단계(공격 탐지, 방어, 사고분석)을 두루 익힐 수 있는 세트다.
[ 세트 구성: 전3권 ]
1) 『해킹 초보를 위한 웹 공격과 방어』
2) 『해킹사고의 재구성: 사이버 침해사고의 사례별 해킹흔적 수집과 분석을 통한 기업 완벽 보안 가이드』
3) 『웹 해킹 & 보안 완벽 가이드: 웹 애플리케이션 보안 취약점을 겨냥한 공격과 방어』
『해킹 초보를 위한 웹 공격과 방어』
보안 실무자와 모의 해킹 전문가가 바로 활용할 수 있는 최신 기술이 담긴 책!
웹 보안의 개념과 실전 예제가 모두 담긴 책!
『해킹 초보를 위한 웹 공격과 방어』는 기존의 웹 보안 관련 서적이 놓치고 있는, 하지만 많은 독자가 궁금해 하는 내용에 답을 주는 책이다. 개념만 나와있어 실전에 응용하기 어려운 책이나 공격 기법은 자세히 다루면서 방어법은 지나치게 간단히 다루는 책에 아쉬움을 느꼈다면, 이 책을 읽음으로써 갈증을 말끔히 해소할 수 있다. 적은 분량임에도 불구하고 매우 실질적인 공격 예제와 최선의 방어법을 모두 담고 있는 책이 바로 『해킹 초보를 위한 웹 공격과 방어』이다.
이 책에서 다루는 공격 기법 7가지
1. 크로스사이트 스크립팅(XSS)
2. 크로스사이트 요청 위조(CSRF)
3. SQL 인젝션
4. 잘못된 서버 설정과 예측 가능한 웹페이지
5. 인증 방식 우회
6. 로직 공격
7. 멀웨어와 브라우저 공격
『해킹사고의 재구성』
이 책은 해킹사고 대응을 다년간 수행한 저자의 경험을 바탕으로, 해킹사고 대응 이론을 실무에 적용하는 방법과 실무적으로 가장 빠른 접근이 가능한 사고분석의 실체를 다룬다. 이 책을 통해 독자들은 해킹사고 시 해킹흔적 분석/조합을 통한 해커의 행동 추적기법과, 사이버침해사고 실제사례를 통한 기업을 위한 최적의 대응모델에 대한 지식과 기술을 빠르고 완벽하게 습득하게 될 것이다.
이 책에서 다루는 내용
■ 보안관제와 해킹사고 분석의 개념과 처리 절차
■ 보안관제와 해킹사고 분석에 주로 사용되는 정보 보호 시스템
■ 해킹사고의 흔적을 찾는 방법
■ 해킹사고의 흔적을 조립해 해커의 행위를 재구성하는 기술
■ (웹 해킹을 중심으로) 사이버 침해 대응 모델과 실제 해킹사고 분석 사례
이 책의 특징
■ 해킹대응의 노하우에 대한 세부적이고 명쾌한 설명
■ 해킹사고 분석사례를 통한 해킹사고 분석의 간접 경험
■ 사이버침해 대응체계를 구축하고자 하는 관리자가 참고할 수 있는 모델 제시
『웹 해킹 & 보안 완벽 가이드』
악의적인 해커들이 웹 애플리케이션을 어떻게 공격하는지, 실제 취약점을 찾기 위해 어떤 방법으로 접근하는지, 웹 애플리케이션에서 존재하는 취약점을 찾고 공격하기 위해 어떤 과정을 거쳐야 하는지를 자세히 설명하는 웹 해킹 실전서이자 보안 방어책을 알려주는 책이다.
이 책에서 다루는 내용
■ 웹 애플리케이션의 핵심 보안 메커니즘을 공격하고 특정 권한을 획득하는 방법
■ 공격 취약 영역을 분석하고 잠재적으로 공격 가능한 지점을 찾는 방법
■ HTML, 자바, 액티브X, 플래시에 구현돼있는 클라이언트 측 통제를 무너뜨리는 방법
■ 애플리케이션에 존재하는 로직 결함을 발견하는 방법
■ 더 빠르고 원하는 결과를 쉽게 얻기 위해 자동화된 도구를 이용하는 공격 방법
■ C#, 자바, PHP 같은 프로그래밍 언어에서 소스코드를 분석해 일반적인 취약점을 찾는 방법
최근 대부분의 해킹이 웹 서버를 대상으로 발생되고 있는 시점에서 웹 서버 보안을 위한 3가지 단계(공격 탐지, 방어, 사고분석)을 두루 익힐 수 있는 세트다.
[ 세트 구성: 전3권 ]
1) 『해킹 초보를 위한 웹 공격과 방어』
2) 『해킹사고의 재구성: 사이버 침해사고의 사례별 해킹흔적 수집과 분석을 통한 기업 완벽 보안 가이드』
3) 『웹 해킹 & 보안 완벽 가이드: 웹 애플리케이션 보안 취약점을 겨냥한 공격과 방어』
『해킹 초보를 위한 웹 공격과 방어』
보안 실무자와 모의 해킹 전문가가 바로 활용할 수 있는 최신 기술이 담긴 책!
웹 보안의 개념과 실전 예제가 모두 담긴 책!
『해킹 초보를 위한 웹 공격과 방어』는 기존의 웹 보안 관련 서적이 놓치고 있는, 하지만 많은 독자가 궁금해 하는 내용에 답을 주는 책이다. 개념만 나와있어 실전에 응용하기 어려운 책이나 공격 기법은 자세히 다루면서 방어법은 지나치게 간단히 다루는 책에 아쉬움을 느꼈다면, 이 책을 읽음으로써 갈증을 말끔히 해소할 수 있다. 적은 분량임에도 불구하고 매우 실질적인 공격 예제와 최선의 방어법을 모두 담고 있는 책이 바로 『해킹 초보를 위한 웹 공격과 방어』이다.
이 책에서 다루는 공격 기법 7가지
1. 크로스사이트 스크립팅(XSS)
2. 크로스사이트 요청 위조(CSRF)
3. SQL 인젝션
4. 잘못된 서버 설정과 예측 가능한 웹페이지
5. 인증 방식 우회
6. 로직 공격
7. 멀웨어와 브라우저 공격
『해킹사고의 재구성』
이 책은 해킹사고 대응을 다년간 수행한 저자의 경험을 바탕으로, 해킹사고 대응 이론을 실무에 적용하는 방법과 실무적으로 가장 빠른 접근이 가능한 사고분석의 실체를 다룬다. 이 책을 통해 독자들은 해킹사고 시 해킹흔적 분석/조합을 통한 해커의 행동 추적기법과, 사이버침해사고 실제사례를 통한 기업을 위한 최적의 대응모델에 대한 지식과 기술을 빠르고 완벽하게 습득하게 될 것이다.
이 책에서 다루는 내용
■ 보안관제와 해킹사고 분석의 개념과 처리 절차
■ 보안관제와 해킹사고 분석에 주로 사용되는 정보 보호 시스템
■ 해킹사고의 흔적을 찾는 방법
■ 해킹사고의 흔적을 조립해 해커의 행위를 재구성하는 기술
■ (웹 해킹을 중심으로) 사이버 침해 대응 모델과 실제 해킹사고 분석 사례
이 책의 특징
■ 해킹대응의 노하우에 대한 세부적이고 명쾌한 설명
■ 해킹사고 분석사례를 통한 해킹사고 분석의 간접 경험
■ 사이버침해 대응체계를 구축하고자 하는 관리자가 참고할 수 있는 모델 제시
『웹 해킹 & 보안 완벽 가이드』
악의적인 해커들이 웹 애플리케이션을 어떻게 공격하는지, 실제 취약점을 찾기 위해 어떤 방법으로 접근하는지, 웹 애플리케이션에서 존재하는 취약점을 찾고 공격하기 위해 어떤 과정을 거쳐야 하는지를 자세히 설명하는 웹 해킹 실전서이자 보안 방어책을 알려주는 책이다.
이 책에서 다루는 내용
■ 웹 애플리케이션의 핵심 보안 메커니즘을 공격하고 특정 권한을 획득하는 방법
■ 공격 취약 영역을 분석하고 잠재적으로 공격 가능한 지점을 찾는 방법
■ HTML, 자바, 액티브X, 플래시에 구현돼있는 클라이언트 측 통제를 무너뜨리는 방법
■ 애플리케이션에 존재하는 로직 결함을 발견하는 방법
■ 더 빠르고 원하는 결과를 쉽게 얻기 위해 자동화된 도구를 이용하는 공격 방법
■ C#, 자바, PHP 같은 프로그래밍 언어에서 소스코드를 분석해 일반적인 취약점을 찾는 방법
목차
목차
- 『해킹 초보를 위한 웹 공격과 방어』
- 1장 크로스사이트 스크립팅
- HTML 인젝션의 이해
- 인젝션 가능 지점 찾기
- XSS 공격 유형
- 안전한 문자셋 처리
- 오동작을 이용한 필터 우회
- 금지 문자는 사용하지 않는 XSS 공격
- 브라우저의 특징 고려
- 기타 고려 사항
- 방어법
- 문자셋 명시
- 문자셋과 인코딩의 정규화
- 출력 인코딩
- 제외 목록과 정규식 사용 시 주의점
- 코드 재사용(다시 구현하지 말자)
- 자바스크립트 샌드박스
- 정리
- HTML 인젝션의 이해
- 2장 크로스사이트 요청 위조
- 크로스사이트 요청 위조의 이해
- 강제 브라우징을 이용한 요청 위조
- 이미 인증된 사용자 공격
- CSRF와 XSS의 위험한 만남
- POST를 이용한 공격
- 다양한 방식으로 접근 가능한 웹
- CSRF의 변형: 클릭재킹
- 방어법
- 웹 애플리케이션 방어
- 웹 브라우저 방어
- 정리
- 크로스사이트 요청 위조의 이해
- 3장 SQL 인젝션
- SQL 인젝션의 이해
- 질의문 깨부수기
- 데이터베이스 정보 추출
- 기타 공격 벡터
- 방어법
- 입력 검증
- 질의문 보호
- 정보 보호
- 데이터베이스 최신 패치 유지
- 정리
- SQL 인젝션의 이해
- 4장 잘못된 서버 설정과 예측 가능한 웹페이지
- 잘못된 서버 설정과 예측 가능한 웹페이지로 인한 공격의 이해
- 안전하지 않은 디자인 패턴 식별
- 운영체제 공격
- 서버 공격
- 방어법
- 파일 접근 제한
- 객체 참조 사용
- 취약한 함수의 차단
- 권한 확인 의무화
- 네트워크 연결 제한
- 정리
- 잘못된 서버 설정과 예측 가능한 웹페이지로 인한 공격의 이해
- 5장 인증 방식 우회
- 인증 공격의 이해
- 세션 토큰 재활용
- 브루트포스
- 스니핑
- 암호 초기화
- 크로스사이트 스크립팅
- SQL 인젝션
- 사용자 속이기
- 방어법
- 세션 쿠키 보호
- 사용자 개입
- 사용자 귀찮게 하기
- 요청 처리율 제한
- 기록과 다중 분석
- 추가적인 인증 기법의 사용
- 피싱 방어
- 암호 보호
- 정리
- 인증 공격의 이해
- 6장 로직 공격
- 로직 공격의 이해
- 작업 흐름의 오용
- 정책과 실무의 허점 공격
- 귀납법
- 서비스 거부
- 취약한 디자인 패턴
- 정보 선별
- 방어법
- 요구 사항 문서화
- 광범위한 테스트 케이스 생성
- 정책 반영
- 방어적 프로그래밍
- 클라이언트 검증
- 정리
- 로직 공격의 이해
- 7장 신뢰할 수 없는 웹
- 멀웨어와 브라우저 공격의 이해
- 멀웨어
- 브라우저 플러그인의 다면성
- 도메인 네임 시스템과 출처
- 방어법
- 안전한 웹 서핑
- 브라우저 고립
- DNS 보안 확장
- 정리
- 멀웨어와 브라우저 공격의 이해
- 『해킹사고의 재구성』
- 1장 보안관제와 해킹사고 분석
- 1.1 정의
- 1.2 공통점과 차이점
- 1.3 보안관제 절차
- 1.2.1 보안관제: 이벤트 탐지
- 1.2.2 보안관제: 초기 분석
- 1.2.3 보안관제: 긴급 대응
- 1.2.4 보안관제: 사고 전파
- 1.4 해킹사고 분석 절차
- 1.4.1 해킹사고 분석: 접수
- 1.4.2 해킹사고 분석: 분석
- 1.4.3 해킹사고 분석: 피해 복구
- 1.4.4 해킹사고 분석: 신고 및 보고
- 1.5 정리
- 2장 해킹의 증거
- 2.1 정보 보호 시스템 개요
- 2.2 로그
- 2.3 해킹사고의 분류와 그 흔적
- 2.4 IDS/IPS
- 2.4.1 침입 탐지의 방법
- 2.4.2 IDS의 구성 형태
- 2.4.3 IDS의 로그
- 2.5 방화벽
- 2.5.1 방화벽의 주요 기능
- 2.5.2 방화벽의 구성 형태
- 2.5.3 방화벽의 로그
- 2.6 안티 DDoS
- 2.6.1 안티 DDoS 시스템의 차단 기능
- 2.6.2 안티 DDoS 시스템의 로그
- 2.7 WAF
- 2.7.1 WAF의 종류와 기능
- 2.7.2 WAF의 로그
- 2.8 웹 접근 로그
- 2.8.1 접근 로그
- 2.8.2 에러 로그
- 2.9 운영체제 로그
- 2.9.1 유닉스 계열 로그
- 2.9.2 윈도우 시스템 로그
- 2.10 그 외의 흔적
- 2.10.1 ESM 로그
- 2.10.2 DBMS 로그
- 2.11 정리
- 3장 증거와의 소통
- 3.1 해킹사고의 증상과 취약점
- 3.1.1 위/변조 사고
- 3.1.2 정보 유출 사고
- 3.1.3 DDoS 공격
- 3.2 증거 추적
- 3.2.1 변조(삭제, 추가)
- 3.2.2 시스템 변조
- 3.2.3 접속 시 특정 프로그램 설치 유도
- 3.2.4 클릭 후 이상동작
- 3.2.5 정보 유출 신고 접수
- 3.2.6 서비스가 안 되거나 느리고 시스템 부하가 가중됨
- 3.3 증거를 보는 눈 그리고 증거를 조합한 사고의 재구성
- 3.3.1 피해 시스템 식별
- 3.3.2 피해 증상 파악
- 3.3.3 피해 시스템 환경 확인
- 3.3.4 증거 수집
- 3.3.5 증거 추출과 해커 식별
- 3.3.6 해커의 행위 추론과 보고서 작성
- 3.4 정리
- 3.1 해킹사고의 증상과 취약점
- 4장 웹 해킹사고 분석 사례
- 4.1 홈페이지 변조를 통한 악성코드 유포 시도
- 4.1.1 확인과 증상
- 4.1.2 환경 분석과 로그 수집
- 4.1.3 해킹사고 분석
- 4.1.4 해킹사고 분석 보고서
- 4.2 애플리케이션 환경 설정 실수로 인한 웹셸 업로드
- 4.2.1 확인과 증상
- 4.2.2 환경 분석과 로그 수집
- 4.2.3 해킹사고 분석
- 4.2.4 해킹사고 분석 보고서
- 4.3 DDoS
- 4.3.1 확인과 증상
- 4.3.2 환경 분석과 로그 수집
- 4.3.3 해킹사고 분석
- 4.4 SQL 인젝션
- 4.4.1 확인과 증상
- 4.4.2 환경 분석과 로그 수집
- 4.4.3 해킹사고 분석
- 4.4.4 해킹사고 분석 보고서
- 4.5 정리
- 4.1 홈페이지 변조를 통한 악성코드 유포 시도
- 5장 사이버 침해 대응 모델
- 5.1 이론과 실제의 차이
- 5.1.1 보안 시스템이 모든 해킹을 탐지하고 차단할 것이다
- 5.1.2 모든 시스템은 이상적인 최적의 상태로 운영할 것이다
- 5.2 사이버 침해 대응 모델
- 5.2.1 현재 사이버 침해 대응 시스템 구성
- 5.2.2 현재 사이버 침해 대응 시스템의 한계
- 5.2.3 사이버 침해 대응 모델
- 5.3 정리
- 5.1 이론과 실제의 차이
- 『웹 해킹 & 보안 완벽 가이드』
- 01장 웹 애플리케이션 보안
- 웹 애플리케이션의 발전
- 일반적인 웹 애플리케이션 기능
- 웹 애플리케이션의 혜택
- 웹 애플리케이션 보안
- “이 사이트는 안전합니다.”
- 보안 문제의 핵심: 사용자가 임의의 입력 값을 제공할 수 있다
- 주요 문제점
- 미성숙된 보안 의식
- 자체 개발
- 개발하기 쉽다는 함정
- 빠르게 진화하는 위협 프로파일
- 자원과 시간 제약 요소
- 지나치게 확장돼 응용된 기술
- 새 보안 경계선
- 웹 애플리케이션 보안의 미래
- 정리
- 웹 애플리케이션의 발전
- 02장 핵심 방어 메커니즘
- 사용자 접근 처리
- 인증
- 세션 관리
- 접근 제어
- 사용자 입력 값 처리
- 다양한 입력 값
- 입력 값 조작에 대한 처리 방법
- 위험하다고 알려진 것들은 모두 차단
- 안전하다고 알려진 것들은 모두 수용
- 불순물 제거
- 안전한 데이터 처리
- 의미론적 검증
- 경계 검증
- 다단계 검증과 정규화
- 공격자 핸들링
- 에러 핸들링
- 감사 로그 관리
- 관리자에 경고
- 공격으로부터의 방어
- 애플리케이션 관리
- 정리
- 확인문제
- 사용자 접근 처리
- 03장 웹 애플리케이션 기술
- HTTP 프로토콜
- HTTP 요청
- HTTP 응답
- HTTP 메소드
- URL
- HTTP 헤더
- 일반적인 헤더
- 요청 헤더
- 응답 헤더
- 쿠키
- 상태 코드
- HTTPS
- HTTP 프록시
- HTTP 인증
- 웹 기능
- 서버 측 기능
- 자바 플랫폼
- ASP.NET
- PHP
- 클라이언트 측 기능
- HTML
- 하이퍼링크
- 폼
- 자바스크립트
- 씩 클라이언트(Thick Client) 컴포넌트
- 상태와 세션
- 서버 측 기능
- 인코딩 스키마
- URL 인코딩
- 유니코드 인코딩
- HTML 인코딩
- Base64 인코딩
- Hex 인코딩
- 정리
- 확인문제
- HTTP 프로토콜
- 04장 애플리케이션 지도 작성
- 컨텐츠와 기능 수집
- 웹 스파이더링
- User-Directed 스파이더링
- 숨겨진 컨텐츠의 발견
- 무차별 대입 공격 기법
- 제시된 컨텐츠에서 추측
- 공개된 정보 이용
- 웹서버 프로그램의 이용
- 애플리케이션 페이지와 기능 경로
- 숨겨진 변수의 발견
- 애플리케이션의 분석
- 사용자 입력이 가능한 곳 확인
- 서버 측 기술 확인
- 배너 가져오기
- HTTP 핑거프린팅
- 파일 확장자
- 디렉터리명
- 세션 토큰
- 제3자 코드 컴포넌트
- 서버 측 기능 확인
- 요청 값 해부
- 애플리케이션 행동의 추측
- 핵심 공격 취약 영역 매핑
- 정리
- 확인문제
- 컨텐츠와 기능 수집
- 05장 클라이언트 측 통제 우회
- 클라이언트를 통한 데이터 전송
- 숨겨진 폼 필드
- HTTP 쿠키
- URL 매개변수
- 리퍼러 헤더
- 변형된 데이터
- ASP.NET ViewState
- 사용자 데이터의 획득: HTML 폼
- 길이 제한
- 스크립트 기반 검증
- 비활성화된 요소
- 사용자 데이터의 획득: 씩 클라이언트 컴포넌트
- 자바 애플릿
- 자바 바이트코드의 디컴파일
- 바이트코드 혼란 기법에 대응하기
- 액티브X 컨트롤
- 역공학
- 엑스포티드 함수 조작
- 컨트롤에 의해 처리된 입력 값의 고정
- 관리된 코드 디컴파일링
- 쇽웨이브 플래시 객체
- 자바 애플릿
- 클라이언트 측 데이터의 안전한 처리
- 클라이언트를 통한 데이터 전송
- 클라이언트가 생성한 데이터 검증
- 로깅과 경고
- 정리
- 확인문제
- 클라이언트를 통한 데이터 전송
- 06장 인증 무력화
- 인증 기술
- 인증 메커니즘에서 발견되는 설계상의 결함
- 나쁜 비밀번호
- 무차별 대입 공격이 가능한 로그인
- 불필요하게 상세한 로그인 실패 메시지
- 로그인 정보의 전송 취약성
- 비밀번호 변경 처리
- 비밀번호 분실 처리
- “내 정보 기억하기”의 처리
- 신분 전환 처리
- 사용자 정보의 불완전한 검증
- 고유하지 않은 사용자명 문제
- 예측 가능한 사용자명
- 추측 가능한 초기 비밀번호
- 로그인 정보 전달 과정에서의 위험성
- 사용자 인증 구현상의 결함
- 장애 우회를 내포한 로그인 메커니즘
- 다단계 로그인 메커니즘의 결함
- 로그인 정보 보관상의 위험
- 안전한 사용자 인증 처리
- 안전한 로그인 정보의 사용
- 로그인 정보의 기밀 유지
- 로그인 정보의 제대로 된 검증
- 정보 유출 방지
- 무차별 대입 공격 차단
- 비밀번호 변경 기능의 악용 차단
- 계정 복구 기능 악용 차단
- 로그, 감시, 통지
- 정리
- 확인문제
- 07장 세션 관리 공격
- 사용자의 상태에 대한 유지 필요
- 세션 대안
- 세션 토큰을 만드는 과정에서 발생하는 취약점
- 중요한 토큰
- 추측 가능한 토큰
- 숨겨진 시퀀스
- 시간 의존성
- 약한 무작위 번호 생성
- 세션 토큰을 처리할 때 발생하는 취약점
- 네트워크상의 토큰 노출
- 로그에서 토큰 노출
- 세션에 대한 취약한 토큰 매핑
- 세션 종료의 취약점
- 토큰 하이재킹에 대한 클라이언트 노출
- 개방적인 쿠키 범위
- 쿠키 도메인 제한
- 쿠키 경로 제한
- 안전한 세션 관리
- 강력한 토큰 생성
- 토큰이 생성되고 나서 없어질 때까지 안전하게 보호
- 페이지당 토큰
- 로그, 감시, 경고
- 민감한 세션 만료
- 정리
- 확인문제
- 사용자의 상태에 대한 유지 필요
- 08장 접근 통제 공격
- 일반적인 취약점
- 보안 기능이 허술하게 돼있는 경우
- 식별자를 기반으로 한 기능
- 여러 단계에 걸친 보안 기능
- 정적 페이지
- 안전하지 않은 접근 통제 방법
- 접근 통제 공격
- 안전한 접근 통제
- 다계층 접근 통제 모델
- 정리
- 확인문제
- 일반적인 취약점
- 09장 코드 삽입 공격
- 인터프리터 언어 안에 공격 코드 삽입
- SQL 내에 공격 코드 삽입
- 기본적인 취약점 공격
- 로그인 우회
- SQL 인젝션 취약점 검색
- 문자열 데이터
- 숫자 데이터
- 인젝션에 이용되는 다양한 구문
- SELECT문
- INSERT문
- UPDATE문
- DELETE문
- UNION 연산자
- 데이터베이스에 대한 정보 수집
- 유용한 데이터 추출
- 오라클 해킹
- MS-SQL 해킹
- ODBC 에러 메시지 해킹(MS-SQL에 한해)
- 테이블과 칼럼 이름의 추출
- 임의의 데이터 추출
- 반복 이용
- 필터 우회
- 막혀진 문자 회피
- 간단한 검증 우회
- SQL 주석 이용
- 막혀진 문자열 조작
- 동적 실행 이용
- 안전하지 않게 구현된 필터의 공격
- 2차 SQL 인젝션
- 발전된 공격
- 숫자를 이용한 데이터의 추출
- Out-of-Band 채널 이용
- 추론 이용: 조건 응답
- SQL 인젝션을 넘어서: 데이터베이스 권한 상승 공격
- MS-SQL
- 오라클
- MySQL
- SQL 문법과 에러 참조
- SQL 문법
- SQL 에러 메시지
- SQL 인젝션의 방어
- 부분적인 효과
- 매개변수화된 쿼리
- 더욱 철저한 방어
- 운영체제 명령 삽입
- 예제 1: Perl을 통한 삽입
- 예제 2: ASP를 통한 인젝션
- 운영체제 명령어 삽입 취약점 검색
- 운영체제 명령어 삽입 공격의 방어
- 웹 스크립트 언어 안에 공격 코드 삽입
- 동적 실행 취약점
- PHP에서의 동적 실행
- ASP에서 동적 실행
- 동적 실행 취약점의 발견
- 파일 포함 취약점
- 원격 파일 포함
- 로컬 파일 포함
- 파일 포함 취약점의 발견
- 스크립트 삽입 취약점의 방어
- 동적 실행 취약점
- SOAP 안으로 공격 코드 삽입
- SOAP 인젝션 취약점의 검색과 공격
- SQL 인젝션의 방어
- XPath 안으로 공격 코드 삽입
- 애플리케이션 로직 파괴
- 다양한 XPath 인젝션
- 블라인드 XPath 인젝션
- XPath 인젝션 취약점 검색
- XPath 인젝션의 방어
- SMTP 안으로 공격 코드 삽입
- 이메일 헤더 조작
- SMTP 명령어 삽입
- SMTP 삽입 취약점 검색
- SMTP 인젝션의 방어
- LDAP 안으로 공격 코드 삽입
- 쿼리 속성 삽입
- 검색 필터 수정
- LDAP 인젝션 취약점 검색
- LDAP 인젝션 방어
- 정리
- 확인문제
- 10장 경로 탐색 공격
- 일반적인 취약점
- 경로 탐색 취약점 검색
- 공격할 대상의 위치 검색
- 경로 탐색 취약점의 검색
- 탐색 공격에 대한 보안 대책 우회
- 커스텀 인코딩을 이용한 파일명 생성
- 경로 탐색 취약점의 공격
- 경로 탐색 공격 예방법
- 정리
- 확인문제
- 11장 애플리케이션 로직 공격
- 로직 결함의 특징
- 현실적으로 존재하는 로직 결함
- 예제 1: 취약한 비밀번호 변경 함수
- 기능
- 가정
- 공격
- 예제 2: 체크아웃을 위한 절차
- 기능
- 가정
- 공격
- 예제 3: 보험 상품 위험성
- 기능
- 가정
- 공격
- 예제 4: 은행 털기
- 기능
- 가정
- 공격
- 예제 5: 감사 흔적의 삭제
- 기능
- 가정
- 공격
- 예제 6: 비즈니스 기능 제한의 파괴
- 기능
- 가정
- 공격
- 예제 7: 대량 구매 할인 시 존재하는 결함
- 기능
- 가정
- 공격
- 예제 8: 이스케이프의 회피
- 기능
- 가정
- 공격
- 예제 9: 검색 기능 악용
- 기능
- 가정
- 공격
- 예제 10: 디버그 메시지의 착취
- 기능
- 가정
- 공격
- 예제 11: 로그인 경쟁
- 기능
- 가정
- 공격
- 예제 1: 취약한 비밀번호 변경 함수
- 로직 결함의 회피
- 정리
- 확인문제
- 12장 애플리케이션 사용자 공격
- 크로스사이트 스크립팅
- 반사된 크로스사이트 스크립팅 취약점
- 취약점 악용
- 저장된 크로스사이트 스크립팅 취약점
- 업로드된 파일에 크로스사이트 스크립팅 저장
- DOM 기반의 크로스사이트 스크립팅 취약점
- 실제적인 크로스사이트 스크립팅 공격
- 체이닝 크로스사이트 스크립팅과 다른 공격
- 크로스사이트 스크립팅 공격 페이로드
- 가상 웹페이지 변조
- 트로이잔 삽입
- 사용자 행동 유도
- 신뢰 관계 악용
- 클라이언트 측 공격 증가
- 크로스사이트 스크립팅 공격 전달 매커니즘
- 반사와 DOM 기반의 크로스사이트 스크립팅 공격 전달
- 저장된 크로스사이트 스크립팅 공격 전송
- 크로스사이트 스크립팅 취약점 발견과 악용
- 반사된 크로스사이트 스크립팅 취약점 발견과 악용
- 저장된 크로스사이트 스크립팅 취약점 발견과 악용
- DOM 기반의 크로스 사이트 스크립팅 취약점 발견과 악용
- HTTP 쿠키와 크로스사이트 트레이싱
- 크로스사이트 스크립팅 공격 예방
- 반사되거나 저장된 크로스사이트 스크립팅 예방
- DOM 기반의 크로스사이트 스크립팅 예방
- XST 예방
- 반사된 크로스사이트 스크립팅 취약점
- 리다이렉션 공격
- 리다이렉션 취약점 발견과 악용
- 장애물 우회 공격
- 리다이렉션 취약점 예방
- 리다이렉션 취약점 발견과 악용
- HTTP 헤더 인젝션
- 헤더 인젝션 취약점 공격
- 쿠키 삽입
- 다른 공격 수행
- HTTP 응답 분리
- 헤더 인젝션 취약점 예방
- 헤더 인젝션 취약점 공격
- 프레임 인젝션
- 프레임 인젝션 악용
- 프레임 인젝션 예방
- 요청 위조
- 온사이트 요청 위조
- 크로스사이트 요청 위조
- XSRF 취약점 공격
- XSFR 취약점 예방
- JSON 하이재킹
- JSON
- JSON에 대한 공격
- 배열 생성자 함수 재정의
- 콜백 함수 구현
- JSON 하이재킹 취약점 발견
- JSON 하이재킹 예방
- 세션 고정
- 세션 고정 취약점 발견과 악용
- 세션 고정 취약점 예방
- 액티브X 컨트롤 공격
- 액티브X 취약점 발견
- 액티브X 취약점 예방
- 로컬 프라이버시 공격
- 장기간 유지되는 쿠키
- 캐시된 웹 컨텐츠
- 검색 기록
- 자동 완성 기능
- 로컬 프라이버시 공격 예방
- 발전된 공격 기법
- Ajax 공격
- 비동기 오프사이트 요청
- 안티 DNS 피닝
- 가설 연역적 공격
- DNS 피닝
- DNS 피닝에 대한 공격
- 브라우저 공격 프레임워크
- Ajax 공격
- 정리
- 확인문제
- 크로스사이트 스크립팅
- 13장 맞춤 공격 자동화
- 맞춤 자동화의 사용
- 유효한 식별자 수집
- 기본적인 접근 방법
- 힌트 찾기
- HTTP 상태 코드
- 응답 길이
- 응답 본문
- 위치 헤더
- 쿠키 설정 헤더
- 경과 시간
- 공격 스크립트
- JAttack
- 유용한 데이터 대량 수집
- 일반적인 취약점 퍼징
- 공격 종합: 버프 인트루더
- 페이로드 위치 설정
- 페이로드 선택
- 응답 분석 설정
- 공격 1: 식별자 수집
- 공격 2: 정보 수집
- 공격 3: 애플리케이션 퍼징
- 정리
- 확인문제
- 14장 정보 노출 공격
- 에러 메시지 공격
- 스크립트 에러 메시지
- 스택 추적
- 디버그 메시지 정보
- 서버와 데이터베이스 메시지
- 공개된 정보 이용
- 중요한 에러 메시지 엔지니어링
- 공개된 정보 수집
- 추론 이용
- 정보 노출 예방
- 일반적인 에러 메시지 사용
- 중요한 정보 보호
- 클라이언트 측의 정보 노출 최소화
- 정리
- 확인문제
- 에러 메시지 공격
- 15장 컴파일된 애플리케이션 공격
- 버퍼 오버플로우 취약점
- 스택 오버플로우
- 힙 오버플로우
- “off-by-one” 취약점
- 버퍼 오버플로우 취약점 탐색
- 정수 취약점
- 정수 오버플로우
- 부호 관련 문제
- 정수 취약점 탐지
- 포맷 스트링 취약점
- 포맷 스트링 취약점 탐지
- 정리
- 확인문제
- 버퍼 오버플로우 취약점
- 16장 애플리케이션 아키텍처 공격
- 계층적 아키텍처
- 다층 아키텍처 공격
- 계층 간 신뢰 관계 공략
- 다른 계층 파괴
- 다른 계층 공격
- 계층화된 구조 보호
- 신뢰 관계 최소화
- 다른 컴포넌트 분리
- 심도 있는 방어 체계 적용
- 다층 아키텍처 공격
- 공유 호스팅과 애플리케이션 서비스 공급자
- 가상 호스팅
- 공유된 애플리케이션 서비스
- 공유된 환경 공격
- 접근 메커니즘 대상 공격
- 애플리케이션 간의 공격
- 공유된 환경 보호
- 고객 접근 보호
- 고객별 기능 분리
- 공유된 애플리케이션에서 컴포넌트 분리
- 정리
- 확인문제
- 계층적 아키텍처
- 17장 웹서버 공격
- 웹서버 설정 취약점
- 디폴트 계정
- 디폴트 컨텐츠
- 디버그 기능
- 샘플 기능
- 강력한 기능
- 디렉터리 목록
- 위험한 HTTP 메소드
- 프록시로서 웹서버
- 잘못 설정한 가상 호스팅
- 웹서버 설정 보안
- 웹서버 소프트웨어의 취약점
- 버퍼 오버플로우 취약점
- 마이크로소프트 IIS ISAPI 확장
- 아파치 Chunked 인코딩 오버플로우
- 마이크로소프트 IIS WebDAV 오버플로우
- iPlanet 검색 오버플로우
- 경로 탐색 취약점
- Accipiter DirectServer
- Alibaba
- Cisco ACS Acme.server
- McAfee EPolicy Orcestrator
- 인코딩과 정형화 취약점
- Allarie JRun 디렉터리 목록 취약점
- 마이크로소프트 IIS 유니코드 경로 탐색 취약점
- 오라클 PL/SQL Exclusion 목록 우회
- 웹서버 취약점 발견
- 웹서버 소프트웨어 보안
- 좋은 추적 기록을 가지고 있는 소프트웨어를 선택
- 벤더 패치 적용
- 보안 강화 수행
- 새로운 취약점 모니터링
- 강력한 방어 기능 사용
- 버퍼 오버플로우 취약점
- 정리
- 확인문제
- 웹서버 설정 취약점
- 18장 소스코드 내의 취약점 발견
- 코드 검토에 대한 접근 방식
- 블랙박스와 화이트박스 테스트
- 코드 검토 방법론
- 일반적인 취약점 시그니처
- 크로스사이트 스크립팅
- SQL 인젝션
- 경로 탐색
- 임의의 리다이렉션
- 운영체제 명령어 인젝션
- 백도어 비밀번호
- 네이티브 소프트웨어 버그
- 버퍼 오버플로우 취약점
- 정수 취약점
- 포맷 스트링 취약점
- 소스코드 주석
- 자바 플랫폼
- 사용자가 제공한 데이터 확인
- 세션 상호작용
- 잠재적으로 위험한 API
- 파일 접근
- 데이터베이스 접근
- 동적 코드 실행
- 운영체제 명령어 실행
- URL 리다이렉션
- 소켓
- 자바 환경 설정
- ASP.NET
- 사용자가 제공한 데이터 확인
- 세션 상호작용
- 잠재적으로 위험한 API
- 파일 접근
- 데이터베이스 접근
- 동적 코드 실행
- 운영체제 명령어 실행
- URL 리다이렉션
- 소켓
- ASP.NET 환경 설정
- PHP
- 사용자가 제공한 데이터 확인
- 세션 상호작용
- 잠재적으로 위험한 API
- 파일 접근
- 데이터베이스 접근
- 동적 코드 실행
- 운영체제 명령어 실행
- URL 리다이렉션
- 소켓
- PHP 환경 설정
- Register Globals
- 안전 모드
- Magic Quotes
- 그 외 옵션
- Perl
- 사용자가 제공한 데이터 확인
- 세션 상호작용
- 잠재적으로 위험한 API
- 파일 접근
- 데이터베이스 접근
- 동적 코드 실행
- 운영체제 명령어 실행
- URL 리다이렉션
- 소켓
- Perl 환경 설정
- 자바스크립트
- 데이터베이스 코드 컴포넌트
- SQL 인젝션
- 위험한 함수 호출
- 코드 브라우징에 대한 도구
- 정리
- 확인문제
- 코드 검토에 대한 접근 방식
- 19장 웹 애플리케이션 해커의 도구상자
- 웹 브라우저
- 인터넷 익스플로러
- 파이어폭스
- 오페라
- 통합된 검사 스위트
- 도구 작동법
- 인터셉팅 프록시
- 웹 애플리케이션 스파이더
- 애플리케이션 퍼저와 스캐너
- 수동적인 요청 도구
- 특징 비교
- 버프 스위트
- 파로스
- 웹 스크랩
- 인터셉팅 프록시의 대안
- Tamper 데이터
- Tamper IE
- 도구 작동법
- 취약점 스캐너
- 스캐너에서 발견한 취약점
- 스캐너의 한계
- 모든 웹 애플리케이션에는 특색이 있다
- 스캐너는 애플리케이션의 논리를 완벽히 이해할 수는 없다
- 스캐너는 즉석으로 만들어지는 것이 아니다
- 스캐너는 직관적이다
- 스캐너가 직면할 기술적인 문제
- 인증과 세션 조작
- 위험한 영향
- 개별적 기능
- 자동화에 대한 도전
- 현재 사용되는 웹 스캐너
- 취약점 스캐너 사용
- 그 외의 도구
- 닉토
- 히드라
- 커스텀 스크립트
- Wget
- Curl
- Netcat
- Stunnel
- 정리
- 웹 브라우저
- 20장 웹 애플리케이션 해커의 공격 방법론
- 일반적인 가이드라인
- 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. 씩 클라이언트 컴포넌트 검사
- 3.3.1. 자바 애플릿 검사
- 3.3.2. 액티브X 컨트롤 검사
- 3.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.12.1. 페일 오픈 상태 검사
- 4.12.2. 다단계 메커니즘 검사
- 4.13. 다른 사용자의 권한을 얻기 위한 공격
- 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.3.1. 반사된 요청 매개변수 식별
- 7.3.2. 반사된 크로스사이트 스크립팅 검사
- 7.3.3. HTTP 헤더 인젝션 검사
- 7.3.4. 임의의 리다이렉션 검사
- 7.3.5. 저장된 공격 검사
- 7.4. 운영체제 명령어 인젝션 검사
- 7.5. 경로 탐색 검사
- 7.6. 스크립트 인젝션 검사
- 7.7. 파일 포함 검사
- 8. 특정 기능에 대한 입력 값 취약점 검사
- 8.1. SMTP 인젝션 검사
- 8.2. 네이티브 소프트웨어 취약점 검사
- 8.2.1. 버퍼 오버플로우 검사
- 8.2.2. 정수 취약점 검사
- 8.2.3. 포맷 스트링 취약점 검사
- 8.3. SOAP 인젝션 검사
- 8.4. LDAP 인젝션 검사
- 8.5. XPath 인젝션 검사
- 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. 웹서버 소프트웨어 버그 검사
- 12. 그밖의 다양한 검사
- 12.1. DOM 기반 공격 검사
- 12.2. 프레임 인젝션 검사
- 12.3. 로컬 프라이버시 취약점 검사
- 12.4. 정보 노출 추적