[책] fuzzingbook

Serendipity·2023년 9월 5일
0

2023 LeSN

목록 보기
18/52

fuzzingbook sitemap

webpage: https://www.fuzzingbook.org/html/00_Table_of_Contents.html
git: https://github.com/uds-se/fuzzingbook/

Table of Contents

Part I: Whetting Your Appetite

Tours through the Book
Introduction to Software Testing

Part II: Lexical Fuzzing

Fuzzing: Breaking Things with Random Inputs
Code Coverage
Mutation-Based Fuzzing
Greybox Fuzzing
Search-Based Fuzzing
Mutation Analysis

Part III: Syntactic Fuzzing

Fuzzing with Grammars
Efficient Grammar Fuzzing
Grammar Coverage
Parsing Inputs
Probabilistic Grammar Fuzzing
Fuzzing with Generators
Greybox Fuzzing with Grammars
Reducing Failure-Inducing Inputs

Part IV: Semantic Fuzzing

Fuzzing with Constraints
Mining Input Grammars
Tracking Information Flow
Concolic Fuzzing
Symbolic Fuzzing
Mining Function Specifications

Part V: Domain-Specific Fuzzing

Testing Configurations
Fuzzing APIs
Carving Unit Tests
Testing Web Applications
Testing Graphical User Interfaces

Part VI: Managing Fuzzing

Fuzzing in the Large
When To Stop Fuzzing

Date:

(230905) Introduction, Fuzzing: Breaking~
(230912) Code Coverage, Mutation-Based Fuzzing
...
2 chapters per week

목차 및 진행 방향

소프트웨어의 안정성을 검증하기 위한 Fuzzing 기법에 대한 광범위한 내용을 다루고 있습니다.

  1. Part I: Whetting Your Appetite

    • 이 부분은 전체 책의 개요와 소프트웨어 테스팅에 대한 기본적인 소개를 제공합니다.
    • 진행 방향: Fuzzing의 중요성과 기본 개념을 이해하기 위해 이 부분을 먼저 읽는 것이 좋습니다.
  2. Part II: Lexical Fuzzing

    • 입력에 임의의 값을 제공하여 소프트웨어의 안정성을 테스트하는 기본적인 Fuzzing 기법을 다룹니다.
    • 진행 방향: 기본 Fuzzing 개념과 이를 통한 코드 커버리지, 변형 기반 Fuzzing, 회색박스 Fuzzing 등의 기법을 연속적으로 학습합니다.
  3. Part III: Syntactic Fuzzing

    • 문법을 기반으로 한 Fuzzing 방법론에 중점을 둡니다.
    • 진행 방향: 문법 기반 Fuzzing의 기본부터 고급 기법까지 단계적으로 학습하며, 이를 통해 더 효과적인 테스트 케이스를 생성하는 방법을 학습합니다.
  4. Part IV: Semantic Fuzzing

    • 프로그램의 의미론적 측면에서 Fuzzing을 접근하는 방법에 대해 다룹니다.
    • 진행 방향: 제약 조건, 심볼릭 Fuzzing 등 의미론적 테스팅 방법을 깊이 있게 탐구합니다.
  5. Part V: Domain-Specific Fuzzing

    • 특정 도메인에 초점을 맞춘 Fuzzing 방법을 소개합니다.
    • 진행 방향: 각 도메인별로 Fuzzing의 특성과 기법을 이해하며, 웹 어플리케이션, GUI 등 특정 환경에서의 테스팅 방법을 학습합니다.
  6. Part VI: Managing Fuzzing

    • Fuzzing 프로세스의 관리와 효과적인 종료 시점에 대해 다룹니다.
    • 진행 방향: 대규모 프로젝트에서의 Fuzzing 관리 방법과 테스팅을 언제 종료해야 하는지에 대한 지침을 배웁니다.

총론적으로, 이 책은 Fuzzing의 기본부터 전문 영역까지 광범위한 주제를 다루고 있습니다.
각 부분을 순차적으로 따라가면서 Fuzzing에 대한 깊은 이해를 얻을 수 있을 것입니다.

profile
I'm an graduate student majoring in Computer Engineering at Inha University. I'm interested in Machine learning developing frameworks, Formal verification, and Concurrency.

0개의 댓글