본문 바로가기

도서 소개

API 해킹의 모든 것

세상에서 가장 실용적인 API 해킹 가이드북

 

API 사용량이 폭발적으로 증가하며 공격자들의 새로운 표적이 되고 있다. 이 책은 REST/그래프QL 웹 API와 일반적인 API 취약점 등 웹 API 보안 기초부터 시작해, 가상 머신과 칼리 리눅스로 공격 및 대상 시스템을 구축하고, 버프 스위트와 포스트맨 등 여러 해킹 도구를 활용해 알려진 모든 유형의 API 공격을 실습해본다. API 보안의 중요성이 높아지는 가운데, API 해킹의 이론과 실제를 가장 포괄적으로 정리한 책.

 

 

도서 구매 사이트(가나다순)

  [교보문고]  [도서11번가]  [알라딘]  [예스이십사]  [인터파크]  [쿠팡

 

전자책 구매 사이트(가나다순)

  [교보문고]  [구글북스]  [리디북스]  [알라딘]  [예스이십사]

 

출판사 제이펍
저작권사 No Starch Press
원서명 Hacking APIs: Breaking Web Application Programming Interfaces (9781718502444)
도서명 API 해킹의 모든 것
부제 REST와 그래프QL 웹 API 기초부터 보안 취약점, 해킹 툴, 퍼징 등 공격 실습까지
지은이 코리 볼
옮긴이 한선용
감수자 (없음)
시리즈 (없음)
출판일 2023. 08. 11
페이지 400쪽
판 형 46배판변형(188*245*19.4)
제 본 무선(soft cover)
정 가 33,000원
ISBN 979-11-92987-32-3 (93000)
키워드 칼리, 취약점, 포스트맨, JWT, NoSQL, 인젝션, 바운티, 인증, 인가, 권한, BOLA, BFLA
분 야 웹 / 해킹 / 보안

 


관련 사이트
아마존 도서 페이지
저작권사 도서 페이지

 

관련 시리즈

■ (없음)

 

관련 포스트

2023.07.25 - [출간 전 책 소식] - API 많이들 쓰시죠? 고거 한번 해킹해보세요. 아주 재밌습니다

 

관련 도서

초보 해커를 위한 칼리 리눅스 입문

리얼월드 암호학

구글 엔지니어는 아무도 믿지 않는다 제로 트러스트

삐뽀삐뽀 보안 119

 

관련 파일 다운로드

■ (없음)

 

강의 보조 자료(교재로 채택하신 분들은 메일(textbook@jpub.kr)을 보내주시면 다음 자료를 보내드립니다.)
■ 본문의 그림과 표

 

미리보기(지은이·감수자·옮긴이 소개, 옮긴이 머리말, 베타리더 후기, 추천사, 추천 서문(댄 바라오나), 감사의 글, 이 책에 대하여, 0장 일부)

 

정오표 페이지
■ (등록되는 대로 링크를 걸겠습니다.)

 

도서 구매 사이트(가나다순)

  [교보문고]  [도서11번가]  [알라딘]  [예스이십사]  [인터파크]  [쿠팡

 

전자책 구매 사이트(가나다순)

  [교보문고]  [구글북스]  [리디북스]  [알라딘]  [예스이십사]

 

도서 소개

칼리 리눅스 실습과 함께 배우는 차세대 웹 보안 취약점 정복

 

API 대상 공격은 해마다 크게 증가하고 있고, 2022년에는 모든 공격의 과반을 넘어섰다는 보고서도 나왔다. API는 전체 인터넷 트래픽의 80% 이상을 차지할 정도로 사용량이 폭발적으로 증가했지만, 상대적으로 보안이 미비하여 확장된 공격 표면이 공격자들의 손쉬운 표적이 되고 있다.

 

API 보안의 중요성이 높아지는 가운데, API 해킹의 이론과 실제를 포괄적으로 정리한 것이 이 책이다. 1부에서는 웹 애플리케이션 작동 원리, REST/그래프QL 웹 API의 구조, 그리고 정보 누출, BOLA, BFLA, 대량 할당, 주입(인젝션) 등 널리 알려진 API 취약점들을 살펴보며 보안 기초를 쌓는다. 2부에서는 실습을 위해 가상 머신에 칼리 리눅스를 설치하고 공격 및 대상 시스템을 구축한다. 버프 스위트와 포스트맨 등 주요 해킹 툴을 소개하고, 대상 시스템에는 crAPI나 DVGA 등 취약한 애플리케이션을 설치해 실습을 준비한다.

 

3부는 앞에서 소개한 툴들을 사용해 발견, 사전 조사, 엔드포인트 분석, 인증/인가 공격, 퍼징(fuzzing) 등 실제로 API 공격을 실습한다. 거의 모든 공격 단계에서 쓰이는 버프 스위트와 포스트맨 외에 어매스, Nmap, 닉토, ZAP, 고버스터, 카이트러너, W퍼즈, 아르준 등 각종 툴을 어떤 공격 단계에서 어떻게 사용하는지 익힐 수 있다. 무차별 대입, JWT 악용, XSS, SQL 주입 등 고전적인 공격에 익숙하다면 이들이 API 세계에서 어떻게 응용되는지도 흥미로울 것이다. 4부는 API 보안 컨트롤 및 속도 제한 우회, 그래프QL 공격, 그리고 기업들의 실제 침해 혹은 버그 현상금(바운티) 사례를 살펴본다.

 

매뉴얼 성격의 딱딱함이 아니라 어떻게든 조그마한 빈틈을 찾아내고 파고들려는 공격자의 치밀함이 돋보이는 책이다. 알려진 모든 유형의 API 공격을 다룬다는 점에서 실무자에게는 더할 나위 없는 레퍼런스가 될 테고, 보안 테스트와 웹 애플리케이션의 기초도 다루기 때문에 초보자도 순서대로 정독하기만 한다면 API 해킹에 뛰어들 수 있을 것이다.

 

주요 내용

  • 웹 애플리케이션의 작동 방식을 이해하고 웹 API를 해부해서 들여다보기
  • 해커의 관점에서 최상의 API 취약점 마스터하기
  • 가장 효과적인 해킹 도구들 익히기
  • 수동적, 능동적 API 사전 조사로 API를 발견하고, 노출된 비밀을 찾고, API 기능을 분석하기
  • API와 상호작용하며 퍼징(fuzzing)의 위력을 테스트하기
  • 다양한 공격을 퍼부어 찾아낸 API 취약점을 악용하기

지은이 소개

코리 볼(Corey Ball)

모스 애덤스(Moss Adams)의 사이버 보안 관리자로 침투 테스트 서비스를 책임지고 있다. IT 분야에서 10년 이상 일하며 항공 우주, 농업, 에너지, 핀테크, 정부 서비스, 의료 등 다양한 영역에서 사이버 보안 경험을 쌓았다. 캘리포니아 주립대학교 새크라멘토에서 영문학과 철학 학사 학위를 받았고 OSCP, CCISO, CEH, CISA, CISM, CRISC, CGEIT 자격증을 갖고 있다.

 

옮긴이 소개

한선용

웹 표준과 자바스크립트에 관심이 많은 번역가. 2008년부터 웹 관련 일을 했으며, ‘WCAG 2.0을 위한 일반적 테크닉’ 등의 문서를 번역해 웹에 올렸다. 번역한 책으로 《자바스크립트 완벽 가이드, 7판》(2022), 《한 권으로 끝내는 Node & Express, 2판》(2021), 《CSS 완벽 가이드》(2021), 《CSS 핵심 실용 가이드》(2021), 《나의 첫 파이썬, 2판》(2020), 《파이썬으로 웹 크롤러 만들기, 2판》(2019), 《자바스크립트를 말하다》(2014) 등이 있다.

 

차례

지은이·감수자·옮긴이 소개 xiii

옮긴이 머리말 xiv

베타리더 후기 xv

추천사 xvii

추천 서문(댄 바라오나) xix

감사의 글 xxii

이 책에 대하여 xxiv

 

PART I 웹 API 보안이 작동하는 방식

 

CHAPTER 0 보안 테스트 준비 3

0.1 권한 받기 4

0.2 API 테스트의 위협 모델링 4

0.3 테스트해야 할 API 기능 7

__0.3.1 API 인증 테스트 7

__0.3.2 웹 애플리케이션 방화벽 7

__0.3.3 모바일 애플리케이션 테스트 8

__0.3.4 API 문서 감사 8

__0.3.5 속도 제한 테스트 9

더보기

0.4 제한과 제외 10

__0.4.1 클라우드 API 보안 테스트 11

__0.4.2 DoS 테스트 12

0.5 보고와 개선 테스트 12

0.6 버그 현상금 범위에 관한 노트 13

요약 14

 

CHAPTER 1 웹 애플리케이션이 작동하는 방법 17

1.1 웹 애플리케이션 기초 17

__1.1.1 URL 18

__1.1.2 HTTP 요청 19

__1.1.3 HTTP 응답 20

__1.1.4 HTTP 상태 코드 22

__1.1.5 HTTP 메서드 23

__1.1.6 HTTP의 상태 24

1.2 웹 서버 데이터베이스 26

__1.2.1 SQL 26

__1.2.2 NoSQL 28

1.3 API의 역할 29

요약 29

 

CHAPTER 2 웹 API의 구조 31

2.1 웹 API가 작동하는 방식 31

2.2 표준 웹 API 타입 34

__2.2.1 RESTful API 35

__2.2.2 그래프QL 39

2.3 REST API 명세 43

2.4 API 데이터 교환 형식 44

__2.4.1 JSON 44

__2.4.2 XML 47

__2.4.3 YAML 48

2.5 API 인증 49

__2.5.1 기본 인증 49

__2.5.2 API 키 50

__2.5.3 JSON 웹 토큰 52

__2.5.4 HMAC 53

__2.5.5 OAuth 2.0 54

__2.5.6 인증 없음 56

2.6 API 실전: 트위터 API 살펴보기 56

요약 59

 

CHAPTER 3 일반적인 API 취약점 61

3.1 정보 누출 62

3.2 BOLA 63

3.3 사용자 인증 결함 65

3.4 데이터 과다 노출 66

3.5 리소스 부족과 속도 제한 67

3.6 BFLA 68

3.7 대량 할당 70

3.8 보안 설정 오류 71

3.9 주입 74

3.10 부적절한 자원 관리 76

3.11 비즈니스 로직 취약점 77

요약 78

 

PART II API 테스트 실험실 구축

 

CHAPTER 4 API 해킹 시스템 81

4.1 칼리 리눅스 81

4.2 개발자 도구로 웹 애플리케이션 분석 82

4.3 버프 스위트로 요청 캡처와 수정 85

__4.3.1 폭시프록시 설정 86

__4.3.2 버프 스위트 인증서 추가 87

__4.3.3 버프 스위트 모듈 88

__4.3.4 트래픽 가로채기 90

__4.3.5 침입자에서 요청 변경 92

4.4 포스트맨에서 API 요청 생성 96

__4.4.1 요청 생성기 97

__4.4.2 환경 100

__4.4.3 컬렉션 102

__4.4.4 컬렉션 실행기 106

__4.4.5 코드 조각 106

__4.4.6 테스트 패널 107

4.5 버프 스위트와 포스트맨의 조합 108

4.6 보충 도구 110

__4.6.1 OWASP 어매스로 사전 조사 110

__4.6.2 카이트러너로 API 엔드포인트 발견 111

__4.6.3 닉토로 취약점 검색 113

__4.6.4 OWASP ZAP으로 취약점 검색 114

__4.6.5 W퍼즈와 퍼징 115

__4.6.6 아르준으로 HTTP 매개변수 발견 117

요약 118

실험실 #1: REST API에서 사용자 계정 열거 118

 

CHAPTER 5 취약한 API 대상 설정 123

5.1 리눅스 호스트 생성 124

5.2 도커와 도커 컴포즈 설치 124

5.3 취약한 애플리케이션 설치 125

__5.3.1 crAPI 125

__5.3.2 픽시 126

__5.3.3 OWASP 주스 숍 127

__5.3.4 DVGA 128

5.4 기타 취약한 애플리케이션 추가 129

5.5 트라이핵미와 핵더박스에서의 API 해킹 130

요약 131

실험실 #2: 취약한 API 발견 132

 

PART III API 공격

 

CHAPTER 6 발견 139

6.1 수동적 사전 조사 140

__6.1.1 수동적 사전 조사 절차 140

__6.1.2 구글 해킹 141

__6.1.3 프로그래머블웹의 API 검색 디렉터리 143

__6.1.4 쇼단 146

__6.1.5 OWASP 어매스 147

__6.1.6 깃허브에 노출된 정보 150

6.2 능동적 사전 조사 153

__6.2.1 능동적 사전 조사 절차 154

__6.2.2 Nmap을 통한 기본 스캔 156

__6.2.3 Robots.txt에서 숨겨진 경로 발견 157

__6.2.4 크롬 개발자 도구로 민감한 정보 발견 157

__6.2.5 버프 스위트로 API 검사 162

__6.2.6 OWASP ZAP과 URI 크롤링 162

__6.2.7 고버스터를 사용한 URI 무차별 대입 165

__6.2.8 카이트러너로 API 콘텐츠 검색 166

요약 168

실험실 #3: 블랙 박스 테스트를 위한 능동적 사전 조사 169

 

CHAPTER 7 엔드포인트 분석 175

7.1 요청 정보 찾기 176

__7.1.1 문서에서 정보 찾기 176

__7.1.2 API 명세 임포트 180

__7.1.3 API 리버스 엔지니어링 182

7.2 포스트맨에 API 인증 요건 추가 185

7.3 기능 분석 187

__7.3.1 의도에 맞는 사용인지 테스트 188

__7.3.2 권한이 필요한 작업 수행 189

__7.3.3 API 응답 분석 191

7.4 정보 누출 191

7.5 보안 설정 결함 192

__7.5.1 자세한 에러 메시지 192

__7.5.2 빈약한 전송 암호화 193

__7.5.3 문제가 있는 설정 193

7.6 데이터 과다 노출 194

7.7 비즈니스 로직 결함 195

요약 196

실험실 #4: crAPI 컬렉션 구축과 데이터 과다 노출 발견 196

 

CHAPTER 8 인증 공격 201

8.1 고전적 인증 공격 202

__8.1.1 비밀번호 무차별 대입 공격 202

__8.1.2 비밀번호 리셋과 다중 인증 무차별 대입 공격 203

__8.1.3 비밀번호 스프레이 205

__8.1.4 무차별 대입 공격에 base64 인증 포함 208

8.2 토큰 위조 209

__8.2.1 수동 분석 210

__8.2.2 실시간 캡처 분석 212

__8.2.3 예측 가능한 토큰 무차별 대입 213

8.3 JWT 악용 216

__8.3.1 JWT 분석 216

__8.3.2 none 공격 219

__8.3.3 알고리즘 스위치 공격 219

__8.3.4 JWT 크랙 공격 221

요약 221

실험실 #5: crAPI JWT 서명 크랙 222

 

CHAPTER 9 퍼징 225

9.1 효과적인 퍼징 225

__9.1.1 퍼징 페이로드 선택 227

__9.1.2 이상 감지 229

9.2 넓은 퍼징과 깊은 퍼징 231

__9.2.1 포스트맨과 넓은 퍼징 232

__9.2.2 버프 스위트와 깊은 퍼징 235

__9.2.3 W퍼즈와 깊은 퍼징 237

9.3 W퍼즈로 요청 메서드 테스트 241

9.4 입력 유효성 검사를 우회하는 ‘더 깊은’ 퍼징 242

9.5 퍼징과 디렉터리 순회 244

요약 244

실험실 #6: 부적절한 자원 관리 취약점 퍼징 245

 

CHAPTER 10 권한 공격 249

10.1 BOLA 찾기 249

__10.1.1 ID 탐색 250

__10.1.2 A-B 테스트 252

__10.1.3 부채널 BOLA 252

10.2 BFLA 찾기 253

__10.2.1 A-B-A 테스트 254

__10.2.2 포스트맨에서 BFLA 테스트 254

10.3 권한 부여 해킹 팁 257

__10.3.1 포스트맨의 컬렉션 변수 257

__10.3.2 버프 스위트의 찾아 바꾸기 257

요약 258

실험실 #7: 다른 사용자의 자동차 위치 발견 258

 

CHAPTER 11 대량 할당 265

11.1 대량 할당 대상 발견 265

__11.1.1 계정 등록 266

__11.1.2 권한 없는 접근 266

11.2 대량 할당 변수 발견 267

__11.2.1 문서에서 변수 발견 267

__11.2.2 알 수 없는 변수 퍼징 268

__11.2.3 맹목적 대량 할당 공격 269

11.3 아르준, 버프 스위트 침입자로 대량 할당 공격 자동화 270

11.4 BFLA와 대량 할당 조합 271

요약 272

실험실 #8: 온라인 상점의 아이템 가격 변경 273

 

CHAPTER 12 주입 279

12.1 주입 취약점 발견 280

12.2 사이트 간 스크립팅(XSS) 281

12.3 API 간 스크립팅(XAS) 282

12.4 SQL 주입 284

__12.4.1 메타 문자 직접 전송 285

__12.4.2 SQL맵 286

12.5 NoSQL 주입 288

12.6 운영 체제 명령어 주입 290

요약 292

실험실 #9: NoSQL 주입을 사용한 쿠폰 위조 293

 

PART IV 실전 API 해킹

 

CHAPTER 13 우회 기술과 속도 제한 테스트 299

13.1 API 보안 컨트롤 우회 300

__13.1.1 보안 컨트롤의 작동 방식 300

__13.1.2 API 보안 컨트롤 탐지 301

__13.1.3 버너 계정 사용 302

__13.1.4 우회 기술 303

__13.1.5 버프 스위트로 우회 자동화 305

__13.1.6 W퍼즈로 우회 자동화 307

13.2 속도 제한 테스트 309

__13.2.1 느슨한 속도 제한에 대한 노트 310

__13.2.2 경로 우회 312

__13.2.3 출처 헤더 위조 313

__13.2.4 버프 스위트에서 IP 주소 순환 314

요약 318

 

CHAPTER 14 그래프QL 공격 319

14.1 그래프QL 요청과 IDE 320

14.2 능동적 사전 조사 321

__14.2.1 스캐닝 321

__14.2.2 브라우저에서 DVGA 사용 323

__14.2.3 개발자 도구 사용 323

14.3 그래프QL API 리버스 엔지니어링 325

__14.3.1 그래프QL 엔드포인트에 디렉터리 무차별 대입 325

__14.3.2 쿠키 변조를 통한 그래피클 IDE 활성화 328

__14.3.3 그래프QL 요청 리버스 엔지니어링 330

__14.3.4 스키마 확인을 통한 그래프QL 컬렉션 리버스 엔지니어링 332

14.4 그래프QL API 분석 333

__14.4.1 그래피클 문서 탐색기를 통한 요청 작성 333

__14.4.2 버프 스위트 애드온 InQL 335

14.5 명령어 주입을 위한 퍼징 338

요약 344

 

CHAPTER 15 데이터 침해와 버그 현상금 345

15.1 침해 346

__15.1.1 펠로톤 346

__15.1.2 USPS Informed Visibility API 348

__15.1.3 T-모바일 API 침해 349

15.2 현상금 351

__15.2.1 API 키의 가격 352

__15.2.2 비공개 API 권한 부여 문제 353

__15.2.3 스타벅스: 전례 없는 침해 355

__15.2.4 인스타그램 그래프QL BOLA 357

요약 359

 

마치며 360

 

부록 A API 해킹 체크리스트 362

부록 B 추가 자료 364

찾아보기 368

 

 

제이펍 소식 더 보기(제이펍의 소통 채널에서 더욱 다양한 소식을 확인하세요!)

  포스트  유튜브  인스타그램  트위터  페이스북

'도서 소개' 카테고리의 다른 글

코딩 교육을 위한 마이크로비트(개정판)  (0) 2023.09.11
컴퓨팅의 정수  (0) 2023.08.22
시바테이블  (0) 2023.07.26
러브드  (0) 2023.07.25
자동화 실무 사례로 배우는 구글 앱스 스크립트  (0) 2023.07.05