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