Titan
[research] 4 min read
์๊ฐ
- Beacon์ precond-infer ์ฌ์ฉ.
- has the potential to improve the performance of other directed fuzzers ๋ผ๋๋ฐ ์ ์๊น๊ฒ ๋ณผ๊ตฌ์ ์ธ๊ฐ? ํด๊ฒฐ : RQ3์ด๋ค.
- ์ด๋ฐ๊ฒ๋ symbolic execution์ผ๋ก ๋ณผ ์ ์๋?
๊ฐ์
2024 ๋ค์ค ์งํฅ์ฑ ํผ์ง ์ค๊ตญ ๋ ผ๋ฌธ. ํ๊น๊ฐ ์๊ด ๊ณ ๋ ค
๋ฐฐ๊ฒฝ
PAFL: Extend fuzzing optimizations of single mode to industrial parallel mode
- deploying multiple concurrent fuzzer instances
- ์ฌ๋ฌ ํ๊น์ ์ํด ์ด๊ฑธ ์ฐ๋๊ฑด impractical
- Most other directed fuzzers [2], [10]โ[14] do not support reproducing multiple targets simultaneously anyway
Some other tries w/ avg. CFG dist.
- [15]โ[18] have endeavored to address multiple targets simultaneously using general feedback, e.g., average control-flow distance,
- their effectiveness significantly diminishes when tackling multiple target
- \(\S\) 5.1 : AFLGo๋ ๋ฉํฐํ๊น ์ง์ํ๋ ๋ฉํฐ๋ก ํ๋ฒ์ ๋ฃ์ ๊ฑธ -Multi, ํ๋์ฉ ๋ฃ๊ณ ๋ณ๋ ฌ ๋๋ฆฌ๋ ๊ฑธ -Single์ด๋ผ๊ณ ๋งํ์.
- AFLGo-Multi [15] ์ ๋ฃ์ด๋ณด๋, ๊ทธ๋ฅ AFLGo-Single ๋ณ๋ ฌ๋ก ํ ๋ป์ ๋ณด๋ค 3.2x ๋๋ฆผ, ๊ฐ ํ๊น reproduceํ๋ ๋ฐ ๋ ํ๊ท ์๊ฐ์ด. AFLGo-Single ๋ณ๋ ฌ๋ป์ ๊ฐ ์ด ์๊ฐ์ ๋ค ๋ํ๋ฉด, AFLGO-Multi๋ณด๋ค 3.6x ๋๋ฆผ.
- ๋ฌธ์ ์์ โ ์ข ๋์์ ธ์ผ ํ๋ค
๋ฌธ์
synergy ignorance problem
ํ๊น๊ฐ ์๊ด(correlation)์ ์ด์ฉ์น ๋ชปํจ
- bias (avoid hard-to-reach), lowering prob. of exploring
- massive redundant executions
- ํ๊น1๊ณผ 3๊ฐ๋ ํจ์ค๊ฐ ๋ค๋ฅผ๋, ํจ์ค ์๊ด์ ๋ชจ๋ฅด๋ ๋ป์ ๋ 1๊ณผ 3์ ๋์์ ๋ชป๊ฐ์ ๋ชจ๋ฅด๊ณ ๊ฐํก์งํกํ๋ค
์ ๋ต
์ง๊ด
ํ๊น ์๊ด โ ํ๊น์ feasible condition๊ฐ ์๊ด, ํนํ independence์ contradiction

