책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > OS/Networking > 네트워크 보안/해킹
· ISBN : 9791158391690
· 쪽수 : 656쪽
· 출판일 : 2019-10-04
책 소개
목차
▣ 01장: 웹 응용 프로그램 취약점이란?
01. 취약점이란 '악용 가능한 버그'
02. 왜 취약점이 존재하면 안 되는가?
____경제적 손실
____법적 규제
____사용자가 회복 불가능한 손실을 받을 수 있다
____웹 사이트 사용자에게 신뢰도 하락
____의도하지 않게 공격자가 될 수 있다
03. 취약점이 발생하는 이유
04. 보안 버그와 보안 기능
05. 이 책의 구성
06. 보안 지침과 대응
____소프트웨어 개발 보안 가이드
____OWASP Top10
▣ 02장: 실습 환경 설정
01. 실습 환경 개요
____실습용 가상 시스템 다운로드
____예제 프로그램 라이선스
02. 파이어폭스 설치
03. 버추얼박스 설치
____버추얼박스란?
____버추얼박스 다운로드
04. 가상머신 가져오기 및 동작 확인
____가상 시스템 동작 확인
____가상 시스템 종료 방법
____리눅스 운영
05. OWASP ZAP 설치
____OWASP ZAP이란?
____JRE 설치
____OWASP ZAP 설치
____OWASP ZAP 설정
06. 파이어폭스 확장 기능 FoxyProxy-Standard 설치
07. OWASP ZAP 사용하기
08. 웹 메일 확인
____참고 / 가상머신 데이터 목록
▣ 03장: 웹 보안 기초 - HTTP, 세션 관리, 동일 출처 정책, CORS
01. HTTP와 세션 관리
____왜 HTTP를 공부하는가?
____가장 간단한 HTTP
____입력-확인-등록 형식
____상태 비보존 HTTP 인증
____쿠키 및 세션 관리
____정리
02. 수동적 공격과 동일 출처 정책(Same Origin Policy)
____능동적 공격과 수동적 공격
____브라우저는 어떻게 수동 공격을 막을까
____자바스크립트 이외의 크로스 도메인 접근
____CSS
____정리
03. CORS(Cross-Origin Resource Sharing)
____간단한 요청
____사전 점검 요청
____인증 정보를 포함한 요청
▣ 04장: 웹 응용 프로그램 기능별 보안 버그
01. 웹 응용 프로그램의 기능과 취약점 대응
____취약점은 어디서 발생하는가?
____인젝션 관련 취약점이란?
____정리
02. 입력 처리와 보안
____웹 응용 프로그램에서 '입력'은 무슨 역할인가?
____문자 인코딩 검증
____문자 인코딩 변환
____문자 인코딩 검사 및 변환의 예
____입력값 검증
____예제
____정리
____참고: '제어 문자 이외'를 표현하는 정규 표현식
03. 표시 처리에 따른 문제
__4.3.1 크로스 사이트 스크립팅(기본편)
____개요
____공격 방법과 영향
____취약점이 발생하는 원인
____대책
____참고: Perl을 이용한 대책 예
__4.3.2 크로스 사이트 스크립팅(응용편)
____href 속성과 src 속성을 사용한 XSS
____자바스크립트 동적 생성
____HTML 태그와 CSS 입력을 허용하는 경우의 대책
__4.3.3 에러 메시지로부터의 정보 유출
____정리
____더 높은 단계로 나아가기 위해
04. SQL 호출에 따른 취약점
__4.4.1 SQL 인젝션
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
____정리
____더 높은 단계로 나아가기 위해
____참고: 자리 표시자를 사용할 수 없는 경우의 대책
____참고: Perl+MySQL의 안전한 연동 방법
____참고: PHP 5.3.5까지 사용할 수 있는 안전한 연동 방법
____참고: Java+MySQL의 안전한 연동 방법
05. '중요한 처리'시에 삽입되는 취약점
__4.5.1 크로스 사이트 요청 변조(CSRF)
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
__4.5.2 클릭재킹
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
____정리
06. 세션 관리 미비
__4.6.1 세션 하이재킹의 원인과 영향
__4.6.2 추측 가능한 세션 ID
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
____참고: 자체 세션 관리 메커니즘과 관련된 다른 취약점
__4.6.3 URL에 삽입된 세션 ID
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
__4.6.4 세션 ID 고정화
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
____정리
07. 리다이렉트 처리와 관련된 취약점
__4.7.1 오픈 리다이렉트
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
__4.7.2 HTTP 헤더 인젝션
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
08. 쿠키 출력과 관련된 취약점
__4.8.1 쿠키의 부적절한 출력
__4.8.2 쿠키의 보안 속성 미흡
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
____보안 속성 외 속성값에 대한 주의
____정리
09. 메일 전송 문제
__4.9.1 메일 전송 문제 개요
__4.9.2 메일 헤더 인젝션
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
____정리
____더 높은 단계로 나아가기 위해
10. 파일 접근과 관련된 문제
__4.10.1 디렉터리 탐색
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
____정리
__4.10.2 의도하지 않은 파일 노출
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
____참고: Apache 웹 서버에서 특정 파일을 숨기는 방법
11 OS 명령 호출 시 발생하는 취약점
__4.11.1 OS 명령어 인젝션
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
____참고: 내부 셸을 호출하는 함수
12. 파일 업로드와 관련된 문제
__4.12.1 파일 업로드 문제 개요
__4.12.2 업로드된 파일을 통한 스크립트 실행
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
__4.12.3 파일 다운로드를 통한 크로스 사이트 스크립팅
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
____정리
__4.12.4 PDF의 FormCalc를 통한 콘텐츠 하이재킹
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
____정리
13. 포함 기능과 관련된 문제
__4.13.1 파일 포함 공격
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
____정리
14. 구조화된 데이터 읽기 관련 문제
__4.14.1 eval 인젝션
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
____정리
____더 높은 단계로 나아가기 위해
__4.14.2 안전하지 않은 역직렬화
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
__4.14.3 XML 외부 개체 참조(XXE)
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
____정리
15. 공유 자원 및 캐시와 관련된 문제
__4.15.1 경쟁 상태 취약점
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
____정리
____참고: 자바 서블릿의 기타 주의 사항
__4.15.2 캐시로부터의 정보 유출
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
____정리
16. 웹 API 구현에서 발생할 수 있는 취약점
__4.16.1 JSON과 JSONP 개요
____JSON이란?
____JSONP이란?
__4.16.2 JSON 이스케이프 미흡
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
__4.16.3 JSON 직접 열람에 의한 XSS
____개요
____공격 방법 및 영향
____취약점이 발생하는 원인
____대책
__4.16.4 JSONP의 콜백 함수 이름을 통한 XSS
____개요
____공격 방법 및 영향
____취약점이 발생한 원인
____대책
__4.16.5 웹 API의 CSRF
____웹 API에 대한 CSRF 공격 경로
____대책
__4.16.6 JSON 하이재킹
____개요
____공격 방법 및 영향
____대책
__4.16.7 JSONP의 부적절한 사용
____JSONP에 의한 비밀 정보 제공
____신뢰할 수 없는 JSONP API 사용
____정리
__4.16.8 CORS 검증 미흡
__4.16.9 보안을 강화하는 응답 헤더
____정리
17. 자바스크립트 문제
__4.17.1 DOM Based XSS
____개요
____취약점이 발생한 원인
____대책
__4.17.2 웹 저장소의 부적절한 사용
____웹 저장소란?
____웹 저장소에 무엇을 저장해야 하는가?
____웹 저장소의 부적절한 사용 예
__4.17.3 postMessage호출의 미비
____postMessage란?
____메시지 송신지의 미확인
____메시지 수신처 미확인
____대책 정리
__4.17.4 오픈 리다이렉트
____취약점이 발생한 원인
____대책
____정리
▣ 05장: 대표적인 보안 기능
01. 인증
__5.1.1 로그인 기능
____로그인 기능에 대한 공격
____로그인 기능이 파손됐을 때의 영향
____부정 로그인을 막기 위해서는
__5.1.2 패스워드 인증을 노리는 공격에 대한 대책
____기본적인 계정 잠금
____패스워드 인증에 대한 공격 종류와 대책
__5.1.3 패스워드 저장 방법
____패스워드 보호의 필요성
____암호화를 통한 패스워드 보호와 해결 과제
____메시지 다이제스트를 통한 패스워드 보호와 과제
__5.1.4 자동 로그인
____안전하지 않은 구현 예
____안전한 자동 로그인 구현 방법
____자동 로그인의 위험을 낮추기 위해
__5.1.5 로그인 폼
__5.1.6 오류 메시지 요건
____ID와 패스워드 어느 쪽이 틀렸는지를 표시하면 안 되는 이유
____ID와 패스워드를 2단계로 나눠 입력하는 사이트 증가
__5.1.7 로그아웃 기능
__5.1.8 인증 기능 정리
02. 계정 관리
__5.2.1 사용자 등록
____메일 주소 수신 확인
____사용자 ID 중복 방지
____사용자 자동 등록에 대한 대처
__5.2.2 패스워드 변경
____현재 패스워드를 확인하는 것
____패스워드 변경 시 메일 알림
____패스워드 변경 기능에서 발생하기 쉬운 취약점
__5.2.3 메일 주소 변경
____메일 주소 변경에 필요한 기능적 대책
__5.2.4 패스워드 초기화
____관리자용 패스워드 초기화 기능
____사용자용 패스워드 초기화 기능
__5.2.5 계정 정지
__5.2.6 계정 삭제
__5.2.7 계정 관리 정리
03. 인가
__5.3.1 인가란?
__5.3.2 인가 미비의 예
____정보가 있는 URL을 알면 인증 없이 정보가 열람 가능
____정보 자원의 ID를 변경하면 권한을 넘어서는 정보를 열람할 수 있음
____권한에 따라 메뉴만 달리 표시하는 경우
____hidden 매개변수나 쿠키에 권한 정보를 보존
____인가 미비 정리
__5.3.3 인가 제어의 요건 정의
__5.3.4 인가 제어의 올바른 정의
__5.3.5 정리
04. 로그 출력
__5.4.1 로그 출력 목적
__5.4.2 로그 종류
____오류 로그
____접근 로그
____디버그 로그
__5.4.3 로그 출력 요건
____로그에 기록해야 할 이벤트
____로그 출력 항목
____로그 보호
____로그를 출력할 곳
____로그 보관 기간
____서버 시간 맞춤
__5.4.4 로그 출력 구현
__5.4.5 정리
____참고 : 접근 로그 요구 가이드라인
▣ 06장: 문자 코드와 보안
01. 문자 코드와 보안 개요
02. 문자 집합
03. 문자 인코딩
04. 문자 코드로 인한 취약점 발생 요인 정리
05. 문자 코드를 올바르게 취급하는 방법
06. 정리
▣ 07장: 취약점 진단 입문
01. 취약점 진단 개요
02. 취약한 응용 프로그램 Bad Todo
____Nmap
03. 진단 도구 다운로드 및 설치
____OpenVAS
____RIPS
04. Nmap을 이용한 포트 스캔
____Nmap 사용해보기
____Nmap 결과를 보는 방법
____OpenVAS 사용해보기
05. OpenVAS을 통한 플랫폼 취약점 진단
____OpenVAS 결과 확인 방법
____OWASP ZAP 설정
06. OWASP ZAP을 이용한 자동 취약점 스캔
____세션 정보 설정
____크롤링
____자동 진단
____진단 결과 확인
____진단 보고서 작성
____진단 후처리
07. OWASP ZAP을 이용한 수동 취약점 진단
____URL 목록표 작성
____진단 작업
____보고서 작성
____진단 후처리
____RIPS 사용해보기
08. RIPS를 사용한 소스코드 진단
09. 취약점 진단 실시를 할 때 주의할 점
10. 정리
11. 취약점 진단 보고서 예제
__7.11.1 XML 외부 엔티티 참조(XXE)
__7.11.2 크로스 사이트 스크립팅(XSS)
▣ 08장: 웹 사이트의 안전성을 높이기 위해
01. 웹 서버에 대한 공격 경로 및 대책
__8.1.1 기반 소프트웨어 취약점을 노린 공격
__8.1.2 무단 로그인
__8.1.3 대책
____적절한 서버 기반을 선정
____불필요한 소프트웨어는 사용하지 않음
____취약점 대처는 실시간으로 수행
____공개할 필요가 없는 포트나 서비스는 접근을 제한
____인증 강도를 높임
02. 피싱 사이트 대책
__8.2.1 네트워크를 통한 피싱 사이트 수법
____DNS에 대한 공격
____ARP 스푸핑
__8.2.2 피싱
__8.2.3 가짜 웹 사이트 대책
____네트워크적인 대책
____TLS 도입
____확인하기 쉬운 도메인명 사용
03. 도청, 변조 대책
__8.3.1 도청, 변조 경로
__8.3.2 중간자 공격
____OWASP ZAP을 이용한 중간자 공격 실습
____OWASP ZAP 루트 인증서 설치
__8.3.3 대책
____TLS 이용 시 주의할 점
04. 악성코드 대책
__8.4.1 웹 사이트 악성코드 대책이란?
__8.4.2 악성코드 감염 경로
__8.4.3 웹 서버 악성코드 대책 개요
__8.4.4 웹 서버에 악성코드가 들어오지 않게 하기 위한 대책
____악성코드 방지 대책 여부 검토
____정책을 정하고 사용자에게 고지
____백신 소프트웨어를 이용한 대처
05. 정리
▣ 09장: 안전한 웹 응용 프로그램을 위한 개발 관리
01. 개발 관리에 따른 보안 대책의 전체 모습
02. 개발 체제
03. 개발 프로세스
__9.3.1 기획 단계에서의 유의점
__9.3.2 발주할 때의 유의점
__9.3.3 요건 정의를 할 때 유의할 점
__9.3.4 기본 설계 진행 방식
__9.3.5 상세 설계, 프로그래밍시 유의점
__9.3.6 보안 테스트의 중요성 및 방법
__9.3.7 수주자측 테스트
__9.3.8 개발자 쪽에서의 테스트(검수)
__9.3.9 운영 단계에서의 유의점
__9.3.10 애자일 개발 프로세스에 적용
04. 정리