Installation Workflow

FuzzBox Installation Guide

Version
latest

High-level steps to set up the FuzzBox testing environment:

  1. Get the required hardware.
  2. Get the required software.
  3. Prepare the installation media.
  4. Install Defensics FuzzBox OS.
  5. Pair the FuzzBox with Defensics GUI.
  6. Start testing with the FuzzBox compatible test suites.

Each step is explained in more detail in its own section of this document.

Basic Usage of the FuzzBox

Defensics FuzzBox is connected to a user PC which runs Defensics Monitor and the protocol Test Suite. User PC system requirements and installation instructions can be found from the Defensics Installation Guide document shared together with Defensics installation files.

Defensics Monitor installed on the user PC is connected to FuzzBox according to the instructions provided in this documentation. The protocol test suite is loaded on the user PC with Defensics Monitor. The test suite communicates with a selected FuzzBox over a secure connection. The FuzzBox with a protocol-specific adapter sends the test cases over the air to the test target and reads the responses back to the test suite.

Figure 1. Usage of the FuzzBox

A single Defensics Monitor can control multiple FuzzBoxes, with each FuzzBox capable of having multiple adapters. Each test run reserves one adapter from a FuzzBox. Although there's no parallel execution of test cases from a single test suite, the user can run multiple instances of a test suite. Thus, by utilizing multiple adapters, it's possible to test multiple targets simultaneously.

For example, a user can run, with one Defensics Monitor, the same test suite in two parallel instances reserving two adapters on the same FuzzBox. Alternatively, different test suites can run concurrently, such as two instances of Suite A reserving two adapters and a single instance of Suite B reserving another adapter - all on the same FuzzBox - against the same or different test targets.

One FuzzBox supports up to 10 similar types of adapters. For example, 10 WLAN adapters and 10 Bluetooth adapters can be connected to the same FuzzBox. This setup allows running 20 test suites in parallel, each using one adapter. Opening a test suite doesn't reserve the adapter. The adapter is reserved when the test run or scanning is started, and is released when the test run is finished or scanning is stopped. An error is shown if there is no free adapter available when starting a test run or scanning.

The test suite is intended to be used in an isolated lab environment. The Test Suites send anomalous data over-the-air, and it's best to run it in an RF shielded environment. Frames sent are typically destined to the SUT but also without an address or with a broadcast address.

Standalone Test Setups

A FuzzBox can be connected directly to a PC running Defensics Monitor via an Ethernet cable. In this case, a pre-defined static IP address (192.168.10.10) is used with the FuzzBox. FuzzBox configuration is done with the Web Management UI accessible via a web browser on the user PC.

Figure 2. Direct usage of the FuzzBox

Defensics has a valid case instrumentation method to get verdicts for test cases, but the full advantage of testing is achieved by monitoring the SUT status with methods available in the SUT side (like logging, crash counters, memory, and CPU monitoring). The SUT health data can be connected to test cases via Defensics external or agent instrumentation framework. Defensics user guide documentation gives detailed instructions how to use the tool and how to setup optional parts.

Laboratory Test Setups

A FuzzBox can be connected to a laboratory's network. If there is a DHCP server in the network, the FuzzBox will receive an IP address from there. If there is no DHCP server available, the FuzzBox will fall back to the static IP address ( 192.168.10.10). The static IP address can be changed via the Web Management UI or by editing the file: /etc/NetworkManager/system-connections/ethernet-static.

A PC running Defensics Monitor requires access to the same network with the FuzzBox. The same FuzzBox can be used from multiple Defensics Monitors or one Defensics Monitor can have access to multiple FuzzBoxes.

Test plan loading and starting are controlled via the Monitor UI, REST API, or command-line interface. See detailed instructions from the Defensics User Guide.

Figure 3. Network usage of the FuzzBox

CI Test Setups

The preferred setup in a CI environment is to have one or more FuzzBox installations and Defensics Monitors running in a virtualized environment. A separate Defensics Monitor installation can be used to create test plans, pairing/commission files and FuzzBox configuration files required by the CI instance.

  • FuzzBox configuration file:
    .blackduck/defensics/fuzzboxes.json
    This file contains access information for the FuzzBox(es) configured to this monitor.
  • Bluetooth paired devices:
    .blackduck/defensics/bt-keys-r700.xx.xx.xx.xx.xx.xx.ddb
    This file contains adapter and test target-specific information required to reconnect to the test target for testing. The prefix r700 represents the database revision number and may change in the future.
  • Zigbee network commissions:
    <test-suite>/user/c0-de-aa-bb-00-xx-xx-xx_xx-xx-xx-xx-xx-xx-xx-xx.json
    This file contains network and test target-specific information required to reconnect to the Zigbee network for testing.

Copy the required files from the above locations to the CI environment and use test suite-specific saved test plans to automatically trigger testing on the SUT software update.

Test plan loading and starting are controlled via the REST API or command-line interface. See detailed instructions from the Defensics User Guide.

FuzzBox Network Usage

FuzzBox OS is using the following network ports and protocols to communicate with Defensics:

443 : HTTPS for Web Management UI.
4443 : HTTPS for FuzzBox OS software update package upload.
9000 : HTTPS for Core Services API.
9001 : HTTPS for Traffic Capture Services API.
9501 : TLS for WLAN injector.
9503 : TLS for MAC 802.15.4 injector.
9512 : HTTPS for WLAN scanner API.
9514 : HTTPS for MAC 802.15.4 scanner API.
9600-9609 : TLS for Bluetooth injectors.
9610-9619 : TLS for Traffic Capture Streams.