# ag_gen: Attack Graph Generation System ## Installation ### Dependencies Run the `deps.sh` command to install necessary dependencies. This script supports debian based systems and Mac OSX (with homebrew) ### PostgreSQL #### Create a user Use the createuser and createdb scripts to create the necessary account and database in PostgreSQL. createuser -d -l -P ag_gen createdb -O ag_gen ag_gen #### Populate the database Use the `db_manage.sh` utility to populate the database (this will overwrite anything in the `ag_gen` database). An example use of this is: ./db_manage.sh -d ag_gen #### Add PSQL users and alter permissions Log in to the Postgres user sudo su postgres Then connect to the PSQL terminal psql Now create the user and adjust permissions CREATE USER ag_gen; ALTER USER ag_gen WITH SUPERUSER; ALTER USER ag_gen WITH login; ALTER USER ag_gen WITH ENCRYPTED PASSWORD '8PZQc79NUZ3FjqSB'; Repeat, using root and your local user name in place of the ag gen user. Note, if you change the password, be sure to change the passwords in the config.ini files. ## Building This application uses CMake to build. mkdir build cd build For debug builds: cmake -DCMAKE_BUILD_TYPE=Debug ../ For release builds: cmake -DCMAKE_BUILD_TYPE=Release ../ Build the application: make ag_gen ## Configuration RAGE uses an ini-style configuration, located in config.ini. - name: name of the database - host: IP or hostname of the database server - port: port number of the database server - username: database user name - password (optional): database password ## Running Execute example from the examples directory. ./ag_gen -n ../examples/thesis_example.nm -x ../examples/thesis_example.xp ## Contributing ### Editorconfig When contributing code, please install the "editorconfig" plugin for your text editor. - Adds extra newline to end of file if not already there. - Removes whitespace at end of lines - Automatically sets indentation to tabs set to 4 spaces ======= # ag_gen C++ Attack Graph Generation >>>>>>> 64be5b8cb4634d7857f4a593a3e5abf0fe968819