품목정보
발행일 | 2021년 02월 19일 |
---|---|
쪽수, 무게, 크기 | 372쪽 | 183*235mm |
ISBN13 | 9791162243930 |
ISBN10 | 1162243937 |
발행일 | 2021년 02월 19일 |
---|---|
쪽수, 무게, 크기 | 372쪽 | 183*235mm |
ISBN13 | 9791162243930 |
ISBN10 | 1162243937 |
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 방어 마지막으로 찾아보기 |
저자 소개
이 책의 저자 앤드루 호프먼은 세일즈포스닷컴의 시니어 보안 엔지니어, 자바스크립트, Node.js, OSS 팀의 보안을 책임지고 있으며
DOM과 자바스크립트 보안 취약점의 전문가다
주요 브라우저 벤더와 함께 일했으며 자바스크립트와 브라우저 DOM의 향후 버전을 설계하는 조직인 TC39와 웹 하이퍼텍스트 애플리케이션 테크놀로지 워킹 그룹(WHATWG)과도 협력했다
자바스크립트 언어의 보안 기능인 Realm에 기여했다
Realm은 언어 수준의 네임스페이스 격리를 네이티브 자바스크립트 기능으로 제공한다
또한 웹에서 사용자 자바 스크립트 실행의 위험을 줄이기 위해 상태 비저장 모듈에 관해 연구해왔다
이 책에 대하여
이 책은 공격과 수비의 양면을 모두 드러낸다는 점에서 독특하면서도 유용하다
공격과 방어를 각각 다루는 2부와 3부에 들어가기에 앞서 1부에서 정찰 기법을 별도로 다룬다는 점도 이책의 독특한 구성이다
1~3부와 별개로 1장에서는 현대적인 IT 보안 개념이 자리잡기 이전 시대의 사건, 사고들도 다룬다
이 책은 해커로부터 웹 애플리케이션을 보호하는 방법뿐 아니라 웹 애플리케이션을 조사하고 침입하는 방법을 다룬다
현재의 기업, 공공 기관, 개인이 운영하는 웹 애플리케이션에 침투하기 위해 해커가 실제로 사용하는 여러 기법을 소개한다
기법을 충분히 조사한 뒤에는 해커의 위협에서 웹 애플리케이션의 안전을 어떻게 확보할 것인지 논의한다
보안 모범 사례를 기술 조직에 접목하는 방법도 배울 수 있다
책을 다 읽고 나면 코드 수준에서 엑세스 할 수 없는 애플리케이션 정찰 기법에 필요한 지식을 얻게 된다
또한 웹 애플리케이션의 백터와 취약점을 식별하며 애플리케이션 데이터를 공격에 악용하는 페이로드를 설계/제작해, 실행 흐름을 가로채거나 웹 애플리케이션에서 의도한 기능을 교란할 수 있다
이러한 기술을 익히고 웹 애플리케이션을 안전하게 만드는 법에 대한 지식을 갖춘다면 웹 애플리케이션 코드베이스의 취약 부분을 파악하고, 코드를 어떻게 작성해야 공격으로부터 사용자를 보호할 수 있는지 이해할 수 있다
HTTP를 통한 기본적인 클라이언트, 서버 네트워킹도 다룬다
보안 위험을 줄이기 위해 자체 개발한 소프트웨어와 서드파티 소프트웨어를 통합하는 방법을 탐구하면서 소프트웨어 아키텍처에 대해서도 다룬다
또한 이책은 침투 테스팅, 버그 바운티 헌팅, 그외 보안 업무의 참고 자료로도 사용할 수 있게 구성되어 있다
익스플로잇의 작동 원리를 코드 수준과 아키텍처 수준 모두에서 깊이 파헤친다
오늘날의 보안 환경에서 침투 테스터는 미리 만들어진 익스플로잇 스크립트를 폭넓게 활용한다
유료나 오픈 소스 도구들은 고전적인 공격을 자동화하므로 애플리케이션 아키텍처나 특정 코드 블록의 논리에 대한 깊은 지식 없이도 공격을 손쉽게 수행할 수 있다
이 책은 익스플로잇과 방어에 보안 전문 도구를 사용하지 않는다
스크립트를 직접 작성해 네트워크 요청을 수행하고 유닉스 기반 운영체제에서 제공하는 표준도구를 활용한다
또한 세가지 주요 웹 브라우즈에서 제공하는 도구도 사용한다
책의 구성
1부 정찰
해킹을 하지 않고도 웹 애플리케이션과 관련된 정보를 취득하는 방법들을 평가한다
'정찰'에서 논의하는 기술과 개념은 해커가 되고 싶다면 반드시 숙지해야 한다
또한 기존 애플리케이션의 보안을 강화하고자 하는 사람에게도 중요하다
적절한 계획을 세워서 노출되는 정보를 줄일 수 있기 때문이다
2부 공격
코드 분석과 네트워크 요청을 중심으로 다룬다
이를 기초로 불안정하게 작성되거나 부적절하게 구성된 웹 애플리케이션을 이용하는 시도를 해볼 것이다
2부에서는 익스플로잇을 만들고 사용하는 방법을 배운다
익스플로잇은 데이터를 절취하거나 애플리케이션의 작동을 강제로 바꾼다
1부 정찰에서 다룬 지식을 기초로 하므로, 정찰 기술에 해킹 기술을 더해 데모 웹 애플리케이션을 장악하고 공격해본다
또한 익스플로잇을 하나하나 살펴본다
장별로 서로 다른 익스플로잇 유형을 세부적으로 알아본다
익스플로잇 자체의 작동 원리를 설명하는 것으로 시작한 다음, 취약점을 어떻게 찾아내 익스플로잇을 적용할 수 있는지 논의한다
끝으로 익스플로잇하려는 데모 애플리케이션에 맞춰 페이로드를 제작한다
그 후 페이로드를 사용하고 결과를 관찰한다
3부 방어
해커의 공격으로부터 코드를 안전하게 지키는 법을 다룬다
2부에서 다룬 익스플로잇 하나하나를 다시 살펴보되 완전히 상반된 관점에서 접근한다
이제는 소프트웨어 시스템을 깨뜨리는데 집중하는 것이 아니라 해커가 시스템을 깨뜨리는 것을 방지하거나 그 확률을 떨어뜨리는 방법을 익힌다
좀 더 안전한 코드를 작성하는 방법을 배울 뿐 아니라 해커의 활동을 포착하고 소프트웨어 보안에 대한 조직의 태도를 개선하는 가치 있는 트릭도 배운다
3부의 대부분은 2부의 해킹 장을 재구조화한 것이므로 유사성이 있다
공격 유형에 대한 방어를 준비하는 데 필요한 기술을 먼저 다룬다
처음에는 기본적인 수준의 방어를 준비한다
이는 공격을 완화하는 데 도움이 되지만 끈질긴 해커를 완전히 물리치지는 못할 수도 있다
최종적으로 방어를 개선함으로써 해킹 시도의 대부분을 멈출 수 있을 것이다
3부의 특징은 애플리케이션 보안을 강화함에 따른 트레이드오프에 대해 논의 한다는 점이다
일반적으로 보안을 강화하는 모든 수단은 보안 이외의 부분을 희생하는 트레이드 오프를 발생시킨다
여러분이 제품의 비용을 고려하여 어느 수준의 위험을 감수할 것인지 제안을 할 위치에 있지 않더라도 트레이드오프가 이뤄진다는 점은 인지해야 한다
서평
평소에 개발하느라 바쁘기도 하고 개발 기술에 대해서만 공부했지 보안에 대해서 깊이 알아보려고 하지는 않았었는데
어떻게 보면 안전 불감증때문 인것 같다
설마 내가 운영하는 사이트가 공격을 받을거라고 생각하지는 못하고 매우 허술하게 운영하는 경우가 많다
그리고 시큐어 코딩으로 소스코드를 안전하게 작성하기보다는 주로 SSL 이나 방화벽 인프라에 많이 의존하는 경향이 있다
이 책은 실제 해커의 입장에서 웹 보안이 허술한 애플리케이션에 대해 정찰 하고 실제로 공격을 해보고 이러한 공격들에 대해서 어떻게 방어 할 수 있는지에 대해서 자바스크립트 언어로 깊이 있게 다뤄본다
다양한 보안용어들이 등장하고 시큐어 코딩 방법과 공격 기법, 방어 기법등을 다루므로 안전 불감증으로 인한 보안을 허술하게 관리하던 보안담당자 혹은 애플리케이션 개발자들이 보기에 매우 좋은 서적인듯 하다
총평
이 얇은 책 하나로 웹 보안이 취약한 애플리케이션에 대한 정찰, 공격, 방어 기법들에 대해서 알아보고 공부할 수 있다
얇지만 매우 깊이 있는 내용들을 다루며 과거의 공격이나 방어기법이 아니라 과거에서부터 이어져오거나 현대에도 사용되고 있는 유용한 기법들에 대해서 배울 수 있다
또한 자바스크립트 기반의 시큐어코딩 기법은 짧지만 매우 유용하다
이 책은 평소에 생각하지 못했거나 생각했어도 대충 넘어갔던 부분들에 대해서 어떻게 코딩을 하면 안전할 수 있을지에 대한 궁금증도 해소 시켜준다
내 사이트는 안전하겠지라는 안일한 태도로 허술하게 보안을 관리하다가 개인정보 탈취나 금융피해등 심각한 피해를 입는 기업들이 매우 많은데 보안은 요즘같은 IT 의존도가 높은 시대에 매우 중요한 부분 중에 하나 인 것 같다
우수한 시스템을 개발하는 것도 중요하지만 강도 높은 보안 시스템을 구축하는 것도 그에 못지 않게 중요한 것이다
보안에 대해 잘 모르지만 알아보고 싶은 사람이나 좀더 안전한 애플리케이션을 개발하고 싶은 사람들에게 이 책을 적극 추천한다
※출판사로부터 책을 무상으로 제공받아 직접 실습해보고 정성껏 작성한 리뷰 입니다
안녕하세요. 이번 시간에는 2021년 02월에 출간된 따끈따끈한 한빛미디어 출판사의 <웹 애플리케이션 보안: Web Application Security>에 대한 리뷰를 진행하겠습니다. 이 책은 정찰, 공격, 방어 세 단계로 나눠 웹 애플리케이션 보안에 대해 학습할 수 있습니다.
최근 애플리케이션이 웹 기반으로 이동하면서 웹 애플리케이션 보안에 대한 관심이 높아지고 있습니다. 이 책을 보며 2~3년 전에 학습했던 보안 요소들에 대해 상기할 수 있었으며, 학습했었던 지식을 다시 정리할 수 있었던 좋은 시간을 보낼 수 있었습니다.
<웹 애플리케이션 보안>은 약 370여 페이지로 구성되어 있어 휴대하며 읽기에 부담이 없습니다. 또한, 전차책 뷰어가 있는 분은 전자책도 출간되어 있으니 활용할 수도 있습니다.
한빛미디어 리뷰 평가단에 참여하여 작성한 글이며, 한빛미디어에서 제공해준 책을 읽고 작성했음을 밝힙니다.
이 책은 소프트웨어 보안의 역사로 시작합니다. 물론 지면 관계로 많은 내용을 다루지는 못하지만, 일반 독자가 상식 수준에서 알아둬야 할 중요한 요소는 담고 있다고 생각합니다. 이 챕터를 활용하여, 독자에게 보안에 대한 호기심을 유발합니다. 개인적으로 좋은 접근이라 생각합니다.
첫 번째 파트는 정찰을 주제로 하고 있습니다. 이 챕터에서 정찰의 목적과 기본적인 정찰 기법에 대해 소개합니다. 정찰을 주제로 자바스크립트 코드를 활용하여 재미있는 예제들을 다수 포함하고 있습니다. 그리고 좋은 팁들을 많이 포함하고 있음으로 관심 있게 학습하면 도움이 될 것입니다. 기존에 전혀 고려하지 않았던 새로운 통찰력을 얻을 수 있습니다.
두 번째 파트는 공격을 주제로 하고 있습니다. 안타깝게도 현대의 웹 애플리케이션은 많은 보안 취약점을 내포하고 있습니다. 이 책에서는 The Open Web Application Security Project(OWASP) TOP 10에서 자주 소개되는 내용을 주제로 소개하고 있습니다. 처음 듣는 용어도 있겠지만, XSS, CSRF, Injection, DoS 등의 주제는 많이 들어보셨을 것입니다. 이런 주제들에 대해 간단한 예제를 구성하여 위험성을 보여줍니다.
세 번째 파트는 방어입니다. 앞의 두 파트를 기반으로 취약점을 찾고, 관리하고, 각 공격으로부터 어떻게 방어할 것인지에 관해 이야기를 전개합니다. 이 책의 내용을 기반으로 새롭게 만들어지는 도구를 찾아 활용하면 실제 웹 사이트를 운영할 때 도움을 받을 수 있을 것입니다.
개인적으로 웹 애플리케이션 개발자는 한 번쯤 봤으면 좋겠습니다. 새로운 보안 용어뿐만 아니라, 애플리케이션을 개발하며 고려하지 않았던 새로운 영역에 대해 이해할 수 있으며, 이 책에서 소개하는 간단한 기술로 시큐어 코딩에 발을 들일 수 있을 것입니다.
<웹 애플리케이션 보안>은 매력적인 책입니다. 이 책은 앞에서 이야기했듯이, 정찰, 공격, 방어 3가지 파트로 구성되어 있고, 분야별로 애플리케이션을 제작할 때, 필요한 지식을 학습할 수 있습니다. 보안에 대해 깊이 있게 공부하기는 쉽지 않은 일이며, 많은 시간을 투자해야 하는 일입니다. 하지만 제 생각에는 보안 전문가가 아니더라도 웹 애플리케이션 개발자는 기본적인 보안에 대해 이해하고 있어야 합니다.
이 책으로 보안에 대한 중요성과 웹 애플리케이션이 갖춰야 할 기본 보안 요소에 대해 학습할 수 있습니다. 이 책을 통해 보안에 대해 호기심이 생길 수도 있으리라 생각되며, 웹 애플리케이션 개발자는 한 번쯤 읽어봐야 하는 책이라고 생각합니다.
어렸을때 준비했던 정보보안전문가가 다시 기억나는 책
요즘 들어, 웹 개발, 반응형을 포함한 모바일 웹앱까지 개발하다 보니 웹 보안에 대해 더 신경을 많이 쓰게 되었는데 마침 좋은 기회가 있어서 이 책을 읽게 되었다.
'정찰, 공격, 방어 세 단계로 배우는 웹 애플리케이션 보안의 모든 것'
이 문장만 들어도 나로선, 어렸을 때부터 정보보안에 관심이 많았던 BOB 준비생이자, 화햇의 꿈나무였던 기억이 새록 나는 것 같다. (지금은 다른 길을 걷고 있지만, 초보들에게 적극 추천)