Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

HITCON 2021 軟體自動化安全檢測技術 workshop 筆記

Speaker: 張元

Coverage-Guided Fuzzing

  • Coverage metric
    • code coverage
  • Capture program information
    • binary instrumentation
    • emulator
      • qemu, angr, qiling

Binary Instrumentation

  • Insert additional code into binary
  • Insert assembly
    • vanilla AFL
  • LLVM Pass – LLVM IR
    • AFL++
      • LTO (Link Time Optimization)

Code Coverage

  • coverage of code region
    • basic block
    • edge
  • Inssert additional code at entries of code regions
  • code coverage -> bug coverage (正相關)

在basic block 1 上加上 instrumentation

Sanitizer

Sanitizer – ASAN

  • heap, stack, global-buffer overflow
  • UAF – use after free
  • shadow memory
    • red zone
  • overhead
red zonebufferred zonebuffer

Coverage-Guided Fuzzers

  • AFL
  • AFL++
  • libfuzzer
  • syzkaller
  • honggfuzz

AFL

AFL++

(張元強力推薦)

  • https://github.com/AFLplusplus/AFLplusplus
  • AFL++ is a superior fork to Google’s AFL – more speed, more and better mutations, more and better instrumentation, custom module support, etc.
  • cmplog: REDQUEEN
  • power schedule:AFLFast

libfuzzer

syzkaller

Fuzzing Research

Fuzzing

  • seed scheduling
    • AFLFast: Coverage-based Greybox Fuzzing as Markov Chain(CCS 2016)
    • MOPT: Optimize Mutation Scheduling for Fuzzers(USENIX 2019)
  • seed selection
  • seed corpus optimization
    • corpus minimization: OptiMin(ISSTA 2021)
  • initial seed selection
    • Seed Selection for Succesful Fuzzing(ISSTA 2021)

Fuzzing – nutation

Fuzzing – Directed Grey-box Fuzzing

進階版 Coverage-Guided

  • AFLGo:Directed Greybox Fuzzing(CCS 2017)
  • Hawkeye: Towards a Desired Directed Grey-box Fuzzer(CCS 2018)
  • SAVIOR: Towards Bug-Driven Hybird Testing(S&P 2020)
  • ParmeSan: Sanitizer-guided Greybox Fuzzing(USENIX 2020)
  • Constraint-guided Directed Greybox Fuzzing(USENIX 2021)

Fuzzing – research topic

  • data flaw analysis (DFA)
    • taint analysis
  • binary instrumentation
    • binary only
    • dynamic instrumentation
  • parallel fuzzing
    • ensemble fuzzing
      • EnFuzz: Ensemble Fuzzing with Seed Synchronization among Diverse Fuzzers (USENIX 2019)
  • symbolic execution
    • KLEESPECTRE: Detecting information Leakage through Speculative Cache Attacks via Symbolic Execution
    • concolic execution
  • hybrid fuzzing

AFL++

  • afl-fuzz -i input -o output – ./binary
  • alf-fuzz -i input -o output – ./binary -a -b
  • afl-fuzz -i input -o

apt.llvm.org

Back To Top
error: 內容被保護 !!
Buy Me A Coffee
歡迎贊助 sectools.tw 讓這個網站更好~!