GaloisInc / TAMBA

GNU General Public License v3.0
1 stars 0 forks source link

Testing And Measuring of Brandeis Artifacts

Installation

Installation is fairly straightforward. If you find that it's not, it's a bug and report it to jmct@galois.com or create an issue on github.

First there are a few dependencies:

Once you have those installed, it should just be a simple matter of running vagrant up from the root of this repository.

Using Vagrant

The first time you run vagrant up vagrant will download the appropriate Debian image and install the necessary software (including OCaml, PPL, LattE, etc.). Some things require building from source and therefore this initial provisioning can take quite a while (around 30 minutes on my machine).

Part of running vagrant up is a provisioning step where vagrant uses ansible to install all of the necessary software on the VM. If anything fails during this step please email jmct@galois.com with as much log information as you have available.

After the VM has been provisioned you'll be able to ssh into the VM using vagrant ssh. Once logged in you'll be in a standard Linux install with all of the necessary software for TAMBA. The VM will be sharing the root of this repo so any changes you make will reflect both in the VM and on the host machine. This way you can edit in your preferred editor on your host machine and run any software in the VM. The repo's directory is mounted at /vagrant/ in the VM.

When you want stop using the VM you can run vagrant suspend. Which will take a snapshot of the VM and stop your virtual machine host. Executing vagrant up in the root of this repo will restart the VM using the last snapshot so you will be right where you left off (and vagrant is smart enough to avoid reinstalling everything).

Lastly, if we do change any part of the provisioning (for example, we switch to a newer version of OCaml) you just need to run vagrant provision and it will make the necessary changes without reinstalling anything it doesn't need to.

What is where

The tool of interest to most people is the prob tool which is installed by default on the VM. The source for the tool can be found in this directory under code/prob, and from within the VM at /vagrant/code/prob.

Proof of concept implementations of other metrics can be found in code/MILGF and code/R.

code/coalition-examples has input queries for use with the prob tool based on the coalition CRT scenarios from the Brandeis project.

The computation directory holds some mathematica notebooks that illustrate how one would analyze information leakage for simple SQL queries by hand.

Repo Conventions

Our two main branches will be 'master' and 'dev'. Let's try to ensure that 'master' is always building and working (modulo unknown bugs). You are welcome and encouraged to create your own branches and push them to github. When you want to share what you're working on with the rest of us just make a pull request onto 'dev' on github.