콘텐츠 바로가기
본문 바로가기


블로그 전체검색
웹 애플리케이션 보안

[도서] 웹 애플리케이션 보안

앤드루 호프먼 저/최용 역

내용 평점 5점

구성 평점 5점


저자 소개

이 책의 저자 앤드루 호프먼은 세일즈포스닷컴의 시니어 보안 엔지니어, 자바스크립트, 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 의존도가 높은 시대에 매우 중요한 부분 중에 하나 인 것 같다

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

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


※출판사로부터 책을 무상으로 제공받아 직접 실습해보고 정성껏 작성한 리뷰 입니다

 
취소

댓글쓰기

저장
덧글 작성
0/1,000

댓글 수 0

댓글쓰기
첫 댓글을 작성해주세요.

PYBLOGWEB1