From c6f3760767e8ffeabc6a06c138070fe3b1b78bfb Mon Sep 17 00:00:00 2001 From: noah Date: Sun, 27 Mar 2022 17:59:55 -0500 Subject: [PATCH] Editing Chapter 1 --- Bibliography.bib | 34 +++++++++++++++++++++- Chapter1.aux | 12 +++++--- Chapter1.tex | 36 +++++++++++------------- Exported Items.bib | 15 ++++++---- Schrick-Noah_MS-Thesis.aux | 42 +++++++++++++++------------- Schrick-Noah_MS-Thesis.bbl | 14 ++++++++++ Schrick-Noah_MS-Thesis.blg | 56 ++++++++++++++++++------------------- Schrick-Noah_MS-Thesis.log | 20 ++++++------- Schrick-Noah_MS-Thesis.pdf | Bin 2059503 -> 2061592 bytes Schrick-Noah_MS-Thesis.tex | 6 ++-- Schrick-Noah_MS-Thesis.toc | 4 +-- 11 files changed, 148 insertions(+), 91 deletions(-) diff --git a/Bibliography.bib b/Bibliography.bib index 58e735f..352c729 100644 --- a/Bibliography.bib +++ b/Bibliography.bib @@ -1228,8 +1228,40 @@ @misc{lawrence_livermore_national_laboratory_mpip_nodate, - title = {{mpiP}}, + title = {mpiP}, shorttitle = {A light-weight {MPI} profiler.}, url = {https://software.llnl.gov/mpiP/}, author = {{Lawrence Livermore National Laboratory}}, } + + +@misc{noauthor_sarbanes-oxley_2002, + title = {Sarbanes-{Oxley} {Act} of 2002}, + url = {https://www.govinfo.gov/content/pkg/PLAW-107publ204/html/PLAW-107publ204.htm}, + year = {2002}, +} + +@misc{noauthor_health_1996, + title = {Health {Insurance} {Portability} and {Accountability} {Act} of 1996}, + url = {https://www.govinfo.gov/content/pkg/PLAW-104publ191/html/PLAW-104publ191.htm}, + year = {1996}, +} + +@online{EUdataregulations2018, + title = {REGULATION (EU) 2016/679 OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL +of 27}, + url = {https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32016R0679}, + author = {The European Parliment and the Council of the European Union}, + date = {2016-04-27} +} + +@misc{PCI, + title = {Payment Card Industry (PCI) Data Security Standard}, + url = {https://www.pcisecuritystandards.org/documents/PCI_DSS_v3-2-1.pdf}, + month = may, + year = {2018}, + author = {PCI Security Standards Council} +} + + + diff --git a/Chapter1.aux b/Chapter1.aux index ccca1de..64267d6 100644 --- a/Chapter1.aux +++ b/Chapter1.aux @@ -12,13 +12,17 @@ \citation{baloyi_guidelines_2019} \citation{allman_complying_2006} \citation{j_hale_compliance_nodate} -\citation{j_hale_compliance_nodate} \@writefile{toc}{\contentsline {section}{\numberline {1.2}\bf Application to Compliance}{2}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {1.2.1}\it Introduction to Compliance Graphs}{2}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.2}\it Defining Compliance Graphs}{2}{}\protected@file@percent } -\newlabel{CG-alter}{{1.2.2}{2}} +\citation{j_hale_compliance_nodate} +\citation{noauthor_sarbanes-oxley_2002} +\citation{noauthor_health_1996} +\citation{EUdataregulations2018} +\citation{PCI} \citation{cook_rage_2018} -\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.3}\it Difficulties of Compliance Graphs and Introduction to Thesis Work}{3}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.2}\it Defining Compliance Graphs}{3}{}\protected@file@percent } +\newlabel{CG-alter}{{1.2.2}{3}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.3}\it Difficulties of Compliance Graphs}{3}{}\protected@file@percent } \newlabel{sec:CG-diff}{{1.2.3}{3}} \@writefile{toc}{\contentsline {section}{\numberline {1.3}\bf Objectives and Contributions}{4}{}\protected@file@percent } \@setckpt{Chapter1}{ diff --git a/Chapter1.tex b/Chapter1.tex index d3e9681..5abd7e2 100644 --- a/Chapter1.tex +++ b/Chapter1.tex @@ -7,42 +7,40 @@ This work, and other attack tree discussions of this time such as that conducted \cite{ou_scalable_2006}. By utilizing this graphical approach, cybersecurity postures can be measured at a system's current status, as well as hypothesize and examine other postures based on system changes over time. -Attack Graphs are an appealing approach since they are often designed to be exhaustive: all system properties are represented at its initial state, all attack options are fully enumerated, all permutations are +Attack graphs are an appealing approach since they are often designed to be exhaustive: all system properties are represented at its initial state, all attack options are fully enumerated, all permutations are examined, and all changes to a system are encoded into their own independent states, where these states are then individually analyzed through the process. The authors of \cite{sheyner_automated_2002} also discuss the advantage of conciseness of attack graphs, where the final graph only incorporates states that an attacker can leverage; no superfluous states are generated that can clutter analysis. Despite their -advantages, attack graphs do suffer from their exhaustiveness. As the authors of \cite{ou_scalable_2006} examine, even very small networks with only 10 hosts and 5 vulnerabilities yield graphs with 10 million +advantages, attack graphs do suffer from their exhaustiveness as well. As the authors of \cite{ou_scalable_2006} examine, even very small networks with only 10 hosts and 5 vulnerabilities yield graphs with 10 million edges. When scaling attack graphs to analyze the modern, interconnected state of large networks comprising of a multitude of hosts, and utilizing the entries located in the National Vulnerability Database and any -custom vulnerability testing, this becomes infeasible. Similar difficulties arise in related fields, where social networks, bio-informatics, and neural network representations also result in graphs with millions of +custom vulnerability testing, attack graph generation quickly becomes infeasible. Similar difficulties arise in related fields, where social networks, bioinformatics, and neural network representations result in graphs with millions of states \cite{zhang_boosting_2017}. Various efforts that will be discussed in Section \ref{sec:related_works} demonstrate methods and techniques that can mitigate these difficulties and improve performance. \TUsection{Application to Compliance} \TUsubsection{Introduction to Compliance Graphs} As an alternative to attack graphs for examining vulnerable states and measuring cybersecurity postures, the focus can be narrowed to generate graphs with the purpose of examining compliance or regulation statuses. These graphs are known as compliance graphs. Compliance graphs can be especially useful for cyber-physical systems, where a greater need for compliance exists. As the authors of \cite{j_hale_compliance_nodate}, -\cite{baloyi_guidelines_2019}, and \cite{allman_complying_2006} discuss, cyber-physical systems have seen greater usage, especially in areas like critical infrastructure and Internet of Things. The challenge of +\cite{baloyi_guidelines_2019}, and \cite{allman_complying_2006} discuss, cyber-physical systems have seen greater usage, especially in areas such as critical infrastructure and Internet of Things. The challenge of cyber-physical systems lies not only in the demand for cybersecurity of these systems, but also the concern for safe, stable, and undamaged equipment. The industry in which these devices are used can lead to -additional compliance guidelines that must be followed. Compliance graphs are promising tools that can aid in minimizing the difficulties of these systems. +additional compliance guidelines that must be followed, increasing the complexity required for examining compliance statuses. Compliance graphs are promising tools that can aid in minimizing the overhead caused by these systems and the regulations they must follow. -A few alterations are needed to attack graph generators to function as compliance graph generators, and these alterations +A few alterations are required for attack graph generators to function as compliance graph generators, and these alterations are discussed in Section \ref{CG-alter}. Compliance requirements are broad and varying, and can function as safety regulations, maintenance compliance, or any other regulatory compliance. In the same fashion as attack graphs, compliance graphs are exhaustive, and future system states can be analyzed to determine appropriate steps that need to be taken for preventative measures \cite{j_hale_compliance_nodate}. \TUsubsection{Defining Compliance Graphs} \label{CG-alter} -The common features of attack graphs serve separate purposes in compliance graphs. The nodes of an attack graph typically represent the system state that includes the qualities and topologies of all assets +The common encodings of attack graph properties have different encoding definitions in compliance graphs. The nodes of an attack graph typically represent the system state that includes the qualities and topologies of all assets in the network as they pertain to cybersecurity postures. Nodes of a compliance graphs also represent the system state, however they include the qualities and topologies of all assets in the network as they pertain to compliance regulation. For instance, a quality for a vehicle's maintenance compliance could be described as: \textit{car:months\_since\_oil\_change=6}, or \textit{car:miles\_since\_oil\_change=10,000}. Edges represent changes to a system state that inserted, modified, or deleted a quality or topology. Using the car example, an edge could represent the addition of more mileage or more time since the last oil change. One large differentiation of attack graphs and compliance graphs can be seen through topologies. For assets in attack graphs, topologies typically represent a connection of assets through a digital medium. For -compliance graphs, topologies not only need to represent the digital connections of assets, but also need extensions to incorporate hardware devices such as sensors, actuators, or other equipment -\cite{j_hale_compliance_nodate}. In addition, rather than using applicable exploits or vulnerabilities, compliance violation detections should be used. An attack graph generation engine would need to use compliance +compliance graphs, topologies not only need to represent the digital connections of assets, but also need extensions to incorporate hardware devices such as sensors, actuators, or other physical equipment +\cite{j_hale_compliance_nodate}. In addition, rather than using applicable exploits or vulnerabilities to an asset, compliance violation detections should be used. An attack graph generation engine would need to use compliance parameters rather than exploit files, but would otherwise function similarly in the generation process. -\TUsubsection{Difficulties of Compliance Graphs and Introduction to Thesis Work} \label{sec:CG-diff} +\TUsubsection{Difficulties of Compliance Graphs} \label{sec:CG-diff} Like attack graphs, compliance graphs suffer from the state space explosion problem. Since compliance graphs are also exhaustive, the resulting networks can grow to incredibly large sizes. Compliance regulations -that need to be checked at each system state such as SOX, HIPAA, GDPR, PCI DSS, or any other regulatory compliance in conjunction with a large number of assets that need to be checked can very quickly produce -these large resulting graphs. The creation of these graphs through a serial approach likewise becomes increasingly infeasible. Due to this, the high-performance computing (HPC) space presents itself as an appealing -approach. This work aims to extend the attack graph generator engine RAGE presented by the author in \cite{cook_rage_2018} to begin development for compliance graph generation. The example networks in this -work will also be in the compliance graph space, specifically examining vehicle maintenance compliance. This work will also examine approaches to leverage high-performance computing to aid in the generation of -compliance graphs. +that need to be checked at each system state such as SOX \cite{noauthor_sarbanes-oxley_2002}, HIPAA \cite{noauthor_health_1996}, GDPR \cite{EUdataregulations2018}, PCI DSS \cite{PCI}, or any other regulatory compliance in conjunction with a large number of assets that need to be checked can very quickly produce large resulting graphs. The creation of these graphs through a serial approach likewise becomes increasingly infeasible in a reasonable amount of time. Due to this, the high-performance computing (HPC) space presents itself as an appealing +approach. This work aims to extend the attack graph generator engine RAGE in \cite{cook_rage_2018} to begin development for compliance graph generation. The example networks in this +work will also be in the compliance graph space, specifically examining vehicle maintenance compliance. This work will also examine approaches to leverage high-performance computing to aid in the generation of compliance graphs. \TUsection{Objectives and Contributions} The objectives of this thesis are: @@ -51,12 +49,12 @@ The objectives of this thesis are: \begin{enumerate} \item{Reduce the complexity required for network model and exploit file creation} \item{Expand the complexity of attack modeling} - \item{Allow for the creation of an infinite sized Attack Graph, assuming infinite storage} + \item{Allow for the creation of a very large sized attack graph, assuming very large storage} \item{Split Attack Graphs into subgraphs to simplify analysis of individual clusters} \end{enumerate} - \item{Implement solutions to reduce state space explosion for inseparable features while remaining exhaustive and capturing all necessary information} - \item{Extend RAGE to function for heterogeneous distributed computing environments} - \item{Extend and utilize RAGE for compliance graph generation} + \item{Implement a synchronous firing solution to reduce state space explosion for inseparable features while remaining exhaustive and capturing all necessary information} + \item{Extend RAGE to function for distributed computing environments} + \item{Extend RAGE to support compliance graph generation} \end{itemize} diff --git a/Exported Items.bib b/Exported Items.bib index 6fa22ba..d09e2e6 100644 --- a/Exported Items.bib +++ b/Exported Items.bib @@ -1,7 +1,12 @@ -@misc{lawrence_livermore_national_laboratory_mpip_nodate, - title = {{mpiP}}, - shorttitle = {A light-weight {MPI} profiler.}, - url = {https://software.llnl.gov/mpiP/}, - author = {{Lawrence Livermore National Laboratory}}, +@misc{noauthor_sarbanes-oxley_2002, + title = {Sarbanes-{Oxley} {Act} of 2002}, + url = {https://www.govinfo.gov/content/pkg/PLAW-107publ204/html/PLAW-107publ204.htm}, + year = {2002}, +} + +@misc{noauthor_health_1996, + title = {Health {Insurance} {Portability} and {Accountability} {Act} of 1996}, + url = {https://www.govinfo.gov/content/pkg/PLAW-104publ191/html/PLAW-104publ191.htm}, + year = {1996}, } diff --git a/Schrick-Noah_MS-Thesis.aux b/Schrick-Noah_MS-Thesis.aux index 1310c3f..a971c62 100644 --- a/Schrick-Noah_MS-Thesis.aux +++ b/Schrick-Noah_MS-Thesis.aux @@ -28,28 +28,32 @@ \bibcite{j_hale_compliance_nodate}{6} \bibcite{baloyi_guidelines_2019}{7} \bibcite{allman_complying_2006}{8} -\bibcite{cook_rage_2018}{9} -\bibcite{berry_graph_2007}{10} +\bibcite{noauthor_sarbanes-oxley_2002}{9} +\bibcite{noauthor_health_1996}{10} +\bibcite{EUdataregulations2018}{11} \@writefile{toc}{{\hfill \ }} \@writefile{toc}{\contentsline {section}{\hspace {-\parindent }NOMENCLATURE}{53}{}\protected@file@percent } \@writefile{toc}{\addvspace {10pt}} \@writefile{toc}{\contentsline {section}{\hspace {-\parindent }BIBLIOGRAPHY}{53}{}\protected@file@percent } \@writefile{toc}{{\hfill \ }} -\bibcite{ainsworth_graph_2016}{11} -\bibcite{yao_efficient_2018}{12} -\bibcite{dai_fpgp_2016}{13} -\bibcite{arifuzzaman_fast_2015}{14} -\bibcite{yu_construction_2018}{15} -\bibcite{liakos_memory-optimized_2016}{16} -\bibcite{balaji_graph_2016}{17} -\bibcite{noauthor_overview_nodate}{18} -\bibcite{noauthor_boost_nodate}{19} -\bibcite{cook_scalable_2016}{20} -\bibcite{li_concurrency_2019}{21} -\bibcite{9150145}{22} -\bibcite{7087377}{23} -\bibcite{li_combining_2019}{24} -\bibcite{CVE-2019-10747}{25} -\bibcite{louthan_hybrid_2011}{26} +\bibcite{PCI}{12} +\bibcite{cook_rage_2018}{13} +\bibcite{berry_graph_2007}{14} +\bibcite{ainsworth_graph_2016}{15} +\bibcite{yao_efficient_2018}{16} +\bibcite{dai_fpgp_2016}{17} +\bibcite{arifuzzaman_fast_2015}{18} +\bibcite{yu_construction_2018}{19} +\bibcite{liakos_memory-optimized_2016}{20} +\bibcite{balaji_graph_2016}{21} +\bibcite{noauthor_overview_nodate}{22} +\bibcite{noauthor_boost_nodate}{23} +\bibcite{cook_scalable_2016}{24} +\bibcite{li_concurrency_2019}{25} +\bibcite{9150145}{26} +\bibcite{7087377}{27} +\bibcite{li_combining_2019}{28} +\bibcite{CVE-2019-10747}{29} +\bibcite{louthan_hybrid_2011}{30} \bibstyle{ieeetr} -\gdef \@abspage@last{65} +\gdef \@abspage@last{66} diff --git a/Schrick-Noah_MS-Thesis.bbl b/Schrick-Noah_MS-Thesis.bbl index 36adeef..474b9ea 100644 --- a/Schrick-Noah_MS-Thesis.bbl +++ b/Schrick-Noah_MS-Thesis.bbl @@ -39,6 +39,20 @@ N.~Baloyi and P.~Kotzé, ``Guidelines for {Data} {Privacy} {Compliance}: {A} E.~Allman, ``Complying with {Compliance}: {Blowing} it off is not an option.,'' {\em ACM Queue}, vol.~4, no.~7, 2006. +\bibitem{noauthor_sarbanes-oxley_2002} +``Sarbanes-{Oxley} {Act} of 2002,'' 2002. + +\bibitem{noauthor_health_1996} +``Health {Insurance} {Portability} and {Accountability} {Act} of 1996,'' 1996. + +\bibitem{EUdataregulations2018} +T.~E. Parliment and the Council of~the European~Union, ``Regulation (eu) + 2016/679 of the european parliament and of the council of 27.'' + +\bibitem{PCI} +P.~S.~S. Council, ``Payment card industry (pci) data security standard,'' May + 2018. + \bibitem{cook_rage_2018} K.~Cook, {\em {RAGE}: {The} {Rage} {Attack} {Graph} {Engine}}. \newblock PhD thesis, 2018. diff --git a/Schrick-Noah_MS-Thesis.blg b/Schrick-Noah_MS-Thesis.blg index 13762a3..245b15a 100644 --- a/Schrick-Noah_MS-Thesis.blg +++ b/Schrick-Noah_MS-Thesis.blg @@ -7,45 +7,45 @@ A level-1 auxiliary file: Chapter3.aux A level-1 auxiliary file: Chapter4.aux A level-1 auxiliary file: Chapter5.aux A level-1 auxiliary file: Chapter6.aux -A level-1 auxiliary file: Chapter7.aux The style file: ieeetr.bst -A level-1 auxiliary file: Appendices.aux Database file #1: Bibliography.bib Warning--entry type for "j_hale_compliance_nodate" isn't style-file defined --line 272 of file Bibliography.bib +Warning--entry type for "EUdataregulations2018" isn't style-file defined +--line 1250 of file Bibliography.bib Warning--empty journal in ou_scalable_2006 Warning--empty school in cook_rage_2018 Warning--empty school in louthan_hybrid_2011 -You've used 26 entries, +You've used 30 entries, 1876 wiz_defined-function locations, - 611 strings with 8617 characters, -and the built_in function-call counts, 6036 in all, are: -= -- 571 -> -- 237 + 622 strings with 9004 characters, +and the built_in function-call counts, 6493 in all, are: += -- 608 +> -- 251 < -- 0 -+ -- 90 -- -- 64 -* -- 401 -:= -- 842 -add.period$ -- 26 -call.type$ -- 26 -change.case$ -- 24 ++ -- 97 +- -- 67 +* -- 418 +:= -- 895 +add.period$ -- 29 +call.type$ -- 30 +change.case$ -- 28 chr.to.int$ -- 0 -cite$ -- 29 -duplicate$ -- 317 -empty$ -- 623 -format.name$ -- 64 -if$ -- 1474 +cite$ -- 33 +duplicate$ -- 333 +empty$ -- 695 +format.name$ -- 67 +if$ -- 1596 int.to.chr$ -- 0 -int.to.str$ -- 26 +int.to.str$ -- 30 missing$ -- 19 -newline$ -- 84 -num.names$ -- 23 -pop$ -- 119 +newline$ -- 96 +num.names$ -- 25 +pop$ -- 147 preamble$ -- 1 purify$ -- 0 quote$ -- 0 -skip$ -- 210 +skip$ -- 231 stack$ -- 0 substring$ -- 347 swap$ -- 108 @@ -54,7 +54,7 @@ text.prefix$ -- 0 top$ -- 0 type$ -- 0 warning$ -- 3 -while$ -- 57 -width$ -- 28 -write$ -- 223 -(There were 4 warnings) +while$ -- 59 +width$ -- 32 +write$ -- 248 +(There were 5 warnings) diff --git a/Schrick-Noah_MS-Thesis.log b/Schrick-Noah_MS-Thesis.log index 699c962..930d97b 100644 --- a/Schrick-Noah_MS-Thesis.log +++ b/Schrick-Noah_MS-Thesis.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.23 (TeX Live 2021/Arch Linux) (preloaded format=pdflatex 2022.3.21) 27 MAR 2022 13:31 +This is pdfTeX, Version 3.141592653-2.6-1.40.23 (TeX Live 2021/Arch Linux) (preloaded format=pdflatex 2022.3.21) 27 MAR 2022 17:52 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -486,7 +486,7 @@ CHAPTER 6. -] [54]) [55] +] [54] [55]) [56] (./Schrick-Noah_MS-Thesis.aux (./Chapter1.aux) (./Chapter2.aux) (./Chapter3.aux ) (./Chapter4.aux) (./Chapter5.aux) (./Chapter6.aux)) @@ -495,7 +495,7 @@ LaTeX Warning: There were undefined references. ) (\end occurred inside a group at level 6) -### semi simple group (level 6) entered at line 200 (\begingroup) +### semi simple group (level 6) entered at line 197 (\begingroup) ### semi simple group (level 5) entered at line 182 (\begingroup) ### semi simple group (level 4) entered at line 182 (\begingroup) ### semi simple group (level 3) entered at line 182 (\begingroup) @@ -503,10 +503,10 @@ LaTeX Warning: There were undefined references. ### semi simple group (level 1) entered at line 52 (\begingroup) ### bottom level Here is how much of TeX's memory you used: - 3746 strings out of 478276 - 71206 string characters out of 5853013 - 362050 words of memory out of 5000000 - 21877 multiletter control sequences out of 15000+600000 + 3750 strings out of 478276 + 71286 string characters out of 5853013 + 362066 words of memory out of 5000000 + 21881 multiletter control sequences out of 15000+600000 473155 words of font info for 41 fonts, out of 8000000 for 9000 1141 hyphenation exceptions out of 8191 67i,8n,77p,2199b,1424s stack positions out of 5000i,500n,10000p,200000b,80000s @@ -518,10 +518,10 @@ ts/type1/public/amsfonts/cm/cmr12.pfb> -Output written on Schrick-Noah_MS-Thesis.pdf (65 pages, 2059503 bytes). +Output written on Schrick-Noah_MS-Thesis.pdf (66 pages, 2061592 bytes). PDF statistics: - 304 PDF objects out of 1000 (max. 8388607) - 171 compressed objects within 2 object streams + 307 PDF objects out of 1000 (max. 8388607) + 173 compressed objects within 2 object streams 0 named destinations out of 1000 (max. 500000) 131 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/Schrick-Noah_MS-Thesis.pdf b/Schrick-Noah_MS-Thesis.pdf index bcdc55ef767fe50f2ae16c1462dcccb7e429f2ff..039c7fa3916c10687325de97dc5ad6dba5b5c8c1 100644 GIT binary patch delta 35884 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

Z;+I^klbhaH*fjg0oo-5Fkal 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 diff --git a/Schrick-Noah_MS-Thesis.tex b/Schrick-Noah_MS-Thesis.tex index 243dc30..dbe0725 100644 --- a/Schrick-Noah_MS-Thesis.tex +++ b/Schrick-Noah_MS-Thesis.tex @@ -154,10 +154,10 @@ \fifthmember{} % as needed \sixthmember{} % as needed -\numofpages{92} % number of pages in the document +\numofpages{65} % number of pages in the document \numofchapters=6 % number of chapters in the document \lastchapter{Conclusions and Future Works} % the title of the last numbered chapter -\numofabstractwords{29} % number of words in the abstract +\numofabstractwords{196} % number of words in the abstract % % If this is a thesis use \thesistrue @@ -185,7 +185,7 @@ % % Place the text of the abstract here % -Attack graphs have historically been used to represent the state of a system or set of systems, and illustrate ways that attackers can carry out exploits to put the systems in a critical position. By refining the information and format of Attack Graphs, a similar process can be applied for compliance and regulation representations to illustrate ways that systems may violate or fall out of compliance in a format called compliance graphs. Like attack graphs, compliance graphs also suffer from the state space explosion problem, and generated graphs quickly become very large even for small networks. This work introduces extensions to an attack graph generator, RAGE, to support compliance graph generation, and these extensions have led to successfully generating compliance graphs that can then be analyzed through an independent process. Additional extensions have been introduced to support the utility of RAGE, and also implements a synchronous firing feature to prevent generation of states where assets deviate from a shared, inseparable feature such as time. The attack graph generation algorithm has also been modified in different two approaches to expand the generation process to function for distributed computing environments using Message Passing Interface (MPI). +Attack graphs have historically been used to represent the state of a system or set of systems, and illustrate ways that attackers can carry out exploits to put the systems in a critical position. By refining the information and format of attack graphs, a similar process can be applied for compliance and regulation representations to illustrate ways that systems may violate or fall out of compliance in a format called compliance graphs. Like attack graphs, compliance graphs also suffer from the state space explosion problem, and generated graphs quickly become very large even for small networks. This work introduces extensions to an attack graph generator, RAGE, to support compliance graph generation, and these extensions have led to successfully generating compliance graphs that can then be analyzed through an independent process. Additional extensions have been introduced to support the utility of RAGE, and this includes the implementation of a synchronous firing feature to prevent generation of states where assets deviate from a shared, inseparable feature such as time. The attack graph generation algorithm has also been modified by two different approaches to expand the generation process to function for distributed computing environments using Message Passing Interface (MPI). \acknowledgementsp % diff --git a/Schrick-Noah_MS-Thesis.toc b/Schrick-Noah_MS-Thesis.toc index a1a3d0c..7869d32 100644 --- a/Schrick-Noah_MS-Thesis.toc +++ b/Schrick-Noah_MS-Thesis.toc @@ -14,8 +14,8 @@ \contentsline {section}{\numberline {1.1}\bf Introduction to Attack Graphs}{1}{}% \contentsline {section}{\numberline {1.2}\bf Application to Compliance}{2}{}% \contentsline {subsection}{\numberline {1.2.1}\it Introduction to Compliance Graphs}{2}{}% -\contentsline {subsection}{\numberline {1.2.2}\it Defining Compliance Graphs}{2}{}% -\contentsline {subsection}{\numberline {1.2.3}\it Difficulties of Compliance Graphs and Introduction to Thesis Work}{3}{}% +\contentsline {subsection}{\numberline {1.2.2}\it Defining Compliance Graphs}{3}{}% +\contentsline {subsection}{\numberline {1.2.3}\it Difficulties of Compliance Graphs}{3}{}% \contentsline {section}{\numberline {1.3}\bf Objectives and Contributions}{4}{}% \contentsline {chapter}{\numberline {CHAPTER 2: }{\bf \uppercase {RELATED WORKS}}}{5}{}% \contentsline {section}{\numberline {2.1}\bf Introduction to Graph Generation}{5}{}%