-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sys/linux: syz-describe: auto generate syzlang #3129
Conversation
This is cool! I am running syz-manager with the following syscall filter:
and it's slowly gaining a substantial amount of coverage. Some initial thoughts:
and "/dev/host" is not present in my VM and I can't easily find even what driver was supposed to create this and where this "host" name come from.
This is probably what you meant by:
|
Yes, we need some common prefix, or maybe put them into a separate dir. Using kernel version is not good. We will re-generate them periodically and names shouldn't change. We need to capture the revision somewhere else. |
also we could add:
if we need if for something. |
tun is located at /dev/net/tun:
|
Codecov Report
|
Our tool~ (SyzDescribe) could automated static generate basic syscall descriptions~ (syzlang format) for Linux kernel drivers.
Based on our evaluation, SyzDescribe is far more accurate than DIFUZE in identifying kernel drivers~ (no FP and only FN) and their device file names~ (still have a few FP and FN).
We will open source SyzDescribe after the paper is accepted~ (already submitted, hope we can open source it soon).
(Related Issue (#590))
open()
ioctl()
ioctl()
ioctl()
and used in newioctl()
, e.g.,resource fd_kvmvm[fd]
in KVMThe generated syscall descriptions could be directly used in syzkaller based on doc
However, those auto generated syscall descriptions are not friendly to humans.
I am working on giving them some meaningful names or file paths now.
Current plan:
resource fd
meaningful namesioctl()
(not sure whether this is possible for LLVM bitcode)The commit is current results directly from SyzDescribe, which are mainly for drivers with existing syscall descriptions~ (will generate results for the whole kernel in the future).
How do you think about this and what else are needed to accept them in syzkaller?