junxzm1990 / afl-pt

GNU General Public License v3.0
50 stars 11 forks source link

Support modern Ubuntu #7

Open vanhauser-thc opened 5 years ago

vanhauser-thc commented 5 years ago

I wanted to do some testing with afl-pt - but I cannot.

Ubuntu 14.04 is very, very old. So old, that none of the laptops that I own that actually have Intel PT have any network component (wifi and ethernet) that that old Ubuntu actually recognizes.

So this combination of a very old specific Ubuntu and needing intel pt is a very bad combination.

I understand that you need a specific kernel version to be able to directly access in-kernel things. But wouldnt a loadable kernel module that gets the addresses from the kernel build environment and exports the access to what you need to e.g. /proc/foo a much better and portable solution?

The other issue with that old Ubuntu is - modern software often does not run there. so the reduces the possible fuzz targets a lot too.

And that overall makes this great work something rather "we made a paper" than actually something great that can be used in modern projects.

ghost commented 5 years ago

Porting it to new Ubuntu versions it's feasible by yourself. However, there is something wrong with this fuzzer that does not work well as I mentioned in my other issue. Stability and coverage are incorrect and it does not make it useful for long sessions or parallel jobs. I use an i7 6700K 32Gb of memory and it is supported in ubuntu 14.04 with no issues at all (wifi ath10k needs a firmware update, git clone and overwrite the old one, reboot and works fine). Most of targets tested built with no issues, may some updated dependencies that I fixed setting a non ubuntu library path. My tests with LAVA have been quite disappointing. Even comparing a simple target vs Angora Fuzzer or WinAFL PT.

junxzm1990 commented 5 years ago

We very much appreciate your feedback. Yes, we look forward to improving the tool.

@vanhauser-thc We started Ptrix years ago when Ubuntu 14.04 wasn't that old. It is true Ptrix may not work with other Ubuntu versions, but Kernel is not the reason. Our module has no version-specific requirements. I would believe the cause is the libc we patched (we patched the ld to enable fork-server mode). Likely the libc in our repo cannot work in all Ubuntu versions.

@alexandermitop We understand Ptrix may have hidden issues in maintaining stability. We've spent months on testing and debugging. So far, we can only say it works with the benchmarks in our paper for 72-hour tests. Supports of parallel jobs are preliminary, but we have not seen issues with concurrent fuzzing.

Our coverage is different from that used by AFL, but it should have no correctness issues. Our coverage is much more sensitive than edge-based coverage. This may cause a problem --- the bitmap can be full pretty quick.

Many people in this project have gone. It is getting hard to distribute manpower on Ptrix. But please share the issues you further encounter. We are trying to get back soon.