contradiction
eg_ b๊ฐ ์ธํ์ 2๋ฒ์งธ coordinate๋ผ ํ์. ์! ํ๊น1๊ณผ 2๋ bโค1์กฐ๊ฑด์ด ๋ค๋ฅด๊ตฌ๋. contradiction. ๊ทธ๋ฌ๋ฉด ํ๊น1์ bโค1์ธ ์๋A๊ฐ, 2๋ b>1์ธ ์๋B๊ฐ ๊ฐ์.
independence
multiple input bytes could affect different targets independently
์ฆ, a์ d๊ฐ indep.๋๊น a์ d๋ฅผ ๋์์ ๋ณํ์์ผ ํ๊น1๊ณผ 3 ๋์์ ๋ ธ๋ฆฌ์ (ํ๊น1์ ์ต์ํ a>5์กฐ๊ฑด์ด ์์ด์ผ ๊ฐ๊ณ , ํ๊น3์ d๊ฐ ์๋ฌธ์ฅ์)
ํต์ฌ
CFG๋์ path condition์ผ๋ก ๋๋ ํ .
synergy-aware scheduling strategy
finds the seed potentially reaching the most targets with a fine-grained ranking of the seeds
multi-target-oriented mutation
์ฌ๋ฌํ๊น ๋์์ ๊ทผํด์, fewer executions needed
์ค์
Instrumentation (on LLVM BC)
ํ์ฌ๋ cheap, preciseํ ์ ์ ๋ถ์์ผ๋ก ํ๊น์๊ด ๋ฐํ

eg_ We can use the correlation, \(conflict(b, l_5, t_1, t_2)=true\), to know that the var. b defined at Line 2 influences targets 1 and 2.
๊ฒฐ๊ณผ : The set of correlation, C(S), of the seed S is:

Synergy-aware scheduling strategy
seed๊ฐ ์์ ๋, ํ๊น ํํฐ๋งโฆ
์ ์์ ์ด์ด์ ..- ์๋ A, B๊ฐ ํ๊น 1,2๋ฅผ ๊ฐ์ผ ํ๋ค๊ณ ๋ณด์. A, B ์คํ์์ผฐ์๋ ๋ b์ ๊ฐ์ผ๋ก A๊ฐ 1, B๊ฐ 2 ๊ฐ์ผ ํ๋ค๋๊ฑธ ์๊ฒ๋จ.
๊ตฌ์ฒด์ ์ผ๋ก, A=(a=6, b=3, c=1, d=1)์์
(T_res, T_conf, T_ind์ ๋ํ, ๊ทธ๋ฆฌ๊ณ ์์ธํ, ์๊ณ ๋ฆฌ์ฆ์ Algorithm 2)
โฆํ๊ณ ์ฐ์ ์์ ์ ํ์
The seed input whose value satisfies the conditions for most variables should be prioritized.


