해킹방어를 위한 자바 시큐어코딩
해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
패키지
북카드
키워드 Pick
키워드 Pick 안내
관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.
책 소개
이 책이 속한 분야
목차
- PART 01. 안전한 소프트웨어 개발 방법론
CHAPTER 01. 시큐어코딩의 개요
소프트웨어 보안의 필요성
소프트웨어 취약점 증가 및 침해 사고 사례
- 보안 사고 사례
보안 취약점 정보 활용
- CWE(Common Weakness Enumeration)
- CVE(Common Vulnerabilities and Exposures)
- SANS(SysAdmin, Audit, Network, Security)
- CERT(Computer Emergenct Response Team)
- OWASP(Open Web Application Security Project)
- 행자부 시큐어코딩 가이드
CHAPTER 02. 개발 보안 방법론
소프트웨어 개발 보안 방법론
OWASP CLASP
Microsoft SDL(Security Develop Lifecyle)
소프트웨어 개발 보안 가이드
PART 02. 안전한 소프트웨어를 만드는 시큐어코딩 기법
CHAPTER 03. 웹 애플리케이션 보안을 위한 기본 지식
실습 환경 구축
- 실습환경 다운로드 및 설치
- 프록시 툴 Paros 다운로드 및 설치
HTTP와 웹 구조
- 웹 서버와 프레임워크 구조 이해
- HTTP 구조
인증(Authentication)
- 세션을 사용하지 않는 HTTP 인증
- 세션을 사용하는 HTTP 인증
세션(Session)과 쿠키(Cookie)
- 세션
- 쿠키
인코딩 스키마
- ASCII 인코딩
- URL 인코딩
- HTML 인코딩
- BASE64 인코딩
- UniCode 인코딩
- MS Scripting 인코딩
정규식(regex)
- 정규식에 사용되는 특수문자들
- 자바스크립트에서 정규식 사용하기
- 자바 프로그램에서 정규식 사용하기
- 정규식을 이용한 입력 값 검증
로그 관리와 로그 분석
- W3C 포맷
- NCSA 포맷
- logparser를 이용한 로그분석
- Apache Log Viewer를 이용한 로그 분석
CHAPTER 04. 보안 취약점 제거를 위한 코딩 기법
입력 값 검증 부재와 삽입
- SQL 삽입
- 운영체제 명령어 삽입
- XPath 삽입
- LDAP 삽입
- SOAP 삽입
인증 및 세션 관리 취약
- 세션 취약점
- 패스워드 정책 및 관리 미흡
- 로그인 시도 횟수 제한
크로스 사이트 스크립팅(XSS)
크로스 사이트 요청 위조(CSRF)
파일 업로드/다운로드 취약점
민감한 데이터 노출
- 중요 정보 노출 취약점
- 암호화 정책과 안전한 DB 데이터 관리
- 안전하지 않은 암호 알고리즘 사용
잘못된 접근 제어 및 경로 조작
안전하지 않은 리다이렉트와 포워드
취약한 컴포넌트 사용
잘못된 보안 설정
- 디렉터리 노출
- 에러 노출
- 디폴트 설정 노출
기타 입력 값 검증 부재 취약점들
- HTTP응답 분할
- 정수 오버플로우
CHAPTER 05. 안전하지 않은 코딩 스타일
안전하지 않은 예외 처리
- 오류 메시지를 통한 정보 노출
- 오류 상황 대응 부재
- 부적절한 예외 처리
널 포인트 역참조
스레드 공유 데이터에 대한 동기화 처리 부재
캡슐화 위배
잘못된 API 사용
배포 시 제거되지 않고 남아 있는 코멘트 또는 디버깅 코드
PART 03. 소프트웨어 보안 강화 기법
CHAPTER 06. 오픈소스 보안 프레임워크 활용
ESAPI(Enterprise Security API)를 이용한 보안 강화
- ESAPI 라이브러리 구조
- ESAPI 라이브러리 환경 설정
- 사용자(User)와 인증 처리(Authenticator)
- HTTP Session 관리(HTTPUtilities)
- 입력 값 유효성 검증(Validator)과 인코딩(Encoder)
- 액세스 제어(AccessController)
- AccessReferenceMap
- 암호화(Encryptor)
- 로깅(Logging)
- 침입탐지(IntrusionDetector)
- 예외 처리(Exception Handling)
- API 다큐먼트와 예제 소스 활용
CHAPTER 07. 보안 약점 진단 툴 활용
보안 약점 진단 툴
정적 분석 방법
- 정적 분석 방법/기법
- LAPSE+를 이용한 정적 분석
- Find Bugs를 이용한 정적 분석
- 정적 분석 결과 보고서
동적 분석 방법
- 동적 분석 방법/기법.
- Paros를 이용한 동적 분석
- OWASP ZAP를 이용한 동적 분석
책 속으로
왜 개발자들에게 시큐어코딩을 요구할까?
어쩌면 개발자들은 정해진 기간에 사용자들이 요구하는 기능을 구현하는 것도 버거운 사람들이다. 언제나 정해진 시간은 턱없이 짧다. 항상 책정된 비용은 적기만 하다. 그래서 많은 개발자들이 애플리케이션을 개발하다 보면 요구되는 기능을 구현하는 데 급급하게 되고, 프로그램이 잘 실행되어 원하는 결과가 나올 수 있는 입력 값만으로 테스트가 이뤄지기도 한다.
공격자들은 최소한의 노력으로 최대한의 이익을 얻으려고 한다
공격자들은 예전과는 다른 환경에 직면했다. 대부분의 포트들은 방화벽에서 차단된다. 대부분의 시스템은 서비스에 필요한 최소한의 프로세스만 실행시킨다. 많은 시스템 애플리케이션은 실시간 패치 관리와 같은 보안 솔루션으로 철저하게 관리된다. 그러다 보니 공격자들은 좀 더 쉽게 시스템을 공격할 수 있는 방법을 찾게 되었다. 눈을 조금만 돌려보니 기능 구현에 급급했던 사용자 애플리케이션에서 취약점을 쉽게 발견할 수 있었던 것이다. 통계자료에서도 쉽게 볼 수 있듯이, SQL 삽입(Injection) 공격이나 XSS 공격, 세션 하이재킹 공격들이 나날이 늘어가는 것은 공격자의 눈에는 사용자 애플리케이션이 손쉬운 공격 대상이라는 의미와 통한다.
다시, 왜 개발자들에게 시큐어코딩을 요구할까?
많은 애플리케이션 공격 기법들을 분석해보면 사용자의 입력 값을 애플리케이션에서 제대로 검증하지 않고 사용해 DB 정보가 유출되거나, 시스템에 명령을 수행할 수 있는 쉘 환경을 공격자에게 넘겨주거나, 일반 사용자들이 피싱 사이트로 자신도 모르게 넘어가도록 하고 있었다. 이러한 것들은 어쩌면 보안 제품으로 모두 방어하기가 어렵다. 다시 말해 개발자들이 자신이 개발하는 애플리케이션이 사용하는 외부 입력 값들을 잘 정제해 사용하도록 프로그램을 작성해야만 한다는 것이다. 또는 에러가 발생한 경우 제대로 프로그램에서 에러를 처리함으로써 이차적인 문제가 발생되지 않도록 해야 한다. 인증된 사용자가 인가된 기능이나 리소스를 사용하도록 프로그램이 작성되었다면 보안 사고는 일어나지 않을 수 있다. 그래서 최근에 많은 기업들이 개발자들로 하여금 안전한 프로그램을 작성할 수 있도록 보안 침해 사고의 개념과 발생 원인을 학습하도록 하고, 이것을 프로그램에서 제거할 수 있도록 요구하고 있는 것이다.
그럼 개발자만 시큐어코딩을 하면 되나?
그렇지 않다. 시큐어코딩은 협의적인 의미로는 개발 단계에 개발자들이 취약점이 발생하지 않도록 프로그램을 작성한다는 개념이다. 하지만 좀 더 광역적인 의미로는 소프트웨어 개발 생명주기(Life Cycle) 전 단계에 걸쳐서 애플리케이션이 취약점을 가지지 않도록 요구사항을 수집해 분석하는 분석가, 설계를 담당하는 설계자, 애플리케이션을 테스트하는 테스터, 운영자, 사용자 모두가 각각의 직무에 맞는 보안 활동을 수행해야만 안전한 소프트웨어를 개발하고 운영할 수 있다는 것을 말한다.
기본정보
ISBN | 9791195334223 |
---|---|
발행(출시)일자 | 2015년 04월 15일 |
쪽수 | 408쪽 |
크기 |
182 * 257
* 20
mm
|
총권수 | 1권 |
Klover
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
리뷰는 1인이 중복으로 작성하실 수는 있지만, 평점계산은 가장 최근에 남긴 1건의 리뷰만 반영됩니다.
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
구매 후 리뷰 작성 시, e교환권 100원 적립