ALPACA: A tool for building dynamic cyber ranges from procedurally-generated vulnerability lattices
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
DDownloader
ansible Added http files and edited Vagrantfile to work for 2 VMs Oct 19, 2018
devops_scripts
graph_drawing
jdbc change name to match with database Nov 16, 2018
web
.gitignore .properties added to gitignore Nov 16, 2018
LICENSE Created MIT License file May 7, 2018
README.md
Vagrantfile Updated createRangeFromIGS and greateStartRangeFromIGS Nov 15, 2018
alpaca.pl
alpaca_http_api.pl
alpaca_tests.pl
ansible.cfg
api_examples.sh Updated createRangeFromIGS and greateStartRangeFromIGS Nov 15, 2018
cliques.pl File that finds all unique cliques given graph. Nov 16, 2018
httpd.log Updated createRangeFromIGS and greateStartRangeFromIGS Nov 15, 2018
logo.png Added README and logo Sep 19, 2017
main.pl Updated createRangeFromIGS and greateStartRangeFromIGS Nov 15, 2018
vuln.sql Updated vuln database Nov 8, 2018
vulnDatabase.pl

README.md

ALPACA: BUILDING DYNAMIC CYBER RANGES WITH PROCEDURALLY-GENERATED VULNERABILITY LATTICES

Logo

Running Alpaca

Prolog

Run main.pl to find/generate lattices and create ansible files

swipl main.pl predicate args

Examples:

Generate full lattice showing all possible paths

swipl main.pl allPossiblePaths

Find all possible paths for scenario, group paths by compatible configurations, and separate into different directories.

Directories include:

  • Lattice
  • Variable file (contains configurations)
  • playbook.yml
swipl main.pl createAllPaths '[Goal]' '[InitialState]' 'Name'
swipl main.pl createAllPaths '[server_access_root]' '[]' 'server_access_root'

Select which scenario you want to create and instantiate the cyber range.

swipl main.pl createRange 'Directory_Name'
swipl main.pl createRange 'server_access_root1'