Multi-target-oriented mutation
B_ti๋ฅผ, ์ง์ ๋ฐ๊พธ๊ณ ๋๋ ค๋ด์ ๊ตฌํ๊ธด ํ์ง๋ง, ๋ชจ๋ B_ti๋ฅผ 2^n๊ฐ ๋ค ํ์ง ์๋๋ค.
- dynamically infer the input bytes that can influence the values of the variables in the independent correlations using inference-based taint analysis [22FairFuzz], [25RedQueen], [26GreyOne].
- mutate the bytes that influence the independent variables respectively
๊ทธ๋์ ๊ตฌํ์?
For each byte, b, of seed, S, we measure the number of its influenced targets that have not been triggered as inf(b). We choose the bytes with probability, p, defined as follows:
์ด์ ์ ํ ์๋ ๋ฐ์ดํธ ์ค, ์ ํ๋ ๊ฒ๋ค๊ณผ indep.ํ ํ๊น์ ๊ณต๋ตํ๋ ๋ฐ์ดํธ๋ฅผ ๋ flipํ๋ค.
inf(b)๋ ์ด๋ป๊ฒ ๊ตฌํ๋?
C(S)๊ฐ ๋ญ๊ฐ? variable๋ง๋ค ๊ทธ๊ฒ reachability์ ๊ด์ฌํ ์๋ ์๋ ํ๊น์ ๋ชจ์ ๋จ๋ค. ๊ทธ๋ฌ๋ฉด ์ด์ ๊ทธ variable์ ์์ง์ด๋ byte๋ค์ ์๊ฐํ ์ ์๋ค. ใ ใ . ์๊ฐ๋ณด๋ค ๋ง์๊ฑฐ ๊ฐ์๋ฐ..
๋ฒค์น๋งํฌ
- MAGMA : CVEs chosen from nine programs (that are freqโly used for evaluating fuzzers). ์ด ์ค 6๊ฐ๋ง ์ด๋ค.
- ์ต๊ทผ์ ์ถ๊ฐ๋ lua๋ ์ด๋ค state-of-the-art fuzzer๋ ์ ๋๋ก ์๋์๊ฐ๋ฏ๋ก ์์ผ๋ฏ๋ก ๋บ๋ค.
- sqlite3์ PhP๋ ํ๋ง์ฐ์ด ์๋์๊ฐ๋ฏ๋ก ๋บ๋ค.
- MAGMA์ state-of-the-art directed fuzzer๊ฐ ์ด ํ๋ก๊ทธ๋จ์ ์ต์ ๋ฒ์ ์ CVE๋ค.
- for reproducing โreal vulnerabilitiesโ and detecting incomplete fixes of the previously reported bugs in the newest version of the programs.
ํต๊ณ
- We use the Mann-Whitney U Test to demonstrate the statistical significance of our frameworkโs contribution
๊ฒฐ๊ณผ
- Titan may require longer pre-analysis for larger programs, e.g.,
opensslandphp, it is acceptable because the analysis time could be spent offline, and Titan saves more time during the fuzzing period. - ๊ฒฐ๊ณผ๋ Table 4์ ์๋๋ฐ, ๋ฒ๊ทธ์ฐพ๋ ์๊ฐ (reproduction time)์ ๋น๊ตํ๋ค. Ratio (Titan๋ณด๋ค ๋ช๋ฐฐ ๊ฑธ๋ ธ๋์ง) ๋ณด๋ Titan์ด ์ ๋ฐ์ ์ผ๋ก ์ฐ์ํ๋ค (๋ฉํฐํ๊น์ผ๋ก ์คํํด์ ๊ทธ๋ฐ๊ฑธ์ง๋). ๊ทผ๋ฐ Table5๋ณด๋๊น Ratio๋ฅผ ์ฐ์ ํ๊ท ๋ธ๊ฑฐ๊ฐ์๋ฐ.. ๊ธฐํํ๊ท ์ด๋ ์กฐํํ๊ท ์ด ๋ซ์ง ์์ผ๋ ค๋ ์ถ๋ค. pvalue๊ฐ <0.01์ธ๊ฒ ๋ง์ผ๋, ํ์คํ ๋์์ก๋ค๊ณ ๋ณด์ธ๋ค.
๊ฐ์
๋ฉํฐํ๊น์ ์ญ์ ์ ์ ๋ถ์์ธ๋ฐ, ๊ทธ๊ฑธ Beacon์ ๊ทธ๋๋ก ๋์ด์ ๋ด๋ค๋ ๋ถ๋ฌ์ด ์ฐ๊ตฌ๋ค. ์ฑ๋ฅ์ด ๋๋ฌด ๋ง์ด ์ข์์ก๋๋ฐ, ์์ ๋ค์ด โ๋ฉํฐ ํ๊น์์ ํ๊น๊ฐ์ ๊ด๊ณ๋ฅผ ๊ณ ๋ คํ ์ฒซ ์ฌ๋๋คโ์ด๋ผ๋ ์ ์ ๊ฐ์กฐํ๋, ๋ฉ๋์ด ์ผ๊ฒฌ ๊ฐ๋ฉด์๋, ์ ์ ๋ถ์์ผ๋ก ๊ตฌ๊ฐ์ด ์ด๋ ๊ฒ ๋ช ํํ๊น์ง ๋๋๋? ๋ผ๋ ๊ฒ ์๊ตฌ์ฌ์ด ๋ ๋ค. ๋ํ, ํ๊น์ผ๋ก ๊ฐ ๊ฐ๋ฅ์ฑ์ด ์๋ input bit flip๊น์ง ์ฒดํฌํ๋ฉด์๋ ๊นํ์ฝ๋๊ฐ ์งง์์, ์ด๋ป๊ฒ ๋์๊ฐ๋์ง ๋ณผ ์ด์ ๊ฐ ์๋ค. ์ฆ ํ ํฌ๋์ปฌํ ๋ฉด์ด ๊ถ๊ธํ๋ค.
Source: https://5hadowblad3.github.io/files/Oakland24-Titan.pdf
๋ถ๋ฅ:๋ค์ค ์งํฅ์ฑ ํผ์ง