Applicability of Exploits

This commit is contained in:
Noah L. Schrick 2023-04-05 17:55:59 -05:00
parent 7fa0e77914
commit c409e45c3d
4 changed files with 89 additions and 56 deletions

View File

@ -85,22 +85,16 @@
\newlabel{table:tasking-gen-perf}{{II}{5}{Task Descriptions and Performance Notes}{table.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VI-A}}Number of Exploits}{5}{subsection.6.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VI-B}}Applicability of Exploits}{5}{subsection.6.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VI-C}}Database Load}{5}{subsection.6.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VI-D}}Testing Platform}{5}{subsection.6.4}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {VII}Results}{5}{section.7}\protected@file@percent }
\newlabel{sec:Tasking-Results}{{VII}{5}{Results}{section.7}{}}
\bibdata{Bibliography}
\bibcite{9678822}{1}
\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Example of a Not Applicable Exploit for the MPI Tasking Testing}}{6}{figure.6}\protected@file@percent }
\newlabel{fig:NA-exp}{{6}{6}{Example of a Not Applicable Exploit for the MPI Tasking Testing}{figure.6}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Speedup and Efficiency of the MPI Tasking Approach for a Varying Number of Compute Nodes with an Increasing Problem Size}}{6}{figure.7}\protected@file@percent }
\newlabel{fig:Spd-Eff-Task}{{7}{6}{Speedup and Efficiency of the MPI Tasking Approach for a Varying Number of Compute Nodes with an Increasing Problem Size}{figure.7}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces MPI Tasking Approach Runtime Results}}{6}{figure.8}\protected@file@percent }
\newlabel{fig:Tasking-RT}{{8}{6}{MPI Tasking Approach Runtime Results}{figure.8}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Results for the MPI Tasking Approach in Terms of Speedup}}{6}{figure.9}\protected@file@percent }
\newlabel{fig:Tasking-Spd}{{9}{6}{Results for the MPI Tasking Approach in Terms of Speedup}{figure.9}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces Results for the MPI Tasking Approach in Terms of Efficiency}}{6}{figure.10}\protected@file@percent }
\newlabel{fig:Tasking-Eff}{{10}{6}{Results for the MPI Tasking Approach in Terms of Efficiency}{figure.10}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Example of an Artificially Applicable Exploit for the MPI Tasking Testing}}{6}{figure.7}\protected@file@percent }
\newlabel{fig:Appl-exp}{{7}{6}{Example of an Artificially Applicable Exploit for the MPI Tasking Testing}{figure.7}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VI-C}}Database Load}{6}{subsection.6.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VI-D}}Testing Platform}{6}{subsection.6.4}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {VII}Results}{6}{section.7}\protected@file@percent }
\newlabel{sec:Tasking-Results}{{VII}{6}{Results}{section.7}{}}
\bibdata{Bibliography}
\bibcite{9678822}{1}
\bibcite{7993827}{2}
\bibcite{8652334}{3}
\bibcite{baloyi_guidelines_2019}{4}
@ -108,6 +102,17 @@
\bibcite{j_hale_compliance_nodate}{6}
\bibcite{ou_scalable_2006}{7}
\bibcite{CPSIOT}{8}
\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces Speedup and Efficiency of the MPI Tasking Approach for a Varying Number of Compute Nodes with an Increasing Problem Size}}{7}{figure.8}\protected@file@percent }
\newlabel{fig:Spd-Eff-Task}{{8}{7}{Speedup and Efficiency of the MPI Tasking Approach for a Varying Number of Compute Nodes with an Increasing Problem Size}{figure.8}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces MPI Tasking Approach Runtime Results}}{7}{figure.9}\protected@file@percent }
\newlabel{fig:Tasking-RT}{{9}{7}{MPI Tasking Approach Runtime Results}{figure.9}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces Results for the MPI Tasking Approach in Terms of Speedup}}{7}{figure.10}\protected@file@percent }
\newlabel{fig:Tasking-Spd}{{10}{7}{Results for the MPI Tasking Approach in Terms of Speedup}{figure.10}{}}
\@writefile{toc}{\contentsline {section}{\numberline {VIII}Analysis}{7}{section.8}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {IX}Conclusion}{7}{section.9}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{References}{7}{section*.1}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {11}{\ignorespaces Results for the MPI Tasking Approach in Terms of Efficiency}}{7}{figure.11}\protected@file@percent }
\newlabel{fig:Tasking-Eff}{{11}{7}{Results for the MPI Tasking Approach in Terms of Efficiency}{figure.11}{}}
\bibcite{ming_jo}{9}
\bibcite{cook_rage_2018}{10}
\bibcite{pacheco_introduction_2011}{11}
@ -126,7 +131,4 @@
\bibcite{9150145}{24}
\bibcite{7087377}{25}
\bibstyle{ieeetr}
\@writefile{toc}{\contentsline {section}{\numberline {VIII}Analysis}{7}{section.8}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {IX}Conclusion}{7}{section.9}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{References}{7}{section*.1}\protected@file@percent }
\gdef \@abspage@last{7}
\gdef \@abspage@last{8}

