From 060cdca443a0bf15074179ee2febcf1d32489200 Mon Sep 17 00:00:00 2001 From: noah Date: Thu, 23 Mar 2023 00:07:50 -0500 Subject: [PATCH] Adding DMCA example files --- CG_Files/Employee_A/dmca.nm | 16 ++++ CG_Files/Employee_A/dmca.xp | 27 +++++++ CG_Files/Employee_A/sync_dmca.xp | 12 +++ CG_Files/Employee_AB/dmca.nm | 28 +++++++ CG_Files/Employee_AB/dmca.xp | 118 +++++++++++++++++++++++++++++ CG_Files/Employee_AB/sync_dmca.xp | 27 +++++++ CG_Files/Employee_ABC/dmca.nm | 46 +++++++++++ CG_Files/Employee_ABC/dmca.xp | 118 +++++++++++++++++++++++++++++ CG_Files/Employee_ABC/sync_dmca.xp | 48 ++++++++++++ CG_Files/Employee_B/dmca.nm | 18 +++++ CG_Files/Employee_B/dmca.xp | 35 +++++++++ CG_Files/Employee_B/sync_dmca.xp | 14 ++++ CG_Files/Employee_BC/dmca.nm | 36 +++++++++ CG_Files/Employee_BC/dmca.xp | 90 ++++++++++++++++++++++ CG_Files/Employee_BC/sync_dmca.xp | 35 +++++++++ CG_Files/Employee_C/dmca.nm | 24 ++++++ CG_Files/Employee_C/dmca.xp | 55 ++++++++++++++ CG_Files/Employee_C/sync_dmca.xp | 20 +++++ CG_Files/ag_run.sh | 27 +++++++ CG_Files/run.sh | 68 +++++++++++++++++ CG_Files/sync_data_col.sh | 74 ++++++++++++++++++ 21 files changed, 936 insertions(+) create mode 100644 CG_Files/Employee_A/dmca.nm create mode 100644 CG_Files/Employee_A/dmca.xp create mode 100644 CG_Files/Employee_A/sync_dmca.xp create mode 100644 CG_Files/Employee_AB/dmca.nm create mode 100644 CG_Files/Employee_AB/dmca.xp create mode 100644 CG_Files/Employee_AB/sync_dmca.xp create mode 100644 CG_Files/Employee_ABC/dmca.nm create mode 100644 CG_Files/Employee_ABC/dmca.xp create mode 100644 CG_Files/Employee_ABC/sync_dmca.xp create mode 100644 CG_Files/Employee_B/dmca.nm create mode 100644 CG_Files/Employee_B/dmca.xp create mode 100644 CG_Files/Employee_B/sync_dmca.xp create mode 100644 CG_Files/Employee_BC/dmca.nm create mode 100644 CG_Files/Employee_BC/dmca.xp create mode 100644 CG_Files/Employee_BC/sync_dmca.xp create mode 100644 CG_Files/Employee_C/dmca.nm create mode 100644 CG_Files/Employee_C/dmca.xp create mode 100644 CG_Files/Employee_C/sync_dmca.xp create mode 100755 CG_Files/ag_run.sh create mode 100755 CG_Files/run.sh create mode 100755 CG_Files/sync_data_col.sh diff --git a/CG_Files/Employee_A/dmca.nm b/CG_Files/Employee_A/dmca.nm new file mode 100644 index 0000000..a1a13db --- /dev/null +++ b/CG_Files/Employee_A/dmca.nm @@ -0,0 +1,16 @@ +network model = + assets: + torrent_prog_A; + illicit_sw_A_1; + illicit_sw_A_2; + illicit_sw_A_3; + + facts: + quality:torrent_prog_A,is_installed=true; + + quality:illicit_sw_A_1,is_installed=true; + quality:illicit_sw_A_2,is_installed=true; + quality:illicit_sw_A_3,is_installed=true; + + topology:illicit_sw_A_1->illicit_sw_A_2,org; +. diff --git a/CG_Files/Employee_A/dmca.xp b/CG_Files/Employee_A/dmca.xp new file mode 100644 index 0000000..90452f9 --- /dev/null +++ b/CG_Files/Employee_A/dmca.xp @@ -0,0 +1,27 @@ +exploit remove_torrent_prog_A(torrent_prog)= + preconditions: + quality:torrent_prog_A,is_installed=true; + postconditions: + update quality:torrent_prog_A,is_installed=false; +. + +exploit remove_illicit_sw_A_1(illicit_sw)= + preconditions: + quality:illicit_sw_A_1,is_installed=true; + postconditions: + update quality:illicit_sw_A_1,is_installed=false; +. + +exploit remove_illicit_sw_A_2(illicit_sw)= + preconditions: + quality:illicit_sw_A_2,is_installed=true; + postconditions: + update quality:illicit_sw_A_2,is_installed=false; +. + +exploit remove_illicit_sw_A_3(illicit_sw)= + preconditions: + quality:illicit_sw_A_3,is_installed=true; + postconditions: + update quality:illicit_sw_A_3,is_installed=false; +. diff --git a/CG_Files/Employee_A/sync_dmca.xp b/CG_Files/Employee_A/sync_dmca.xp new file mode 100644 index 0000000..08eead8 --- /dev/null +++ b/CG_Files/Employee_A/sync_dmca.xp @@ -0,0 +1,12 @@ +uninstall group exploit remove_all_A(torrent_prog)= + preconditions: + quality:torrent_prog_A,is_installed=true; + quality:illicit_sw_A_1,is_installed=true; + quality:illicit_sw_A_2,is_installed=true; + quality:illicit_sw_A_3,is_installed=true; + postconditions: + update quality:torrent_prog_A,is_installed=false; + update quality:illicit_sw_A_1,is_installed=false; + update quality:illicit_sw_A_2,is_installed=false; + update quality:illicit_sw_A_3,is_installed=false; +. diff --git a/CG_Files/Employee_AB/dmca.nm b/CG_Files/Employee_AB/dmca.nm new file mode 100644 index 0000000..8680980 --- /dev/null +++ b/CG_Files/Employee_AB/dmca.nm @@ -0,0 +1,28 @@ +network model = + assets: + torrent_prog_A; + illicit_sw_A_1; + illicit_sw_A_2; + illicit_sw_A_3; + + torrent_prog_B; + illicit_sw_B_1; + illicit_sw_B_2; + illicit_sw_B_3; + illicit_sw_B_4; + + facts: + quality:torrent_prog_A,is_installed=true; + quality:torrent_prog_B,is_installed=true; + + quality:illicit_sw_A_1,is_installed=true; + quality:illicit_sw_A_2,is_installed=true; + quality:illicit_sw_A_3,is_installed=true; + + quality:illicit_sw_B_1,is_installed=true; + quality:illicit_sw_B_2,is_installed=true; + quality:illicit_sw_B_3,is_installed=true; + quality:illicit_sw_B_4,is_installed=true; + + topology:illicit_sw_B_2->illicit_sw_B_3,org; +. diff --git a/CG_Files/Employee_AB/dmca.xp b/CG_Files/Employee_AB/dmca.xp new file mode 100644 index 0000000..d433489 --- /dev/null +++ b/CG_Files/Employee_AB/dmca.xp @@ -0,0 +1,118 @@ +exploit remove_torrent_prog_A(torrent_prog)= + preconditions: + quality:torrent_prog_A,is_installed=true; + postconditions: + update quality:torrent_prog_A,is_installed=false; +. + +exploit remove_torrent_prog_B(torrent_prog)= + preconditions: + quality:torrent_prog_B,is_installed=true; + postconditions: + update quality:torrent_prog_B,is_installed=false; +. + +exploit remove_torrent_prog_C(torrent_prog)= + preconditions: + quality:torrent_prog_C,is_installed=true; + postconditions: + update quality:torrent_prog_C,is_installed=false; +. + +exploit remove_illicit_sw_A_1(illicit_sw)= + preconditions: + quality:illicit_sw_A_1,is_installed=true; + postconditions: + update quality:illicit_sw_A_1,is_installed=false; +. + +exploit remove_illicit_sw_A_2(illicit_sw)= + preconditions: + quality:illicit_sw_A_2,is_installed=true; + postconditions: + update quality:illicit_sw_A_2,is_installed=false; +. + +exploit remove_illicit_sw_A_3(illicit_sw)= + preconditions: + quality:illicit_sw_A_3,is_installed=true; + postconditions: + update quality:illicit_sw_A_3,is_installed=false; +. + +exploit remove_illicit_sw_B_1(illicit_sw)= + preconditions: + quality:illicit_sw_B_1,is_installed=true; + postconditions: + update quality:illicit_sw_B_1,is_installed=false; +. + +exploit remove_illicit_sw_B_2(illicit_sw)= + preconditions: + quality:illicit_sw_B_2,is_installed=true; + postconditions: + update quality:illicit_sw_B_2,is_installed=false; +. + +exploit remove_illicit_sw_B_3(illicit_sw)= + preconditions: + quality:illicit_sw_B_3,is_installed=true; + postconditions: + update quality:illicit_sw_B_3,is_installed=false; +. + +exploit remove_illicit_sw_B_4(illicit_sw)= + preconditions: + quality:illicit_sw_B_4,is_installed=true; + postconditions: + update quality:illicit_sw_B_4,is_installed=false; +. + +exploit remove_illicit_sw_C_1(illicit_sw)= + preconditions: + quality:illicit_sw_C_1,is_installed=true; + postconditions: + update quality:illicit_sw_C_1,is_installed=false; +. + +exploit remove_illicit_sw_C_2(illicit_sw)= + preconditions: + quality:illicit_sw_C_2,is_installed=true; + postconditions: + update quality:illicit_sw_C_2,is_installed=false; +. + +exploit remove_illicit_sw_C_3(illicit_sw)= + preconditions: + quality:illicit_sw_C_3,is_installed=true; + postconditions: + update quality:illicit_sw_C_3,is_installed=false; +. + +exploit remove_illicit_sw_C_4(illicit_sw)= + preconditions: + quality:illicit_sw_C_4,is_installed=true; + postconditions: + update quality:illicit_sw_C_4,is_installed=false; +. + +exploit remove_illicit_sw_C_5(illicit_sw)= + preconditions: + quality:illicit_sw_C_5,is_installed=true; + postconditions: + update quality:illicit_sw_C_5,is_installed=false; +. + +exploit remove_illicit_sw_C_6(illicit_sw)= + preconditions: + quality:illicit_sw_C_6,is_installed=true; + postconditions: + update quality:illicit_sw_C_6,is_installed=false; +. + +exploit remove_illicit_sw_C_7(illicit_sw)= + preconditions: + quality:illicit_sw_C_7,is_installed=true; + postconditions: + update quality:illicit_sw_C_7,is_installed=false; +. diff --git a/CG_Files/Employee_AB/sync_dmca.xp b/CG_Files/Employee_AB/sync_dmca.xp new file mode 100644 index 0000000..6cdca2c --- /dev/null +++ b/CG_Files/Employee_AB/sync_dmca.xp @@ -0,0 +1,27 @@ +uninstall group exploit remove_all_A(torrent_prog)= + preconditions: + quality:torrent_prog_A,is_installed=true; + quality:illicit_sw_A_1,is_installed=true; + quality:illicit_sw_A_2,is_installed=true; + quality:illicit_sw_A_3,is_installed=true; + postconditions: + update quality:torrent_prog_A,is_installed=false; + update quality:illicit_sw_A_1,is_installed=false; + update quality:illicit_sw_A_2,is_installed=false; + update quality:illicit_sw_A_3,is_installed=false; +. + +uninstall group exploit remove_all_B(torrent_prog)= + preconditions: + quality:torrent_prog_B,is_installed=true; + quality:illicit_sw_B_1,is_installed=true; + quality:illicit_sw_B_2,is_installed=true; + quality:illicit_sw_B_3,is_installed=true; + quality:illicit_sw_B_4,is_installed=true; + postconditions: + update quality:torrent_prog_B,is_installed=false; + update quality:illicit_sw_B_1,is_installed=false; + update quality:illicit_sw_B_2,is_installed=false; + update quality:illicit_sw_B_3,is_installed=false; + update quality:illicit_sw_B_4,is_installed=false; +. diff --git a/CG_Files/Employee_ABC/dmca.nm b/CG_Files/Employee_ABC/dmca.nm new file mode 100644 index 0000000..d7a4f39 --- /dev/null +++ b/CG_Files/Employee_ABC/dmca.nm @@ -0,0 +1,46 @@ +network model = + assets: + torrent_prog_A; + illicit_sw_A_1; + illicit_sw_A_2; + illicit_sw_A_3; + + torrent_prog_B; + illicit_sw_B_1; + illicit_sw_B_2; + illicit_sw_B_3; + illicit_sw_B_4; + + torrent_prog_C; + illicit_sw_C_1; + illicit_sw_C_2; + illicit_sw_C_3; + illicit_sw_C_4; + illicit_sw_C_5; + illicit_sw_C_6; + illicit_sw_C_7; + + facts: + quality:torrent_prog_A,is_installed=true; + quality:torrent_prog_B,is_installed=true; + quality:torrent_prog_C,is_installed=true; + + quality:illicit_sw_A_1,is_installed=true; + quality:illicit_sw_A_2,is_installed=true; + quality:illicit_sw_A_3,is_installed=true; + + quality:illicit_sw_B_1,is_installed=true; + quality:illicit_sw_B_2,is_installed=true; + quality:illicit_sw_B_3,is_installed=true; + quality:illicit_sw_B_4,is_installed=true; + + quality:illicit_sw_C_1,is_installed=true; + quality:illicit_sw_C_2,is_installed=true; + quality:illicit_sw_C_3,is_installed=true; + quality:illicit_sw_C_4,is_installed=true; + quality:illicit_sw_C_5,is_installed=true; + quality:illicit_sw_C_6,is_installed=true; + quality:illicit_sw_C_7,is_installed=true; + + topology:illicit_sw_C_6->illicit_sw_C_7,org; +. diff --git a/CG_Files/Employee_ABC/dmca.xp b/CG_Files/Employee_ABC/dmca.xp new file mode 100644 index 0000000..d433489 --- /dev/null +++ b/CG_Files/Employee_ABC/dmca.xp @@ -0,0 +1,118 @@ +exploit remove_torrent_prog_A(torrent_prog)= + preconditions: + quality:torrent_prog_A,is_installed=true; + postconditions: + update quality:torrent_prog_A,is_installed=false; +. + +exploit remove_torrent_prog_B(torrent_prog)= + preconditions: + quality:torrent_prog_B,is_installed=true; + postconditions: + update quality:torrent_prog_B,is_installed=false; +. + +exploit remove_torrent_prog_C(torrent_prog)= + preconditions: + quality:torrent_prog_C,is_installed=true; + postconditions: + update quality:torrent_prog_C,is_installed=false; +. + +exploit remove_illicit_sw_A_1(illicit_sw)= + preconditions: + quality:illicit_sw_A_1,is_installed=true; + postconditions: + update quality:illicit_sw_A_1,is_installed=false; +. + +exploit remove_illicit_sw_A_2(illicit_sw)= + preconditions: + quality:illicit_sw_A_2,is_installed=true; + postconditions: + update quality:illicit_sw_A_2,is_installed=false; +. + +exploit remove_illicit_sw_A_3(illicit_sw)= + preconditions: + quality:illicit_sw_A_3,is_installed=true; + postconditions: + update quality:illicit_sw_A_3,is_installed=false; +. + +exploit remove_illicit_sw_B_1(illicit_sw)= + preconditions: + quality:illicit_sw_B_1,is_installed=true; + postconditions: + update quality:illicit_sw_B_1,is_installed=false; +. + +exploit remove_illicit_sw_B_2(illicit_sw)= + preconditions: + quality:illicit_sw_B_2,is_installed=true; + postconditions: + update quality:illicit_sw_B_2,is_installed=false; +. + +exploit remove_illicit_sw_B_3(illicit_sw)= + preconditions: + quality:illicit_sw_B_3,is_installed=true; + postconditions: + update quality:illicit_sw_B_3,is_installed=false; +. + +exploit remove_illicit_sw_B_4(illicit_sw)= + preconditions: + quality:illicit_sw_B_4,is_installed=true; + postconditions: + update quality:illicit_sw_B_4,is_installed=false; +. + +exploit remove_illicit_sw_C_1(illicit_sw)= + preconditions: + quality:illicit_sw_C_1,is_installed=true; + postconditions: + update quality:illicit_sw_C_1,is_installed=false; +. + +exploit remove_illicit_sw_C_2(illicit_sw)= + preconditions: + quality:illicit_sw_C_2,is_installed=true; + postconditions: + update quality:illicit_sw_C_2,is_installed=false; +. + +exploit remove_illicit_sw_C_3(illicit_sw)= + preconditions: + quality:illicit_sw_C_3,is_installed=true; + postconditions: + update quality:illicit_sw_C_3,is_installed=false; +. + +exploit remove_illicit_sw_C_4(illicit_sw)= + preconditions: + quality:illicit_sw_C_4,is_installed=true; + postconditions: + update quality:illicit_sw_C_4,is_installed=false; +. + +exploit remove_illicit_sw_C_5(illicit_sw)= + preconditions: + quality:illicit_sw_C_5,is_installed=true; + postconditions: + update quality:illicit_sw_C_5,is_installed=false; +. + +exploit remove_illicit_sw_C_6(illicit_sw)= + preconditions: + quality:illicit_sw_C_6,is_installed=true; + postconditions: + update quality:illicit_sw_C_6,is_installed=false; +. + +exploit remove_illicit_sw_C_7(illicit_sw)= + preconditions: + quality:illicit_sw_C_7,is_installed=true; + postconditions: + update quality:illicit_sw_C_7,is_installed=false; +. diff --git a/CG_Files/Employee_ABC/sync_dmca.xp b/CG_Files/Employee_ABC/sync_dmca.xp new file mode 100644 index 0000000..1dbd6fc --- /dev/null +++ b/CG_Files/Employee_ABC/sync_dmca.xp @@ -0,0 +1,48 @@ +uninstall group exploit remove_all_A(torrent_prog)= + preconditions: + quality:torrent_prog_A,is_installed=true; + quality:illicit_sw_A_1,is_installed=true; + quality:illicit_sw_A_2,is_installed=true; + quality:illicit_sw_A_3,is_installed=true; + postconditions: + update quality:torrent_prog_A,is_installed=false; + update quality:illicit_sw_A_1,is_installed=false; + update quality:illicit_sw_A_2,is_installed=false; + update quality:illicit_sw_A_3,is_installed=false; +. + +uninstall group exploit remove_all_B(torrent_prog)= + preconditions: + quality:torrent_prog_B,is_installed=true; + quality:illicit_sw_B_1,is_installed=true; + quality:illicit_sw_B_2,is_installed=true; + quality:illicit_sw_B_3,is_installed=true; + quality:illicit_sw_B_4,is_installed=true; + postconditions: + update quality:torrent_prog_B,is_installed=false; + update quality:illicit_sw_B_1,is_installed=false; + update quality:illicit_sw_B_2,is_installed=false; + update quality:illicit_sw_B_3,is_installed=false; + update quality:illicit_sw_B_4,is_installed=false; +. + +uninstall group exploit remove_all_C(torrent_prog)= + preconditions: + quality:torrent_prog_C,is_installed=true; + quality:illicit_sw_C_1,is_installed=true; + quality:illicit_sw_C_2,is_installed=true; + quality:illicit_sw_C_3,is_installed=true; + quality:illicit_sw_C_4,is_installed=true; + quality:illicit_sw_C_5,is_installed=true; + quality:illicit_sw_C_6,is_installed=true; + quality:illicit_sw_C_7,is_installed=true; + postconditions: + update quality:torrent_prog_C,is_installed=false; + update quality:illicit_sw_C_1,is_installed=false; + update quality:illicit_sw_C_2,is_installed=false; + update quality:illicit_sw_C_3,is_installed=false; + update quality:illicit_sw_C_4,is_installed=false; + update quality:illicit_sw_C_5,is_installed=false; + update quality:illicit_sw_C_6,is_installed=false; + update quality:illicit_sw_C_7,is_installed=false; +. diff --git a/CG_Files/Employee_B/dmca.nm b/CG_Files/Employee_B/dmca.nm new file mode 100644 index 0000000..dd65ced --- /dev/null +++ b/CG_Files/Employee_B/dmca.nm @@ -0,0 +1,18 @@ +network model = + assets: + torrent_prog_B; + illicit_sw_B_1; + illicit_sw_B_2; + illicit_sw_B_3; + illicit_sw_B_4; + + facts: + quality:torrent_prog_B,is_installed=true; + + quality:illicit_sw_B_1,is_installed=true; + quality:illicit_sw_B_2,is_installed=true; + quality:illicit_sw_B_3,is_installed=true; + quality:illicit_sw_B_4,is_installed=true; + + topology:illicit_sw_B_2->illicit_sw_B_3,org; +. diff --git a/CG_Files/Employee_B/dmca.xp b/CG_Files/Employee_B/dmca.xp new file mode 100644 index 0000000..a72fce0 --- /dev/null +++ b/CG_Files/Employee_B/dmca.xp @@ -0,0 +1,35 @@ +exploit remove_torrent_prog_B(torrent_prog)= + preconditions: + quality:torrent_prog_B,is_installed=true; + postconditions: + update quality:torrent_prog_B,is_installed=false; +. + +exploit remove_illicit_sw_B_1(illicit_sw)= + preconditions: + quality:illicit_sw_B_1,is_installed=true; + postconditions: + update quality:illicit_sw_B_1,is_installed=false; +. + +exploit remove_illicit_sw_B_2(illicit_sw)= + preconditions: + quality:illicit_sw_B_2,is_installed=true; + postconditions: + update quality:illicit_sw_B_2,is_installed=false; +. + +exploit remove_illicit_sw_B_3(illicit_sw)= + preconditions: + quality:illicit_sw_B_3,is_installed=true; + postconditions: + update quality:illicit_sw_B_3,is_installed=false; +. + +exploit remove_illicit_sw_B_4(illicit_sw)= + preconditions: + quality:illicit_sw_B_4,is_installed=true; + postconditions: + update quality:illicit_sw_B_4,is_installed=false; +. + diff --git a/CG_Files/Employee_B/sync_dmca.xp b/CG_Files/Employee_B/sync_dmca.xp new file mode 100644 index 0000000..afdf1cf --- /dev/null +++ b/CG_Files/Employee_B/sync_dmca.xp @@ -0,0 +1,14 @@ +uninstall group exploit remove_all_B(torrent_prog)= + preconditions: + quality:torrent_prog_B,is_installed=true; + quality:illicit_sw_B_1,is_installed=true; + quality:illicit_sw_B_2,is_installed=true; + quality:illicit_sw_B_3,is_installed=true; + quality:illicit_sw_B_4,is_installed=true; + postconditions: + update quality:torrent_prog_B,is_installed=false; + update quality:illicit_sw_B_1,is_installed=false; + update quality:illicit_sw_B_2,is_installed=false; + update quality:illicit_sw_B_3,is_installed=false; + update quality:illicit_sw_B_4,is_installed=false; +. diff --git a/CG_Files/Employee_BC/dmca.nm b/CG_Files/Employee_BC/dmca.nm new file mode 100644 index 0000000..c4d898b --- /dev/null +++ b/CG_Files/Employee_BC/dmca.nm @@ -0,0 +1,36 @@ +network model = + assets: + torrent_prog_B; + illicit_sw_B_1; + illicit_sw_B_2; + illicit_sw_B_3; + illicit_sw_B_4; + + torrent_prog_C; + illicit_sw_C_1; + illicit_sw_C_2; + illicit_sw_C_3; + illicit_sw_C_4; + illicit_sw_C_5; + illicit_sw_C_6; + illicit_sw_C_7; + + facts: + quality:torrent_prog_B,is_installed=true; + quality:torrent_prog_C,is_installed=true; + + quality:illicit_sw_B_1,is_installed=true; + quality:illicit_sw_B_2,is_installed=true; + quality:illicit_sw_B_3,is_installed=true; + quality:illicit_sw_B_4,is_installed=true; + + quality:illicit_sw_C_1,is_installed=true; + quality:illicit_sw_C_2,is_installed=true; + quality:illicit_sw_C_3,is_installed=true; + quality:illicit_sw_C_4,is_installed=true; + quality:illicit_sw_C_5,is_installed=true; + quality:illicit_sw_C_6,is_installed=true; + quality:illicit_sw_C_7,is_installed=true; + + topology:illicit_sw_C_6->illicit_sw_C_7,org; +. diff --git a/CG_Files/Employee_BC/dmca.xp b/CG_Files/Employee_BC/dmca.xp new file mode 100644 index 0000000..77a02b0 --- /dev/null +++ b/CG_Files/Employee_BC/dmca.xp @@ -0,0 +1,90 @@ +exploit remove_torrent_prog_B(torrent_prog)= + preconditions: + quality:torrent_prog_B,is_installed=true; + postconditions: + update quality:torrent_prog_B,is_installed=false; +. + +exploit remove_torrent_prog_C(torrent_prog)= + preconditions: + quality:torrent_prog_C,is_installed=true; + postconditions: + update quality:torrent_prog_C,is_installed=false; +. + +exploit remove_illicit_sw_B_1(illicit_sw)= + preconditions: + quality:illicit_sw_B_1,is_installed=true; + postconditions: + update quality:illicit_sw_B_1,is_installed=false; +. + +exploit remove_illicit_sw_B_2(illicit_sw)= + preconditions: + quality:illicit_sw_B_2,is_installed=true; + postconditions: + update quality:illicit_sw_B_2,is_installed=false; +. + +exploit remove_illicit_sw_B_3(illicit_sw)= + preconditions: + quality:illicit_sw_B_3,is_installed=true; + postconditions: + update quality:illicit_sw_B_3,is_installed=false; +. + +exploit remove_illicit_sw_B_4(illicit_sw)= + preconditions: + quality:illicit_sw_B_4,is_installed=true; + postconditions: + update quality:illicit_sw_B_4,is_installed=false; +. + +exploit remove_illicit_sw_C_1(illicit_sw)= + preconditions: + quality:illicit_sw_C_1,is_installed=true; + postconditions: + update quality:illicit_sw_C_1,is_installed=false; +. + +exploit remove_illicit_sw_C_2(illicit_sw)= + preconditions: + quality:illicit_sw_C_2,is_installed=true; + postconditions: + update quality:illicit_sw_C_2,is_installed=false; +. + +exploit remove_illicit_sw_C_3(illicit_sw)= + preconditions: + quality:illicit_sw_C_3,is_installed=true; + postconditions: + update quality:illicit_sw_C_3,is_installed=false; +. + +exploit remove_illicit_sw_C_4(illicit_sw)= + preconditions: + quality:illicit_sw_C_4,is_installed=true; + postconditions: + update quality:illicit_sw_C_4,is_installed=false; +. + +exploit remove_illicit_sw_C_5(illicit_sw)= + preconditions: + quality:illicit_sw_C_5,is_installed=true; + postconditions: + update quality:illicit_sw_C_5,is_installed=false; +. + +exploit remove_illicit_sw_C_6(illicit_sw)= + preconditions: + quality:illicit_sw_C_6,is_installed=true; + postconditions: + update quality:illicit_sw_C_6,is_installed=false; +. + +exploit remove_illicit_sw_C_7(illicit_sw)= + preconditions: + quality:illicit_sw_C_7,is_installed=true; + postconditions: + update quality:illicit_sw_C_7,is_installed=false; +. diff --git a/CG_Files/Employee_BC/sync_dmca.xp b/CG_Files/Employee_BC/sync_dmca.xp new file mode 100644 index 0000000..b9f77f3 --- /dev/null +++ b/CG_Files/Employee_BC/sync_dmca.xp @@ -0,0 +1,35 @@ +uninstall group exploit remove_all_B(torrent_prog)= + preconditions: + quality:torrent_prog_B,is_installed=true; + quality:illicit_sw_B_1,is_installed=true; + quality:illicit_sw_B_2,is_installed=true; + quality:illicit_sw_B_3,is_installed=true; + quality:illicit_sw_B_4,is_installed=true; + postconditions: + update quality:torrent_prog_B,is_installed=false; + update quality:illicit_sw_B_1,is_installed=false; + update quality:illicit_sw_B_2,is_installed=false; + update quality:illicit_sw_B_3,is_installed=false; + update quality:illicit_sw_B_4,is_installed=false; +. + +uninstall group exploit remove_all_C(torrent_prog)= + preconditions: + quality:torrent_prog_C,is_installed=true; + quality:illicit_sw_C_1,is_installed=true; + quality:illicit_sw_C_2,is_installed=true; + quality:illicit_sw_C_3,is_installed=true; + quality:illicit_sw_C_4,is_installed=true; + quality:illicit_sw_C_5,is_installed=true; + quality:illicit_sw_C_6,is_installed=true; + quality:illicit_sw_C_7,is_installed=true; + postconditions: + update quality:torrent_prog_C,is_installed=false; + update quality:illicit_sw_C_1,is_installed=false; + update quality:illicit_sw_C_2,is_installed=false; + update quality:illicit_sw_C_3,is_installed=false; + update quality:illicit_sw_C_4,is_installed=false; + update quality:illicit_sw_C_5,is_installed=false; + update quality:illicit_sw_C_6,is_installed=false; + update quality:illicit_sw_C_7,is_installed=false; +. diff --git a/CG_Files/Employee_C/dmca.nm b/CG_Files/Employee_C/dmca.nm new file mode 100644 index 0000000..5fd7d74 --- /dev/null +++ b/CG_Files/Employee_C/dmca.nm @@ -0,0 +1,24 @@ +network model = + assets: + torrent_prog_C; + illicit_sw_C_1; + illicit_sw_C_2; + illicit_sw_C_3; + illicit_sw_C_4; + illicit_sw_C_5; + illicit_sw_C_6; + illicit_sw_C_7; + + facts: + quality:torrent_prog_C,is_installed=true; + + quality:illicit_sw_C_1,is_installed=true; + quality:illicit_sw_C_2,is_installed=true; + quality:illicit_sw_C_3,is_installed=true; + quality:illicit_sw_C_4,is_installed=true; + quality:illicit_sw_C_5,is_installed=true; + quality:illicit_sw_C_6,is_installed=true; + quality:illicit_sw_C_7,is_installed=true; + + topology:illicit_sw_C_6->illicit_sw_C_7,org; +. diff --git a/CG_Files/Employee_C/dmca.xp b/CG_Files/Employee_C/dmca.xp new file mode 100644 index 0000000..1dd8961 --- /dev/null +++ b/CG_Files/Employee_C/dmca.xp @@ -0,0 +1,55 @@ +exploit remove_torrent_prog_C(torrent_prog)= + preconditions: + quality:torrent_prog_C,is_installed=true; + postconditions: + update quality:torrent_prog_C,is_installed=false; +. + +exploit remove_illicit_sw_C_1(illicit_sw)= + preconditions: + quality:illicit_sw_C_1,is_installed=true; + postconditions: + update quality:illicit_sw_C_1,is_installed=false; +. + +exploit remove_illicit_sw_C_2(illicit_sw)= + preconditions: + quality:illicit_sw_C_2,is_installed=true; + postconditions: + update quality:illicit_sw_C_2,is_installed=false; +. + +exploit remove_illicit_sw_C_3(illicit_sw)= + preconditions: + quality:illicit_sw_C_3,is_installed=true; + postconditions: + update quality:illicit_sw_C_3,is_installed=false; +. + +exploit remove_illicit_sw_C_4(illicit_sw)= + preconditions: + quality:illicit_sw_C_4,is_installed=true; + postconditions: + update quality:illicit_sw_C_4,is_installed=false; +. + +exploit remove_illicit_sw_C_5(illicit_sw)= + preconditions: + quality:illicit_sw_C_5,is_installed=true; + postconditions: + update quality:illicit_sw_C_5,is_installed=false; +. + +exploit remove_illicit_sw_C_6(illicit_sw)= + preconditions: + quality:illicit_sw_C_6,is_installed=true; + postconditions: + update quality:illicit_sw_C_6,is_installed=false; +. + +exploit remove_illicit_sw_C_7(illicit_sw)= + preconditions: + quality:illicit_sw_C_7,is_installed=true; + postconditions: + update quality:illicit_sw_C_7,is_installed=false; +. diff --git a/CG_Files/Employee_C/sync_dmca.xp b/CG_Files/Employee_C/sync_dmca.xp new file mode 100644 index 0000000..5d87cf9 --- /dev/null +++ b/CG_Files/Employee_C/sync_dmca.xp @@ -0,0 +1,20 @@ +uninstall group exploit remove_all_C(torrent_prog)= + preconditions: + quality:torrent_prog_C,is_installed=true; + quality:illicit_sw_C_1,is_installed=true; + quality:illicit_sw_C_2,is_installed=true; + quality:illicit_sw_C_3,is_installed=true; + quality:illicit_sw_C_4,is_installed=true; + quality:illicit_sw_C_5,is_installed=true; + quality:illicit_sw_C_6,is_installed=true; + quality:illicit_sw_C_7,is_installed=true; + postconditions: + update quality:torrent_prog_C,is_installed=false; + update quality:illicit_sw_C_1,is_installed=false; + update quality:illicit_sw_C_2,is_installed=false; + update quality:illicit_sw_C_3,is_installed=false; + update quality:illicit_sw_C_4,is_installed=false; + update quality:illicit_sw_C_5,is_installed=false; + update quality:illicit_sw_C_6,is_installed=false; + update quality:illicit_sw_C_7,is_installed=false; +. diff --git a/CG_Files/ag_run.sh b/CG_Files/ag_run.sh new file mode 100755 index 0000000..090e85e --- /dev/null +++ b/CG_Files/ag_run.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +#SBATCH --job-name=AGCG_DMCA_Sync +#SBATCH --error=./slurm_reports/job.%J.err +#SBATCH --output=./slurm_reports/job.%J.out +#SBATCH --mem=0 +#SBATCH --exclude=compute02,compute03,compute09 +#SBATCH --export=ALL +#SBATCH --time=180 + +#SBATCH --nodelist=compute10,compute11,compute12,compute07,compute08,compute04,compute05,compute01 + +export LD_LIBRARY_PATH=/home/nschrick/pkg/postgresql/13.4/lib + +MPIEXEC_TIMEOUT=129600 + +#Argument for running test batches +DBNAME=${1:-tmp} +ESIZE=${2:-A} + +module load graphviz +module load gcc +module load openmpi +module load cmake +module load postgresql + +./run.sh "$DBNAME" "$ESIZE" diff --git a/CG_Files/run.sh b/CG_Files/run.sh new file mode 100755 index 0000000..e20af5b --- /dev/null +++ b/CG_Files/run.sh @@ -0,0 +1,68 @@ +#!/usr/bin/env bash + +CURR_DIR=$(pwd)"/" +cd ../../build/ + +#Optional Arguments for running batches of tests. +# These are meant to be specified by command line, but the :-{VAL} specifies the default to use. +# Can change the default here as desired. Ex: Changing to 2 Services would be: NUM_SERV=${1:-2} +DBNAME=${1:-ag} # name of database table. can leave as default or change to whatever you prefer +ESIZE=${2:-A} + +# Avoid multiple users fighting over same database if default name is used (hacky solution) +DBNAME="$DBNAME$USER" + +MPI_HAMMER_PARAMS="mpiexec --mca btl_openib_allow_ib 1 --mca btl openib,self,vader --mca opal_warn_on_missing_libcuda 0 --bind-to numa --map-by numa -np 1 --timeout 129600" + +### AG Gen Parameters. Please run the AG generator with the '-h' parameter to see all options. Adjust as desired. +AG_TASK_PARAMS="-t 1 -q 1 -p -a 0.6 -z ${DBNAME}" + +### Running + +## Database Work +#Hammer +if [ "$(dnsdomainname)" = "hammer.esg.utulsa.edu" ]; then + #Database stored on node with port + if psql -p 5240 -h compute03 ${DBNAME} -c '\q' 2>&1; then + echo "Database ${DBNAME} exists. Dropping and recreating from dump." + + psql -p 5240 -h compute03 postgres -c "DROP DATABASE "$DBNAME"" + psql -p 5240 -h compute03 postgres -c "CREATE DATABASE "$DBNAME" WITH OWNER = ag_gen" + psql -q -p 5240 -h compute03 "$DBNAME" < schema.sql + + else + echo "Database ${DBNAME} does not exist. Creating and importing from dump." + + psql -p 5240 -h compute03 postgres -c "CREATE DATABASE "$DBNAME" WITH OWNER = ag_gen" + psql -q -p 5240 -h compute03 "$DBNAME" < schema.sql + fi +#Local +else + if psql ${DBNAME} -c '\q' 2>&1; then + echo "Database ${DBNAME} exists. Dropping and recreating from dump." + + psql postgres -c "DROP DATABASE "$DBNAME"" + psql postgres -c "CREATE DATABASE "$DBNAME" WITH OWNER = ag_gen" + psql -q "$DBNAME" < schema.sql + else + echo "Database ${DBNAME} does not exist. Creating and importing from dump." + + psql postgres -c "CREATE DATABASE "$DBNAME" WITH OWNER = ag_gen" + psql -q "$DBNAME" < schema.sql + fi +fi + +## Running the scripts +# NOTE: Do not use 'bash -c' or 'eval' unless you fully understand shell parsing. We are building an array +# of arguments dynamically to avoid wordsplitting and wildcard expansions +CMD=() +CMD+=$MPI_HAMMER_PARAMS +CMD+=" ./ag_gen -n " +CMD+=${CURR_DIR}"Employee_"${ESIZE}/"dmca.nm" +CMD+=" -x " +CMD+=${CURR_DIR}"Employee_"${ESIZE}/"dmca.xp" +CMD+=" -i " +CMD+=${CURR_DIR} +CMD+="output/serial " +CMD+=${AG_TASK_PARAMS} +${CMD} diff --git a/CG_Files/sync_data_col.sh b/CG_Files/sync_data_col.sh new file mode 100755 index 0000000..e5df0ea --- /dev/null +++ b/CG_Files/sync_data_col.sh @@ -0,0 +1,74 @@ +#!/usr/bin/env bash + +folder=serial +nodelist=compute01,compute04,compute07,compute10,compute11,compute12 + +TIMESTR=`date +"%s"` +DBNAME="${folder}_${TIMESTR}" +NODES=(1) +ESIZE=(A B C AB BC ABC) + +pwd=`pwd` + +thrds=1 + +QSIZE=1 + +for e in "${ESIZE[@]}" +do + echo "----------------------- ${e} Exploits -----------------------" >> ./slurm_reports/"$folder"/sync_data.txt + + SKIP_FLAG=0 + #Dispatch the job and get the output ("Submitted batch job + JOB=`sbatch --nodelist="$nodelist" --exclusive ag_run.sh "$DBNAME" "$e"` + #Pull the jobid + JOB=`echo "$JOB" | grep -oP '(?<=job )[^ ]*'` + + #Output will be stored as this format + FILE="./slurm_reports/job.${JOB}.out" + ERR="./slurm_reports/job.${JOB}.err" + + NOW=`date +"%H:%M"` + + echo "Synchronous test with "$e" exploit set with dispatched at "$NOW" with jobid "$JOB"" >> ./slurm_reports/"$folder"/sync_data.txt + + #Wait until job is finished + while squeue | grep "$JOB" > /dev/null 2>&1; do + #Slurm occasionally has an issue where the prog finishes but doesn't leave slurm queue + #Check if program finished by checking the output file for the final line, delay by 5 seconds for safety, then cancel the job + if test -f "$FILE" && (cat "$FILE" | grep "total run time" > /dev/null 2>&1) ; then + for j in {1..5} + do + sleep 1 + done + SKIP_FLAG=1 + echo "Job done, but slurm hung." >> ./slurm_reports/"$folder"/sync_data.txt + tmp=`scancel "$JOB"` + sleep 3 + break + fi + sleep 1 + done + + #Wait for the delay between job finish and file write + while ! test -f "$FILE"; do + sleep 1 + done + + #Get runtime and states from the output + #RUNTIME=`cat "$FILE" | grep -oP '(?<=total run time is )[^ ]*'` + RUNTIME=`cat "$FILE" | grep -oP '(?<=AG TOOK )[^ ]*'` + DUP=`cat "$FILE" | grep -oP '(?<=Duplicated States that had to be removed: )[^ ]*'` + STATES=`cat "$FILE" | grep -oP '(?<=Total States: )[^ ]*'` + EDGES=`cat "$FILE" | grep -oP '(?<=Total Edges: )[^ ]*'` + + + if ! test -s "$ERR" || test "$SKIP_FLAG" -eq 1 ; then + printf "${e} Exploit Set, ${RUNTIME} runtime. ${STATES} states, ${EDGES} edges \n\n" >> ./slurm_reports/"$folder"/sync_data.txt + str="$e","$STATES","$EDGES" + echo $str >> ./slurm_reports/"$folder"/sync_data.csv + else + printf "Errors occurred. Please see err file for more details. \n\n" >> ./slurm_reports/"$folder"/sync_data.txt + fi + +done