... | ... | @@ -14,16 +14,17 @@ We hope to have a video demo of how to install and use Turbo. For now, it is un |
|
|
# Requirements
|
|
|
|
|
|
* Turbo currently works on X86-64 Linux programs. We currently support RHEL, CentOS 7.*, Ubuntu, though it likely can work on other Linux platforms as well.
|
|
|
* Turbo needs a box, called the *Turbo Server* to hold its databases and prepare software for fuzzing. It needs to be an x86-64 Linux machine. This box can be your testing box, a development box, or a completely separate box. It can be native hardware, a VM, or hosted in a cloud infrastructure. Zephyr can help! Turbo as a service (TAAS) is available. Contact Zephyr Software at jwd@zephyr-software.com for pricing detail for your needs.
|
|
|
* Turbo needs a box, called the *Turbo Server* to hold its databases and prepare software for fuzzing (i.e., the *Turbo Service*). It needs to be an x86-64 Linux machine. This box can be your testing box, a development box, or a completely separate box. It can be native hardware, a VM, or hosted in a cloud infrastructure. Zephyr can help! Turbo as a service (TAAS) is available. Contact Zephyr Software at jwd@zephyr-software.com for pricing detail for your needs.
|
|
|
* This box must have Docker installed. See the [docker installation proceedure](https://docs.docker.com/install/) for additional details.
|
|
|
* This box is recommended to have ample disk space and memory. Minimum requirements are 8gb RAM and 40gb disk space, though more may be desirable in some deployments.
|
|
|
|
|
|
* A machine capable of running your software, which we call the *Turbo fuzzing box*. The most likely candidate for such a box is your existing testing infrastructure, though any VM, cloud instance, or hardware that can run your software is acceptable. Turbo is designed to be minimally intrusive and easily integrate into your existing testing infrastructure.
|
|
|
* AFL must run on this box. Turbo relies on AFL input generation.
|
|
|
* AFL must run on this box. Turbo relies on AFL's input generation to help detect bugs.
|
|
|
* The Turbo command line interface (CLI) needs to be installed. The Turbo CLI is a single program with no dependencies, so you can drop the file on your testing box with minimal hassle or dependency management.
|
|
|
* The testing box needs to make network connections the Turbo service.
|
|
|
|
|
|
* The Turbo command line interface (CLI) needs to be installed. The Turbo CLI is a single program with no dependencies, so you can drop it on your testing box with minimal hassle.
|
|
|
* The testing box needs to be network-enabled to talk to the Turbo service.
|
|
|
|
|
|
**Note:** A common use case is to re-use the same box for the Turbo Server and Turbo Fuzzing components.
|
|
|
|
|
|
# Installing Turbo
|
|
|
|
... | ... | @@ -34,7 +35,11 @@ Stand up the Turbo Service with docker: |
|
|
```
|
|
|
docker run -p 55155:55155 git.zephyr-software.com:4567/allzp/turbo/turbo:latest
|
|
|
```
|
|
|
Note that the `-p 55155:55155` parameter tells Docker to expose the Turbo port so that the Turbo CLI can connect. You may always want to use `--restart unless-stopped` flag to ensure that the container is restarted in the event that your system restarts (e.g., due to a power loss). You may also wish to use `-d` to detach your shell from the docker instance.
|
|
|
Note that the `-p 55155:55155` parameter tells Docker to expose the Turbo port so that the Turbo CLI can connect. You may always want to use `--restart unless-stopped` flag to ensure that the container is restarted in the event that your system restarts (e.g., due to a power loss). You may also wish to use `-d` to detach your shell from the docker instance. For example:
|
|
|
```
|
|
|
docker run -d --restart unless-stopped -p 55155:55155 git.zephyr-software.com:4567/allzp/turbo/turbo:latest
|
|
|
```
|
|
|
|
|
|
|
|
|
## On the fuzzing box
|
|
|
* If you wish to have a custom AFL install, install AFL as noted above. Otherwise, the next step will install AFL automatically. AFL can be installed from source by following the directions on [the AFL website](http://lcamtuf.coredump.cx/afl/), but package-based installation is recommended for most systems:
|
... | ... | @@ -50,11 +55,12 @@ sudo yum install afl |
|
|
```
|
|
|
sudo bash -c "$(curl -fsSL allzp.zephyr-software.io/turbo/cli-install.sh)"
|
|
|
```
|
|
|
Follow the prompts provided by the script.
|
|
|
|
|
|
If you wish to force (re-)install the entire package without user interaction, you can:
|
|
|
```
|
|
|
yes | sudo bash -c "$(curl -fsSL allzp.zephyr-software.io/turbo/cli-install.sh)"
|
|
|
```
|
|
|
* Get started by running `turbo-cli --help` to examine the help screen.
|
|
|
Follow the prompts provided by the script.
|
|
|
|
|
|
And that's it! Turbo is up and ready to use. Check out our page for how to [create and use](Turbo-Tutorial) a *Boost*, Turbo's unit of fuzzing. |