Viper is a VI+ API Enhanced Retrieval tool designed to retrieve large datasets from the Kenna API quickly and efficiently.
Pull The Docker Container:
docker pull kennasecurity/viper
Run The Container To Retrieve All Vulnerability Definitions:
docker run -it \
--env VI_Plus_API_Key=YOURAPIKEYHERE \
--env Updated_Since=2000-01-01T00:00:00+0000 \
--env API_Host=api.kennasecurity.com \
--mount type=bind,source="$(pwd)"/data,target=/data \
kennasecurity/viper
Run The Container To Retrieve All Vulnerability Definitions Updated Since A Specific Date:
docker run -it \
--env VI_Plus_API_Key=YOURAPIKEYHERE \
--env Updated_Since=2021-07-01T00:00:00+0000 \
--env API_Host=api.kennasecurity.com \
--mount type=bind,source="$(pwd)"/data,target=/data \
kennasecurity/viper
Run The Container To Retrieve All Vulnerability Definitions in JSON Format Only:
docker run -it \
--env VI_Plus_API_Key=YOURAPIKEYHERE \
--env JSON_Only=1 \
--env API_Host=api.kennasecurity.com \
--mount type=bind,source="$(pwd)"/data,target=/data \
viper
Clone The Repo:
git clone https://github.com/KennaSecurity/Viper
Customize The Python Script:
In the default configuration VIPER will pull all the vulnerability definitions from the VI+ database and save them in both a JSON(L) file and a CSV.
You can comment out either of the following lines to limit the output to only the one you need:
df.to_json(r'data/vidata.json', orient='records', lines=True)
df.to_csv(r'data/vidata.csv', index=False)
It is also simple to export this data to any of the other formats that Pandas has a library for that would be useful in your environment.
Build The Container:
docker build . -t viper
Run The Container To Retrieve All Vulnerability Definitions:
docker run -it \
--env VI_Plus_API_Key=YOURAPIKEYHERE \
--env Updated_Since=2000-01-01T00:00:00+0000 \
--env API_Host=api.kennasecurity.com \
--mount type=bind,source="$(pwd)"/data,target=/data \
viper
Run The Container To Retrieve All Vulnerability Definitions Updated Since A Specific Date:
docker run -it \
--env VI_Plus_API_Key=YOURAPIKEYHERE \
--env Updated_Since=2021-07-01T00:00:00+0000 \
--env API_Host=api.kennasecurity.com \
--mount type=bind,source="$(pwd)"/data,target=/data \
viper
- You will need to set the API to match your host as described here. It will default to the base API of api.kennasecurity.com.
- A full run pulls over 200,000 vulnerability definitions and takes around 90 minutes to complete.
- Output size of the JSON and CSV will be over 1GB.