Top

해킹 - 공격의 예술

  • 원서명Hacking: The Art of Exploitation (ISBN 9781593270070)
  • 지은이Jon Erickson
  • 옮긴이강유
  • ISBN : 8989975476
  • 19,000원
  • 2004년 05월 21일 펴냄
  • 페이퍼백 | 254쪽 | 190*255mm
  • 시리즈 : 해킹과 보안

판매처

개정판

책 소개

진정한 해킹을 위한 핵심 기술

해킹은 창조적 문제 해결을 하는 예술이다. 해킹은 어려운 문제에 대한 새로운 해결책을 찾거나 조잡한 프로그램의 버그를 찾는데 쓰인다.
많은 사람들은 자신이 해커라고 생각하지만 성공적인 해커가 되기 위해 필요한 핵심 기술을 갖고 있는 사람은 거의 없다. 이 책은 진정한 해커가 알아야 할 모든 기술을 설명한다.

다른 여러 해킹 책은 다른 사람이 만든 공격 코드의 세부 내용을 설명하지 않고 단지 사용법만을 알려주지만, 이 책은 해킹의 이론 뿐만 아니라 그 뒤에 존재하는 세부적인 기술을 설명한다. 해킹의 핵심기술과 창조적인 트릭을 배우면서 여러분은 해커 정신을 이해하게 될 것이다. 일단 여러분이 해커처럼 생각할 수 있다면, 직접 해킹 코드를 개발하거나 새로운 기법을 고안할 수 있다. 그리고 여러분의 시스템을 공격하려는 해커를 막을 수도 있다.

이 책은 다양한 해킹 기법을 설명하는데 그 중 대부분은 매우 기술적인 내용을 담고 있다. 이들 해킹 기법에서 쓰이는 핵심 프로그래밍 개념을 소개한다. 일반적인 프로그래밍 지식이 있다면 이 책을 읽는데 확실히 도움이 될 것이다. 여기서 소개한 예제 코드는 Linux를 운영하는 x86 컴퓨터용이다. 그렇지만 이와 유사한 다른 컴퓨터를 가지고 예제를 테스트 하는 것도 좋은 방법이다. 그렇게 하면 당신은 시스템별로 결과의 차이를 알 수 있고 새로운 것을 시험할 수 있기 때문이다. 사실 바로 그것이 해킹이다.

