Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The easiest way to get BFF up and running is to use the UbuFuzz virtual machine.  However, if this is not an option for you, it should possible to run BFF on any UNIX-like operating system, as long as the dependencies are met.

Table of Contents

Dependencies

For basic fuzzing functionality, the following packages are required:

...

  • Python hcluster
  • Python matplotlib

Filesystem layout


By default, BFF will use the following filesystem locations:
For the location of the scripts (including bff.py):
~/bff

For the results:
~/results

The default fuzzing target of ImageMagick:
~/convert

All of these locations can be symlinks.

Beginning a fuzzing campaign


Simply run ~/bff/batch.sh to start fuzzing.


Tuning the operating system

UbuFuzz has several optimizations that improve fuzzing performance. If using your own operating system, you may wish to make the following changes:

  • The Fluxbox window manager is used instead of the heavy Gnome or KDE desktop environments.
  • Fluxbox is configured to not raise or focus new windows. This can help in situations where you may need to interact with the guest OS while a GUI application is being fuzzed.

  • Memory randomization is disabled (kernel.randomize_va_space = 0 in /etc/sysctl.conf). This helps remove duplicate crashes where the target application does not have debug symbols.

  • VMware Tools is installed, which allows the guest OS to share a directory with the host.

  • The OS is configured to automatically log in and start X.
  • sudo is configured to not prompt for a password.
  • strip is symlinked to /bin/true, which prevents symbols from being removed when an application is built.

Example installation on Fedora 16 32-bit


To install BFF on a Fedora 16 32-bit system, for example, the following steps can be performed:

1) Install dependencies present in the package system:

...


7) Start fuzzing

~/bff/batch.sh

System Performance Configurations for Fedora

a) Disable Memory Randomization:
add "kernel.randomize_va_space=0" to /etc/sysctl.conf
(reboot after this change)

b) Symlink strip to true (to preserve symbols during builds)

...



c) Use Fluxbox Window Manager instead of Metacity
sudo yum install fluxbox
(Log out)
(Log in, selecting Fluxbox from drop-down selection)
(Right-click desktop, select "Run")
  (Type in "fluxbox-generate_menu")
(Right-click desktop -> Fluxbox Menu -> Configure -> Focus model)
  (Cick the following options and ensure they are not selected to disable them:)
    (Auto Raise)
    (Focus New Windows)


Example installation on Ubuntu 11.10 32-bit


To install BFF on an Ubuntu 11.10 32-bit system, for example, the following steps
can be performed:

1) Install dependencies present in the package system:

...


7) Start fuzzing

~/bff/batch.sh

System Performance Configurations for Ubuntu


a) Disable Memory Randomization:
add "kernel.randomize_va_space=0" to /etc/sysctl.conf
(reboot after this change)

b) Symlink strip to true (to preserve symbols during builds)

...



c) Use Fluxbox Window Manager instead of Metacity
sudo apt-get install fluxbox
(Log out)
(Log in, selecting Fluxbox from drop-down selection (Gear symbol) )
(Right-click desktop -> Fluxbox Menu -> Configure -> Focus model)
  (Cick the following options and ensure they are not selected to disable them:)
    (Focus New Windows)
    (Auto Raise)

Example installation on openSUSE 12 32-bit


To install BFF on an openSUSE 12 32-bit system, for example, the following steps
can be performed:

1) Install dependencies present in the package system:

...


7) Start fuzzing

~/bff/batch.sh

System Performance Configurations for Fedora

a) Disable Memory Randomization:
add "kernel.randomize_va_space=0" to "/etc/sysctl.conf"
(reboot after this change)

b) Symlink strip to true (to preserve symbols during builds)

...