웹 애플리케이션 해킹 대작전 [웹 개발자가 꼭 알아야 할 웹 취약점과 방어법]
- 원서명How to break web software (ISBN 9780321369444)
- 지은이Mike Andrews, James A. Whittaker
- 옮긴이윤근용
- 감수자강유
- ISBN : 9788960770102
- 25,000원
- 2007년 01월 30일 펴냄 (절판)
- 페이퍼백 | 240쪽 | 188*250mm
- 시리즈 : 해킹과 보안
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
해커는 여러분의 웹 사이트, 웹 애플리케이션, 웹 서비스를 무차별적으로 공격한다. 보안 취약점이 있다면 해커가 공격하기 전에 먼저 발견하고 조치를 취해야 한다. 이 책은 여러분에게 확실하고 실질적인 보안 테스팅 가이드 역할을 해줄 것이다.
[ 이 책의 내용 ]
이 책에서는 웹 소프트웨어 공격의 각 주제(클라이언트, 서버에서의 공격, 상태, 사용자 입력 공격 등) 별로 두 명의 유명한 보안 전문가가 조언을 해준다. 웹 애플리케이션 구조와 코딩에 존재할 수 있는 수십 개의 결정적이고 널리 악용되는 보안 결점들을 파헤쳐 나가면서 동시에 강력한 공격 툴들의 사용법을 마스터해나갈 것이다. 이 책의 저자들은 잠재적인 위협과 공격 벡터를 어디서 찾아야 하는지, 그것들을 어떻게 철저하게 테스트할 수 있는지, 그리고 여러분이 발견한 보안 취약점을 어떻게 방어해야 하는지 설명하고 있다.
주요 내용
• 클라이언트에서의 검증 회피 공격
• 상태 기반 공격: 숨은 필드, CGI 인자, 쿠키 조작, URL 건너뛰기, 세션 가로채기 공격
• 사용자 입력 데이터 공격: 크로스 사이트 스크립팅, SQL 삽입, 디렉토리 노출 공격
• 언어와 기술 기반 공격: 버퍼 오버플로우, 정규화, NULL 문자열 공격
• 서버 공격: 저장 프로시저를 이용한 SQL 삽입, 명령 삽입, 핑거프린팅 공격
• 암호, 프라이버시, 웹 서비스 공격
[ 이 책의 대상 ]
여러분이 개발한 웹 소프트웨어는 매우 중요하고 절대 위험에 노출되어서는 안될 것이다. 이 책을 읽는 독자가 개발자, 테스터, QA 전문가 또는 IT 관리자 등 어떤 일을 맡고 있든 간에 웹 애플리케이션을 체계적으로 보호하는 데에 많은 도움을 받을 수 있을 것이다.
[ 부록 CD 포함 ]
- 각종 무료 웹 보안 테스팅 툴
- 직접 기능을 확장하고 변경 가능한 툴의 전체 소스를 하나 제공함
- 웹 사이트의 보안 취약점을 직접 테스트 할 수 있도록 보안 취약점을 갖고 있는 웹 사이트의 전체 코드
[ 이 책의 내용 ]
이 책에서는 웹 소프트웨어 공격의 각 주제(클라이언트, 서버에서의 공격, 상태, 사용자 입력 공격 등) 별로 두 명의 유명한 보안 전문가가 조언을 해준다. 웹 애플리케이션 구조와 코딩에 존재할 수 있는 수십 개의 결정적이고 널리 악용되는 보안 결점들을 파헤쳐 나가면서 동시에 강력한 공격 툴들의 사용법을 마스터해나갈 것이다. 이 책의 저자들은 잠재적인 위협과 공격 벡터를 어디서 찾아야 하는지, 그것들을 어떻게 철저하게 테스트할 수 있는지, 그리고 여러분이 발견한 보안 취약점을 어떻게 방어해야 하는지 설명하고 있다.
주요 내용
• 클라이언트에서의 검증 회피 공격
• 상태 기반 공격: 숨은 필드, CGI 인자, 쿠키 조작, URL 건너뛰기, 세션 가로채기 공격
• 사용자 입력 데이터 공격: 크로스 사이트 스크립팅, SQL 삽입, 디렉토리 노출 공격
• 언어와 기술 기반 공격: 버퍼 오버플로우, 정규화, NULL 문자열 공격
• 서버 공격: 저장 프로시저를 이용한 SQL 삽입, 명령 삽입, 핑거프린팅 공격
• 암호, 프라이버시, 웹 서비스 공격
[ 이 책의 대상 ]
여러분이 개발한 웹 소프트웨어는 매우 중요하고 절대 위험에 노출되어서는 안될 것이다. 이 책을 읽는 독자가 개발자, 테스터, QA 전문가 또는 IT 관리자 등 어떤 일을 맡고 있든 간에 웹 애플리케이션을 체계적으로 보호하는 데에 많은 도움을 받을 수 있을 것이다.
[ 부록 CD 포함 ]
- 각종 무료 웹 보안 테스팅 툴
- 직접 기능을 확장하고 변경 가능한 툴의 전체 소스를 하나 제공함
- 웹 사이트의 보안 취약점을 직접 테스트 할 수 있도록 보안 취약점을 갖고 있는 웹 사이트의 전체 코드
목차
목차
- 1장 웹이 특별한 이유 1
- 1장에서 다루는 내용 1
- 개요 1
- 월드와이드웹 2
- 웹 유토피아의 가치 5
- 웹과 클라이언트/서버 5
- 웹 애플리케이션을 위한 결함 모델 8
- 웹 서버 9
- 웹 클라이언트 9
- 네트워크 10
- 결론 10
- 2장 목표물에 대한 정보 수집 11
- 2장에서 다루는 내용 11
- 개요 11
- 공격 1 사금 채취 12
- 공격 2 파일과 디렉토리 추정 20
- 공격 3 예제 애플리케이션의 보안 취약점 26
- 3장 클라이언트 공격 29
- 3장에서 다루는 내용 29
- 개요 29
- 공격 4 입력 선택 제한 회피 30
- 공격 5 클라이언트에서의 검증 회피 35
- 4장 상태 기반 공격 41
- 4장에서 다루는 내용 41
- 개요 41
- 공격 6 숨은 필드 42
- 공격 7 CGI 인자 46
- 공격 8 쿠키 조작 51
- 공격 9 URL 건너뛰기 55
- 공격 10 세션 가로채기 59
- 5장 사용자 입력 데이터 공격 65
- 5장에서 다루는 내용 65
- 개요 65
- 공격 11 크로스 사이트 스크립팅 66
- 공격 12 SQL 삽입 74
- 공격 13 디렉토리 노출 80
- 6장 언어 기반 공격 85
- 6장에서 다루는 내용 85
- 개요 85
- 공격 14 버퍼 오버플로우 86
- 공격 15 정규화 90
- 공격 16 널 문자열 공격 95
- 7장 서버 공격 99
- 7장에서 다루는 내용 99
- 개요 99
- 공격 17 SQL 삽입 II - 저장 프로시저 100
- 공격 18 명령 삽입 103
- 공격 19 핑거프린팅 공격 106
- 공격 20 서비스 거부 112
- 8장 인증 115
- 8장에서 다루는 내용 115
- 개요 115
- 공격 21 암호 해독 116
- 공격 22 인증 파괴 121
- 공격 23 크로스 사이트 트레이싱 125
- 공격 24 암호 기법 약화시키기 129
- 9장 프라이버시 135
- 9장에서 다루는 내용 135
- 개요 135
- 사용자 에이전트 136
- 리퍼러 139
- 쿠키 140
- 웹 버그 142
- 클립보드 접근 143
- 페이지 캐싱 144
- 액티브X 컨트롤 146
- 브라우저 헬퍼 오브젝트 147
- 10장 웹 서비스 149
- 10장에서 다루는 내용 149
- 개요 149
- 웹 서비스란? 149
- XML 150
- SOAP 151
- WSDL 152
- UDDI 153
- 위협 154
- WSDL 스캔 공격 154
- 인자 조작 155
- XPATH 삽입 공격 155
- 재귀 페이로드 공격 157
- 대형 페이로드 공격 158
- 외부 객체 공격 158
- 부록 A 소프트웨어 50년: 소프트웨어 품질을 위한 핵심 요소 159
- 1950~1959: 기원 160
- 1960~1969: 대이동 161
- 1970~1979: 혼돈의 시대 162
- 1980~1989: 회복기 163
- CASE 툴 164
- 정형 기법 164
- 1990~1999: 프로세스 165
- 2000~2009: 엔지니어링 167
- 부록 B Flowershop 버그 173
- 부록 C 툴 179
- TextPad 179
- Nikto 180
- Wikto 184
- Stunnel 189
- BlackWidow 191
- Wget 193
- cURL 195
- Paros 198
- SPIKE Proxy 200
- SSLDigger 204
관련 블로그 글
웹 애플리케이션 해킹책 역자분들을 만났습니다.
여러분은 "에이콘"하면 언뜻 무슨 책이 떠오르세요? 흠, 어떤 책들을 꼽을지는 대강 짐작이 갑니다만, 그것도 저마다 관심있는 분야, 업무영역에 따라 다양하겠지요. 그렇다면 에이콘의 대표 시리즈는 무슨 시리즈가 떠오르세요? 저희는 특정 기획서보다는 분야에 따라서 시리즈를 나눕니다. 대표적으로 에이콘을 독자분께 각인시켜드리기 시작한 임베디드 시스템 프로그래밍 시리즈, 웹표준을 필두로 시작한 웹 프로페셔널 시리즈, 심도 있는 이클립스 책들을 소개하고 있는 이클립스 프로페셔널 시리즈 등 여러 가지를 꼽을 수 있겠지요.
이 책은 와이어샤크를 활용한 실전 패킷 분석을 번역한 김경곤님과 장은경님이 다른 두 분 역자와 함께 번역을 하고 있습니다. 강유씨를 필두로, 루트킷 등 이미 3권의 해킹 보안책을 번역한 윤근용님, 윈도우 비스타 보안 프로그래밍을 김홍석님과 함께 에이콘의 해킹보안책을 책임지고 있는 역자분들이시죠. 나오지도 않은, 아직 출간일도 잡히지 않은 책을 왜 이렇게 광고를 해댈까요?
이 책 The Web Application Hacker's Handbook을 번역하고 있는 역자 네 분 중 두 분이 제가 휴가차 들른 따뜻한 남쪽나라에 마침 살고 계셔서 휴가 마지막날 잠시 짬을 내어 어제 저녁식사를 함께 했었거든요.
조도근님은 서울대에서 경영학을 전공한 후에 지금은 뜻한 바 꿈을 이루기 위해 이곳 블로그에서는 밝힐 수 없는 모두가 선망하는 모 기업에서 회계관련 일을 함께 하고 계십니다. 해킹에 관한 블로그를 탐독할 정도로 해킹 보안에 관심이 높아 김경곤님과 함께 A3시큐리티 컨설팅에서 함께 일한 인연으로 번역을 함께 참여하게 됐다고 합니다.장은경님은 대화를 해보면 영문학을 전공하고 있고, 고등학교때부터 해킹대회에 참여할 정도로 야무진 분입니다. 20대 초반의 앳된 아가씨라고는 생각할 수 없을 만큼 사려가 깊고 정말 똑똑한 처자라서 얘기를 함께 나누면 제 정신연령이 낮은 건지 이 처자가 눈높이가 높은 건지 말이 참 잘 통합니다(제 생각인지도 모르겠지만요 --a) 여기서 짬을 내어 만나지 않으면 쉽게 만나뵐 수 없는 역자분들인지라 잠시간의 만남이지만 에이콘을 매개로 즐거운 이야기를 함께 나눈 소중한 시간이었습니다.
2002년 해킹 보안 시리즈의 첫삽을 뜬 리눅스 해킹 퇴치 비법부터 작년 12월에 출간된 와이어샤크를 활용한 실전 패킷 분석까지. 에이콘의 해킹 보안 시리즈는 그간 음지에서 양지를 지향(!)하는 튼실한 해킹보안 책들을 꾸준히 펴내왔습니다. 거기에는 14권(그중 2권은 해킹 보안 책이 아니네요)의 책을 번역하고 1권을 집필한 강유라는 걸출한 역자가 든든히 뒤를 받쳐주기도 했습니다. 지금은 카네기멜론 대학에서 유학중인 강유님은 해킹보안에 관심이 없는 독자라도 그 이름을 익히 들어 알고 있을 만큼 에이콘의 기둥같은 역자분이기도 하죠.
기술서를 번역하는 데 가장 중요한 기술 기반에 대한 지식에 대해 말씀드렸듯이 각 시리즈나 분야별로 대표적인 역자나 저자분들이 있게 마련입니다. 굳이 이름을 들어 말씀드리지 않더라도, 혹 저희 출판사가 아니더라도 각 분야에서 두각을 나타내는 분들이 계시고 그 명성은 곧 책의 품질과 직결되기도 합니다. 그래서 각 분야에 훌륭한 필자분들을 발굴해내는 것도 출판사로서는 더없는 재산이기도 하죠.
한국에서는 만나뵐 수 없는 분들인지라 만날 것을 염두에 두고 갔었던지라 저희 책 "프리젠테이션 젠"과 "초난감 기업의 조건"을 전해드렸더니 많이 기뻐하셨습니다. (맞죠? 기쁘셨던 것...^^;) 세계로 뻗어가는 에이콘 역자진. 세계 곳곳에 포진해있는 우리 역자분들(아직 저자는 없으신 듯) 모두 건강하시구요. 자주 뵙지는 못하지만 늘 마음만은 함께 한다는 것, 기억해주세요. 참, 저를 만나고 싶으시면 특별 면담 신청해주세요. 그러면 저희 사장님이 특별 출장 보내시지 않을까요? 참, 제주도부터 가야 할 텐뎅... --;
참, 내일입니다. 브이코아가 주최하는 블로그 히어로즈 역자 최윤석님과의 만남. 드디어 내일 아침 9시30분 강남역에 있는 브이코아에서 열립니다. 오시는 길은 여기를 참조하세요. 많이 많이 오세요! 깜짝 선물이 있을지도 몰라요~.^^
크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
[마감중] 『웹 애플리케이션 해킹 대작전』
(마이크 앤드류스 외저, 윤근용 역, 강유 감수, 25,000원, 1월 30일 출간)
역자와 감수자와의 핫라인을 열어두고 『웹 애플리케이션 해킹 대작전: 웹 개발자가 꼭 알아야 할 웹 취약점과 방어법』마감 작업에 한창입니다.
한국어판의 출간을 앞두고 이 책의 원서가 2007년 Jolt 상 Book (Technical 부문) 후보에도 오르는 좋은 일이 생겼네요. 책의 시리즈 에디터이자 감수를 봐준 강유님이 블로그에 쓴 대로 보안 관리자는 물론, 웹 개발자, 기획자, 웹 관리자 모두 필독해야 할 책입니다. 『구글해킹』을 읽은 독자라면 더욱 흥미진진하게 읽을만한 책입니다.
웹 사이트에 비밀번호를 변경할 때 두 번씩 입력하는 경우가 있죠. 그럴 때 저만 해도 몸에 익은 구차니즘 덕분에 Ctrl 키와 C키, V키를 재빠르게 손놀림하여 복사 - 붙여넣기로 하는 적이 한두번이 아니었습니다. 이 책의 9장. 프라이버시를 읽고나니 다시는 그런 짓을 하면 안되겠구나 하는 생각이 드는군요. (저만 몰랐던 건가요?;;;)
글을 매끈하게 번역해주신 역자 윤근용님 고생 많으셨구요. 책을 꼼꼼히 감수해주고 시시때때로 날리는 메시지에도 답 잘 해주고 이 한밤중에도 오류를 잘 찾아준 에이콘의 에이스이자 특급 구원투수 강유님 고마워요.
(왼쪽: 강유님 / 오른쪽: 윤근용님 사진)
<<마감중 후기>>
마감과 출간과 마감과 출간... 블로그 글 제목만 보면 그저 나른한 일과의 연속일 듯도 하지만!!! 팝콘과 크림치즈 베이글과 아이스크림이 책상위에 한가득 쌓아놓고 에이콘의 일상은 나름대로 참~ 다이내믹합니다. ^^ (배고픈 독자분이 계실까봐 사진은 생략합니다. :) 좀전에는 사장님이 산타아저씨처럼 직원들에게 천원짜리 신권을 뿌리고~ 가시는 화끈 이벤트도 열어주시는군요. ㅎㅎ
제 기억이 맞다면 오늘는 오래 전부터 메모해놓은 에릭 클랩튼의 내한공연일인데, 스피커에 Layla를 빵빵하게 틀어놓는 걸로 만족해야 할 것 같군요. 아함~ -0-
(글을 쓰다가 다른 작업하고 돌아오니 벌써 어제가 되어버렸네요.)
크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
요즘 재미있게 일하고 있는 책
『How to Break Web Software』의 한국어판인 『웹 애플리케이션 해킹 대작전』(가제)의 원고를 열심히 읽고 있습니다. 과감히 "웹 소프트웨어를 깨부수는 방법"이라는 원제가 붙은 책입니다.
저희 편집자 수준에도 쉽게 읽히고 재미있는 걸 보면 독자여러분께 적지않이 사랑 받으리라는 생각이 듭니다. N모사에서 보안 업무를 맡고있는 윤근용님이 번역하고 강유님이 감수한 이 책, 열심히 읽고 1월중에 출간해야 할텐데;;;. 이 책도 기대해주세요~!
이 책에서는 웹 애플리케이션을 설계하고 코딩하는 데에 있어서 주의해야 할 많은 정보가 들어 있습니다. 악의적인 입력, 검증을 우회하는 방법과 허가 검사에 대한 전형적인 예뿐만 아니라, 특정한 설정/언어/구조로부터 어떤 문제점들이 발생하는지 살펴볼 것입니다.사실 해킹과 보안 서적을 어느 한쪽 분야에 속한다고 딱히 양분하기란 쉽지 않습니다. 하지만 해킹과 보안은 동전의 양면과도 같다는 걸 너무도 잘 아는 명민한 독자들은 자신들이 취하고 싶은 내용을 정확히 낚아 챕니다. 우리 책 『구글 해킹』이나 『네트워크를 훔쳐라』에서도 마찬가지이지만 해킹을 주제로 보안에 대한 내용을 에둘러 설명하는 책들은 무슨 이유에선지(!) 역시나 인기몰이를 하더군요.
저희 편집자 수준에도 쉽게 읽히고 재미있는 걸 보면 독자여러분께 적지않이 사랑 받으리라는 생각이 듭니다. N모사에서 보안 업무를 맡고있는 윤근용님이 번역하고 강유님이 감수한 이 책, 열심히 읽고 1월중에 출간해야 할텐데;;;. 이 책도 기대해주세요~!
크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
도서 오류 신고
정오표
[ p44 코드 부분 ]
6행
if (string.Compare(tag.tagName,?INPUT?,true) == 0)
→ if (string.Compare(tag.tagName, "INPUT", true) == 0)
11행
if (inputTag.type==?hidden?)
→ if (inputTag.type=="hidden")
13~14행
Console.Write(?hidden form field ??+inputTag.name+???+
  ?found. Value is ??+ inputTag.value+?? ?
→ Console.Write("hidden form field : "+inputTag.name+", "+
  "found. Value is : "+ inputTag.value);
6행
if (string.Compare(tag.tagName,?INPUT?,true) == 0)
→ if (string.Compare(tag.tagName, "INPUT", true) == 0)
11행
if (inputTag.type==?hidden?)
→ if (inputTag.type=="hidden")
13~14행
Console.Write(?hidden form field ??+inputTag.name+???+
  ?found. Value is ??+ inputTag.value+?? ?
→ Console.Write("hidden form field : "+inputTag.name+", "+
  "found. Value is : "+ inputTag.value);