GSoC Reports: Enhancing Syzkaller support for NetBSD, Part 1


July 13, 2020 posted by Kamil Rytarowski

This report was prepared by Ayushi Sharma as a part of Google Summer of Code 2020

I have been working on the project - Enhance the Syzkaller support for NetBSD, as a part of GSoc’20. Past two months have given me quite an enriching experience, pushing me to comprehend more knowledge on fuzzers. This post would give a peek into the work which has been done so far.

Syzkaller

Syzkaller is a coverage guided fuzzer developed by Google, to fuzz the system calls mainly keeping linux in mind. However, the support has been extended to fuzz the system calls of other Operating Systems as well for eg. Akaros, FreeBSD, NetBSD, OpenBSD, Windows etc.

An automated system Syzbot continuously runs the syzkaller fuzzer on NetBSD kernel and reports the crashes

Syzbot

Increasing syscall support

Initially, the syscall support for Linux as well as FreeBSD was analysed by an automated script. Also coverage of NetBSD syscalls was looked over. This helped us to easily port a few syscalls descriptions for NetBSD. The necessary tweaks were made according to the documentation which describes rules for writing syscall descriptions.

Major groups of syscalls which have been added:

  • statfs
  • __getlogin
  • getsid
  • mknod
  • utimes
  • wait4
  • seek
  • setitimer
  • setpriority
  • getrusage
  • clock_settime
  • nanosleep
  • getdents
  • acct
  • dup

Bugs Found

There were a few bugs reported as a result of adding the descriptions for syscalls of the mentioned syscall families. Few of them are yet to be fixed.

Stats

Syscall coverage percent for NetBSD has now increased from nearly 30 to 44.96. Addition of compat syscalls resulted in getting a few new bugs.

Percentage of syscalls covered in few of the other Operating Systems:

  • Linux: 82
  • FreeBSD: 37
  • OpenBSD: 61

Conclusion

In the next phase I would be working on generating the syscall descriptions using automation and adding ioctl device drivers with it’s help.

Atlast, I would like to thank my mentors Cryo, Siddharth and Santhosh for their constant support and guidance.I am also thankful to NetBSD community for being kind to give me this opportunity of having an amazing summer this year.

[0 comments]

 



Post a Comment:
  • HTML Syntax: NOT allowed