-
Notifications
You must be signed in to change notification settings - Fork 78
Requirements
This page lists the requirements for setting up SPADE on various operating systems. In all cases, the Open Java Development Kit (OpenJDK 21) is required to compile SPADE. This can be downloaded from OpenJDK. Installation instructions for different platforms are given below.
Ubuntu
On Ubuntu 24.04, the JDK can be installed with:
sudo apt-get install -y openjdk-21-jdk
In addition to the JDK, building SPADE requires that you have Git installed on your system. It is used to download the source files for compilation. You will also need autoconf and automake to drive the build, Linux Audit, FUSE, lsof, and uthash. On Ubuntu, all of these can be installed via the following command:
sudo apt-get install -y auditd autoconf automake bison clang cmake curl flex fuse git ifupdown libaudit-dev libfuse-dev linux-headers-`uname -r` lsof maven pkg-config unzip uthash-dev wget
Fedora
For Fedora 43, use the following commands to install the JDK:
sudo dnf install -y java-21-openjdk-devel
Other dependencies can be installed with:
sudo dnf install -y audit audispd-plugins autoconf automake bison clang cmake curl flex fuse-devel fuse-libs git iptables kernel-devel-`uname -r` lsof maven unzip uthash-devel wget
For macOS, the following commands can be used to install the JDK (if no other JDK already present):
# For Apple silicon
curl -L -o OpenJDK21U-jdk_aarch64_mac_hotspot_21.0.11_10.tar.gz 'https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.11+10/OpenJDK21U-jdk_aarch64_mac_hotspot_21.0.11_10.tar.gz'
tar -zxvf OpenJDK21U-jdk_aarch64_mac_hotspot_21.0.11_10.tar.gz
sudo mv jdk-21.0.11+10 /Library/Java/JavaVirtualMachines/
# For Intel
curl -L -o OpenJDK21U-jdk_x64_mac_hotspot_21.0.11_10.tar.gz 'https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.11+10/OpenJDK21U-jdk_x64_mac_hotspot_21.0.11_10.tar.gz'
tar -zxvf OpenJDK21U-jdk_x64_mac_hotspot_21.0.11_10.tar.gz
sudo mv jdk-21.0.11+10 /Library/Java/JavaVirtualMachines/
If you are using macOS, you will need Git to retrieve the SPADE source files, and autoconf and automake to drive the build.
Fuse4X is required, unless you already have MacFUSE installed.
Using MacPorts, you can install the required packages with the following command:
sudo port install autoconf automake git fuse4x pkgconfig
Alternatively, you can use Brew to install the required package with:
brew install autoconf automake git maven pkgconfig Caskroom/cask/osxfuse
To use the ProcMon reporter for Windows, you will need to download and install Process Monitor.
WSL
On Windows, SPADE can be installed using WSL. Select the Ubuntu distribution. Then install the JDK with:
sudo apt-get install openjdk-21-jdk
Building SPADE also requires Git to be installed. It is used to download the source files for compilation. Further, uthash is also needed. In an Ubuntu shell, these can be installed with:
sudo apt-get install git maven pkg-config uthash-dev
Cygwin
Alternatively, SPADE can be installed using Cygwin. Detailed instructions on setting up Cygwin can be found on its homepage. The following Cygwin packages are required:
-
gcc(under theDevelcategory) -
gcc-core(under theDevelcategory) -
make(under theDevelcategory) -
nano(under theEditorscategory) -
git(under theDevelcategory) -
tar(under theBasecategory) -
unzip(under theArchivecategory) -
wget(under theWebcategory)
Download and install maven using Cygwin:
# Open Cygwin bash
# Go to user home.
cd "${HOME}"
# Download official maven version.
wget https://dlcdn.apache.org/maven/maven-3/3.9.15/binaries/apache-maven-3.9.15-bin.zip
# Unzip. The directory apache-maven-3.9.15 will be created in the current directory.
unzip apache-maven-3.9.15-bin.zip
# Update Cygwin bash PATH to add maven.
echo 'export PATH="${HOME}/apache-maven-3.9.15/bin:${PATH}"' >> ${HOME}/.bash_profile
# Restart Cygwin bash
# Check if mvn is available
which mvn
# For more detailed instructions, please see Maven's official page: https://maven.apache.org/install.html.
This material is based upon work supported by the National Science Foundation under Grants OCI-0722068, IIS-1116414, and ACI-1547467. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.
- Setting up SPADE
- Storing provenance
-
Collecting provenance
- Across the operating system
- Limiting collection to a part of the filesystem
- From an external application
- With compile-time instrumentation
- Using the reporting API
- Of transactions in the Bitcoin blockchain
- Filtering provenance
- Viewing provenance
-
Querying SPADE
- Illustrative example
- Transforming query responses
- Protecting query responses
- Miscellaneous