Surfactant can be used to gather information from a set of files to generate an SBOM, along with manipulating SBOMs and analyzing the information in them.
It pulls information from recognized file types (such as PE, ELF, or MSI files) contained within a directory structure corresponding to an extracted software package.
By default, the information is “surface-level” metadata contained in the files that does not require running the files or decompilation.
Installation
For Users:
- Create a virtual environment with python >= 3.8 [Optional, but recommended]
python -m venv cytrics_venv
source cytrics_venv/bin/activate
2. Install Surfactant with pip
pip install surfactant
For Developers:
- Create a virtual environment with python >= 3.8 [Optional, but recommended]
python -m venv cytrics_venv
source cytrics_venv/bin/activate
2. Clone sbom-surfactant
git clone git@github.com:LLNL/Surfactant.git
3. Create an editable surfactant install (changes to code will take effect immediately):
pip install -e .
To install optional dependencies required for running pytest and pre-commit:
pip install -e ".[test,dev]"
For more information click here.