/USBleach

🚒 Don't let threats reach your machines — USB Mass Storage Gateway

Primary LanguageLuaMIT LicenseMIT

USBleach

This OpenWRT package is a USB firewall between your corporate infrastructure and the public domain.

Build Status

DISCLAIMER - THIS IS STILL A WORK IN PROGRESS

Let's say you work for a serious company, with strict policies and periodic audits. One of your partners puts an important file on his USB stick and wants to share it with you.

Three options are available to you:

  • (BAD) plug the stick on your desk, bypassing the policies
  • (GOOD) give the stick to your IT department so that they can sanitize it
  • (BETTER) plug it into an OpenWRT sandbox with USBleach, use your web browser to pick-up the files

USBleach's objectives

The one and only goal of this project is to bring back the simplicity of USB's file sharing feature, without the flaws.

We considered multiple attacks using USB keys, not all of them are in the scope of this project:

  • Physical threats: depends on your hardware, can't be done with soft.
  • Mass Storage: we detect bad files and we either sanitize them when we can, or we prevent them from being used.
  • Everything else is assumed safe enough to be used on your desktop, but plugging anything else than an USB stick will warn you.

Using this scheme, Bash Bunny, Rubber Ducky, O.MG Cable and BadUSB are blocked: if they "look like" USB keys but are not, you know something is odd.

Installation

This project is bundled into an .ipk package, that you can install directly on your OpenWRT box.

USBleach depends on yara, so be sure to install it too.

If you're using a raw OpenWRT:

To Be Done

If you're using an OverTheBox:

$ wget https://github.com/docbleach/USBleach/releases/download/v0.4.12/usbleach_0.6-1_all.ipk
$ opkg install usbleach_0.6-1_all.ipk

Get the sources

    git clone https://github.com/docbleach/USBleach.git
    cd usbleach
    # Start hacking

You have developed a cool new feature ? Fixed an annoying bug ? We would be happy to hear from you !

Configure

Edit the file ./luasrc/usbleach/modules/email.lua to set the right domains:

local DEFAULT_DOMAIN = "@gmail.com"
local SMTP_HOST = "your_smtp_server.com"