이 책에서는 Gentoo Linux(http://www.gentoo.org)를 이용하여 프로그램 테스트를 했다.


<이 책에서 배우는 것>

* 버퍼 오버플로우와 포맷 스트링을 이용한 프로그램 공격법
* 출력 가능한 ASCII 다형성 셸코드 작성법
* `libc로 리턴하기 기법을 이용하여 스택 실행 방지 프로그램 우회
* 네트워크 트래픽을 리다이렉트하고, 열린 포트 정보를 숨기고, TCP 연결을 하이재킹하기
* 암호화된 802.11b 무선 트래픽을 FMS 공격으로 크랙하기



<부록 CD 내용>

- 소스 코드
2장
overflow.c
vuln.c
exploit.c
vuln2.c
env_exploit.c
getenvaddr.c
heap.c
bss_game.c
fmt_example.c
fmt_vuln.c
dtors_sample.c
hello.asm
shell.asm
shellcode.asm
stackshell.asm
tinyshell.asm
print.asm
printable_exploit.c
print2.asm
only_print.c
cleared_stack.c

3장
arpredirect.pl
hijack_rst.sh
shroud.sh
shroud2.sh

4장
hash.pl
crack.pl
ppm_gen.c
ppm_crack.c
fms.c

- 프로그램

2장
pcalc
NASM
hexedit
Dissembler

3장
dsniff
Nemesis

4장
ffp
John the Ripper

저자/역자 소개

<저자 소개>

Jon Erickson
은 컴퓨터 과학을 전공했으며 전 세계적인 컴퓨터 보안 컨퍼런스에서 자주 발표한다. 그는 현재 Northern California에서 암호화 보안 전문가로 일한다.


<저자 서문>

이 책은 다양한 해킹 기법을 설명하는데 그 중 대부분은 매우 기술적인 내용을 담고 있다. 이들 해킹 기법에서 쓰이는 핵심 프로그래밍 개념을 이 책에서 소개하고는 있지만 일반적인 프로그래밍 지식이 있으면 이 책을 읽는데 확실히 도움이 될 것이다. 이 책에서 소개한 예제 코드는 Linux를 운영하는 x86 컴퓨터 용이다. 그렇지만 이와 유사한 다른 컴퓨터를 가지고 예제를 테스트 하는 것도 좋은 방법이다. 그렇게 하면 당신은 시스템별로 결과의 차이를 알 수 있고 새로운 것을 시험할 수 있기 때문이다. 사실 바로 그것이 해킹이다.
이 책에서는 Gentoo Linux(http://www.gentoo.org)를 이용하여 프로그램 테스트를 했다.


<역자 소개>

현재 KT기술연구소 근무
강유는 서울대 컴퓨터공학과 출신으로 1999년 서울대 보안 동아리 가디언을 만들었고 초대 회장을 지냈다.
다수의 보안 제품을 개발했고 여러 기관/단체에서 보안 강의를 했다.
전문 분야는 오픈 소스 침입 탐지 시스템(Snort 2.0) 구축/최적화/관리, 위험 관리 시스템 설계/운영, 네트워크/애플리케이션 모의 해킹(Penetration Test), 컴퓨터 포렌식 조사/분석, 네트워크 보안 툴 개발 이다.
<리눅스 해킹 퇴치 비법>, <네트웍 해킹 퇴치 비법>, <네트워크를 훔쳐라>의 역자이며, <강유의 해킹&보안 노하우>의 저자다.
현재 보안 관련 시리즈 에디터로 활동 중이다.
홈페이지 http://www.securityhowto.com/ 에서 보안 관련 자료와 포럼을 운영하고 있다.


<역자 서문>

내가 보안에 관심을 갖기 시작한 것은 어느날 잡지에 소개된 보안 관련 기사를 보고 나서부터 였다. 그 기사에서, 기존의 시스템의 문제점을 발견하고 그것을 창조적인 방법으로 해결하기 위해 접근하는 방법이 굉장히 인상깊었다.
내가 보안 동아리 활동을 시작하던 99년도에 회원들끼리 모여서 버퍼 오버플로우에 관해 토론하고, TCP 하이재킹, 암호학을 얘기하던 것이 생각난다. 정말이지 그 때 기술적으로 기존 방식의 문제점을 어떻게 개선할 수 있는가 연구하고 토론했던 순수한 마음이 내가 전공을 보안으로 정하게 한 가장 큰 이유였다. 버퍼 오버플로우를 테스트하다가 결국에 성공했을 때, 네트워크 패킷을 조작하여 다른 시스템을 속이는데 성공했을 때 느끼는 성취감은 정말 느껴본 사람만이 안다. 해킹은 예술과 유사한 점이 매우 많다. 창조성, 새로운 마음 가짐, 도전 정신, 용기는 예술뿐만 아니라 해킹에도 그대로 적용된다.
요즘은 보안 기술도 많이 알려져 있고 보안 제품도 너무 많이 나와서 보안을 처음 접하는 사람들이 핵심 기술부터 차근차근 공부할 기회를 얻기가 쉽지 않다. 그런 시점에서 이 책은 진정한 보안 전문가가 되기 위한 길이 어디에 있는지를 우리에게 잘 알려준다. 보안 전문가의 핵심은 창조력이며 그 창조력을 어떻게 발휘해야 하는지를. 이 책을 읽고 기술적인 내용도 이해해야 하겠지만, 어떻게 그런 생각을 할 수 있었겠는가를 곰곰히 생각하고 자신도 그런 마음가짐을 가지는 것이 더 중요하다.
얼마전에 나를 많이 아껴주셨던 편집장님이 하늘나라로 가셨다. 내게 국어를 가르쳐 주시고 인생에 대해 많은 것을 느끼게 해 주신 분. 이 책을 하늘나라에서 환히 웃고 계실 편집장님께 바친다.

목차

목차
  • 0x100 시 작
  • 0x200 프로그래밍
    • 0x210 프로그래밍이란 무엇인가?
    • 0x220 프로그램 공격
    • 0x230 일반 공격 기법
    • 0x240 다중-사용자 파일 권한
    • 0x250 메모리
      • 0x251 메모리 선언
      • 0x252 널(Null) 바이트 종료
      • 0x253 프로그램 메모리 세그먼트
    • 0x260 버퍼 오버플로우
    • 0x270 스택 오버플로우
      • 0x271 공격 코드 없이 공격
      • 0x272 환경 변수 이용
    • 0x280 힙 / bss 오버플로우
      • 0x281 기본 힙 오버플로우
      • 0x282 함수 포인터 덮어쓰기
    • 0x290 포맷 스트링
      • 0x291 포맷 스트링과 printf()
      • 0x292 포맷 스트링 취약점
      • 0x293 임의의 메모리 주소에서 읽기
      • 0x294 임의의 메모리 주소에 쓰기
      • 0x295 직접 인자에 접근
      • 0x296 소멸자(dtor)를 이용한 우회법
      • 0x297 전역 오프셋 테이블(Global Offset Table) 덮어쓰기
    • 0x2a0 셸코드 작성법
      • 0x2a1 자주 쓰이는 어셈블리 명령
      • 0x2a2 리눅스 시스템 콜
      • 0x2a3 Hello, World!
      • 0x2a4 셸 실행 코드
      • 0x2a5 단일 세그먼트에서 처리
      • 0x2a6 널(Null) 바이트 제거
      • 0x2a7 스택을 이용하여 더 작은 셸코드 만들기
      • 0x2a8 출력가능한 ASCII 명령
      • 0x2a9 다형성 셸코드
      • 0x2aa ASCII 출력 가능한 다형성 셸코드
      • 0x2ab Dissembler
    • 0x2b0 나 libc로 돌아갈래
      • 0x2b1 system()으로 리턴
      • 0x2b2 libc 함수 연결
      • 0x2b3 래퍼(wrapper) 프로그램 이용
      • 0x2b4 libc를 통해 널 바이트 쓰기
      • 0x2b5 하나의 호출로 여러 워드에 쓰기
  • 0x300네트워킹
    • 0x310 네트워킹이란 무엇인가?
      • 0x311 OSI 모델
    • 0x320 흥미로운 계층들
      • 0x321 네트워크 계층
      • 0x322 전송(Transport) 계층
    • 0x323 데이터-링크 계층
    • 0x330 네트워크 스니핑
      • 0x331 능동 스니핑
    • 0x340 TCP/IP 하이재킹
      • 0x341 RST 하이재킹
    • 0x350 서비스 거부 / Denial of Service
      • 0x351 죽음의 핑 / Ping of Death
      • 0x352 티어드랍 / Teardrop
      • 0x353 핑 홍수 / Ping Flooding
      • 0x354 증폭 공격 / Amplification Attacks
      • 0x355 분산 DoS 홍수
      • 0x356 SYN 홍수 / SYN Flooding
    • 0x360 포트 스캐닝
      • 0x361 스텔스 SYN 스캔
      • 0x362 FIN, X-mas, Null 스캔
      • 0x363 가짜 스캔 패킷 이용
      • 0x364 유휴(Idle) 스캐닝
      • 0x365 사전(事前) 방어 (Shroud)
  • 0x400 암호학
    • 0x410 정보 이론 / Information Theory
      • 0x411 절대적 보안
      • 0x412 원 타임 패드 / One-Time Pads
      • 0x413 양자 키(Quantum Key) 분배
      • 0x414 계산 불능 보안
    • 0x420 알고리즘 실행 시간
      • 0x421 점근 표기법 / Asymptotic Notation
    • 0x430 대칭 암호 방식
      • 0x431 Lov Grover의 양자 검색 알고리즘
    • 0x440 비대칭 암호화
      • 0x441 RSA
      • 0x442 Peter Shor의 양자 인수분해 알고리즘
    • 0x450 혼성 암호 / Hybrid Ciphers
      • 0x451 Man-in-the-Middle 공격
      • 0x452 SSH 프로토콜 호스트 핑거프린트 버전 이용
      • 0x453 퍼지 핑거프린트
    • 0x460 비밀번호 크래킹
      • 0x461 사전 공격 / Dictionary Attacks
      • 0x462 전수 조사 공격 / Brute-Force Attacks
      • 0x463 해시 룩업(lookup) 테이블
      • 0x464 비밀번호 확률 행렬
    • 0x470 무선 802.11b 암호화
      • 0x471 Wired Equivalent Privacy / WEP
      • 0x472 RC4 스트림 암호 방식
    • 0x480 WEP 공격
      • 0x481 오프라인 전수 조사 공격
      • 0x482 키스트림 재사용
      • 0x483 IV-기반 복호화 사전 테이블
      • 0x484 IP 리다이렉션
      • 0x485 Fluhrer, Mantin, Shamir (FMS) 공격

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안