일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 소프트웨어 취약저 분석
- build
- software-testing
- vulnerabilties
- binary code analysis
- sotware-testing
- graphfuzz
- 느헤미야
- reading critique
- Software Engineering
- libFuzzer
- protobuf
- unit-testing
- binary code analaysis
- Cyber Security
- fuzzing
- linking
- software-engineering
- 대학원생
- 프로그램 분석
- libxml2
- ICSE
- citrus
- 생명의 삶
- QT
- 바이너리 분석
- fault-localization
- 묵상
- FSE
- Environment
Archives
- Today
- Total
heechan.yang
[Automated Fuzz Driver Generation] GraphFuzz on JsonBox 본문
Software Testing
[Automated Fuzz Driver Generation] GraphFuzz on JsonBox
heechan.yang 2023. 10. 29. 23:03Thoughts while Testing
Targetting a Function
- With 1 process of 6 hours of test, GraphFuzz only covered 50.9% line coverage.
- Some endpoint drivers are called a significantly smaller amount of times than others (due to randomness).
- I have experimented by removing other endpoint driver in schema in hopes of testing certain function more.
- By doing so, GraphFuzz was able to cover more lines in that specific function than when it was tested with all the other API functions written in schema.
- Maybe the downfall of GraphFuzz is that we cannot target a specific function to test.
Leakage
- Libfuzzer counts the amount of malloc and free calls when executing a mutation.
- When the numbers don't match, libfuzzer invokes leaksanitizer exitting the process.
- GraphFuzz creates graphs with mismatching count of malloc and free.
- Testing is restricted whenever such graphs are formed.
- I have changed settings of detect_leaks to 0.
- seems address sanitizer detect true leakage.
Input Dictionary
- Some conditions in JsonBox contain comparison with defined characters.
- through writing a dictionary in libfuzzer
- guide random selection to select inputs in given dictionary
More Process
- with 32 process of 1 hour 30 minute test, GraphFuzz covered 85.8% line coverage.
Things to consider in future testing
- Recording which kind of crash ocurrs
- How long it took to find first crash
- Knowing how many crashes it finds in given time costs
- Reasons to why some line or branch are not covered
'Software Testing' 카테고리의 다른 글
[Code Coverage] Measuring Branch Coverage (@LLVM-IR Level) (0) | 2023.11.04 |
---|---|
[Automated Fuzz Driver Generation] CITRUS: Automated Unit Testing Tool for Real-world C++ Programs (0) | 2023.10.29 |
[Fuzzing] The Surface of LibFuzzer (0) | 2023.10.11 |
[Automated Fuzz Driver Generation] Dive Into GraphFuzz (0) | 2023.10.11 |
[Automated Fuzz Driver Generation] GraphFuzz Experiment Reproduction (0) | 2023.09.12 |