메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

웹 애플리케이션 보안

정찰, 공격, 방어 세 단계로 배우는 웹 애플리케이션 보안의 모든 것

한빛미디어

번역서

판매중

  • 저자 : 앤드루 호프먼
  • 번역 : 최용
  • 출간 : 2021-02-19
  • 페이지 : 372 쪽
  • ISBN : 9791162243930
  • 물류코드 :10393
  • 초급 초중급 중급 중고급 고급
4.8점 (26명)
좋아요 : 20

웹 애플리케이션 보안 취약점과 해결책을 한 권으로 

 

웹 애플리케이션 보안의 정찰, 공격, 방어를 모두 다루는 실용서다. 웹 애플리케이션에 침투하기 위해 해커가

실제로 사용하는 여러 기법을 소개하고 안전을 확보하는 법을 배운다. 각 장은 OWASP 취약점 중에서도 위

험성이 높은 주제의 공격과 방어 양면을 다룬다. 책에서 다루는 기술을 익히면 웹 애플리케이션 코드베이스

의 취약 부분을 파악하고 시큐어 코드는 어떻게 작성해야 하는지 이해할 수 있다. 해커로부터 소프트웨어를

보호하는 기법을 익히고 더 안전한 웹 애플리케이션을 구축할 수 있게 될 것이다.

 

 

출판사 리뷰

 

웹 애플리케이션 보안의 정찰, 공격, 수비를 체계적으로 정리하고 싶은 당신을 위한 책 

 

이 책은 영화 <이미테이션 게임> 주인공인 천재 수학자 앨런 튜링의 ‘에니그마’를 주제로 첫 장을 연다. 흥미로운 보안 주제와 역사를 간략하게 살펴보면서 부담스럽지 않게 책을 살펴볼 수 있다. 구체적인 주제를 들어가기 전 보안 용어표를 미리 정리해두어 보안 세계에 발을 내딛는 초심자도 쉽게 읽을 수 있다.

웹 애플리케이션 정찰의 중요성을 짚고 난 후 보안의 공격과 수비 기법들을 설명한다. 공격과 수비의 다양한 기법과 실제 코드는 웹 애플리케이션 보안을 개선하고 싶지만 경험이 많지 않은 독자에게 실용적이고 실제적인 도움을 준다. 특히, OWASP 취약점에서도 위험성이 높은 XSS, CSRF, XXE, DoS 등을 공격과 수비 양면으로 다루어 더 이해하고 적용하기 쉽다. 각 주제는 이전 장을 공부해야 하는 수준으로 배열이 되었고, 연관성을 갖도록 해 끝까지 몰입할 수 있다는 게 매력적이다. 웹 애플리케이션 보안 결함을 해결하고 싶고, 더 안전한 웹 애플리케이션을 만들고 싶은 독자에게 강력히 이 책을 강력히 추천한다.

  • 소프트웨어 해킹과 보안의 역사
  • 웹 애플리케이션 정찰
  • 현대 웹 애플리케이션 구조
  • 서브도메인, API, 서드파티
  • 애플리케이션 아키텍처 약점과 보안
  • 공격과 방어(XSS, CSRF, XXE, 인젝션, DoS)
  • 보안 코드 리뷰
  • 취약점 탐색과 관리

 

추천사

 

웹 애플리케이션 보안에 대해 빠짐없이 다룬 책이다.

_ 체탄 카란데, OWASP NodeGoat 프로젝트 리더

 

웹 애플리케이션의 보안을 어떻게 설계해야 안전한지 알려줄 뿐 아니라 공격자가 어떤 생각으로 웹 애플리케이션에 침투하는지도 알려주는 훌륭한 직무 해설서이다.

_ 팀 갤로, 보안 솔루션 아키텍트

앤드루 호프먼 저자

앤드루 호프먼

세일즈포스닷컴의 시니어 보안 엔지니어. 자바스크립트, Node.js, OSS 팀의 보안을 책임진다. DOM과 자바스크립트 보안 취약점의 전문가다. 주요 브라우저 벤더와 함께 일했으며 자바스크립트와 브라우저 DOM의 향후 버전을 설계하는 조직인 TC39와 웹 하이퍼텍스트 애플리케이션 테크놀로지 워킹 그룹(WHATWG)과도 협력했다.

자바스크립트 언어의 보안 기능인 ‘Realm’에 기여했다. Realm은 언어 수준의 네임스페이스 격리를 네이티브 자바스크립트 기능으로 제공한다. 또한 웹에서 사용자 자바스크립트 실행의 위험을 줄이기 위해 상태 비저장 모듈에 관해 연구해왔다.

최용 역자

최용

한국방송통신대학교에서 컴퓨터 과학을 전공하고 2000년대 초부터 IT 업계에서 일했다. 은행의 일괄 작업 운영과 서버 운영 자동화를 돕는 외산 소프트웨어의 기술 지원 업무를 주로 했다.

파이썬 프로그래밍 책을 쓰거나 오픈 소스 번역 활동을 하던 중 『익스플로링 라즈베리 파이』(2018)로 IT 서적 출판 번역에 발을 들였다. 보안 서적으로는 『블록체인으로 구현하는 사이버 보안』(2018), 『침투 본능, 해커의 기술』(이상 위키북스, 2020)을 번역했다.

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 방어

 

마지막으로

찾아보기

전반적으로 웹 애플리케이션 보안에 대해 큰 그림을 그릴 수 있게 잘 구성되어있다. 저자가 언급한대로 외부에서 지식을 찾아볼 필요없이 앞 장부터 순서대로 읽어나간다면 보안 관련 개념을 자연스럽게 익힐 수 있다. 
같은 토픽을 한 파트에서는 공격 관점, 다른 파트에서는 방어 관점으로 다루어 여러 방향으로 토픽을 바라볼 수 있게 한 것이 흥미로웠다. 특히 정찰은 웹 개발자로서 매우 흥미롭게 읽었다. 
'이 책에 대하여'와 각 파트의 요약 챕터는 꼭 읽는 것을 추천한다. '이 책에 대해여' 는 책에 어떻게 접근해야하는지 상세하게 나와있다. 요약 챕터는 각 파트를 정리하고 앞으로 나아갈 파트를 잘 요약해두었으므로 머릿 속에 지식을 정리하는데 도움이 될 것이다. 
 
- 추천
  - 부담없이 읽을 수 있는 양(360page)
  - 이 책을 마중물로 해서 웹 애플리케이션 보안에서 신경써야하는 부분이 무엇인지 기초를 대략적으로 알고 싶다면 추천.
- 주의해야할 점
  - 상세한 내용을 파고 들기보다 전체 내용을 훑고 지나가기 때문에 웹 애플리케이션 지식이 없다면 이 책을 읽기 어려울 수 있다. 
  - 이 책에서는 각 시나리오별로 대응해야하는 대략적인 방법을 알려준다. 하지만 실전에 바로 적용해야한다면 이 책 이후 다른 레퍼런스가 필요함. 실전에 바로 사용해야하는 코드 조각이나 상세한 실습은 없기 때문.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다"

 

보안에 관심이 있다면 한번 쯤은 봐야하는 책.

소프트웨어 보안의 역사부터 시작하여 전통적인 웹 어플리케이션의 구조와 현대 웹 어플리케이션을 비교하며 보안의 역사를 배울 수 있다.

그 이후 본격적으로 JS와 SQL을 통해 실전에서 해킹을 하기전 웹의 구조를 분석하는 방법을 배우게 된다.

분석 후 해킹을 위해 XSS, CSRF, XXE, INJECTION, DoS 와 같은 여러가지 방법의 공격 방식을 배우게 되며 이를 통해 웹 어플의 취약점이

무엇이며, 상황에 따라 웹 어플이 받을 수 있는 공격에 대해 자세하게 배울 수 있다.

공격하는 방법을 배웠다면 방어하는 방법도 당연히 이 책에서는 자세하게 알려주고 있다.

전체적인 웹 어플의 취약점 탐색, 관리, 분석과 같은 방법을 알려주고 있으며 어플을 안전하게 보호하기 위해 가능한 여러가지 방법들도 소개해주고 있다. 그 뿐아니라 앞서 배웠던 XSS, CSRF, XXE, INJECTION, DoS를 통한 공격을 방어하는 방법도 자세히 알려준다.

이 책은 응당 어느정도의 프로그래밍에 대한 기본적인 지식 및 실력이 있을때 더욱 더 도움이 될 것이다, 하지만, 초보자라도 구글링을 통해 공부가 가능한 난이도에는 틀림이 없으며, 프로그래머가 되기 위해서는 이러한 기본적인 보안에 대해서는 필수적으로 알아야 된다고 생각하기에 이 책을 추천한다.

Web_application_Security.jpg

 

 

웹해킹1.jpg

 

요즘 들어, 웹 개발, 반응형을 포함한 모바일 웹앱까지 개발하다 보니 웹 보안에 대해 더 신경을 많이 쓰게 되었는데 마침 좋은 기회가 있어서 이 책을 읽게 되었다.

 

'정찰, 공격, 방어 세 단계로 배우는 웹 애플리케이션 보안의 모든 것'

 