View File

@ -1,4 +1,4 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023/Arch Linux) (preloaded format=pdflatex 2023.4.3) 4 APR 2023 18:48
This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023/Arch Linux) (preloaded format=pdflatex 2023.4.3) 5 APR 2023 17:54
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
@ -600,67 +600,72 @@ Underfull \hbox (badness 1389) in paragraph at lines 210--211
LaTeX Warning: No positions in optional float specifier.
Default added (so using `tbp') on input line 212.
<./images/NA.png, id=210, 369.38pt x 118.4425pt>
File: ./images/NA.png Graphic file (type png)
<use ./images/NA.png>
Package pdftex.def Info: ./images/NA.png used on input line 236.
(pdftex.def) Requested size: 184.68954pt x 59.2211pt.
[5]
<./images/Applicable_E.png, id=221, 360.34625pt x 104.39pt>
File: ./images/Applicable_E.png Graphic file (type png)
<use ./images/Applicable_E.png>
Package pdftex.def Info: ./images/Applicable_E.png used on input line 260.
(pdftex.def) Requested size: 180.17268pt x 52.19485pt.
Underfull \hbox (badness 7451) in paragraph at lines 246--247
Underfull \hbox (badness 7451) in paragraph at lines 277--278
\OT1/ptm/m/n/10 All nodes are connected with a 10Gbps Infiniband
[]
LaTeX Warning: Reference `sec:test-platform' on page 5 undefined on input line
249.
LaTeX Warning: Reference `sec:test-platform' on page 6 undefined on input line
280.
[5]
[6 <./images/NA.png> <./images/Applicable_E.png>]
LaTeX Warning: Reference `sec:FW' on page 6 undefined on input line 253.
LaTeX Warning: Reference `sec:FW' on page 7 undefined on input line 284.
Underfull \hbox (badness 3713) in paragraph at lines 253--254
Underfull \hbox (badness 3713) in paragraph at lines 284--285
[]\OT1/ptm/m/n/10 In terms of efficiency, 2 compute nodes offer the
[]
<./images/NA.png, id=223, 369.38pt x 118.4425pt>
File: ./images/NA.png Graphic file (type png)
<use ./images/NA.png>
Package pdftex.def Info: ./images/NA.png used on input line 259.
(pdftex.def) Requested size: 184.68954pt x 59.2211pt.
<./images/Speedup-Esize-Tasking.png, id=224, 620.208pt x 321.93pt>
<./images/Speedup-Esize-Tasking.png, id=237, 620.208pt x 321.93pt>
File: ./images/Speedup-Esize-Tasking.png Graphic file (type png)
<use ./images/Speedup-Esize-Tasking.png>
Package pdftex.def Info: ./images/Speedup-Esize-Tasking.png used on input line
267.
292.
(pdftex.def) Requested size: 252.0pt x 130.80338pt.
<./images/Eff-Esize-Tasking.png, id=225, 620.208pt x 322.149pt>
<./images/Eff-Esize-Tasking.png, id=238, 620.208pt x 322.149pt>
File: ./images/Eff-Esize-Tasking.png Graphic file (type png)
<use ./images/Eff-Esize-Tasking.png>
Package pdftex.def Info: ./images/Eff-Esize-Tasking.png used on input line 268
Package pdftex.def Info: ./images/Eff-Esize-Tasking.png used on input line 293
.
(pdftex.def) Requested size: 252.0pt x 130.89236pt.
<./images/Tasking_RT.png, id=226, 860.46469pt x 257.96375pt>
<./images/Tasking_RT.png, id=239, 860.46469pt x 257.96375pt>
File: ./images/Tasking_RT.png Graphic file (type png)
<use ./images/Tasking_RT.png>
Package pdftex.def Info: ./images/Tasking_RT.png used on input line 275.
Package pdftex.def Info: ./images/Tasking_RT.png used on input line 300.
(pdftex.def) Requested size: 252.0pt x 75.54756pt.
<./images/Tasking_Spd.png, id=227, 860.46469pt x 276.53313pt>
<./images/Tasking_Spd.png, id=240, 860.46469pt x 276.53313pt>
File: ./images/Tasking_Spd.png Graphic file (type png)
<use ./images/Tasking_Spd.png>
Package pdftex.def Info: ./images/Tasking_Spd.png used on input line 282.
Package pdftex.def Info: ./images/Tasking_Spd.png used on input line 307.
(pdftex.def) Requested size: 252.0pt x 80.98582pt.
<./images/Tasking_Eff.png, id=228, 860.46469pt x 276.53313pt>
<./images/Tasking_Eff.png, id=241, 860.46469pt x 276.53313pt>
File: ./images/Tasking_Eff.png Graphic file (type png)
<use ./images/Tasking_Eff.png>
Package pdftex.def Info: ./images/Tasking_Eff.png used on input line 289.
Package pdftex.def Info: ./images/Tasking_Eff.png used on input line 314.
(pdftex.def) Requested size: 252.0pt x 80.98582pt.
(./Schrick-Noah_MPI-Tasking.bbl
Underfull \vbox (badness 10000) has occurred while \output is active []
[6 <./images/NA.png> <./images/Speedup-Esize-Tasking.png> <./images/Eff-Esize-
Tasking.png> <./images/Tasking_RT.png> <./images/Tasking_Spd.png> <./images/Tas
king_Eff.png>]
Underfull \hbox (badness 1442) in paragraph at lines 21--26
\OT1/ptm/m/n/8 A Focus on Cyberphysical Systems and Internet of Things,'' in
[]
[7 <./images/Speedup-Esize-Tasking.png> <./images/Eff-Esize-Tasking.png> <./ima
ges/Tasking_RT.png> <./images/Tasking_Spd.png> <./images/Tasking_Eff.png>]
Underfull \hbox (badness 1527) in paragraph at lines 56--58
[]\OT1/ptm/m/n/8 P. Pacheco, \OT1/ptm/m/it/8 An Introduction to Parallel Progra
mming\OT1/ptm/m/n/8 . Morgan
@ -698,7 +703,9 @@ Before submitting the final camera ready copy, remember to:
uses only Type 1 fonts and that every step in the generation
process uses the appropriate paper size.
[7] (./Schrick-Noah_MPI-Tasking.aux)
[8
] (./Schrick-Noah_MPI-Tasking.aux)
LaTeX Warning: There were undefined references.
@ -707,13 +714,13 @@ d.
(rerunfilecheck) Checksum: CB4364753E2594613B2E0BA2E8950C88;3186.
)
Here is how much of TeX's memory you used:
12229 strings out of 476025
194395 string characters out of 5796533
1875388 words of memory out of 5000000
32435 multiletter control sequences out of 15000+600000
12240 strings out of 476025
194660 string characters out of 5796533
1874388 words of memory out of 5000000
32443 multiletter control sequences out of 15000+600000
552034 words of font info for 106 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191
75i,14n,76p,2022b,598s stack positions out of 5000i,500n,10000p,200000b,80000s
75i,14n,76p,2022b,591s stack positions out of 5000i,500n,10000p,200000b,80000s
</usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/
texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texmf-dist/font
s/type1/public/amsfonts/cm/cmr7.pfb></usr/share/texmf-dist/fonts/type1/public/a
@ -721,10 +728,10 @@ msfonts/cm/cmsy10.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cms
y7.pfb></usr/share/texmf-dist/fonts/type1/urw/times/utmb8a.pfb></usr/share/texm
f-dist/fonts/type1/urw/times/utmbi8a.pfb></usr/share/texmf-dist/fonts/type1/urw
/times/utmr8a.pfb></usr/share/texmf-dist/fonts/type1/urw/times/utmri8a.pfb>
Output written on Schrick-Noah_MPI-Tasking.pdf (7 pages, 994781 bytes).
Output written on Schrick-Noah_MPI-Tasking.pdf (8 pages, 1004746 bytes).
PDF statistics:
303 PDF objects out of 1000 (max. 8388607)
255 compressed objects within 3 object streams
69 named destinations out of 1000 (max. 500000)
248 words of extra memory for PDF output out of 10000 (max. 10000000)
314 PDF objects out of 1000 (max. 8388607)
263 compressed objects within 3 object streams
71 named destinations out of 1000 (max. 500000)
253 words of extra memory for PDF output out of 10000 (max. 10000000)

Binary file not shown.

View File

@ -229,7 +229,7 @@ In order to capture a comprehensive image of the tasking approach's impact on pe
\end{table}
\subsection{Number of Exploits}
Task 1 loops through the number of exploits and checks each exploit against the list of assets to see if an exploit is applicable at the current state. As the number of exploits grows, the time taken for Task 1 will increase accordingly. The exploit list used by Task 1 does not need to be applicable to the current asset or state, or even to any asset or any state. Regardless of if the exploit is applicable or not, Task 1 still loops through the entirety of the exploit list to check if any exploit may be applicable. Therefore, to prevent state-space explosion but still gather valid results, each exploit list in the tests contained a set of exploits that could be applicable, and all remaining exploits were not applicable. The not applicable exploits were created in a fashion similar to that seen in Figure \ref{fig:NA-exp}. By creating a multitude of not applicable exploits, the exploit list is able to be artificially increased, which ensures that the resulting graph maintains the same number of states, edges, and identical properties. For the experimental setup, the original exploit list begins with a size of 6, and artificially doubles in size until a final set of graphs is generated using an exploit size of 49,152 exploits.
Task 1 loops through the number of exploits and checks each exploit against the list of assets to see if an exploit is applicable at the current state. As the number of exploits grows, the time taken for Task 1 will increase accordingly. The exploit list used by Task 1 does not need to be applicable to the current asset or state, or even to any asset or any state. Regardless of if the exploit is applicable or not, Task 1 still loops through the entirety of the exploit list to check if any exploit may be applicable. Therefore, to prevent state-space explosion but still gather valid results, each exploit list in the tests contained a set of exploits that could be applicable, and all remaining exploits were not applicable. The not applicable exploits were created in a fashion similar to that seen in Figure \ref{fig:NA-exp}. By creating a multitude of not applicable exploits, the exploit list is able to be artificially increased, which ensures that the resulting graph maintains the same number of states, edges, and identical properties. For the experimental setup, the original exploit list begins with a size of 6, and artificially doubles in size until a final set of graphs is generated using an exploit size of 49,152 exploits. A Python script was used to generate the exploit lists.
\begin{figure}[htp]
\centering
@ -240,6 +240,28 @@ Task 1 loops through the number of exploits and checks each exploit against the
\end{figure}
\subsection{Applicability of Exploits}
When the number of exploits is artificially increased, the runtime for the overall generation process also increases. However, solely increasing the number of exploits adds a strain on only Task 1; Tasks 0, 2, 3, 4, and 5 are not adequately stress-tested through the number of exploits alone. As a result, additional parameters will need to be altered to capture a thorough image of the tasking performance.
One parameter that can be carefully altered without affecting the resulting graph is the applicability of exploits. As the number of exploits applicable to any state grows, the runtime for Task 2 similarly increases since it must process all applicable exploits and generate new states and edges from the current state. In order for an exploit to be applicable and to not change the resulting graph, the exploit needs to have a precondition that is universally true, with a postcondition that has no effect. For the automobile example, an alteration to the ``not applicable" exploit seen in Figure \ref{fig:NA-exp} can be performed. The new, artificially applicable exploit can be seen in Figure \ref{fig:Appl-exp}. These artificial exploits will be applicable for any asset at any state in the test network, since no car in this example will ever posses a quality that allows it to fly. Likewise, though the exploit will be processed, the postcondition updates the car quality to match the quality it already contains (``flying$\_$car=false" is instantiated in the input network model). The update keyword in the postcondition still triggers the update function, even if no change is actually made. By updating the car quality in this manner, it is ensured that no change to the resulting graph is made, while still gathering accurate timing data and not skipping any functions called in Task 2.
In RAGE, when an applicable exploit is processed, a new state is always created. The new state is hashed, and its hash is compared to the known hashes. If the hash already exists, the state is discarded and program flow continues. If the hash had not been seen, then the state is added to the instance and frontier. Due to this behavior, it is ensured that the approach for the artificially applicable exploits can capture realistic performance data. In the case of the artificially applicable exploit, the new state is still created and hashed, timing data is captured, and the new state is then discarded along with its edges.
The applicability of exploits was tested by using percentages of overall exploits, excluding the 6 base exploits. The artificial exploits were generated with a Python script based on the example seen in Figure \ref{fig:Appl-exp}. As an illustration, in the case were there are 12 total exploits, the applicability of exploits tests the performance when a percentage of the total exploits were applicable, following the example shown below:
\begin{itemize}
\item{0\% (floor(0.00 * (12-6 base exploits)) = 0 exploits)}
\item{25\% (floor(0.25 * (12-6 base exploits)) = 1 exploit)}
\item{50\% (floor(0.50 * (12-6 base exploits)) = 3 exploits)}
\item{75\% (floor(0.75 * (12-6 base exploits)) = 4 exploits)}
\item{100\% (floor(1.00 * (12-6 base exploits)) = 6 exploits)}
\end{itemize}
\begin{figure}[htp]
\centering
\includegraphics[scale=0.5]{"./images/Applicable_E.png"}
\vspace{.2truein} \centerline{}
\caption{Example of an Artificially Applicable Exploit for the MPI Tasking Testing}
\label{fig:Appl-exp}
\end{figure}
\subsection{Database Load}
@ -254,6 +276,8 @@ All data was collected on a 13 node cluster, with 12 nodes serving as dedicated
\end{itemize}
All nodes are connected with a 10Gbps Infiniband interconnect.
\subsection{Testing Process}
\section{Results} \label{sec:Tasking-Results}
A series of tests were conducted on the platform described at the beginning of Section \ref{sec:test-platform}, and results were collected in regards to the effect of the MPI Tasking approach on increasing sizes of exploit lists for a varying number of nodes. The exploit list initially began with 6 items, and each test scaled the number of exploits by a factor of 2. The final test was with an exploit list with 49,512 entries. If all of the items in these exploit lists were applicable, the runtime would be too great for feasible testing due to the state space explosion. To prevent state-space explosion but still gather valid results, each exploit list in the tests contained 6 exploits that could be applicable, and all remaining exploits were not applicable. The not applicable exploits were created in a fashion similar to that seen in Figure \ref{fig:NA-exp}. By creating a multitude of not applicable exploits, testing can safely be conducted by ensuring state space explosion would not occur while still observing the effectiveness of the tasking approach.