From Dazuko
Jump to: navigation, search

Main Authors

Martin Ritter
The original author of Dazuko (called the "AvGuard kernel module" at the time). The AvGuard Linux kernel module was developed to provide on-access virus scanning under the GNU/Linux operating system. Martin designed and implemented the basic framework, bringing the module to version 0.9-beta. This version was released as binary-only (since it was still proprietary software at the time). Martin's work was funded by Avira GmbH (formerly known as H+BEDV Datentechnik GmbH).
John Ogness
The maintainer of Dazuko from 2002 until 2011. Building on the work of Martin Ritter, John extended a few of the AvGuard kernel module's features as well as added support for the recent Linux kernels and SMP support. John was able to convince Avira GmbH of the benefits of freeing the source code for the kernel module, allowing a greater user base, security, trust, and extensibility. On the 5th of February, 2002 the AvGuard kernel module source code was officially freed, renamed to Dazuko and released under the GNU General Public License. Afterwards, Dazuko underwent a major re-design, was ported to FreeBSD, and received many new features. This work was initially funded by Avira GmbH.
After many discussions with various Linux kernel developers, John decided to reimplement Dazuko from scratch as a stackable filesystem. This work was done independently from Avira GmbH. As a first step, John implemented "nullfs", which was a pass-through stackable filesystem. Once this was working correctly, John used the "nullfs" code as the basis for DazukoFS. The interface and semantics of DazukoFS were totally redesigned, using the experiences and shortcomings of Dazuko to inspire a much faster and elegant solution.

Additional Efforts

Other developers have contributed to the Dazuko Project in order to help provide a more robust and secure module. Their names and contributions are listed (alphabetically) here.

Alon Bar-Lev
- added support for suspend under Linux 2.6
- changed logging priority to KERN_INFO for Linux 2.6
- developed Dazuko ebuild for Gentoo Linux
Peter Bieringer
- pointed out security issues with mode 666 on /dev/dazuko
Patrick Bihan-Faou
- developed full path name resolution for non-existing files under FreeBSD 4
- cleaned up and added robustness under FreeBSD 4
- added dup() and dup2() support for FreeBSD 4
Peter Birch
- pointed out an error in the multi-threaded example program
Frans de Boer
- pointed out and fixed a compile error for DazukoFS on Linux 2.6.34
Jürgen Braun
- showed how to include Default Capabilities for Linux 2.6
Julien Bourgeois
- identified a problem with mmap'd data not being synchronized
Calin Culianu
- discussions about implementing fine-grained masking
Andre Duclos
- developed devfs support for Linux 2.2/2.4
- improved example program
- added internal robustness
Alex Ellwein
- developed a Java interface for Dazuko
John Flanigan
- wrote a HOWTO for Fedora Core 4
Scott Grayban
- wrote a HOWTO for Mandrakelinux 10.1
Christophe Grenier
- pointed out and fixed potential memory leak in dazukoRegister()
Stefan Grundmann
- added object-oriented and thread support to Python binding
Christoph Hellwig
- introduced the need for Dazuko to move to the VFS layer (stackable filesystem)
Peter Higginson
- pointed out and fixed buffer size calculation for dazukoRegister()
Frantisek Hrbata
- helped with RedirFS integration
- provided patches to support RedirFS 0.6
- provided patch to support FreeBSD 7
Kurt Huwig
- discussions about Dazuko and implementing cascading
Kevin Kofler
- developed patch for Linux 2.6 kernels with read-only syscall tables
- testing for Linux 2.6 system call hooking
- developed UTRACE support for Linux 2.6
Philip Lawrence
- added support for Linux 2.6.23 LSM API
Danilo Massa
- developed HIDDEN_SCT patch for Linux kernels with hidden syscall tables
Timo Metsala
- pointed out and fixed a name cache leak for Linux with syscall hooking
- pointed out and fixed a memory leak in the trusted application framework
- pointed out and fixed problem with TAF on 64/32-bit hybrid systems
- added extra runtime detection for Linux 2.6 syscall table writable status
- resolved namespace clash in Dazuko core
Misu Moldovan
- wrote a HOWTO for Fedora Core 3
Abhishek Nayani
- pointed out and fixed a bug in the Linux 2.6 LSM stacking code
Gregory Nietsky
- added devfs support for Linux 2.6
- fixed a problem with the "in use" counter not being respected under Linux 2.6
- added udev/sysfs support for Linux 2.6
Amon Ott
- suggested and helped implement Dazuko's support for RSBAC
Barry Pearce
- added robustness to thread-safe API under Linux
- lots of debugging using multi-threaded daemons
- discussions about relaxing Dazuko's strictness while staying secure
Philipp Rosenberger
- implemented poll() for the DazukoFS control device
Andy Ruddock
- fixed device registration problem for Linux 2.6.13 kernels
Roberto Gordo Saez
- pointed out and fixed error in checking event cache index values
- pointed out and fixed setting the file mode in dazuko_access
Lino Sanfilippo
- pointed out and fixed a bug in DazukoFS file open
- helped resolve the read-only mmap() issue
- helped identify various problems with filesystem stacking
- identified missing includes
- implemented stacking getattr()
- fixed a problem with mmap'd data not being synchronized with the file
- identified and fixed a problem with error handling when requesting events
- implemented restartable read() accross signals
- implemented mmap() writing
Wolfram Schlich
- helped improve the website
E.R. Sexauer
- helped improve the FAQ
Alberto Silva
- pointed out errors with ON_CLOSE_MODIFIED events enabled
Gerhard Sittig
- discussions about key/value device protocol
- discussions about DazukoFS security permissions
- discussions about DazukoFS supporting crashed applications
- optimizations in configure script
- handling of filenames with non-printable characters
- use of defines to reduce copy/paste effort in code
- pointed out and fixed "off by one" bug with include/exclude paths
- debugging FreeBSD extension
- lots of testing with lots of feedback
- developed a Perl interface for Dazuko
- developed a Python interface for Dazuko
- developed a Ruby interface for Dazuko
- developed a Lua interface for Dazuko
- identified typos in LSM-stacking code
- developed REQSTREAM protocol for 64/32-bit hybrid systems
- fixed DummyOS for REQSTREAM support
- helped improve the FAQ
Jaroslav Suchanek
- provided patch to support FreeBSD 8
Sami Tikka
- developed ON_EXEC support for Linux 2.6
- pointed out readable permission problem for Linux 2.2/2.4
- pointed out the need for allowing "helper processes" (this evolved into the Trusted Application Framework)
- pointed out and fixed problem with read-write flag for Linux 2.6
- developed system call hooking for Linux 2.6
- improved thread handling for Linux 2.6
Michel Tokic
- pointed out a shorthand form for the file_operations structure
Marius Tomaschewski
- fixed device registration problem for Linux 2.6.13 kernels
- improved configure script to identify correct source paths
- pointed out and fixed problem with LSM stacking as a secondary module
- added support for Linux 2.6.21 LSM API
Mugurel Tudor
- encouraged publishing an up-to-date Debian package on the Dazuko website
Steve Wade (Swade)
- conceived/developed dirty file optimization for ON_CLOSE_MODIFIED events
Petter Wahlman
- pointed out and helped to debug unwritten data with ON_CLOSE events
Holger Wansing
- debugged and determined the problem with using multiple compiler versions
Oliver Welter
- developed a PHP interface for Dazuko
Erez Zadok and the FiST Project
- provided a foundation for DazukoFS on Linux 2.6
Personal tools