이 문장만 들어도 나로선, 어렸을 때부터 정보보안에 관심이 많았던 BOB 준비생이자, 화햇의 꿈나무였던 기억이 새록 나는 것 같다. (지금은 다른 길을 걷고 있지만

2021년 올해의 책리뷰 / 웹 애플리케이션 보안 / 한빛미디어

드디어 출시된 웹 애플리케이션 보안!!

이 책은 정말 해킹과 보안에 관심있는 사람들에게는 필독인 책이다. 해커로부터 웹 애플리케이션을 보호하는 방법뿐 아니라 웹 애플리케이션을 조사하고 침입하는 방법을 다루는 책이다. 취약점을 식별하며 애플리케이션 데이터를 공격에 악용하는 페이로드를 설계/제작해, 실행 흐름을 가로채거나 웹 애플리케이션에서 의도한 기능을 교란할 수도 있게 된다.

이 책은 소프트웨어 공각 중급 수준의 배경지식을 갖춘 독자에 맞춰 구성되어 있다. 최소한 한가지의 웹 프로그래밍 언어 문법을 알고, 데이터베이스 기술을 다룰 수 있는 사람에게 적합하다.

이 책은 총 3부로 나누어져 있는데, 1부로 들어가기전 해킹의 역사에 대하여 잠깐 다루고 있다.

1부는 정찰에 대한 내용을 다루는데, 웹 애플리케이션과 관련된 정보를 취득하는 방법들을 평가하고 있다. 세계 최고의 버그 바운티 헌터들은 전문적인 수준의 정찰 능력을 갖추고 있는데, 해킹과 보안을 알기 위해서는 이 정찰 능력이 필수이다. 이 정찰에서는 웹 애플리케이션의 구조, 조직, 기능을 표현하는 맵을 구축하는 방법을 다루게 되는데, 과거에 찾아볼 수 없었던 여러 가지 신기술을 기반으로 구축하는 것을 배운다. 그리고 서브도메인 찾는 방법, API를 분석하는 방법, 서드파티 의존성 식별하는 방법, 애플리케이션 아키텍처 약점 식별하는 방법을 배우게 된다.

2부는 공격에 대한 내용을 다룬다. 웹 애플리케이션 보안상의 허점을 이용하여 공격하는 방법을 논의한다. 취약점 공격에는 사이트 간 스크립팅(XSS), 사이트 간 요청 위조(CSRF), XML 외부 엔티티(XXE), 인젝션, 서비스 거부(DoS), 서드파티 의존성 익스플로잇에 대해 배우게 된다.

3부는 방어에 대한 내용을 다룬다. 안전한 애플리케이션 아키텍처를 어떻게 만들어야 하는지에 대하여 논하고 보안 코드 리뷰하는 방법을 배우게 된다. 그리고 취약점을 탐색하고, 관리하는 방법을 배울 수 있게 된다. 그리고 공격에서 다루었던 취약점 공격에 대한 방어 방법을 논하고 마무리 한다.

이 책은 정말 해커 또는 보안전문가가 되고자 하는 사람들에게는 필독책이 될 것이며, 많은 도움을 얻을 수 있을 것이라고 본다

보안에 관련된 행위라고는 시큐어코딩 가이드에 따라서 코드를 작성 한다던지, 보안취약점 진단결과에 따른 내용을 조치 하는 작업 밖에 해본적이 없다.

 

애초에 어떤 웹 애플리케이션의 취약점을 찾는다던지 해킹을 한다던지 하는 행위에 대한 생각을 해본적이 거의 없었기 때문에 당연히 어떻게 하는지도 알지 못했다.

 

책은 정찰, 공격, 방어 세 단계로 나누어 웹 애플리케이션 보안에 관련된 전반적인 이야기를 하고 있다.

 

정찰은 웹 애플리케이션의 구조와 기능을 조사 하여 기술과 구조에 대한 깊은 이해를 얻고, 그것을 문서화 하는 여러가지 방법을 이야기 한다. 

 

공격은 해커가 현대 웹 애플리케이션에 침투하기 위해 공통적으로 사용하는 기법을 다룬다.

XSS, CSRF, SQL Injection 등 그나마 많이 들어본 용어들이 등장 한다.

 

방어편에서는 웹 애플리케이션을 보호 하는 방법에 관한 이야기를 진행 한다. 내용을 책의 각 주제가 연관성을 가지도록 순서를 배치 하여 앞에서 나온 주제들에 대한 추가적인 설명을 진행해 나간다. 그리고 애플리케이션 보호에 관한 실질적인 방법에 대해서 이야기 해 나간다.

 

아래와 같은 구문들이 인상 깊었다.

 

p. 246

“웹 애플리케이션 보호는 중세시대 성의 방어와 같아서 모든 잠재적 진입로를 최대로 방어하는 것은 불가능 하므로 우선순위를 세우는 것이 중요 하다.”

 

p.248

“취약점을 찾는 전통적인 방식은 고객이 알려주거나 대중에게 널리 공개되는 것이다. (이 방법은 최악이다.”

 

보안이라고는, 단순히 개발시에 시큐어코딩 가이드에 따라서 코딩을 하고, 개발 후에 pmd 를 적용하여 테스트하고 매년 보안취약점 진단검사를 받고 패치 하는 작업이 전부였었는데, 실질적으로 어떻게 조사하고 침입하는지에 대한 방법을 배우는 것이 매우 재미있고 의미 있었다.

 

이 책은 웹 어플리케이션의 보안을 다룬 지침서이다.  약점을  정찰하기위한  기법으로 서브도메인 , 웹 API , 서드파티를 체계적으로 분석한다. 

공격용 해킹 기법으로는 XSS , CSRF, XXE, 인젝션 , DoS 라는 주제를 다룬다. 

방어 기술로서 취약점 탐색, 회귀 테스팅을 수행한다. 보안 코드 리뷰를 수행하고, 취약점을 등급 관리하고 해결책을 마련한다. 

해킹 기술에 대한 방어책의 모범사례를 구현한다. 

 

이러한 지식을 통해 웹 어플리케이션 보안 전문가로 성장하길 바란다.  

 

 

KakaoTalk_20210321_225011082.jpg

 

KakaoTalk_20210321_224951520.jpg

 

오렐리의 책은 언제나 옳다. 라고 생각하고 산다..

웹 애플리케이션 보안은 모바일 개발을 하면서 웹쪽을 거의 볼일이 없었건만..

드문 드문 업무중에 발 담그다 보니 .. 보면 좋겠다 싶어서 책을 선택했다.

읽어보니 .. 당장 지금 서비스(?) 중인 것들을 바로 점검 해봐야겠다는 생각이 물씬물씬

아주 상세하고 이해하기 쉽다고는 못하겠지만.. 개발자라면 이해 할 수 있을만한 내용이라고 생각한다.

관련 내용들 중에 필요한 내용이 있다면..

책의 목차와 각 페이지수를 가늠해서 책을 선택할 것을 권장한다. 즉, 두꺼운 책은 아니다.

자세한 내용은 다른 곳에서 찾는 것이 좋을 테지만...

개괄적으로 알아야되는 내용에 대한 인덱싱과 사용법에 대하여 참고하기에는 좋은 책이라고 본다.

생각지도 못한 자바스크립트 문법 공부도 당했(?)다.

어디를 어떻게 봐야한다는 요령을 예제를 몇몇 보여주며 필요한 내용을 쪽집게 처럼 집어 놓은 요약같은 책이다.

즉, 있는데 빠진 부분도 있다는 사실.

하나도 모르고 보면 모를 내용이 더 많다는 것이 정답일 듯한 책으로 서문에서 밝히는 바와 같이 "경험" 없이 읽기에는 어렵다고 하는 내용이 딱 맞다.



# 시작하기

 

 

내가 만든 프로그램을 다른 시각으로 보기 시작하다.

처음 프로그램을 만들 때에는 소프트웨어의 품질이나 보안 등 다른 측면은 전혀 고려할만한 여유가 되지 못하였다. 그러나 프로젝트를 한 사이클 겪어보고 나서 다시 과거에 내가 짰던 프로그램들을 점검하고 유지보수하면서 요즘에는 품질이나 보안에 관해 흥미가 생겼고 다른 시각에서 바라보게 되었다.

어느 분야든 마찬가지겠지만 특히 금융권에서는 잠깐의 장애가 곧 큰 손실을 불러올 수 있기 때문에 보안은 매우 매우 중요하다. 그러나 최근까지도 금융권을 겨냥한 디도스(DDoS) 공격과 같은 보안 이슈가 떠오르고 있다.

Web Application Security는 "적을 알고 나를 알아야 한다." 라는 메시지 안에서 어플리케이션을 보호하는 법을 배우는 것에 그치지 않고 어플리케이션을 조사하고 침입하는 방법까지도 안내하고 있다. 필자와 같이 웹 개발을 해본 사람들에게 새로운 시각과 문제를 소개하고 견문을 넓혀줄 것이다.

 

 

 

# 책 구성 살펴보기

 

 

Web Application Security 뒷 장 소개글

 

이 책은 크게 3개의 Part로 나누어져 있다.

 

 

Part1. 정찰

Part2. 공격

Part3. 방어

 

 

Part1과 Part2는 '해커'의 입장으로 보는 어플리케이션의 분석과 취약점 이용을 소개한다. Part1의 정찰단계는 데이터 수집단계로 '약점'을 찾는 것이라고 할 수 있다. Part2에서는 이를 이용한 '익스플로잇'을 배울 수 있다. 인젝션이나 서비스거부(DoS)등의 해킹 기술에 대해 상세하게 소개되고 있다.

 

 

책의 저자는 오늘날 웹 어플리케이션은 취약점의 온상이라고 평하고 있다. 그런데 우리가 그것을 전혀 발견하지 못한다면 실제로 해킹에 집중한 나머지 취약점을 제대로 분석하는 지식을 쌓지 못해서라고 강력히 말한다. 즉, Part1의 정찰 기술과 방법론을 가벼이 여긴다면 실제 우리가 방어하기 위해 노력할 것들을 놓칠 수 있다는 것이다.

 

 

Part3에서는 Part2에서 소개된 주제별로 방어 기술을 소개하고 있다.

 

 

 

 

# 장점 골라내기

 

 

1. 보안은 처음인 사람들을 위한 보안 용어 정리와 역사 INTRO

 

Web Application Security 용어 정리

 

어서와, 보안은 처음이지? 저자의 친절한 용어 정리가 돋보인다. 필자와 같이 보안이 처음인 사람들은 책에 나와있는 용어만 찾느라고도 상당 부분 시간이 많이 소요되고, 그 동안 흥미를 잃을지도 모르겠다. 하지만, 그러한 걱정을 덜어주도록 저자는 시작하는 말 다음으로 용어 목록을 수록해 미리보기가 가능하도록 했다. 용어집이 없었다면 아마 지금쯤 형광펜이 무수히 칠해져 있을지도 모르겠다. 이 부분에서 처음 들어봄 익스플로잇 덕분에 2장에서 수월하게 이해하고 넘어갈 수 있었다.

 

본격적인 보안 기본을 시작하기에 앞서, 보안과 관련한 역사에 대해 소개하는 Chapter1은 흥미롭게 읽을 수 있었다. 앨런 튜링이라는 수학자를 주인공으로 한 영화 "이미테이션 게임"을 재미있게 봤었는데, Chapter1에서 에그니마가 소개되어 반가운 마음도 들었다.

영화 이미테이션 게임 포스터와 chapter1에 소개된 에그니마

 

 

 

2. Application의 분석 ~ 해킹 ~ 방어 전면을 아우르는 보안서적

 

저자는 대상독자를 경우 별로 나누긴 했지만, 소프트웨어 공학 중급 수준의 배경 지식이 있는 사람을 대상으로 한다고 밝혔다. 그러나 몇 번의 웹 개발을 해본 필자가 읽으면서도 뉴스 기사로 접해본 해킹 기술이 소개되어 있었던 것을 떠올리면 '보안'과 관련하여 관심사가 있는 모든이가 읽어도 좋을 책이라고 확신한다.

바로 해킹을 막기 위한 방법론부터 소개하는 것이 아니라, 해킹과 방어의 대상이 되는 Application을 탐색적으로 분석하는 것부터 시작하고 뒤이어 해킹과 방어를 1:1 로 매칭되도록 소개하고 있기 때문에 독자는 100% 소화가 어렵다면 보안의 일부를 분석 또는 해킹 또는 방어 측면에서 선택적으로 소화할 수 있다.

과거에는 보안 취약점이라고 하면 서버단의 어떤 취약점을 말하는 것으로 통용이 되었던 기억이 있다. 그러나 일부는 DOM이나 CSS를 통해서도 공격을 시도하고 있기 때문에 웹 개발자의 입장에서도 보안은 동떨어지지 않았다는 것을 느끼도록 잘 설득하고 있다. 특히 해킹과 방어가 1:1 구조로 소개되고 있기 때문에 해커와 보안담당자의 시각에서 시나리오를 분석할 수 있어 새롭고 흥미진진했다.

 

 

 

 

# 제안하기

 

 

[단점]

'보안'이라는 것은 확실히 범위가 넓을 것이다. 하지만 이 책에서는 몇 가지의 블랙햇 해커들이 사용하는 기술을 소개하고 있기 때문에 여러 기술이나 시나리오를 접하기에는 한계가 있을 것이라 생각된다.

보안 관련 직무를 수행하는 사람의 입장에서는 어떤지 상상이 안되지만, 웹 개발을 해본 사람의 입장에서는 충분히 만은 레퍼런스가 되었고, 앞으로 코드를 작성할 때 어떻게 해야 사용자를 보호할 수 있는지에 대해 다양한 방면으로 생각해보게 하는 책임에는 틀림없다.

 

 

[기대하는 점]

보안은 매우 중요한 것이지만 특정 소수의 역할이라고 생각했던 필자가 어리석었음을 절실히 느낀 시간이었다. 앞으로도 금융권에 재직하는 동안, 보안 관련한 이슈가 끊임없이 나올 것이다. 그 때마다, 개발자로서 보안에 대한 위기의식을 느끼고 기술을 습득하려 노력하는 자세를 잊지 말아야겠다. 전문가 수준은 아니더라도 문제가 발생했을 때 나의 프로그램을 사용하는 사용자들을 보호할 수 있는 방법을 고민할 수 있는 개발자가 되고 싶다. 이 책을 통해 그러한 힘을 얻고자 한다.

 

 

 

# 맺기

 

 

[추천]

보안 측면에서 다른 시각을 가지고 싶은 웹 개발자

보안 관련한 직무가 궁금한 사람

최신의 몇 가지 해킹 기술 레퍼런스가 필요한 사람

 

위 사람들에게 Web Application Security는 보안 길잡이로서 분석, 공격, 방어에 이르기까지 폭 넓은 보안을 탐험할 수 있도록 해줄 것이다.

 

 

[소감]

가끔 은행이 DDoS 공격을 받았다는 기사를 보면서도 보안은 중요하구나 정도에서 그쳤는데, 그 현장에서 근무하기 시작하며 조금 더 관심이 생겼다. 얼핏 들어본 것들로 이 책을 소화할 수 있을까 하는 걱정이 앞섰지만 이 책의 저자인 앤드루 호프만의 목적과 필자가 얻고자 하는 것의 방향이 잘 맞았던 것 같다.

읽는 내내 지루하지 않았고 내용의 구성도 쉬움 - 보통 - 어려움 순으로 구성이 되어서 인지 포기하지 않고 읽을 수 있었다. 실습이 없는 기술책은 오랜만이었는데, 자바 스크립트로 작성된 예제를 눈으로 따라가며 익히는 것도 어렵지 않았다.

그 동안 사용자의 요구사항을 반영하여 프로그램을 만들고 업무를 놓치지 않는 것이 가장 크다고 생각했었는데, 사용자를 보호하기 위해서 개발자가 할 수 있는 것은 무엇일지를 늘 염두에 두어야겠다.



웹 애플리케이션 보안

 

보안과 관련된 사람에게는 필독서 같은 책이다.

보안을 잘 아는 사람에게는 레퍼런스로 사용될 수 있고

보안에 대한 경험이 많거나, 자세히 알아보며

개선을 하려는 사람에게는 신세계일수도 있겠다.

 

 

웹애플리케이션보안.png

 

공격하려는 해커와 방어하려는 쪽 모두가 보기에 좋은 책이다.

 

공격하려는 해커에게는

실제로 침투할 때 사용하는 여러 기법을 알려준다.

 

이를 위해 준비과정인 정찰 단계에서 수집해야 하는

첩보의 종류와 수집하는 방법등 여러가지를 생각할 수 있게 해준다.

정말 해커가 되려는 것 같은 착각을 일으킬만큼... ^^

 

준비가 되었다면? 공격해야지.

기본적인 공격 기법부터 차례차례

다양한 경우에서 사용할 수 있는 기법들을 알려준다.

 

 

난 해커가 아닌데... 라고 생각했다면, 너무 단편적이다.

해커가 사용하는 기법들을 방어적인 측면에서도 상세히 설명해준다.

그렇기 때문에 그런 점들에서 이런 방어전략을 가져가야 한다는.

 

나와 관계없을 것 같은 정찰과 공격기법도

제대로 방어하고 보호하려면 알아야 하기 때문에

실제 사용하는 기법들을 소개해주는 듯 하다.

 

 

공격과 방어에만 집중하고 끝나지는 않는다.

약어와 용어들로 인한 이해와 협업에 들어가는 비용 절감을 위해

약어를 풀어쓰고, 용어들을 일관되게 사용할 수 있게 설명하고 있으며

 

방어를 위해서 사용자 경험을 해치는

대가를 치를 것인지에 대한 생각도 하게 해준다.

 

 

작가의 자신감에 찬 설명만큼이나

내용이 알차고 흥미로워 항상 옆에 두고 보고 있을 것 같다.

 

 

이번에 리뷰하게 된 책은 한빛 미디어에서 나온 "Web Application Security"  번역서적입니다. 해당 서적은 보안에서 기본이라고 할 수 있는 웹에 대한 취약점의 정보 수집에서부터 방어하는 방법까지 1,2,3 단계로 일목 요연하게 설명해 주고 있습니다.

책을 보기 위해서는 기본적인 개발 지식은 필수로 있어야 합니다. 저와 같이 개알못은 읽기가 어렵기는 했지만 그래도 다행히도 책에서 나오는 대략적인 용어 및 공격 등에 대한 용어는 익히 알고 있는 내용이었기 때문에 그래도 읽는데 있어서는 크게 어려움은 없었습니다. 그래도 책의 내용을 100퍼센트 습득하기 위해 서는 개발 및 보안에 대한 초급 정도의 수준은 이미 익힌 수준에서 책을 읽어야 도움이 많이 될 것으로 생각됩니다.

책의 독자는 보안을 업으로 하는 보안 담당자를 대상으로 하지만 웹을 개발하는 소프트웨어 엔지니어, 보안 엔지니어, 침투 테스트 또는 모의 해킹, 버그 바운티를 해보고자 하는 사람들을 대상으로 하고 있습니다. 즉 책은 전체적으로 웹 엔지니어 뿐만이 아니라 보안 업무를 하는 모든 사람을 대상으로 책이 작성되어 있습니다.

책의 구성은 1:1 방식을 취하고 있습니다. 1부에서는 정찰(정보 수집), 2부에서는 공격, 3부에서는 방어로 구성이 되어 있으며, 1부에서 언급한 내용을 2부에서는 어떻게 공격을 하고 3부에서는 어떻게 방어를 할 수 있는지 설명하고 있기 때문에 1:1 방식 구성이라고 표현하였습니다.

흔히 웹에서 많이 나오는 취약점에 대해서 OWASP Top 10이라고 하는데 이 모든 공격에 대해서 이야기 하고 있지는 않지만 흔히 우리가 많이 듣고 실무에서도 많이 탐지되는 SQL 인젝션, XSS, CRSF 등 많이 할고 있는 공격에 대해서 친절하게 설명되어 있어서 기본적인 내용을 익힐 수 있기 때문에 처음으로 웹 해킹에 대해서 익히려고 하는 독자들에게도 도움이 될 수 있습니다.

다만 중간 중간 개발 용어 및 번역한 용어가 나와서 단순 1회 독만으로는 어려울 것이라고 생각되고 2,3 회독 정도 하면 독자가 책의 내용을 충분히 습득할 수 있을 것 같습니다.

책의 모든 챕터의 마지막은 "마치며"라는 목차에서 글쓴이가 해당 챕터에서 강조하고자 했던 내용과 다음 장에서 강조하고자 하는 내용이 나오므로 책을 읽고 해당 항목에서 내가 과연 해당 챕터에서 글쓴이가 말하고자 한 내용을 그대로 습득하였는지 다시 한번 생각해 볼 수 있어서 좋았습니다.

 

마치며

처음 웹 해킹에 대해서 익히려는 보안 초보에게도 어느 정도 도움이 되겠지만 그러기 위해서는 적어도 2~3회 독은 하여야 독자의 지식이 될수 있을 거라고 생각합니다. 그만큼 쉽게 접근할 수 있는 책은 아닙니다. 그렇지만 한번 익혀두면 두고두고 도움이 될 수 있는 내용으로 제대로 구성이 되어 있기 때문에 보안의 초보뿐만 아니라 다시 한번 웹 해킹에 대해서 리마인드 하고자 하는 중급 이상의 개발자 및 보안인에게 추천할만한 책입니다.

 

 

사용자의 요청에 매번 페이지전체를 렌더링 하던 JSP/Servlet, ASP 같은 전통적인 웹개발에 AJAX가 나타나고 이제는 보편화된 Angular, React, Vue.js 같은 프론트엔드 프레임웍과 백엔드 API의 조합, 그리고 클라우드 인프라스트럭쳐의 등장까지 기술이 변화하고 계층이 다양해지면서 보안에 취약한 부분들도 다양해지고 있다.

물리적인 계층은 논외로 하더라도 클라우드 인프라스트럭쳐를 설계하고 운영하면서 보안을 늘 염두에 뒀지만, 정작 웹 애플리케이션은 XSS, CSRF, SQL 인젝션등 널리 알려진 공격에 대한 대응 그리고, REST API 개발에 필수적인 인증과 권한관리 정도가 대부분이었다. (게다가 Auth같은 경우 개발일정에 당당히 자리했지만 나머지는 서브태스크 정도 취급을 받았던 듯 하다.)

전문적으로 보안을 다루는 직무가 아니지만 서비스를 책임지는 인프라스트럭쳐와 함께 그 위에서 동작하는 웹 애플리케이션을 설계하고 개발하는 입장에서 어느 한쪽의 보안을 소홀히 할 수 없지만 그렇다고 본격적인 소프트웨어 보안이나 전반적인 해킹을 학습하는 것은 쉽지 않다.

이 책은 정찰, 공격, 방어 세 파트로 나누어져 편향되기 쉬운 방어의 관점 만이 아닌 공격자의 관점에서 바라볼 수 있다는 점과 현대적인 웹애플리케이션의 구조와 앞서 언급했던 XSS와 그 외 많이 알려진 공격 방법 그리고, 보안 코드 리뷰, 취약점 관리와 서드파티 의존성 보안 부분까지 상세히 설명하고 실무적인 대응도 다루고 있다.

웹 애플리케이션 보안이라는 제한된 주제에 대해서만 다루고 있어 기본적인 웹프론트엔드와 백엔드 개발경험이나 지식이 있다면 부담없이 읽을 수 있다. 나처럼 보안에 관심있는 개발자에겐 좋은 레퍼런스, 보안을 중점적으로 다루고 싶은 이에겐 좋은 기본서가 되리라 생각한다.

 

 

 

KakaoTalk_Photo_2021-03-21-17-44-41.jpeg

 

 

웹 애플리케이션을 개발하다보면 항상 신경쓰이는 부분이지만 잘 지켜지지 않는 부분이 바로 보안적인 부분이 아닐까 싶다. 물론 요즘에는 대부분의 라이브러리나 프레임워크 내부에서 자동적으로 적용해주는 부분들이 많지만 그것만 믿고 개발했다가는 문제점이 많이 발생할 수 있다. 이 책은 그러한 웹 애플리케이션을 개발할 때 주의해야 하는 보안에 대해 이야기하고 있다. 

 

저번에 읽었었던 책은 컨테이너 보안 책이였는데 그 구성요소는 다르게 느껴졌다. 전에 읽었던 책은 컨테이너 자체에 집중하면서 보안에 대한 이야기를 했다면, 이 책은 일반적인 웹 보안 이야기로 시작해서 일반적인 웹 보안이야기로 끝이 난다. 그러다보니 다른 웹 보안 책들과 비교해서 특별하다거나 그런 점을 느끼지는 못했지만 기본에 충실한 책이라는 생각이 들었다.

 

우선 책의 시작은 보안과 해킹에 대한 역사로 시작한다. 아무래도 처음에는 간단하게 아이스브레이킹하는 시간이자, 보안의 역사가 어떻게 되어있는지에 대한 이야기를 한다. 그리고 마지막에 현재는 다른 보안도 중요하지만 웹 보안이 가장 취약점이 많으면서 문제점이 많은 부분이라는 말로 끝이 난다.

 

그 후에는 보안에서 중요한 정찰, 공격, 방어에 대해서 알려준다. 정찰의 경우는 대부분의 회사에서 진행하는 모니터링, 취약점 분석 등을 이야기하고 있다. 공격과 방어는 쌍방으로 이루어져 있어 거의 한 세트라고 봐도 무방하다. 흔히들 알고 있는 XSS, CSRF, SQL 인젝션 등에 대해서 공격하는 방법, 방어하는 방법에 대해서 알려준다. 마지막까지 책을 읽고 나면 웹 보안에 대한 기본적인 부분들에 대해서 이해할 수 있게 된다.

 

사실 여기서 나온 보안에 대한 이야기는 정말 기본적인 이야기인 것 같다. 아마도 대부분의 개발자들이라면 한번쯤 들어봤고 한번쯤 검색해봤을 그런 이야기들에 대해서 적혀있다. 하지만 이 책을 읽으면서 좋았었던 점은 이런 웹 보안에 대해 다시 한번 생각해볼 수 있는 계기가 되었고 들어는 봤지만 무시하고 넘어갔던 부분들에 대해서도 다시한번 검토해보게 만들어 주었다는 점이다. 물론 책의 눈높이 자체가 이미 보안을 알고 있던 사람에게 초점을 맞춘 책은 아니였기 때문에 그런 사람들은 쉽다고 느낄 것이다. 

 

웹 애플리케이션을 개발하면서 어떤 보안에 신경써야 하는지 궁금한 분들이 한번쯤 읽어보면 도움이 될 듯한 책이며, 개인적으로도 마음에 들었던 책이였다.

 

한빛미디어.jpg

 

 

 

머리말

 

이번에 선택한 책은 웹 애플리케이션 보안 책을 선택하였습니다. 평소에도 웹 개발을 주로 하고 있지만 보안에 관련된 지식은 많이 부족하고

 

서버 개발을 맡고 있어서 더욱더 알아야 할 내용이 많을 것 같아서 신청하게 되었습니다.

 

 

이 책의 학습 목표는 

 

이 책은 해커로부터 웹 애플리케이션을 보호하는 방법뿐 아니라 웹 애플리케이션을 조사하고 침입하는 방법을 가르친다고 적혀있습니다.

 

또한 웹 애플리케이션에 침투하기 위해 해커가 실제로 사용하는 여러 기법들을 소개합니다.

 

예를 들어 사이트 간 스크립팅(XSS), 사이트 간 요청 위조(CSRF), XML 외부 엔티티, 인젝션, 서비스 거부(Dos) 등 

 

 

그리고 다양한 사례를 통해서 위협에서 어떻게 웹 애플리케이션의 안전을 확보할 것인지 자세하게 적혀있습니다.

 

 

이 책의 독자 레벨은 저자분께서는 소프트웨어 공학 중급 수준의 배경지식이 있는 독자에 맞춰 구성되었어요.

 

워낙에 다루는 주제가 광범위하므로 프로덕션 품질의 소프트웨어 애플리케이션을 작성해본 경험이나 그에 상응하는 지식이 없는 사람에게는 어려울 수 있다고 적혀있습니다.

 

 

그리고 책에서 최소한 필요한 기술을 정의하였는데 이 경험을 해보신 분들에게는 더욱더 잘 읽힐 것 같습니다.

 

- 최소한 한 가지 프로그래밍으로 기본적인 CRUD(생성, 조회, 갱신, 삭제) 프로그램을 작성

 

- 서버에서 실행되는 코드 작성

 

- 브라우저에서 실행되는 코드(프런트엔드 코드, 자바스크립트) 작성

 

- HTTP 무엇인지 알 수 있는 사람

 

- 데이터베이스 경험

 

 

이 책의 구성

 

 

저자분께서는 전체적으로 3부로 구성을 하였습니다.

 

 

- 소프트웨어 보안의 역사

 

뭐든지 공부하기 전에 역사를 알게 되면 더욱더 이해가 빠르시니 재밌게 읽어보시면 좋을 것 같아요. 이 챕터도

 

해킹의 기원,에니그마,전화 프리킹,컴퓨터 해킹의 태동, 월드 와이드 웹의 부흥(2000년경), 현대의 해커

 

 

- 1부 정찰 

 

해킹을 하지 않고도 웹 애플리케이션과 관련된 정보를 취득하는 방법들을 알 수가 있습니다.

 

전 이 파트에서 각 서브도메인의 최대 길이를 받아 서브도메인의 목록을 브루트 포싱하는 함수 예제가 인상 깊었어요.

 

 

- 2부 공격

 

1부에서 정찰과 데이터 수집을 다뤘다면 코드 분석과 네트워크 요청을 중심으로 해킹 기술을 예제로 실행해 볼 수 있지만

 

본인이 운영하는 개인 사이트에서만 하셔야 합니다. 

 

 

- 3부 방어

 

해커의 공격으로부터 코드를 안전하게 지키는 법을 배웁니다.

 

 

 

책 리뷰

 

이 책은 공격과 수비의 양면을 모두 알 수가 있어서 좋은 것 같습니다.

 

그리고 기존에 알고 있던 개발 지식을 보안의 관점에서 더욱더 새롭게 바라볼 수 있고 또한 내용도 풍부해서 많은 것을 느낄 수가 있습니다.

 

 

용어 또한 정리한 페이지가 있어서 책을 읽으시다가 잘 모르는 부분이 나오면 참고하시면 됩니다.

 

 

또한 보안의 역사 및 그리고 다양한 정찰 사례 어떻게 웹 애플리케이션에 접근을 하고 데이터를 어떻게 찾아서 기록을 한 다음

 

기록을 한 거 가지고 그 애플리케이션을 분석해서 취약점을 판단 후 공격 기법 등을 책에서 정리가 잘되어 있어서 좋았습니다.

 

 

비록 제가 모르는 부분이 나오더라도 구글링을 해서 위키 문서를 통해 이해할 수 있으니 참고하시면 됩니다.

 

 

이 책을 다 읽고 나면 현재 본인이 운영하고 있는 시스템을 보안의 관점으로 써 좀 더 냉정하게 판단하고 시스템을 개선을 해나갈 수 있는 지식이

 

조금이라도 늘었다면 그걸 꼭 조금씩 적용해서 탄탄한 시스템을 운영할 수 있도록 하는 게 이 책의 학습 목표인 거 같습니다.

 

 

그런 관점으로 보면 꼬옥 추천해드리고 싶은 책입니다. 감사합니다.

 

보안에 대해 어떻게 생각하시나요?

필수적인 요소로 생각합니다.


보안이 중요해진 것은 지킬 것이 있기 때문입니다.


돈을 지키기 위해선 금고가 필요합니다.


금고도 도둑이 들게 되면 돈을 빼앗길 수 있습니다.


지금 살펴볼 책은 ‘웹 애플리케이션 보안’입니다.


보안에 대해 같이 이야기를 나눠 보겠습니다.


2.jpg

 

 

1. 보안의 역사

보안의 역사를 설명하겠습니다.


예시로 웹사이트를 들려고 합니다.


웹사이트는 로그인 보안이 초반에는 약했습니다.


아이디나 비밀번호가 틀리면 틀렸다 친절하게 알려줬습니다.


틀린 것을 기반으로 존재하는 아이디임을 확인하고 공격의 위험성을 느끼게 됩니다.


로그인 횟수 제한과 무엇이 틀렸는지 알 수 없게 변경되기도 했습니다.


보안도 점차 강화되고 있는 것을 느낄 수 있습니다.



3.jpg

 


2. 보안의 중요성

보안의 중요성은 중요합니다.


보안 사고가 발생해도 벌금이 적어서일까요?

보안을 중요하게 생각해야 할 것으로 보입니다.


소프트웨어 개발도 방어적으로 공격을 대비할 수 있어야 합니다.


보안 공격도 어느 종류가 있는지 알 수 있습니다.


현재 어떤 취약점들이 있고 보안 수준도 미리 대비해야 보안이 가능합니다.


해커가 어떻게 공격하는지 알아야 공격을 대비할 수 있습니다.


보안 정찰, 공격, 방어에 대해 알려주는 책인데요.

실제로 사용되는 여러 기법과 안전을 확보하는 법도 알려줍니다.



1.jpg

 


Ps

끝으로 이미테이션 게임 영화를 아시나요?

이 책은 천재 수학자 앨런 튜링의 에니그마로 책을 시작합니다.


보안은 가볍게 생각하는 사람들도 있습니다.


그것은 벌금이 적기 때문에 심각하게 안 받아드릴 수 있어 보입니다.


미국은 보안 위반 시 벌금이 크기 때문에 보안에 더 민감하게 생각합니다.


우리나라도 닮아야 할 부분이라 생각합니다.


보안 인식이 적었을 때는 웹의 허점이 많았습니다.


하지만 보안 인식이 강해지면서 보안도 많이 향상됨을 느낍니다.


보안에 관심 있는 분들에게 이 책을 추천합니다.

안녕하세요. 이번 시간에는 2021년 02월에 출간된 따끈따끈한 한빛미디어 출판사의 <웹 애플리케이션 보안: Web Application Security>에 대한 리뷰를 진행하겠습니다. 이 책은 정찰, 공격, 방어 세 단계로 나눠 웹 애플리케이션 보안에 대해 학습할 수 있습니다. 

최근 애플리케이션이 웹 기반으로 이동하면서 웹 애플리케이션 보안에 대한 관심이 높아지고 있습니다. 이 책을 보며 2~3년 전에 학습했던 보안 요소들에 대해 상기할 수 있었으며, 학습했었던 지식을 다시 정리할 수 있었던 좋은 시간을 보낼 수 있었습니다.

<웹 애플리케이션 보안>은 약 370여 페이지로 구성되어 있어 휴대하며 읽기에 부담이 없습니다. 또한, 전차책 뷰어가 있는 분은 전자책도 출간되어 있으니 활용할 수도 있습니다. 

한빛미디어 리뷰 평가단에 참여하여 작성한 글이며, 한빛미디어에서 제공해준 책을 읽고 작성했음을 밝힙니다.

이 책의 매력은?

이 책은 소프트웨어 보안의 역사로 시작합니다. 물론 지면 관계로 많은 내용을 다루지는 못하지만, 일반 독자가 상식 수준에서 알아둬야 할 중요한 요소는 담고 있다고 생각합니다. 이 챕터를 활용하여, 독자에게 보안에 대한 호기심을 유발합니다. 개인적으로 좋은 접근이라 생각합니다. 

첫 번째 파트는 정찰을 주제로 하고 있습니다. 이 챕터에서 정찰의 목적과 기본적인 정찰 기법에 대해 소개합니다. 정찰을 주제로 자바스크립트 코드를 활용하여 재미있는 예제들을 다수 포함하고 있습니다. 그리고 좋은 팁들을 많이 포함하고 있음으로 관심 있게 학습하면 도움이 될 것입니다. 기존에 전혀 고려하지 않았던 새로운 통찰력을 얻을 수 있습니다. 

두 번째 파트는 공격을 주제로 하고 있습니다. 안타깝게도 현대의 웹 애플리케이션은 많은 보안 취약점을 내포하고 있습니다. 이 책에서는 The Open Web Application Security Project(OWASP) TOP 10에서 자주 소개되는 내용을 주제로 소개하고 있습니다. 처음 듣는 용어도 있겠지만, XSS, CSRF, Injection, DoS 등의 주제는 많이 들어보셨을 것입니다. 이런 주제들에 대해 간단한 예제를 구성하여 위험성을 보여줍니다. 

세 번째 파트는 방어입니다. 앞의 두 파트를 기반으로 취약점을 찾고, 관리하고, 각 공격으로부터 어떻게 방어할 것인지에 관해 이야기를 전개합니다. 이 책의 내용을 기반으로 새롭게 만들어지는 도구를 찾아 활용하면 실제 웹 사이트를 운영할 때 도움을 받을 수 있을 것입니다. 

개인적으로 웹 애플리케이션 개발자는 한 번쯤 봤으면 좋겠습니다. 새로운 보안 용어뿐만 아니라, 애플리케이션을 개발하며 고려하지 않았던 새로운 영역에 대해 이해할 수 있으며, 이 책에서 소개하는 간단한 기술로 시큐어 코딩에 발을 들일 수 있을 것입니다. 

마치면서

<웹 애플리케이션 보안>은 매력적인 책입니다. 이 책은 앞에서 이야기했듯이, 정찰, 공격, 방어 3가지 파트로 구성되어 있고, 분야별로 애플리케이션을 제작할 때, 필요한 지식을 학습할 수 있습니다. 보안에 대해 깊이 있게 공부하기는 쉽지 않은 일이며, 많은 시간을 투자해야 하는 일입니다. 하지만 제 생각에는 보안 전문가가 아니더라도 웹 애플리케이션 개발자는 기본적인 보안에 대해 이해하고 있어야 합니다.

이 책으로 보안에 대한 중요성과 웹 애플리케이션이 갖춰야 할 기본 보안 요소에 대해 학습할 수 있습니다. 이 책을 통해 보안에 대해 호기심이 생길 수도 있으리라 생각되며, 웹 애플리케이션 개발자는 한 번쯤 읽어봐야 하는 책이라고 생각합니다. 

[나의 한줄 추천사]

개발할때 불안한(?) 느낌을 받으면 책을 보라

[책을 구매한 이유]

어플리케이션 프론트엔드 백엔드 둘다 개발해야하는 경우 두쪽다 보안적으로 취약한 부분을 시큐어 코딩으로 해야하는데 이때 보면 정말 좋은 책이다.

[내가 찾고자 했던 질문과 대답들]

1. 보안 취약점을 어떻게 찾을까?

    - 취약점을 찾기 위해서는 "현대 어플리케이션 구조" 먼저 알아야 한다. 아래와 같은 구조를 갖는다.

      : REST API, JSON, 자바스크립트, SPA Framework (React, Vue, AngularJS), 인증 권한 부여시스템,

       하나 이상의 웹서버(주로 linux 이용), 하나 이상의 웹서버 패키지(ExpressJS, Apache, Nginx), 하나 이상의 

       데이터베이스(MySQL, MongoDB), 클라이언트의 로컬 데이터 스토어(Cookies, 스토리지, IndexedDB)

2.어떻게 공격할까?

   - XSS (Cross Site Scripting) : 사이트 스크립팅.

     : 게시판이나 메일 등에 자바스크립트 같은 스크립트 코드를 삽입해 개발자가 고려하지 않은 기능이 작동하게 하는 치명적인 공격이다

      주료 여러 사용자가 보게 되는 전자게시판에 악성 스크립트가 담긴 글을 올리는 형태로 이루어진다.

   - CSRF (Cross Site Request Forgery) : 사이트 요청 위조

    : 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격을 말한다

      XSS 이용한 공격이 사용자가 특정 웹사이트를 신용하는 점을 노린거라면, CSRF 특정 웹사이트가 사용자

      웹브라우저를 신용하는 상태를 노린 것이다.

   - SQL Injection : SQL 삽입

     : 코드 인젝션의 기법으로 클라이언트의 입력값을 조작하여 서버의 데이터베이스를 공격할 있는 공격방식

      말한다. 주로 사용자가 입력한 데이터를 제대로 필러팅, 이스케이핑하지 못했을 경우에 발생한다.

3.어떻게 방어할까?

   - 안전한 어플리케이션 아키텍처

     : SSL / TLS 네트워크 중간에서 악의적인 해킹을 피하기 위해서 모든 데이터는 전송중에 암호화 시킨다.

       이중인증 (패스워드 + OTP) 적용.

   - 보안코드 리뷰

     :전체 리뷰하는 부분은 불가능한 방법이라, 고위험 영역을 먼저 실시하여 리스크를 최소화하는 방법으로

      우선순위가 부여된 상태의 코드리뷰가 이뤄지면 된다.

   - XSS 공격 방어

     : Content-Security-Policy meta 태그에 추가함으로써 공격 회피가 가능하다.

   - CSRF 공격 방어

     :Origin 헤더와 Referer 헤더를 검증한다.CSRF 토큰을 이용해서 강력한 방지도 가능하다.

   - SQL Injection 공격 방어

     : prepared statement 역할을 하는 저장 프로시저를 이용하면 대부분 방지가 가능하다

 

       파라미터에 인코딩 이스케이프를 활용하여 사전에 막는 방법도 있다.


웹 애플리케이션 보안

앤드루 호프먼 지음최용 옮김

 

웹 애플리케이션 보안을 읽으면서해킹의 역사와 보안의 중요성에 대한 이해를 넓힐 수 있었다.

 

저자와 역자의 보안분야 전문 스킬을 잘 녹여내 독자들이 쉽게 이해할 수 있도록 역자의 세심 배려와 실전에서 경험한 내용들을 체계적으로 설명하고 있다.

대상 독자로는

-     소프트웨어 엔지니어와 웹 애플리케이션 개발자

-     소프트웨어 엔지니어

-     웹 애플리케이션 개발자

-     보안 분야로 커리어를 전환하고자 하는 사람

-     보안 엔지니어침투 테스트버그 바운티 헌터

-     이 책은 보안 분야의 취준생웹 애플리케이션 개발자에게 좋은 길잡이 역할을 할 것이다.

 

정찰공격방어 순으로 해커로부터 웹 애플리케이션을 보호하는 방법뿐 아니라 웹 애플리케이션을 조사하고 침입하는 방법을 다룬다실제 현재 기업공공기관개인이 운영하는 웹 애플리케이션에 침투하기 위해 해커가 실제로 사용하는 여러 기법을 소개하고 있다.

기법을 충분히 조사한 뒤에는 해커의 위협에서 웹 애플리케이션 안전을 어떻게 확보할 것인지 논의한다그러고 나면 완전히 새로운 시각에서 애플리케이션 아키텍처를 바라보게 될 것이다.

 

이 책은 용어정리를 앞에 잘 정리하여 놓았다독자의 약어에 대한 이해를 쉽게 하도록 배려한 점은 저자의 배려일 것이다보안분야를 처음 접하는 독자들의 이해도를 높일 것이다.

 

TIP) 해킹 기술을 익히면서 용돈을 벌고 싶은가?

이 책을 읽고 3부에서 소개하는 버그 바운티 프로그램에 등록하자.

다른 회사가 보안성을 높이는 것을 돕는 동시에 해킹 기술도 연마하고 부수입도 올릴 수 있는 아주 좋은 방법이다.

 

웹 애플리케이션 보안분야 능력을 키우고 싶다면

꼭 읽고 내 것으로 소화하기를 강력 추천한다!!!.

 

해킹은 사회적 암적 존재다.

창과 방패의 끊임없는 전쟁에서 승리하기를~~~

 

웹 애플리케이션 보안에 대해서 관심가져야 한다는 생각을 가지고 있었는데, 이 책을 만나게 되었습니다. 약간의 기대감을 가지고 책을 읽기 시작했는데요. 비슷한 주제를 가진 다른 책을 읽어본적이 없어서 그런지, 이 책은 기대 이상의 책이었습니다.

먼저, 이 책은 교과서 같은 느낌을 주었습니다.

어떤 주제를 가진 교과서를 펼치면 처음 나오는 이야기는 대부분 "역사"입니다. 나누어야 하는 주제에 대해서 어떤 기원이 있었고 어떤 유래에 의해서 이런 개념이 생겨났는지를 짚어 주죠.

컴퓨터에 대한 교과서의 앞부분에 파스칼 계산기나 애니악 같은 걸 이야기하는 것과 같습니다. 이 책은 "에니그마"를 시작으로 이야기를 풀어가기 시작합니다. 심지어 실제 모습까지 삽화로 소개하고 있습니다.

독일은 2차세계대전에 감청이 불가능한 통신기기를 만들었는데, 이를 에니그마라고 했다는 겁니다. (1930년대) 거의 100년전 일이죠.

감청을 피해 중요한 메시지를 보낼 수 있다는 점에서 에니그마는 매우 귀중했다.

39 쪽

그리고 연합군은 애니그마를 해킹했죠. 저자는 이를 해킹의 역사의 시초로 소개하고 있습니다.

그리고 2015년 이후 현재 가장 주된 해킹 상대는 브라우저라고 합니다.

빼앗을게 많은 이유겠죠.

그래서 저자의 설명 방향은 "웹 애플리케이션 보안"으로 넘어가고 있습니다.

그 다음 책 전반에서 "웹 애플리케이션 보안"에 대해서 "정찰, 공격, 방어"라는 세가지 방향에서 설명하고 있습니다.

웹 애플리케이션에 대한 바라보는 관점에 따라서 설명해주고 있는 건데요. 상당히 독특하면서도 괜찮은 방법인것 같습니다. 우리가 가진 관점에 따라서 우리가 알게 되는 지식의 상태가 달라질 테니까요.

완전 교과서 적이죠.

교과서 적이라고 생각하게 된 또 다른 이유는 책의 서술하는 방식이었던것 같습니다.

일반적으로 교과서들은 해당 개념의 핵심을 정확하게 언급하고 넘어가는 식으로 서술되어있는데요. 이 책에서도 그런 부분을 많이 발견했습니다.

자바스크립트 외의 언어를 알고 있다면 좋은 자바스크립트 개발자가 되기 위해 배워야 할 것이 다섯 가지 있다. 스코프, 콘텍스트, 프로토타입 상속, 비동기, 브라우저 DOM이다.

78 쪽

실제로 자바스크립트를 쓰고 있고 여러가지 자바스크립트 관련 책을 읽어보았기 때문에, 이러한 저자의 정의는 상당히 깔끔하고 정확한 언급이 아닐까 싶었습니다.

자바스크립트 뿐 아니라 저자가 웹 애플리케이션 보안을 설명하기 위해서 필요한 개념들에 대해서 이러한 식으로 설명해 나고 있는 것을 보았습니다.

주제를 설명하기 위해서 필요한 개념의 핵심들을 정확하게 언급해 나가면서 결론을 만들어가는 서술 방식이 교과서를 읽고 있다는 느낌을 주었던것 같습니다.

책을 들고 다니면서 주루룩 읽어 내려갔는데요.

그 중에 가지게 된 생각이 있다면, 이렇게 읽어 내려가서 될만한 사안이 아니라는 것이었습니다.

저자가 이야기 하고 있는 실천법들을 하나씩 업무에 적용해 봐야 겠다는 생각을 가지게 되었던 거죠.

이제 앞으로 좀 오랜동안 사무실 눈앞에 두고 펼쳐봐야 할것 같습니다.

이 책을 실마리로 해서, 앞으로도 웹 어플리케이션 보안에 대해서 관심을 가져야 겠습니다.

web-application-security.jpg

웹 관련 개발을 시작한지는 2년쯤 되었지만, 웹 애플리케이션 보안에 관한 책을 읽어보기는 처음입니다. 웹 기반의 애플리케이션이 보편화되었고, 그만큼 보안의 중요성이 점점 더 짙어지고 있습니다. 하지만 저에겐 아직 기능 구현에 급한 나머지 보안에 대해서 소홀히 했던 것은 사실입니다. 이런 와중에 이 책을 만난 것은 반가운 일이었습니다.

책의 표지부터 제가 좋아하는 개의 그림이 등장합니다. 아마도 책을 제작하신 분이 책의 내용 중에 정찰이라는 큰 주제를 의식해서 정찰견을 표지 모델로 결정한 것 아닐까 추측을 해봤습니다. 하지만 표지 설명에서는 에스키모견이고, 정찰견과는 별로 상관이 없는 것 같습니다.

지은이는 현역의 보안 엔지니어로 자바스크립트를 도구로 해서 많은 경력을 쌓아 오신 분인 듯 합니다. 풍부한 경험을 통해 쉽게, 그리고 요즘 인기가 많은 언어인 자바스크립트를 통해 내용을 풀어나갈 것이라는 것을 짐작할 수 있습니다.

이 책을 읽어내기 위해서는 개발 경험이 좀 필요할 것으로 보입니다. 웹 애플리케이션을 어느 정도 경험을 하고, 웹 통신과 데이터베이스 기술에 대해 이해가 있는 상태에서 읽기 시작해야 상황에 따른 해킹 기술이나 방지 기술에 대한 설명이 제대로 와 닿을 것입니다.

이 책의 내용은 정찰, 공격, 방어, 이렇게 세 가지 주제로 이뤄져 있습니다. 오션스 일레븐 같은 영화를 보면, 은행의 금고 보안 시스템을 뚫기 위해서 내부 정보를 이용해서 치밀하게 계획을 세우고 작업을 실행합니다. 이와 같이 해킹이라는 과정도 정찰이라는 과정부터 진행된다는 것을 새삼스럽게 알게 되었습니다. 결국엔 공격의 방법이 어떤 식으로 이뤄졌다는 것이 파악되어야 이에 대해 방어 방책을 세울 수 있고, 유사한 방식의 공격에 대해서도 미리 준비할 수 있습니다.

이 책은 보안의 역사라는 좀 생소한 내용으로부터 시작됩니다. 에니그마라는 이름은 영화의 제목에도 등장해서 하나의 새롭게 알게 된 지식으로 받아들였지만 전화 프리킹에 대한 내용은 새롭기도 하거니와 상황 자체가 재미있기도 해서 책의 흥미를 일으키는 부분이었습니다.

그 이후에는 세 가지의 핵심 주제를 순서대로 설명하고, 각 주제에 대해 세분화된 설명으로 진행됩니다. 내용 자체가 쉬운 주제가 아니기 때문에 머리에 쥐가 날 것 같기도 합니다. 하지만 중간에 자바스크립트 언어로 예시가 들어있어서, 머리가 리프레시 되기도 하고, 실제로 이런 식으로 진행되는구나라고 느낄 수도 있습니다. 또한, 스크립트 언어의 특성 상 웹 브라우저나 온라인 노드 인터프리터 등에서 바로 실행해 볼 수도 있습니다. 직접 실행해 가면서 이해할 수 있는 장점도 가지고 있습니다.

저자나 출판사 측에서는 정찰, 해킹, 방어라는 구성으로 구분해서 전달하는 방식이 더 효율적이라 판단했을 것입니다. 하지만 각 소주제별로 세 가지 과정을 묶어서 설명을 했으면 어땠을까 하는 생각을 했습니다. 예를 들어, XSS 라는 소주제에 대해서 각각의 정찰, 해킹, 방어의 내용이 흩어져 있다보니, 방어의 내용을 읽었을 때 즈음엔 앞서 읽었던 내용의 대한 기억이 흐릿해져서 돌아가 읽어봐야 하는 상황이 생겼습니다. 추후에 다시 읽어볼 때에는 XSS라는 주제로 다시 상기시켜야 할 경우에, 흩어져 있는 세 가지 내용을 다시 찾아보고 머리 속에 정리해야 하는 상황이 발생하지 않을까 염려되는 면도 있습니다.

웹 관련 개발을 진행하면서, 이제는 필요하다라고 생각하는 즈음에 이 책을 만나서 반가웠습니다. 실제 업무를 해가면서 필드에서 발생할 수 있는 문제에 대해 솔루션에 대한 영감을 줄 수 있는 소중한 책이 될 듯한 예감이 듭니다.

web-application-security.jpg

 

 

 

[한줄평]

웹 애플리케이션 보안을 체계적으로 정리 하고 싶은 분을 위 한 책


[목차]

CHAPTER 1 소프트웨어 보안의 역사

 

PART I 정찰

CHAPTER 2 웹 애플리케이션 정찰 개요

CHAPTER 3 현대 웹 애플리케이션의 구조

CHAPTER 4 서브도메인 찾기

CHAPTER 5 API 분석

CHAPTER 6 서드파티 의존성 식별

CHAPTER 7 애플리케이션 아키텍처 약점 식별

CHAPTER 8 1부를 마치며

 

PART II 공격

CHAPTER 9 웹 애플리케이션 해킹 개요

CHAPTER 10 사이트 간 스크립팅(XSS)

CHAPTER 11 사이트 간 요청 위조(CSRF)

CHAPTER 12 XML 외부 엔티티(XXE)

CHAPTER 13 인젝션

CHAPTER 14 서비스 거부(DoS)

CHAPTER 15 서드파티 의존성 익스플로잇

CHAPTER 16 2부를 마치며

 

PART III 방어

CHAPTER 17 현대 웹 애플리케이션 보안

CHAPTER 18 안전한 애플리케이션 아키텍처

CHAPTER 19 보안 코드 리뷰

CHAPTER 20 취약점 탐색

CHAPTER 21 취약점 관리

CHAPTER 22 XSS 공격 방어

CHAPTER 23 CSRF 공격 방어

CHAPTER 24 XXE 방어

CHAPTER 25 인젝션 방어

CHAPTER 26 DoS 방어

CHAPTER 27 서드파티 의존성 보안

CHAPTER 28 3부를 마치며



[주요 내용]

  • 소프트웨어 해킹과 보안의 역사

  • 웹 애플리케이션 정찰

  • 현대 웹 애플리케이션 구조

  • 서브 도메인, API, 서드파티

  • 애플리케이션 아키텍처 약점과 보안

  • 공격과 방어

  • 보안 코드 리뷰

  • 취약점 탐색과 관리


[대상 독자]

  • 소프트웨어 엔지니어와 웹 애플리케이션 개발자

  • 보안 분야로 커리어를 전환하고자 하는 사람

  • 보안 엔지니어, 침투 테스터, 버그 바운티 헌터


[서평]

보안, 해킹 하면 나랑 크게 상관 없는 일이라고 생각을 했는데 내옆의 동료가 랜섬웨어에 감염이 되고, 내가 개발하는 서버가 해킹을 당하고 보니 심각성을 알게 되었다. 지피지기면 백전불태의 마음가짐으로 찾아보니 이책은 공격자의 입장과 보안 담당자의 입장에서 보기에 좋게 해킹 방법과 보안 대책 두가지를 배울수 있다는 점이 가장 마음에 들었다.


이책의 구성은 전체 3부로 구성되어 있다. 처음부터 차례대로 읽는것이 읽어 본 결과 가장 학습효과가 좋을 것이라 생각 되지만 관련분야의 독자라면 아는 부분은 스킴 하고 넘어가도 문제는 없다.



1부를 시작하기 전에 1장에서는 소프트웨어의 보안의 역사와 과거 기술, 도구, 익스플로잇에 대해 간략하게 살펴본다.


1부 정찰에서는 웹 애플리케이션의 구조와 기능을 조사해 문서화하는 여러 방법을 배우게 된다. 최상위 도메인 뿐만 아니라 서브도메인에 존재하는 서버에서 API를 찾는 방법과 엔드포인트가 노출하는 API와 수용하는 HTTP동사를 찾는 방법을 배운다.


서브도메인, API, HTTP 동사의 맵을 만든 다음 각 엔드포인트에서 어떤 요청과 응답 페이로드를 수용하는지 판별하는 방법을 살펴보고, 일반적인 관점에서 접근하면서 공개된 명세를 찾음으로서 페이로드의 구조를 더 빠르게 알아내는 방법을 배울수 있다.


애플리케이션의 API 구조를 매핑하는 방법을 조사한 다음으로는 서드파티 의존성과 관한 논의를 시작하고 자체 개발한 애플리케이션에서 서드파티 통합을 검출하는 여러 방법을 평가한다. SPA 프레임워크, 데이터베이스, 웹 서버를 검출하는 방법을 배우고 다른 의존성의 버전을 식별하는 일반적인 기법을 배울수 있다.


1부를 학습 하면서 아키텍처의 결함으로 기능에 대한 보호가 허술해질 수 있음을 알게 되었고 안전하지 않은 웹 애플리케이션 아키텍처의 몇 가지 공통적 형태를 평가함으로써 급하게 개발된 웹 애플리케[이션이 겪는 위험에 대해 알게 되었다.


2부 공격에서는 코드 분석과 네트워크 요청, 실제 해킹 기법에 대해서 배우게 된다. 익스플로잇을 만들어고 사용하는 법과 익스플로잇으로 데이터를 절취하거나 애플리케이션의 동작을 강제로 바꾸는 것을 배운다. 1부 정찰에서 배운 내용을 해킹 기술을 더해 데모 웹 애플리케이션을 어떻게 해커들이 장악하는지 배우게 된다.


3부 방어에서는 해커의 공격으로 부터 코드를 안전하게 지키는 방법에 대해서 배우게 된다. 1,2부를 발판 삼아 모던한 풀스택 웹 애플리케이션을 구축하는데 필요한 방어 기술을 배울수 있다. 각각의 분석 주안점에서 중대한 보안 위험과 관심사를 논의한 다음 보안 위험을 줄일 수 있는 완화 기법과 대체 구현을 할 수 있는 방법을 배운다.


이책을 다 학습을 하면 웹 애플리케이션 정찰, 해킹 공격 기법, 방어적 완화와 해킹 당할 위험을 줄이는 모범 사례에 대한 지식을 얻을수 있을 것이다. 이것이 해킹,보안의 모든 것은 아니지만 이런 지식의 기초인 소프트웨어 보안의 역사와 해킹의 진화에 대한 배경지식을 배우면서 좀더 견고한 애플리케이션 개발에 도움이 될것이라 생각이든다. 웹 애플리케이션 보안에 관심이 있다면 이 책을 읽어 보는 것을 추천 합니다.



 

한빛미디어의 지원을 받아 작성된 리뷰입니다.

WEB Application Security

 

웹 어플리케이션 보안

 

 

1. 특징

 

웹 환경을 모의해킹 할때 어떤 식으로 하면 되는지에 대해 알려주는 책이다.

 

일단 이책이 마음에 들었던 이유는 정찰 > 공격 > 방어 이렇게 목차가 구성이 되어있어서 실무에 도움이 될 거 같았다.

 

또한 맨처음에 용어 정리가 있어서 용어를 일일이 구글링 하지 않아도 된다는 장점이 있었다.

 

2. 내용

 

해킹의 기원

 

서브도메인 찾기

 

XSS

 

CSRF

 

XXE

 

DoS

 

3.평가

 

책의 난이도를 평가하자면 초중급? 정도 되는 것 같다.

또한 자바스크립트 node.js 등 추가적인 배경 지식이 있어야 내용 이해가 가능했다.

 

4. 결론

 

자바스크립트 등 웹 기본 코딩 기술을 배운 후 본다면 좋은 입문서

 

#나는_리뷰어다 2번째 책.

마지막 장에

여러분은 웹 애플리케이션 정찰, 해킹 공격 기법, 방어적 완화와 해킹 당할 위험을 줄이는 모범 사례에 대한 지식을 갖게 됐다.

웹 애플리케이션 보안 28장

되어 있는데, 당황했다.

책을 전부 읽기는 했지만, 저런 지식을 갖게 되었나 싶었다.

난 웹 보안에 대해 전반적인 내용을 다루는 책이라고 생각했는데, 저자의 서문이나 결어를 보면 각론을 다뤘다고 생각하는 것 같다.

솔직히 웹이 익숙해서 그런지, 책의 내용이 대부분 '당연한 거 아닌가?'라는 의문을 가지고 보게 되었다.

웹 개발자 입장에서는 시큐어 코딩류의 책이 더 도움이 될 것 같기는 하다.

아마도, 웹 애플리케이션 보안의 전반적인 개념과 절차를 알고자 하는 사람한테는 도움이 될 것도 같다.

(웹 보안이 아니라 웹 애플리케이션 보안이다. 네트웍등에 대한 보안 내용은 없다.)

전화기부터 시작한 해킹의 역사는 흥미로웠고,

mXSS나 XXE는 그 동안 신경쓰지 못한 거라 주위 깊게 봤고,

정규표현식을 사용한 DoS공격은 소스를 다시 돌아보게 했습니다.

'정찰, 공격, 방어 세 단계로 배우는 웹 애플리케이션 보안의 모든 것'이라는 표어는 과한 것 같고,

시작점으로는 괜찮은 책인 것 같습니다.

 

총 28챕터로 구성되어 있으며 책의 두께는 아래와 같다.

 

 

웹 애플리케이션 보안의 정찰, 공격, 방어를 모두 다루는 실용서이며,

책의 중간중간 예제와 예제에 대한 설명이 자세히 실려있다.

 

 

 

 

보안에 대해서 공부해본 적이 없었고, 웹 애플리케이션 보안 책으로 보안을 처음 접해보았다. 

목차만 봤을 때는 생소한 보안언어가 많이 보였다. 

책에서 용어설명을 해주기 때문에 모르는 용어가 많다고 걱정할 필요는 없다. 

보안의 역사부터 시작하기 때문에 천천히 보안을 접할 수 있었다. 

공격방법 또는 방어방법과 보안 취약점 등을 알 수 있었다. 

보안을 전혀 모르는 사람이라면 책을 처음부터 끝까지 읽는 것을 추천한다. 

하지만 보안을 어느 정도 알고 궁금한 내용의 정보를 얻고 싶다면 목차를 보고 해당하는 내용만 찾아보는 것도 좋은 방법으로 보인다.

 

 

<추천 독자>

보안을 처음 접하는 초심자

웹 애플리케이션 보안을 개선하고 싶지만 경험이 많지 않은 독자

안전한 웹 애플리케이션을 만들고 싶은 독자


<이 게시물은 한빛미디어로부터 무상으로 제공받은 도서를 읽고 작성되었습니다.>

 

이 책은 프로그래밍을 어느정도 공부하고 sql 등을 공부하면서 웹 해킹에 관심이 있는 사람이 웹해킹 입문용으로 읽으면  괜찮은 것 같다. 모르는 부분이 있다면 바로바로 검색하면서 읽으면 큰 무리는 없을 것 같다.


자신의 웹 애플리케이션이나 소프트웨어를 만들면서 보안에 대한 걱정을 해본 경험이 있는 사람이라면 이 책을 읽을 것을 추천한다. 이 책은 공격과 방어 두가지 방법 모두 설명하기 때문에 보안에 대한 걱정이 많은 사람이 읽으면 좋을것  같다.

 

이책은 정찰, 공격, 방어의 순서로 진행된다. 그렇기 때문에 취약점을 찾을 수 있는 능력과 취약점을 미리 예방하는 능력 등을 키울 수 있을 것이다. 그리고 이런 책을 읽다보면 용어가 생소한 경우가 많은데 이 책은 앞에서 용어에 대한 설명을 하기때문에 더욱 쉽게 이해할 수 있던거 같다.


나는 이 책에서 방어에 관한 내용을 자세히 봤는데 내가 열심히 인터넷을 찾아다니며 얻었던 정보과 알고 싶었던 정보들도 많이 있어서 내 실력을 더욱 향상 시킬 수 있었다. 보안에 대해 알아보고 싶은 사람이라면 읽을 것을 추천한다.

목차

이 책은 크게 세가지의 파트로 나뉘어진다. 정찰, 공격, 보안인데 정찰에서는 웹 애플리케이션 정보를 찾는 방법을 소개한다. 공격에서는 해커들이 쓰는 공격 방식을 다루고, 방어에서는 이러한 공격들을 어떻게 해야 방어할 수 있는지를 다룬다.

내가 생각하는 대상 독자

보안이라고 해서 보안관련 직종의 사람들만 읽을 수 있는 어려운 글일까 싶었지만 막상 까보니 그게 아니었다. 이 책에서는 대상 독자를 웹 프로그래밍 배경을 갖춘 개발자나 관리자도 쉽게 읽을 수 있다고 명시하고 있다. 실제로 책을 읽으니 웹 개발자라면 이해할 수 있을만한 쉬운 언어와 말로 내용을 전달해준다. 만약 어떤 공격 유형이 있는지 궁금하거나 이러한 공격 유형을 막는 방법이 무엇인지 간단하게 알고 싶은 웹 개발자라면 이 책을 적극 추천한다! 아마 원하는 정보를 많이 얻어갈 수 있을 것 같다.

줄거리

처음에는 보안의 역사에 대해 설명하며 어떻게 소프트웨어의 보안이 진화하게 되었는지 다룬다. 이를 통해 좀더 보안에 쉽게 접근할 수 있게 된다. 그 후에는 본격적으로 정찰 파트를 통해 보통 해커들은 웹 보안 취약점을 탐색하기 위해 어떻게 정찰하는지를 설명한다. 물론 깊게 들어가지는 않지만 정찰의 방법을 아는 것만으로도 웹 보안에 대해 좀 더 친숙하게 다가갈 수 있다. 자연스럽게 웹 보안에 다가가게 되면 본격적으로 해커들이 공격하는 방법에 대해 다룬다. 이를 통해 얼마나 많은 취약점들이 존재하는지 깨달을 수 있다. 또한 그에대한 위험성 또한 느껴지기도 한다. 마지막으로는 방어 방법을 설명하며 웹 보안을 방어하기 위해 어떤 방법들을 써야하는지를 설명한다.

마치며

평소에 XSS, CSRF, 인젝션등의 보안 언어들을 많이 알고는 있었지만 이러한 공격방법이나 방어 방법을 제대로 알고있지 못하였다. 하지만 이 책을 통해 그러한 궁금증을 모두 해결하고 있었고 더 많은 보안 취약점들에 대해서도 알게되었다. 이를 통해 조금이나마 보안쪽에 안목이 넓어질 수 있었다. 만약 이 책을 살지말지 고민하고 있는데 이 글을 보게된다면! 만약 당신이 나처럼 보안에대해 잘 알지는 못하지만 보안에 대해 조금이라도 알고 싶고 궁금하다면 이 책을 적극 추천드리고 싶다! 조금이나마 보안에 대해 넓은 시각을 갖게 될 것이다.

평소에 개발하느라 바쁘기도 하고 개발 기술에 대해서만 공부했지 보안에 대해서 깊이 알아보려고 하지는 않았었는데

어떻게 보면 안전 불감증때문 인것 같다

설마 내가 운영하는 사이트가 공격을 받을거라고 생각하지는 못하고 매우 허술하게 운영하는 경우가 많다

그리고 시큐어 코딩으로 소스코드를 안전하게 작성하기보다는 주로 SSL 이나 방화벽 인프라에 많이 의존하는 경향이 있다

이 책은 실제 해커의 입장에서 웹 보안이 허술한 애플리케이션에 대해 정찰 하고 실제로 공격을 해보고 이러한 공격들에 대해서 어떻게 방어 할 수 있는지에 대해서 자바스크립트 언어로 깊이 있게 다뤄본다

다양한 보안용어들이 등장하고 시큐어 코딩 방법과 공격 기법, 방어 기법등을 다루므로 안전 불감증으로 인한 보안을 허술하게 관리하던 보안담당자 혹은 애플리케이션 개발자들이 보기에 매우 좋은 서적인듯 하다

 

이 얇은 책 하나로 웹 보안이 취약한 애플리케이션에 대한 정찰, 공격, 방어 기법들에 대해서 알아보고 공부할 수 있다

얇지만 매우 깊이 있는 내용들을 다루며 과거의 공격이나 방어기법이 아니라 과거에서부터 이어져오거나 현대에도 사용되고 있는 유용한 기법들에 대해서 배울 수 있다

또한 자바스크립트 기반의 시큐어코딩 기법은 짧지만 매우 유용하다

이 책은 평소에 생각하지 못했거나 생각했어도 대충 넘어갔던 부분들에 대해서 어떻게 코딩을 하면 안전할 수 있을지에 대한 궁금증도 해소 시켜준다

내 사이트는 안전하겠지라는 안일한 태도로 허술하게 보안을 관리하다가 개인정보 탈취나 금융피해등 심각한 피해를 입는 기업들이 매우 많은데 보안은 요즘같은 IT 의존도가 높은 시대에 매우 중요한 부분 중에 하나 인 것 같다

우수한 시스템을 개발하는 것도 중요하지만 강도 높은 보안 시스템을 구축하는 것도 그에 못지 않게 중요한 것이다

 

보안에 대해 잘 모르지만 알아보고 싶은 사람이나 좀더 안전한 애플리케이션을 개발하고 싶은 사람들에게 이 책을 적극 추천한다

 

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
웹 애플리케이션 보안
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
웹 애플리케이션 보안
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
웹 애플리케이션 보안
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 책0